﻿:root{--canvas:#161310;--card:#231f1b;--subtle:#1e1b18;--text:#e9e1db;--muted:#c2c9ba;--line:#42493e;--accent:#9fd58d;--brand:#3f6f33;--bs-primary-rgb:159,213,141;--bs-body-color:var(--text);--bs-body-bg:var(--canvas)}
html[data-bs-theme=light]{--canvas:#eef3e9;--card:#fafcf8;--subtle:#e2ebdc;--text:#13241a;--muted:#3d5244;--line:#c9d8c1;--accent:#3f6f33}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--canvas);color:var(--text);font:16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,a,input,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.container,.nav-shell{width:min(1200px,100%);padding-inline:32px;margin-inline:auto}h1,h2,h3{font-weight:700;letter-spacing:-.035em;color:var(--text);line-height:1.18}h1{font-size:clamp(2.2rem,4.2vw,3.7rem)}h2{font-size:clamp(1.7rem,3vw,2.3rem)}p{color:var(--muted)}.portfolio-header{position:sticky;top:0;z-index:50;background:var(--subtle);border-bottom:1px solid var(--line)}.nav-shell{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-weight:700;font-size:20px;color:var(--text);white-space:nowrap}.brand span{color:var(--accent)}.brand-icon{display:inline-block;background:var(--card);padding:4px 8px;border-radius:8px;font:14px monospace;margin-right:8px}nav{display:flex;gap:4px}nav a{padding:8px 12px;color:var(--muted);font-size:14px;border-radius:8px}nav a:hover,nav a[aria-current]{background:var(--brand);color:white;text-decoration:none}.nav-actions{display:flex;align-items:center;gap:8px}.nav-actions button{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:8px;min-width:40px;height:40px}.nav-cv{background:var(--brand);color:white;padding:8px 14px;border-radius:10px;font-size:13px}#menu-toggle{display:none}main{background:radial-gradient(ellipse at 30% 0,rgba(63,111,51,.12),transparent 40%)}section{padding-block:64px!important}#Home{padding-top:56px!important}.hero-photo-wrapper{background:var(--card);padding:12px!important;border-radius:24px;max-width:350px}.hero-photo{width:100%;height:auto;aspect-ratio:832/1190;object-fit:cover}.hero-photo-glow{display:none}.hero-meta{overflow-wrap:anywhere}.glass-card,.stat-card,.skill-card,.timeline-content,.experience-card,.level-card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:none}.glass-card{height:auto}.glass-card:hover{border-color:var(--accent)}.text-gradient-neon{color:var(--accent);background:none}.text-white,.text-light{color:var(--text)!important}.text-slate-300,.text-slate-400,.text-muted{color:var(--muted)!important}.text-info,.text-cyan,.text-purple{color:var(--accent)!important}.glass-badge,.glass-icon-box{background:var(--subtle);border-radius:8px;padding:6px 10px;color:var(--accent)}.btn{border-radius:10px!important;min-height:44px;box-shadow:none!important}.btn-primary{background:var(--brand);border-color:var(--brand);color:white}.btn-primary:hover{background:#2d5226;border-color:var(--accent)}.btn-outline-light{color:var(--text);border-color:var(--line)}.portfolio-grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-grid>*{min-width:0}#Skills-carousel{grid-template-columns:repeat(6,minmax(0,1fr))}#Skills-carousel img{width:48px;height:48px;object-fit:contain}#Skills-carousel .skill-card{padding:20px;text-align:center;height:100%}.project-card{transition:border-color .2s}.project-card p{font-size:14px}.project-tech-stack{font-size:12px}.project-search{margin:0 0 24px;max-width:540px}.project-search label{display:block;margin-bottom:8px;font-size:14px}.project-search input,.form-control{background:var(--subtle);border:1px solid var(--line);border-radius:12px;color:var(--text);width:100%;padding:12px 16px}.form-control:focus{background:var(--subtle);color:var(--text);border-color:var(--accent);box-shadow:0 0 0 3px #73b06133}.form-control::placeholder,.project-search input::placeholder{color:var(--muted)}#search-status{font-size:13px;margin-top:8px}.portfolio-grid [hidden]{display:none!important}.experience-tree-wrapper{display:grid;gap:24px}.experience-tree-wrapper>div{position:relative!important;margin:0!important;max-width:100%!important}.spinner-grow{animation:none;background:var(--accent)}.portfolio-footer{border-top:1px solid var(--line);padding:32px 0;background:var(--subtle)}.portfolio-footer .container{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px}.portfolio-footer p{font-size:13px;margin:0}.skip-link{position:absolute;top:-80px;left:16px;z-index:100;background:var(--brand);color:white;padding:12px}.skip-link:focus{top:8px}[dir=rtl] body{text-align:right}img{max-width:100%}#contact .glass-card{padding:24px!important}.shadow-neon{box-shadow:none!important}
@media(max-width:1100px){nav a{padding:8px;font-size:13px}.nav-cv{display:none}}
@media(max-width:900px){#menu-toggle{display:block}#portfolio-nav{display:none;position:absolute;top:80px;inset-inline:0;padding:16px;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap}#portfolio-nav.open{display:flex}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#Skills-carousel{grid-template-columns:repeat(4,minmax(0,1fr))}.hero-photo-wrapper{max-width:280px}}
@media(max-width:575px){.container,.nav-shell{padding-inline:16px}.nav-shell{min-height:72px}#portfolio-nav{top:72px}section{padding-block:40px!important}.portfolio-grid{grid-template-columns:1fr}#Skills-carousel{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hero-meta{gap:8px!important}.hero-meta .glass-badge{font-size:12px}.lead{font-size:16px}.portfolio-footer .container{align-items:start;flex-direction:column}.display-4{font-size:2.25rem}.project-card{padding:20px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.tree-line,.tree-node{display:none}.tree-item>div:has(.timeline-content){width:100%;text-align:start!important}.timeline-content{text-align:start!important}.tree-item>div:not(:has(.timeline-content)){display:none}.tree-item .timeline-content{padding:28px!important}.timeline-content ul{padding-inline-start:20px}.timeline-content .badge{background:var(--subtle)!important;color:var(--accent)!important}.hero-section .display-4{line-height:1.2!important}.section-title{margin-bottom:24px}.stat-card{padding:24px}.glass-card::before,.glass-card::after{display:none}.bg-primary-soft,.bg-info-soft{background:var(--subtle)!important}.text-gradient-neon{background:none!important;-webkit-text-fill-color:var(--accent)}
/* Shared application surfaces */
:root{--bg:var(--canvas);--bg-secondary:var(--subtle);--surface:var(--card);--primary:var(--accent);--secondary:var(--brand);--cyan:var(--accent);--white:var(--text);--text-muted:var(--muted);--glass-bg:var(--card);--glass-bg-hover:var(--subtle);--glass-border:var(--line);--glass-border-active:var(--accent);--glass-blur:0px;--glass-radius:16px;--glow-blue:none;--glow-purple:none;--transition:.2s ease;--bs-secondary-color:var(--muted);--bs-border-color:var(--line)}
body{min-height:100vh;display:flex;flex-direction:column}#main-content{flex:1;min-width:0}.private-page #main-content{padding-block:40px}.private-page .brand-logo-img{width:100%;height:auto;max-height:100px;object-fit:contain}.private-page .glass-card{box-shadow:0 12px 40px #0002}.private-page main main{padding:0!important}.auth-wrapper{min-height:65vh}.min-vh-75{min-height:65vh}.bg-dark-soft,.bg-glass-topbar,.ide-header{background:var(--subtle)!important}.border-white-10,.border-white-20{border-color:var(--line)!important}.shadow-lg,.shadow-neon-hover{box-shadow:0 8px 24px #0002!important}.text-cyan,.text-purple,.text-primary{color:var(--accent)!important}.form-select,.input-group-text{background-color:var(--subtle);color:var(--text);border-color:var(--line)}.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #73b06133}.form-check-input{border-color:var(--line)}.form-check-input:checked{background-color:var(--brand);border-color:var(--brand)}.btn-check:checked+.glass-option-card{background:var(--subtle);border-color:var(--accent);box-shadow:0 0 0 2px #73b06133}.glass-option-card{background:var(--subtle);border-color:var(--line)}.form-label{font-weight:600}.form-control:disabled{background:var(--card);color:var(--muted)}.ide-window,.privacy-window{border-color:var(--line)!important}.privacy-glow,.error-glow{display:none}.course-hero h1{background:none;-webkit-text-fill-color:var(--text);color:var(--text)}.course-badge,.week-box{background:var(--subtle);border:1px solid var(--line);color:var(--muted)}.week-title,.day-num{color:var(--accent)}.week-box{border-radius:12px}.level-header{border-color:var(--line)}.level-desc,.days-list{color:var(--muted)}.course-hero{border-radius:24px}.lang-switch-btn{display:none}.levels-grid{gap:24px}.wizard-step-indicator-item{color:var(--muted)}.wizard-step-indicator-item.active,.wizard-step-indicator-item.completed{color:var(--accent)}.wizard-step-indicator-item.active .step-circle,.wizard-step-indicator-item.completed .step-circle{background:var(--brand);border-color:var(--brand);color:white}.wizard-step{animation:none!important}.wizard-body,.ide-body{background:var(--card)}.whatsapp-float{width:48px;height:48px;bottom:20px;right:20px;box-shadow:none}.social-avatar-wrap{width:160px;height:160px;flex-shrink:0}.social-avatar{width:160px;height:160px;object-fit:cover;border-radius:50%}.social-avatar-wrap::before,.social-avatar-wrap::after{display:none}.social-card,.social-link-card,.qr-card{background:var(--card);border-color:var(--line);box-shadow:none}.social-card:hover{transform:translateY(-2px)}.social-hero{background:var(--card)!important}.social-hero-text{min-width:0}.qr-img,.qr-image{width:160px;height:160px;object-fit:contain}.table{--bs-table-bg:var(--card);--bs-table-color:var(--text);--bs-table-border-color:var(--line)}.table-responsive{border-radius:12px}.badge.bg-primary{background:var(--brand)!important}.progress{background:var(--subtle)}.progress-bar{background:var(--brand)}.error-page{min-height:60vh}.reveal-up,.reveal-init,.reveal-section{opacity:1!important;transform:none!important}.bg-primary-soft,.bg-cyan-soft,.bg-purple-soft{background:var(--subtle)!important}.font-monospace,code,pre{font-family:ui-monospace,Consolas,monospace}.private-page .glass-card h2,.private-page .glass-card h3{letter-spacing:0}.privacy-window h2{font-size:1.5rem}.privacy-window p,.privacy-window li{color:var(--muted)}
@media(max-width:767px){.private-page #main-content{padding-block:24px}.weeks-grid{grid-template-columns:1fr!important}.wizard-step-indicators{gap:8px}.wizard-step-indicator-item{font-size:12px}.ide-header{padding-inline:16px!important}.wizard-body,.ide-body{padding:20px!important}.social-avatar-wrap,.social-avatar{width:120px;height:120px}.level-card{padding:24px!important}.whatsapp-float{bottom:16px;right:16px}.table-responsive{max-width:100%}.private-page .glass-card{padding:24px!important}}
[data-bs-theme=dark] .badge.text-success{color:#9fd58d!important}[data-bs-theme=dark] .badge.text-danger{color:#ffb4ab!important}
[data-bs-theme=dark] .text-success{color:#9fd58d!important}[data-bs-theme=dark] .text-danger{color:#ffb4ab!important}
.mobile-bottom-nav{display:none}
@media(max-width:900px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}.mobile-bottom-nav{position:fixed;inset-inline:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--subtle);box-shadow:0 -4px 20px #0002}.mobile-bottom-nav .mobile-nav-item{min-height:52px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:6px 2px;border-radius:12px;color:var(--muted);font-size:11px;line-height:1.2}.mobile-bottom-nav i{font-size:18px}.mobile-bottom-nav a[aria-current]{background:var(--brand);color:#fff}.mobile-bottom-nav a:hover{text-decoration:none;background:var(--card)}.mobile-bottom-nav a[aria-current]:hover{background:var(--brand)}.whatsapp-float{bottom:calc(92px + env(safe-area-inset-bottom,0px))}}
.shimmer-text{animation:none;background:none;-webkit-text-fill-color:var(--accent)}
.private-page .brand-logo-wrapper{height:100px}.private-page .brand-logo-img{width:155px;height:100px;object-fit:contain}
/* Brand identity and editorial rhythm */
.brand{display:inline-flex;align-items:center;gap:6px}.brand-mark{display:inline-block;flex-shrink:0;width:34px;height:44px;background:var(--accent);mask:url('/Imag/logo-320.webp') center/contain no-repeat;-webkit-mask:url('/Imag/logo-320.webp') center/contain no-repeat;margin-inline-end:6px}.login-brand{width:76px;height:96px}
.hero-photo-wrapper{background:linear-gradient(145deg,var(--subtle),var(--brand));border:1px solid var(--line);border-radius:120px 120px 24px 24px;overflow:hidden;box-shadow:16px 16px 0 var(--subtle)}.hero-photo{filter:grayscale(.65) sepia(.18);mix-blend-mode:luminosity;border-radius:110px 110px 16px 16px!important}.social-avatar{filter:grayscale(.65) sepia(.18);object-position:center 24%}.social-avatar-wrap{background:var(--brand);border:1px solid var(--accent)}
#stats{padding-block:24px!important}#stats .glass-card{border:0;border-inline-start:2px solid var(--line);border-radius:0;background:transparent;padding:16px!important}#projects,#experience{background:var(--subtle)}.section-title{max-width:28ch}#projects-carousel{counter-reset:project}.project-item{counter-increment:project}.project-title::before{content:"0" counter(project) " / ";display:block;font:12px/1.4 ui-monospace,monospace;color:var(--accent);margin-bottom:12px}.project-card{background:var(--canvas);border-radius:20px;transition:transform .25s,border-color .25s}.project-card p{line-height:1.8}.project-tech-stack .glass-badge{padding:4px 8px}.timeline-content{border-inline-start:3px solid var(--accent)}.social-card{opacity:1}.qr-scanner{display:none}.social-hero-text p{overflow-wrap:anywhere}
.more-sheet{display:none;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:24px 24px 0 0;width:min(100%,560px);max-width:100%;max-height:80dvh;margin:auto auto 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain}.more-sheet[open]{display:block}.more-sheet::backdrop{background:#0009;backdrop-filter:blur(4px)}body:has(.more-sheet[open]){overflow:hidden}.more-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.more-heading h2{font-size:1.4rem;margin:0}.more-heading button{width:44px;height:44px;border:1px solid var(--line);background:var(--subtle);color:var(--text);border-radius:50%;font-size:24px}.more-sheet nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.more-sheet nav a{background:var(--subtle);border:1px solid var(--line);padding:16px;min-height:54px;font-size:14px;overflow-wrap:anywhere}.more-dots{font-size:20px;line-height:18px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.project-card:hover{transform:translateY(-5px)}.skill-card{transition:transform .2s}.skill-card:hover{transform:translateY(-3px)}}
@media(max-width:900px){#menu-toggle,#portfolio-nav,#portfolio-nav.open{display:none}.mobile-bottom-nav button{border:0;background:transparent;font-family:inherit;cursor:pointer}.mobile-bottom-nav button[aria-expanded=true]{background:var(--brand);color:white}.mobile-bottom-nav .mobile-nav-item:focus-visible{outline-offset:-3px}.hero-photo-wrapper{max-width:260px}.nav-shell{min-height:72px}.nav-actions button{min-width:44px;height:44px}html{scroll-padding-top:88px;scroll-padding-bottom:100px}.social-qr-img{max-width:100%;height:auto}}
@media(max-width:575px){.brand{font-size:18px}.brand-mark{width:28px;height:36px}.nav-shell{gap:8px}.nav-actions{gap:6px}#Home{padding-top:32px!important}.hero-section .row{--bs-gutter-y:2rem}.hero-section h1{font-size:clamp(2rem,8vw,2.7rem)}.hero-photo-wrapper{width:210px;box-shadow:10px 10px 0 var(--subtle)}.hero-meta .glass-badge{max-width:100%}#stats .row{--bs-gutter-x:1rem;--bs-gutter-y:1rem}#stats .display-5{font-size:2rem}.project-card .badge{white-space:normal;text-align:end;max-width:70%}#projects .mb-5{margin-bottom:24px!important}.social-card{padding:12px}.social-card-title{font-size:1rem}.more-sheet nav{gap:8px}}
@media(prefers-reduced-motion:reduce){.social-card{opacity:1!important}}
/* Bar sizing and narrow-screen overflow corrections. */
:root{--header-space:81px;--bottom-nav-space:88px}
html{scroll-padding-top:calc(var(--header-space) + 16px)}
.portfolio-header,.portfolio-footer{flex-shrink:0}
.portfolio-header{padding-top:env(safe-area-inset-top,0px)}
.nav-shell{padding-block:10px;min-width:0;min-height:80px}
.nav-shell>.brand,.nav-actions{flex-shrink:0}
#portfolio-nav{min-width:0;flex-wrap:wrap;justify-content:center}
.nav-actions button{display:inline-flex;align-items:center;justify-content:center;padding:6px;line-height:1.5;height:auto;min-height:44px}
.container>.row{min-width:0}.row>*{min-width:0}
.project-card,.timeline-content,.hero-meta,.portfolio-footer{overflow-wrap:anywhere}
.portfolio-footer .container>*{min-width:0;max-width:100%}
.more-dots{line-height:1.5}
.more-sheet{overflow-y:auto;scroll-padding-block:20px}
@media(max-width:900px){
    body{padding-bottom:var(--bottom-nav-space)}
    html{scroll-padding-bottom:calc(var(--bottom-nav-space) + 16px)}
    .nav-shell{min-height:68px;padding-block:10px;padding-inline-start:max(16px,env(safe-area-inset-left,0px));padding-inline-end:max(16px,env(safe-area-inset-right,0px))}
    .mobile-bottom-nav{align-items:stretch;padding-block-start:8px;padding-block-end:calc(8px + env(safe-area-inset-bottom,0px));padding-inline-start:max(8px,env(safe-area-inset-left,0px));padding-inline-end:max(8px,env(safe-area-inset-right,0px))}
    .mobile-bottom-nav .mobile-nav-item{min-width:0;min-height:60px;height:auto;gap:4px;padding:6px 2px;line-height:1.65;white-space:normal;text-align:center}
    .mobile-nav-item>span:not(.more-dots){display:block;max-width:100%;padding-block:2px;overflow-wrap:anywhere}
    .mobile-bottom-nav i,.mobile-bottom-nav .more-dots{display:block;min-height:24px;line-height:24px;flex-shrink:0}
    .whatsapp-float{bottom:calc(var(--bottom-nav-space) + 16px)}
}
@media(max-width:575px){
    /* g-5 previously extended 24px into a container with only 16px padding. */
    .container>.row{--bs-gutter-x:1.5rem}
    .hero-section .display-4{line-height:1.4!important}
    .hero-section .btn{max-width:100%;white-space:normal}
    .hero-section form{max-width:100%}
    .tree-item .timeline-content{padding:20px!important}
    .social-hero{padding-inline:16px!important}
}
[dir=rtl] .mobile-nav-item,[dir=rtl] .nav-actions button{letter-spacing:normal}
.brand,.brand:hover,.brand:focus,.brand:active{text-decoration:none}
/* Recruitment portfolio: a direct introduction and compact, readable project cards. */
.identity-title{font-size:clamp(2.5rem,6vw,4.8rem);line-height:1.25;margin-bottom:12px}
.eyebrow{color:var(--accent);font-size:.85rem;font-weight:600;letter-spacing:.06em;margin-bottom:12px}
.hero-role{font-size:clamp(1.2rem,2.6vw,1.7rem);color:var(--text);line-height:1.6;margin-bottom:20px}
.hero-intro{max-width:52ch;line-height:1.8}.hero-cta,.profile-links,.footer-links{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.hero-cta{margin-block:28px}.hero-cta .btn{padding:12px 22px}.profile-links a{padding-block:8px;min-height:44px}.profile-links{gap:24px}.section-intro{max-width:66ch;margin-bottom:28px}
#projects-carousel{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.project-card{padding:28px;height:auto}.project-category{font-size:.8rem;margin-bottom:18px;color:var(--accent)}.project-title{font-size:1.45rem;line-height:1.5;margin-bottom:16px}.project-tech-stack{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line);padding-top:16px}.project-tech-stack .glass-badge{font-size:.75rem;line-height:1.6}.project-details{margin-top:20px;border-top:1px solid var(--line);padding-top:12px}.project-details summary{cursor:pointer;min-height:44px;padding-block:8px;color:var(--accent);font-size:.9rem}.project-details p{margin-block:12px 0}.project-link{display:inline-block;padding-block:12px;margin-top:8px}.project-details summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.skill-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.skill-groups .skill-card{padding:24px;min-width:0}.skill-groups h3{font-size:1.15rem;line-height:1.5}.skill-groups p{font-size:.9rem;line-height:2;margin-bottom:0}.privacy-copy{max-width:840px}.privacy-copy h2{font-size:1.35rem;margin-top:32px}.privacy-copy p{line-height:1.9}
[dir=rtl] .eyebrow{letter-spacing:normal}[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3{letter-spacing:normal;line-height:1.6}
@media(max-width:900px){.skill-groups{grid-template-columns:1fr}.hero-photo-wrapper{width:260px}}
@media(max-width:575px){#projects-carousel{grid-template-columns:1fr}.project-card{padding:20px}.identity-title{font-size:2.6rem}.hero-photo-wrapper{width:210px}.profile-links{gap:20px}.hero-cta{gap:12px}.footer-links{gap:16px}.section-title{line-height:1.5}}
.timeline-content .d-flex{justify-content:flex-start!important}
