/* ══ THEME VARIABLES ══ */
:root,
[data-theme="dark"] {
  --bg:#0c0905;--bg2:#110d08;--bg3:#1a1208;--bg4:#1e1508;
  --amber:#d97757;--amber2:#e8956d;--amber3:#f0a878;
  --ad:rgba(217,119,87,0.09);--ab:rgba(217,119,87,0.22);
  --sand:#7a4a30;--text:#f1ede8;--text2:#b89070;--text3:#7a5030;
  --green:#5fd7a0;--blue:#7ab8d9;--pink:#e07bd9;--shadow:rgba(0,0,0,0.5);
}
[data-theme="light"] {
  --bg:#f7f3ee;--bg2:#ede5d8;--bg3:#e4d8c6;--bg4:#d8c9b0;
  --amber:#b85a35;--amber2:#c96b44;--amber3:#d97757;
  --ad:rgba(184,90,53,0.1);--ab:rgba(184,90,53,0.28);
  --sand:#7a4a28;--text:#180c04;--text2:#4a2e14;--text3:#7a5030;
  --green:#1a7a52;--blue:#2a6a9a;--pink:#8a3a8a;--shadow:rgba(0,0,0,0.15);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:'JetBrains Mono',monospace;overflow-x:hidden;transition:background .3s,color .3s;}
body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(217,119,87,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(217,119,87,.018) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0;}
[data-theme="light"] body::before{background-image:linear-gradient(rgba(184,90,53,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(184,90,53,.012) 1px,transparent 1px);}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;border-bottom:1px solid var(--ab);background:rgba(12,9,5,.92);backdrop-filter:blur(16px);transition:background .3s;}
[data-theme="light"] nav{background:rgba(253,250,246,.97);box-shadow:0 1px 0 rgba(122,74,48,.12);border-bottom-color:rgba(184,90,53,.18);}
.nav-inner{
  max-width:1280px;margin:0 auto;padding:.9rem 2.5rem;
  display:flex;align-items:center;
}
.nlogo{font-size:.75rem;color:var(--amber);letter-spacing:.06em;flex-shrink:0;}
.nlogo span{color:var(--text3);}
.nav-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0;margin-left:auto;}
@media(max-width:768px){.nav-inner{padding:.75rem 1.2rem;}}

/* Link al centro su desktop */
.nlinks{display:flex;gap:1.8rem;margin-left:auto;}
.nlinks a{font-size:.64rem;letter-spacing:.1em;color:var(--text2);text-decoration:none;text-transform:uppercase;transition:color .2s;}
.nlinks a:hover,.nlinks a.active{color:var(--amber);}

/* Blocco admin mobile */
.mob-admin-links{display:none;}
.mob-logout-btn{background:none;border:none;font-family:'JetBrains Mono',monospace;font-size:.85rem;color:var(--text3);cursor:pointer;padding:0;text-align:left;}


.nav-accedi{
  font-size:.62rem;font-family:'JetBrains Mono',monospace;
  color:var(--text3);letter-spacing:.08em;text-transform:lowercase;
  border:1px solid var(--ab);padding:.28rem .65rem;transition:all .2s;white-space:nowrap;
}
.nav-accedi:hover{color:var(--amber);border-color:var(--amber);}

.theme-toggle{
  flex-shrink:0;width:34px;height:34px;background:var(--bg3);
  border:1px solid var(--ab);color:var(--amber);font-size:.95rem;cursor:pointer;
  transition:all .2s;display:flex;align-items:center;justify-content:center;
  clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px));
}
.theme-toggle:hover{background:var(--ad);border-color:var(--amber);}

.nav-hamburger{
  display:none;background:var(--bg3);border:1px solid var(--ab);
  color:var(--amber);cursor:pointer;width:34px;height:34px;
  font-size:.85rem;font-family:'JetBrains Mono',monospace;
  transition:all .2s;align-items:center;justify-content:center;
}
.nav-hamburger:hover{background:var(--ad);}

/* ── MOBILE ── */
@media(max-width:768px){
  .nav-inner{padding:.75rem 1.2rem;}
  /* Nascondi links normali */
  .nlinks{display:none;margin:0;}
  /* Mostra hamburger */
  .nav-hamburger{display:flex;}
  /* Avatar nascosto su mobile */
  .umenu-wrap{display:none;}

  /* Menu aperto */
  .nlinks.mob-open{
    display:flex;flex-direction:column;
    position:fixed;top:0;left:0;right:0;
    background:var(--bg2);border-bottom:1px solid var(--ab);
    padding:5rem 2rem 2rem;z-index:199;gap:1.2rem;
    animation:slideDown .22s ease;
  }
  .nlinks.mob-open a{font-size:.85rem;}
  /* Mostra blocco admin nel menu mobile */
  .nlinks.mob-open .mob-admin-links{
    display:flex;flex-direction:column;gap:.8rem;
    border-top:1px solid rgba(217,119,87,.18);
    padding-top:.9rem;margin-top:.2rem;
  }
  .nlinks.mob-open .mob-admin-links a{color:var(--amber);font-size:.8rem;}
}

[data-theme="light"] .theme-toggle{background:#f0e8dc;border-color:rgba(184,90,53,.25);}
[data-theme="light"] .nav-hamburger{background:#f0e8dc;border-color:rgba(184,90,53,.25);}
[data-theme="light"] .nlinks a{color:#7a4a28;}
[data-theme="light"] .nlinks a:hover,[data-theme="light"] .nlinks a.active{color:#b85a35;}
[data-theme="light"] .nlogo span{color:#c8a888;}
[data-theme="light"] .nlinks.mob-open{background:#f3ede4;}

/* MESSAGES */
.django-messages{position:fixed;top:5rem;left:50%;transform:translateX(-50%);z-index:400;display:flex;flex-direction:column;gap:.4rem;}
.dmsg{padding:.7rem 1.2rem;font-size:.72rem;background:var(--bg3);border:1px solid var(--ab);color:var(--text2);}
.dmsg-success{border-color:rgba(95,215,160,.3);color:var(--green);}
.dmsg-error{border-color:rgba(217,119,87,.4);color:var(--amber);}

/* SECTIONS */
.S{position:relative;z-index:1;padding:6rem 2.5rem;border-top:1px solid rgba(255,255,255,.04);max-width:1280px;margin:0 auto;}
[data-theme="light"] .S{border-top-color:rgba(0,0,0,.06);}
@media(max-width:900px){.S{padding:4rem 1.5rem;}}
.slabel{font-size:.57rem;letter-spacing:.26em;text-transform:uppercase;color:var(--amber);margin-bottom:.7rem;display:flex;align-items:center;gap:.6rem;}
.slabel::after{content:'';flex:1;height:1px;background:var(--ab);max-width:40px;}
h2.st{font-family:'Syne',sans-serif;font-size:clamp(1.8rem,3.5vw,3rem);font-weight:800;line-height:1.05;margin-bottom:1.8rem;color:var(--text);}
.rev{opacity:0;transition:opacity .5s ease;}
.rev.vis{opacity:1;}

/* HERO */
#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:8rem 2.5rem 4rem;border-top:none;position:relative;z-index:2;max-width:none;}
#hero-content{max-width:1280px;margin:0 auto;width:100%;}
@media(max-width:768px){#hero{padding:6rem 1.5rem 5rem; min-height:100vh;}}
.hpre{font-size:.64rem;color:var(--amber);letter-spacing:.22em;text-transform:uppercase;margin-bottom:1.4rem;display:flex;align-items:center;gap:.7rem;}
.hpre::before{content:'';width:22px;height:1px;background:var(--amber);}
h1.hn{font-family:'Syne',sans-serif;font-size:clamp(3rem,8vw,7rem);font-weight:800;line-height:.95;letter-spacing:-.02em;margin-bottom:.4rem;color:var(--text);}
h1.hn .a{color:var(--amber);}
.hsub{font-family:'Syne',sans-serif;font-size:clamp(1rem,2.5vw,1.8rem);font-weight:400;color:var(--text2);margin-bottom:2rem;}
.tw{font-size:.8rem;color:var(--text2);margin-bottom:2.6rem;min-height:1.3em;}
.cur{display:inline-block;width:2px;height:.85em;background:var(--amber);margin-left:2px;vertical-align:text-bottom;animation:blink .8s step-end infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.hctas{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:3rem;}
.btnp{padding:.72rem 1.7rem;background:var(--amber);color:var(--bg);font-family:'JetBrains Mono',monospace;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border:none;cursor:pointer;transition:all .2s;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));display:inline-block;}
.btnp:hover{background:var(--amber3);transform:translateY(-2px);}
.btng{padding:.72rem 1.7rem;background:transparent;color:var(--amber);font-family:'JetBrains Mono',monospace;font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ab);cursor:pointer;transition:all .2s;display:inline-block;}
.btng:hover{background:var(--ad);border-color:var(--amber);}
.hstats{display:flex;gap:2.5rem;border-top:1px solid var(--ab);padding-top:1.8rem;flex-wrap:wrap;}
@media(max-width:480px){.hstats{justify-content:center;gap:2rem;}.stat{align-items:center;}}
.stat{display:flex;flex-direction:column;gap:.18rem;}
.stn{font-family:'Syne',sans-serif;font-size:1.8rem;font-weight:700;color:var(--amber);}
.stl{font-size:.6rem;color:var(--text3);letter-spacing:.1em;text-transform:uppercase;}
.scroll-indicator{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:0;animation:siAppear .8s ease 2s forwards;z-index:2;}
.si-label{font-size:.55rem;letter-spacing:.2em;color:var(--text3);text-transform:uppercase;}
.si-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--amber),transparent);animation:scrollPulse 2s ease-in-out infinite;}
@keyframes siAppear{from{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes scrollPulse{0%,100%{opacity:.3}50%{opacity:1}}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:1fr 380px;gap:5rem;align-items:start;}
@media(max-width:1000px){.about-grid{grid-template-columns:1fr;gap:3rem;}}
.about-text p{font-size:.82rem;color:var(--text2);line-height:1.95;margin-bottom:1.4rem;}
.about-text p strong{color:var(--text);font-weight:500;}
.about-pillars{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:2rem;}
@media(max-width:600px){.about-pillars{grid-template-columns:1fr;}}
.pillar{padding:1rem 1.1rem;background:var(--bg3);border:1px solid rgba(255,255,255,.05);border-left:2px solid var(--amber);transition:background .2s;}
.pillar:hover{background:var(--ad);}
.pillar-icon{font-size:.85rem;margin-bottom:.4rem;color:var(--amber);}
.pillar-title{font-size:.72rem;font-weight:500;color:var(--text);margin-bottom:.25rem;}
.pillar-desc{font-size:.62rem;color:var(--text3);line-height:1.55;}
.about-card{background:var(--bg3);border:1px solid var(--ab);padding:2rem;position:sticky;top:7rem;}
.about-avatar{width:80px;height:80px;border-radius:50%;background:var(--bg4);border:2px solid var(--ab);display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:800;color:var(--amber);}
.about-card-name{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:.2rem;}
.about-card-role{font-size:.65rem;color:var(--amber2);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.2rem;}
.about-card-items{display:flex;flex-direction:column;gap:.6rem;}
.aci{display:flex;align-items:center;gap:.7rem;font-size:.68rem;color:var(--text2);}
.aci-icon{color:var(--amber);font-size:.62rem;min-width:16px;}
.about-availability{margin-top:1.2rem;padding:.7rem 1rem;background:rgba(95,215,160,.05);border:1px solid rgba(95,215,160,.18);display:flex;align-items:center;gap:.6rem;}
.avail-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse-green 2s infinite;}
@keyframes pulse-green{0%,100%{box-shadow:0 0 0 0 rgba(95,215,160,.4)}50%{box-shadow:0 0 0 6px rgba(95,215,160,0)}}
.avail-text{font-size:.64rem;color:var(--green);letter-spacing:.06em;}
[data-theme="light"] .about-card{background:#fff;box-shadow:0 2px 20px rgba(122,74,48,.08);border-color:rgba(184,90,53,.18);}
[data-theme="light"] .about-avatar{background:#f0e8dc;}
[data-theme="light"] .pillar{background:#fff;border-left-color:#b85a35;border-color:rgba(184,90,53,.12);}
[data-theme="light"] .pillar:hover{background:rgba(184,90,53,.04);}
[data-theme="light"] .pillar-desc{color:#8a5a38;}
[data-theme="light"] .about-text p{color:#4a2e18;}

/* SERVICES */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.04);}
@media(max-width:900px){.services-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.services-grid{grid-template-columns:1fr;}}
.services-grid.stagger-in>*{opacity:0;transform:translateY(18px);}
.services-grid.stagger-in.vis>*{animation:staggerItem .55s ease forwards;}
.services-grid.stagger-in.vis>*:nth-child(1){animation-delay:.04s}
.services-grid.stagger-in.vis>*:nth-child(2){animation-delay:.11s}
.services-grid.stagger-in.vis>*:nth-child(3){animation-delay:.18s}
.services-grid.stagger-in.vis>*:nth-child(4){animation-delay:.25s}
.services-grid.stagger-in.vis>*:nth-child(5){animation-delay:.32s}
.services-grid.stagger-in.vis>*:nth-child(6){animation-delay:.39s}
@keyframes staggerItem{to{opacity:1;transform:none}}
.svc{padding:2rem;background:var(--bg);transition:background .2s;}
.svc:hover{background:var(--bg3);}
.svc-num{font-size:.58rem;color:var(--amber);letter-spacing:.1em;margin-bottom:1rem;}
.svc-title{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;color:var(--text);margin-bottom:.6rem;line-height:1.2;}
.svc-desc{font-size:.68rem;color:var(--text2);line-height:1.7;}
.svc-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.9rem;}
.svc-tag{font-size:.56rem;padding:.14rem .44rem;background:var(--ad);border:1px solid var(--ab);color:var(--text2);}
[data-theme="light"] .services-grid{background:rgba(184,90,53,.07);border-color:rgba(184,90,53,.07);}
[data-theme="light"] .svc{background:#fdf8f4;}
[data-theme="light"] .svc:hover{background:#e8d8c2;}
[data-theme="light"] .svc-desc{color:#5a3820;}
[data-theme="light"] .svc-tag{background:rgba(184,90,53,.06);border-color:rgba(184,90,53,.2);color:#7a4a28;}

/* SIMULATOR */
.sim-intro{font-size:.76rem;color:var(--text2);line-height:1.85;max-width:460px;margin-bottom:2.2rem;}
.sim-shell{display:grid;grid-template-columns:1fr 360px;gap:1.5rem;align-items:start;}
@media(max-width:1000px){.sim-shell{grid-template-columns:1fr;}}
.sim-left{border:1px solid var(--ab);}
.stop{display:flex;align-items:center;gap:.38rem;padding:.52rem .9rem;background:var(--bg4);border-bottom:1px solid rgba(255,255,255,.06);}
.dot{width:7px;height:7px;border-radius:50%;}
.dr{background:#803838;}.dy{background:#806028;}.dg{background:#305838;}
.stoptit{font-size:.57rem;color:var(--text3);letter-spacing:.07em;margin-left:.28rem;flex:1;}
.spbar{height:1px;background:rgba(255,255,255,.06);}
.spfill{height:100%;background:var(--amber);transition:width .5s cubic-bezier(.4,0,.2,1);}
.snav-pills{display:flex;gap:.28rem;padding:.75rem .9rem .5rem;border-bottom:1px solid rgba(255,255,255,.04);flex-wrap:wrap;}
.spill{display:flex;align-items:center;gap:.32rem;font-size:.58rem;color:var(--text3);padding:.26rem .52rem;border:1px solid transparent;transition:all .18s;cursor:default;}
.spill.done{color:var(--green);border-color:rgba(95,215,160,.18);cursor:pointer;}
.spill.active{color:var(--amber);border-color:var(--ab);background:var(--ad);}
.spill-num{font-size:.54rem;opacity:.65;}
.spill-lbl{max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.scont{padding:1.3rem;}
.sprompt{font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin-bottom:.28rem;}
.sqtit{font-family:'Syne',sans-serif;font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:.22rem;}
.sqhint{font-size:.63rem;color:var(--text2);margin-bottom:1rem;font-style:italic;}
.multi-b{display:inline-block;font-size:.56rem;padding:.17rem .52rem;background:var(--ad);border:1px solid var(--ab);color:var(--amber2);letter-spacing:.05em;margin-bottom:.85rem;}
.cw{display:grid;gap:.38rem;}
.cw.c2{grid-template-columns:1fr 1fr;}
@media(max-width:600px){.cw.c2{grid-template-columns:1fr;}}
.cc{padding:.68rem .85rem;border:1px solid rgba(255,255,255,.055);background:var(--bg3);cursor:pointer;transition:all .17s;display:flex;align-items:center;gap:.62rem;position:relative;}
.cc:hover{border-color:var(--ab);background:var(--ad);}
.cc.sel{border-color:var(--amber);background:rgba(217,119,87,.06);}
.cc.sel .ccl{color:var(--amber2);}
.cc::after{content:'✓';position:absolute;top:.4rem;right:.52rem;font-size:.55rem;color:var(--amber);opacity:0;transition:opacity .14s;}
.cc.sel::after{opacity:1;}
.cci{font-size:.9rem;flex-shrink:0;}
.ccl{font-size:.7rem;font-weight:500;color:var(--text);}
.ccs{font-size:.59rem;color:var(--text3);margin-top:.1rem;line-height:1.35;}
.slv{font-family:'Syne',sans-serif;font-size:1.65rem;font-weight:700;color:var(--amber);line-height:1;margin-bottom:.22rem;}
.slsub{font-size:.62rem;color:var(--text2);margin-bottom:1rem;}
.sltrack{position:relative;height:3px;background:rgba(255,255,255,.08);margin:.45rem 0 .38rem;}
.slfill{position:absolute;left:0;top:0;height:100%;background:var(--amber);}
.slthumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:11px;height:11px;background:var(--amber);border:2px solid var(--bg);pointer-events:none;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);}
.slinput{position:absolute;top:-10px;width:100%;opacity:0;cursor:pointer;height:24px;}
.sllabels{display:flex;justify-content:space-between;font-size:.54rem;color:var(--text3);}
.sfree{width:100%;background:var(--bg3);border:1px solid rgba(255,255,255,.07);color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.75rem;padding:.85rem .95rem;outline:none;resize:vertical;min-height:90px;transition:border-color .2s;line-height:1.7;}
.sfree:focus{border-color:var(--amber);}
.sfree::placeholder{color:var(--text3);}
.snav2{display:flex;align-items:center;gap:.52rem;padding:.75rem 1.3rem;border-top:1px solid rgba(255,255,255,.04);background:var(--bg4);flex-wrap:wrap;}
.nbk{font-size:.62rem;color:var(--text3);cursor:pointer;padding:.35rem .6rem;border:1px solid rgba(255,255,255,.055);transition:all .14s;background:none;font-family:'JetBrains Mono',monospace;}
.nbk:hover{color:var(--amber);border-color:var(--ab);}
.nnx{font-size:.62rem;color:var(--amber);cursor:pointer;padding:.35rem .8rem;border:1px solid var(--ab);background:var(--ad);transition:all .14s;font-family:'JetBrains Mono',monospace;letter-spacing:.05em;}
.nnx:hover{background:rgba(217,119,87,.18);}
.nnx:disabled{opacity:.28;cursor:not-allowed;}
.nskip{font-size:.57rem;color:var(--text3);cursor:pointer;}
.nskip:hover{color:var(--amber);}
.nsc{margin-left:auto;font-size:.56rem;color:var(--text3);}
.sim-prev{border:1px solid rgba(255,255,255,.055);}
@media(max-width:1000px){.sim-prev{display:none;}}
.prevbar{padding:.5rem .88rem;background:var(--bg4);border-bottom:1px solid rgba(255,255,255,.055);font-size:.56rem;color:var(--text3);letter-spacing:.06em;}
.prevcanv{padding:1.1rem;min-height:300px;display:flex;align-items:center;justify-content:center;}
.prevcanv svg{width:100%;max-width:320px;}
.sresult{animation:fadeUp2 .33s ease;}
@keyframes fadeUp2{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.reslabel{font-size:.56rem;letter-spacing:.13em;text-transform:uppercase;color:var(--green);margin-bottom:.32rem;}
.restit{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:.28rem;}
.resdesc{font-size:.7rem;color:var(--text2);line-height:1.8;margin-bottom:.85rem;}
.resgrid{display:grid;grid-template-columns:1fr 1fr;gap:.42rem;margin-bottom:.85rem;}
.rescard{padding:.62rem .82rem;background:var(--bg4);border:1px solid rgba(255,255,255,.045);}
.rescl{font-size:.53rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:.2rem;}
.rescv{font-size:.68rem;color:var(--text);}
.restagsw{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.8rem;}
.restag{font-size:.56rem;padding:.15rem .46rem;background:var(--ad);border:1px solid var(--ab);color:var(--text2);}
.resnote{font-size:.66rem;color:var(--text2);line-height:1.75;padding:.75rem .9rem;background:var(--bg4);border-left:2px solid var(--amber);margin-bottom:.85rem;}
.resnote-lbl{font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:.28rem;}
.restl{display:flex;align-items:center;gap:.82rem;padding:.72rem .92rem;background:var(--ad);border:1px solid var(--ab);margin-bottom:.8rem;}
.restln{font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:700;color:var(--amber);line-height:1;}
.restlt{font-size:.63rem;color:var(--text2);line-height:1.6;}
.res-actions{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center;}
.btnres{padding:.5rem 1.1rem;background:var(--amber);color:var(--bg);font-family:'JetBrains Mono',monospace;font-size:.67rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border:none;cursor:pointer;clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px));transition:all .2s;}
.btnres:hover{background:var(--amber3);}
.btnpdf{padding:.5rem 1.1rem;background:transparent;color:var(--amber);font-family:'JetBrains Mono',monospace;font-size:.67rem;letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--ab);cursor:pointer;transition:all .2s;}
.btnpdf:hover{background:var(--ad);}
.btnreset{font-size:.58rem;color:var(--text3);cursor:pointer;}
.btnreset:hover{color:var(--amber);}
[data-theme="light"] .sim-left{border-color:rgba(122,74,48,.28);background:#fff;}
[data-theme="light"] .stop{background:#e0d0bc;border-bottom-color:rgba(122,74,48,.2);}
[data-theme="light"] .snav2{background:#ede5d8;border-top-color:rgba(122,74,48,.15);}
[data-theme="light"] .scont{background:#fff;}
[data-theme="light"] .sqhint{color:#7a4a28;}
[data-theme="light"] .cc{background:#fff;border-color:rgba(122,74,48,.2);}
[data-theme="light"] .cc:hover{background:#fff5ee;border-color:rgba(184,90,53,.4);}
[data-theme="light"] .cc.sel{background:#fff0e6;border-color:#b85a35;border-width:1.5px;}
[data-theme="light"] .ccl{color:#1a0e06;}
[data-theme="light"] .ccs{color:#8a5a38;}
[data-theme="light"] .sim-prev{background:#fff;border-color:rgba(184,90,53,.15);}
[data-theme="light"] .prevbar{background:#e5d8c8;color:#8a5a38;}
[data-theme="light"] .rescard{background:#e5d8c8;border-color:rgba(184,90,53,.12);}
[data-theme="light"] .rescv{color:#1a0e06;}
[data-theme="light"] .resdesc,[data-theme="light"] .restlt{color:#5a3820;}
[data-theme="light"] .restl{background:rgba(184,90,53,.05);border-color:rgba(184,90,53,.22);}
[data-theme="light"] .sfree{background:#fff;border-color:rgba(184,90,53,.18);color:#1a0e06;}
[data-theme="light"] .sfree::placeholder{color:#b89878;}

/* STACK */
.stack-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start;}
@media(max-width:900px){.stack-layout{grid-template-columns:1fr;}}
.scols{display:flex;flex-direction:column;gap:1.1rem;}
.scat{font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text3);padding-bottom:.35rem;border-bottom:1px solid rgba(255,255,255,.04);margin-bottom:.35rem;}
.srow{display:flex;flex-wrap:wrap;gap:.3rem;}
.chip{padding:.36rem .72rem;background:var(--bg3);border:1px solid var(--ab);font-size:.62rem;color:var(--text2);cursor:pointer;transition:all .17s;user-select:none;}
.chip:hover,.chip.act{background:var(--ad);border-color:var(--amber);color:var(--amber);}
.sterm{background:var(--bg2);border:1px solid var(--ab);position:sticky;top:7rem;}
@media(max-width:900px){.sterm{position:static;}}
.termbar{display:flex;align-items:center;gap:.36rem;padding:.5rem .86rem;background:var(--bg4);border-bottom:1px solid var(--ab);}
.termtit{font-size:.56rem;color:var(--text3);letter-spacing:.06em;margin-left:.26rem;flex:1;}
.term-hint{font-size:.52rem;color:var(--text3);opacity:.55;font-style:italic;}
.termbody{padding:.9rem;font-size:.67rem;line-height:1.9;white-space:pre-wrap;min-height:260px;max-height:420px;overflow-y:auto;color:var(--text);cursor:text;}
.termbody::-webkit-scrollbar{width:3px;}
.termbody::-webkit-scrollbar-thumb{background:var(--ab);}
.tp{color:var(--amber);}.tpa{color:var(--sand);}.tc{color:var(--text);}
.to{color:var(--text2);}.tg{color:#5fd7a0;}.tcm{color:var(--text3);}
.tcur{display:inline-block;width:6px;height:.76em;background:var(--amber);margin-left:1px;vertical-align:text-bottom;animation:blink .8s step-end infinite;}
.term-feat{display:inline-block;font-size:.55rem;padding:.05rem .35rem;margin:0 2px;border-radius:2px;}
.tf-green{background:rgba(95,215,160,.1);color:#5fd7a0;border:1px solid rgba(95,215,160,.2);}
.tf-amber{background:rgba(217,119,87,.1);color:var(--amber);border:1px solid var(--ab);}
.tf-blue{background:rgba(122,184,217,.1);color:#7ab8d9;border:1px solid rgba(122,184,217,.2);}
.term-input-wrap{display:inline-flex;align-items:center;}
.term-input{outline:none;min-width:4px;display:inline-block;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.67rem;caret-color:var(--amber);white-space:nowrap;}
[data-theme="light"] .scat{color:#5a3015;font-weight:600;border-bottom:1.5px solid rgba(122,74,48,.2);}
[data-theme="light"] .chip{background:#fff;border:1px solid rgba(122,74,48,.25);color:#4a2e14;}
[data-theme="light"] .chip:hover,[data-theme="light"] .chip.act{background:#fff5ee;border-color:#b85a35;border-width:1.5px;color:#b85a35;}
[data-theme="light"] .sterm{background:#fff;border:1.5px solid rgba(122,74,48,.3);box-shadow:0 2px 16px rgba(122,74,48,.08);}
[data-theme="light"] .termbar{background:#f0e8dc;border-bottom-color:rgba(184,90,53,.18);}
[data-theme="light"] .termtit,.term-hint{color:#8a5a38;}
[data-theme="light"] .termbody{background:#fdf8f2;color:#180c04;}
[data-theme="light"] .tp{color:#b85a35;}[data-theme="light"] .tpa{color:#8a5a38;}
[data-theme="light"] .tc{color:#2a1a08;}[data-theme="light"] .to{color:#5a3820;}
[data-theme="light"] .tcm{color:#b89878;}

/* PROJECTS */
.mentat-card{background:var(--bg3);border:1px solid var(--ab);padding:1.8rem;position:relative;overflow:hidden;margin-bottom:1rem;}
.mentat-card::before{content:'';position:absolute;top:0;left:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--amber),transparent);}
.mglow{position:absolute;top:-30px;right:-30px;width:180px;height:180px;background:radial-gradient(circle,rgba(217,119,87,.07) 0%,transparent 70%);pointer-events:none;}
.mi{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;align-items:start;}
@media(max-width:768px){.mi{grid-template-columns:1fr;}}
.maibadge{display:inline-flex;align-items:center;gap:.38rem;font-size:.56rem;padding:.2rem .62rem;background:var(--ad);border:1px solid var(--ab);color:var(--amber2);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.65rem;}
.mfeats{display:flex;flex-direction:column;gap:.42rem;margin-top:.85rem;}
.mfeat{font-size:.67rem;color:var(--text2);display:flex;align-items:flex-start;gap:.52rem;}
.mfeat::before{content:'→';color:var(--amber);flex-shrink:0;}
.mentat-link-box{margin-top:1rem;padding:.75rem;background:var(--ad);border:1px dashed var(--ab);}
.mentat-link-label{font-size:.55rem;letter-spacing:.1em;color:var(--text3);text-transform:uppercase;margin-bottom:.22rem;}
.mentat-link-url{font-size:.76rem;color:var(--amber2);}
.pg{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.85rem;}
.pc{background:var(--bg3);border:1px solid rgba(255,255,255,.048);padding:1.45rem;transition:all .27s;position:relative;overflow:hidden;}
.pc::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--amber),transparent);transform:scaleX(0);transition:transform .32s;}
.pc:hover{border-color:var(--ab);transform:translateY(-3px);}
.pc:hover::after{transform:scaleX(1);}
.pc.special{border-color:var(--ab);background:linear-gradient(135deg,var(--bg3),var(--ad));}
.ph{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.72rem;}
.pnum{font-size:.57rem;color:var(--amber);letter-spacing:.06em;}
.pbadge{font-size:.53rem;padding:.14rem .46rem;border:1px solid;letter-spacing:.06em;text-transform:uppercase;}
.bl{color:var(--amber2);border-color:rgba(232,149,109,.26);}
.bd{color:#d4900a;border-color:rgba(212,144,10,.25);}
.bs{color:var(--text3);border-color:rgba(122,74,48,.23);}
.pname{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:700;margin-bottom:.38rem;color:var(--text);}
.pdesc{font-size:.68rem;color:var(--text2);line-height:1.73;margin-bottom:.85rem;}
.ptags{display:flex;gap:.28rem;flex-wrap:wrap;}
.tag{font-size:.55rem;padding:.14rem .44rem;background:var(--ad);border:1px solid var(--ab);color:var(--text2);}
.tagd{font-size:.55rem;padding:.14rem .44rem;background:rgba(122,74,48,.11);border:1px solid rgba(122,74,48,.26);color:var(--sand);}
.plus30-grid{display:flex;flex-wrap:wrap;gap:.32rem;margin-top:.8rem;}
.p30tag{font-size:.57rem;padding:.15rem .48rem;background:var(--bg4);border:1px solid rgba(255,255,255,.06);color:var(--text3);}
[data-theme="light"] .mentat-card{background:#fff;border:1.5px solid rgba(184,90,53,.35);box-shadow:0 2px 20px rgba(122,74,48,.08);}
[data-theme="light"] .maibadge{background:rgba(184,90,53,.06);color:#b85a35;}
[data-theme="light"] .mfeat{color:#5a3820;}
[data-theme="light"] .pc{background:#fff;border:1px solid rgba(122,74,48,.2);box-shadow:0 1px 8px rgba(122,74,48,.06);}
[data-theme="light"] .pc:hover{border-color:rgba(184,90,53,.25);}
[data-theme="light"] .pdesc{color:#5a3820;}
[data-theme="light"] .tag{background:rgba(184,90,53,.05);border-color:rgba(184,90,53,.18);color:#7a4a28;}
[data-theme="light"] .tagd{background:rgba(122,74,48,.06);color:#7a4a28;}
[data-theme="light"] .p30tag{background:#f0e8dc;border-color:rgba(184,90,53,.12);color:#8a5a38;}

/* GIT GRAPH */
.timeline-hint{font-size:.7rem;color:var(--text3);margin-bottom:1.8rem;line-height:1.7;}
.glegend{display:flex;gap:1.8rem;margin-bottom:2.2rem;flex-wrap:wrap;}
.gli{display:flex;align-items:center;gap:.5rem;font-size:.63rem;color:var(--text2);}
.gli strong{color:var(--text);}
.gldot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.git-wrap{overflow-x:hidden;}
.gsvg{display:block;overflow:visible;width:100%;}
@keyframes pulse-node{0%,100%{opacity:.18}50%{opacity:0}}
.pulse-ring{animation:pulse-node 2.2s ease-in-out infinite;}
.bpanel{position:fixed;top:0;right:-440px;width:420px;height:100vh;background:var(--bg2);border-left:1px solid var(--ab);z-index:500;transition:right .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-8px 0 40px var(--shadow);}
.bpanel.open{right:0;}
@media(max-width:768px){.bpanel{width:100%;right:-100%;}}
.bph{padding:1.3rem 1.3rem .85rem;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;position:relative;}
.bpclose{position:absolute;top:.85rem;right:.85rem;font-size:.68rem;color:var(--text3);cursor:pointer;padding:.26rem .45rem;border:1px solid rgba(255,255,255,.07);transition:all .14s;background:none;font-family:'JetBrains Mono',monospace;}
.bpclose:hover{color:var(--amber);border-color:var(--ab);}
.bptag{font-size:.55rem;letter-spacing:.17em;text-transform:uppercase;margin-bottom:.42rem;display:inline-flex;align-items:center;gap:.36rem;}
.bpdot{width:6px;height:6px;border-radius:50%;}
.bpname{font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:800;color:var(--text);line-height:1.1;margin-bottom:.3rem;}
.bpdate{font-size:.58rem;color:var(--text3);margin-bottom:.42rem;}
.bpdesc{font-size:.69rem;color:var(--text2);line-height:1.72;}
.bpbody{flex:1;overflow-y:auto;padding:1.05rem 1.3rem;}
.bpbody::-webkit-scrollbar{width:3px;}
.bpbody::-webkit-scrollbar-thumb{background:var(--ab);}
.bpcl{font-size:.57rem;letter-spacing:.13em;text-transform:uppercase;color:var(--text3);margin-bottom:.75rem;display:flex;align-items:center;gap:.42rem;}
.bpcl::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.05);}
.bpcommits{display:flex;flex-direction:column;}
.bpc{display:flex;gap:.82rem;align-items:flex-start;padding:.65rem 0;border-bottom:1px solid rgba(255,255,255,.038);position:relative;}
.bpc:last-child{border-bottom:none;}
.bpcline{position:absolute;left:7px;top:0;bottom:-1px;width:1px;background:rgba(255,255,255,.06);}
.bpc:last-child .bpcline{display:none;}
.bpcdot{width:15px;height:15px;border-radius:50%;border:2px solid;flex-shrink:0;margin-top:.06rem;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;background:var(--bg);}
.bpcdoti{width:5px;height:5px;border-radius:50%;}
.bpcc{flex:1;min-width:0;}
.bpcmsg{font-size:.69rem;color:var(--text);font-weight:500;margin-bottom:.2rem;line-height:1.38;}
.bpcdet{font-size:.61rem;color:var(--text3);line-height:1.48;}
.bpchash{font-size:.56rem;color:var(--text3);font-family:'JetBrains Mono',monospace;padding:.07rem .36rem;background:rgba(255,255,255,.038);border:1px solid rgba(255,255,255,.055);display:inline-block;margin-top:.25rem;}
.bptags-wrap{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:1.05rem;padding-top:.85rem;border-top:1px solid rgba(255,255,255,.048);}
.bptag2{font-size:.56rem;padding:.15rem .44rem;background:var(--ad);border:1px solid var(--ab);color:var(--text2);}
.poverlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:499;opacity:0;pointer-events:none;transition:opacity .28s;}
.poverlay.open{opacity:1;pointer-events:all;}
[data-theme="light"] .bpanel{background:#fff;border-left-color:rgba(184,90,53,.18);}
[data-theme="light"] .bpname{color:#1a0e06;}
[data-theme="light"] .bpdesc{color:#5a3820;}
[data-theme="light"] .bpcmsg{color:#1a0e06;}
[data-theme="light"] .bpcdet{color:#8a5a38;}

/* CONTACT */
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start;}
@media(max-width:768px){.cgrid{grid-template-columns:1fr;gap:2.5rem;}}
.contact-intro{font-size:.76rem;color:var(--text2);line-height:1.9;margin-bottom:1.5rem;}
.clinksw{display:flex;flex-direction:column;gap:.5rem;}
.clink{display:flex;align-items:center;gap:.82rem;font-size:.68rem;color:var(--text2);text-decoration:none;padding:.62rem .82rem;border:1px solid rgba(255,255,255,.048);transition:all .18s;}
.clink:hover{border-color:var(--ab);color:var(--amber);background:var(--ad);}
.clbl{color:var(--amber);font-size:.57rem;letter-spacing:.1em;min-width:55px;}
.cform{display:flex;flex-direction:column;gap:.72rem;}
.flbl{font-size:.57rem;color:var(--text3);letter-spacing:.13em;text-transform:uppercase;display:block;margin-bottom:.26rem;}
.fi,.fta{width:100%;background:var(--bg3);border:1px solid rgba(255,255,255,.07);color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.74rem;padding:.75rem .86rem;outline:none;transition:border-color .2s;}
.fi:focus,.fta:focus{border-color:var(--amber);}
.fta{min-height:95px;resize:vertical;display:block;}
.field-error{font-size:.6rem;color:var(--amber);margin-top:.25rem;}
.form-actions{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:.3rem;}
.form-feedback{font-size:.65rem;}
.form-feedback.success{color:var(--green);}
.form-feedback.error{color:var(--amber);}
[data-theme="light"] .contact-intro{color:#5a3820;}
[data-theme="light"] .clink{border-color:rgba(184,90,53,.2);color:#4a2e14;}
[data-theme="light"] .clink:hover{background:rgba(184,90,53,.05);color:#b85a35;}
[data-theme="light"] .fi,[data-theme="light"] .fta{background:#fff;border:1px solid rgba(122,74,48,.3);color:#180c04;}
[data-theme="light"] .fi::placeholder,[data-theme="light"] .fta::placeholder{color:#b89878;}
[data-theme="light"] .flbl{color:#8a5a38;}

/* FOOTER */
footer{background:var(--bg);border-top:1px solid var(--ab);}
.footer-inner{max-width:1280px;margin:0 auto;padding:1.5rem 2.5rem;display:flex;align-items:center;justify-content:space-between;font-size:.58rem;color:var(--text3);letter-spacing:.1em;flex-wrap:wrap;gap:.5rem;}
@media(max-width:768px){.footer-inner{padding:1.3rem 1.5rem;}}
footer span{color:var(--amber);}
[data-theme="light"] footer{background:#ede5d8;border-top-color:rgba(184,90,53,.28);}
[data-theme="light"] .footer-inner{color:#8a5a38;}

/* ROBOT */
.robot-btn{
  position:fixed;bottom:2rem;right:2rem;z-index:400;
  width:48px;height:48px;
  background:var(--bg3);border:1px solid var(--ab);
  color:var(--amber);cursor:pointer;
  clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));
  display:flex;align-items:center;justify-content:center;
  transition:all .22s;box-shadow:0 4px 16px rgba(0,0,0,.3);
}
.robot-btn:hover{background:var(--ad);border-color:var(--amber);transform:translateY(-3px);}
.robot-btn.open{background:var(--bg4);border-color:var(--amber);}
/* Scroll to top */
.scroll-top-btn{
  position:fixed;bottom:2rem;right:5.8rem;z-index:400;
  width:48px;height:48px;
  background:var(--bg3);border:1px solid var(--ab);
  color:var(--amber);cursor:pointer;
  clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .25s,transform .2s,background .2s;
}
.scroll-top-btn.vis{opacity:1;pointer-events:all;}
.scroll-top-btn:hover{background:var(--ad);border-color:var(--amber);transform:translateY(-2px);}
.robot-popup{position:fixed;bottom:7rem;right:2rem;z-index:401;width:290px;background:var(--bg2);border:1px solid var(--ab);box-shadow:0 8px 40px var(--shadow);display:none;flex-direction:column;overflow:hidden;}
.robot-popup.open{display:flex;}
.rphead{padding:.75rem .9rem .55rem;background:var(--bg4);border-bottom:1px solid rgba(255,255,255,.055);display:flex;align-items:center;gap:.7rem;}
.rpavatar{width:28px;height:28px;background:var(--amber);display:flex;align-items:center;justify-content:center;font-size:.9rem;clip-path:polygon(0 0,calc(100% - 4px) 0,100% 4px,100% 100%,4px 100%,0 calc(100% - 4px));}
.rpname{font-size:.68rem;font-weight:500;color:var(--text);}
.rpstatus{font-size:.55rem;color:var(--green);display:flex;align-items:center;gap:.3rem;}
.rpstatus::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green);display:block;}
.rpchat{padding:.8rem .9rem;display:flex;flex-direction:column;gap:.5rem;max-height:240px;overflow-y:auto;}
.rpchat::-webkit-scrollbar{width:2px;}
.rpchat::-webkit-scrollbar-thumb{background:var(--ab);}
.msg{font-size:.66rem;line-height:1.6;padding:.5rem .65rem;max-width:88%;}
.msg.bot{background:var(--bg3);border:1px solid rgba(255,255,255,.055);color:var(--text2);border-radius:0 8px 8px 0;border-left:2px solid var(--amber);}
.msg.user{background:var(--ad);border:1px solid var(--ab);color:var(--amber2);align-self:flex-end;border-radius:8px 0 0 8px;border-right:2px solid var(--amber);}
.rpctas{padding:.6rem .9rem;border-top:1px solid rgba(255,255,255,.048);display:flex;flex-direction:column;gap:.35rem;}
.rpcta{font-size:.61rem;color:var(--text2);padding:.38rem .6rem;border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:all .14s;text-align:left;background:none;font-family:'JetBrains Mono',monospace;}
.rpcta:hover{border-color:var(--ab);color:var(--amber);background:var(--ad);}
.rp-typing{display:flex;gap:4px;align-items:center;padding:.42rem .65rem;}
.rp-typing span{width:5px;height:5px;border-radius:50%;background:var(--amber);animation:typing .8s ease-in-out infinite;}
.rp-typing span:nth-child(2){animation-delay:.15s;}
.rp-typing span:nth-child(3){animation-delay:.3s;}
@keyframes typing{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
[data-theme="light"] .robot-btn{background:var(--bg3);border-color:rgba(184,90,53,.28);color:#b85a35;}
[data-theme="light"] .robot-btn.open{background:#e5d8c8;border-color:#b85a35;color:#b85a35;}
[data-theme="light"] .robot-popup{background:#fdf8f2;border-color:rgba(184,90,53,.25);}
[data-theme="light"] .rphead{background:#f0e8dc;}
[data-theme="light"] .rpname{color:#1a0e06;}
[data-theme="light"] .msg.bot{background:#e8d8c2;border-left-color:#b85a35;color:#2a1408;}
[data-theme="light"] .msg.user{background:rgba(184,90,53,.06);border-right-color:#b85a35;color:#b85a35;}
[data-theme="light"] .rpcta{border-color:rgba(184,90,53,.1);color:#5a3820;}
[data-theme="light"] .rpcta:hover{background:rgba(184,90,53,.05);color:#b85a35;}
[data-theme="light"] #sandstorm{opacity:0.22;}
[data-theme="light"] #sandstorm-vignette{background:radial-gradient(ellipse at 40% 50%,transparent 20%,rgba(250,248,245,.65) 65%,rgba(250,248,245,.97) 100%) !important;}

/* ══ HOW I WORK ══ */
.how-track { position:relative; padding-left:3rem; }
.how-line  { position:absolute; left:1rem; top:1.5rem; bottom:1.5rem; width:1px; background:rgba(217,119,87,0.12); }
.how-line-fill { width:100%; background:var(--amber); height:0%; transition:height .5s ease; }
.how-step  { display:flex; gap:1.5rem; padding:1.4rem 0; border-bottom:1px solid rgba(255,255,255,.04); }
[data-theme="light"] .how-step { border-bottom-color:rgba(0,0,0,.06); }
.how-step:last-child { border-bottom:none; }
.how-node  { display:flex; flex-direction:column; align-items:center; gap:.4rem; flex-shrink:0; width:3rem; margin-left:-3rem; }
.how-icon  { width:2.2rem; height:2.2rem; border:1px solid var(--ab); display:flex; align-items:center; justify-content:center; font-size:.9rem; color:var(--amber); background:var(--bg); clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px)); }
.how-num   { font-size:.52rem; color:var(--text3); letter-spacing:.1em; }
.how-content { flex:1; }
.how-phase { font-size:.55rem; letter-spacing:.2em; text-transform:uppercase; color:var(--amber); margin-bottom:.3rem; }
.how-title { font-family:'Syne',sans-serif; font-size:1rem; font-weight:700; color:var(--text); margin-bottom:.45rem; }
.how-desc  { font-size:.72rem; color:var(--text2); line-height:1.8; }
.how-duration { font-size:.6rem; color:var(--text3); margin-top:.55rem; padding:.2rem .55rem; border:1px solid rgba(255,255,255,.06); display:inline-block; }
[data-theme="light"] .how-duration { border-color:rgba(0,0,0,.09); }

/* ══ STATS SECTION ══ */
.stats-sec { background:var(--bg2); border-top:1px solid var(--ab); border-bottom:1px solid var(--ab); padding:4rem 2.5rem; text-align:center; }
.stats-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:1.5rem; max-width:1280px; margin:0 auto; text-align:center;
}
.stat-big { text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.stat-big-value { font-family:'Syne',sans-serif; font-size:clamp(1.8rem,3.5vw,3.5rem); font-weight:800; color:var(--amber); line-height:1; margin-bottom:.4rem; white-space:nowrap; }
.stat-big-label { font-size:.68rem; color:var(--text); letter-spacing:.08em; text-transform:uppercase; margin-bottom:.22rem; }
.stat-big-sub   { font-size:.58rem; color:var(--text3); }

/* ══ TESTIMONIALS ══ */
.test-sec { background:var(--bg2); }
.test-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1rem; }
.test-card { background:var(--bg3); border:1px solid rgba(255,255,255,.048); padding:1.5rem; position:relative; overflow:hidden; }
.test-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--amber),transparent); transform:scaleX(0); transition:transform .4s; }
.test-card:hover::before { transform:scaleX(1); }
.test-stars { display:flex; gap:.2rem; margin-bottom:.8rem; }
.star { color:rgba(217,119,87,.2); font-size:.75rem; }
.star.filled { color:var(--amber); }
.test-quote { font-size:.75rem; color:var(--text2); line-height:1.82; margin-bottom:1rem; font-style:italic; }
.test-quote::before { content:'"'; font-size:2rem; color:var(--amber); opacity:.25; line-height:0; vertical-align:-.5rem; margin-right:.15rem; }
.test-name { font-size:.72rem; font-weight:500; color:var(--text); }
.test-role { font-size:.62rem; color:var(--text3); margin-top:.15rem; }
[data-theme="light"] .test-card { background:#fff; border-color:rgba(184,90,53,.12); }
[data-theme="light"] .test-quote { color:#4a2e14; }

/* ══ SKILL TREE ══ */
.skill-tree-sec { background:var(--bg); }
#skill-tree { width:100%; position:relative; }
#git-graph-wrap { width:100%; }
@media(max-width:767px){
  #git-graph-wrap { min-height:1684px; }
  #skill-tree { min-height:904px; }
}


/* ══ THEME EDITOR ══ */
#theme-editor-trigger {
  position:fixed; bottom:2rem; left:5rem; z-index:400;
  width:36px; height:36px; background:var(--bg3); border:1px solid var(--ab);
  color:var(--amber); font-size:.72rem; cursor:pointer;
  clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px));
  display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono',monospace; transition:all .2s;
}
#theme-editor-trigger:hover { background:var(--ad); border-color:var(--amber); }
#theme-editor-panel {
  position:fixed; bottom:5rem; left:2rem; z-index:401;
  width:280px; background:var(--bg2); border:1px solid var(--ab);
  box-shadow:0 8px 40px var(--shadow);
  display:none; flex-direction:column; overflow:hidden;
}
#theme-editor-panel.open { display:flex; }
.ted-header { display:flex; justify-content:space-between; align-items:center; padding:.65rem .9rem; background:var(--bg4); border-bottom:1px solid rgba(255,255,255,.06); }
.ted-title  { font-size:.6rem; color:var(--amber); letter-spacing:.12em; font-family:'JetBrains Mono',monospace; }
.ted-close  { background:none; border:none; color:var(--text3); cursor:pointer; font-size:.7rem; font-family:'JetBrains Mono',monospace; }
.ted-close:hover { color:var(--amber); }
.ted-body   { padding:.8rem; display:flex; flex-direction:column; gap:.5rem; }
.ted-row    { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.ted-label  { font-size:.6rem; color:var(--text2); flex:1; }
.ted-controls { display:flex; align-items:center; gap:.4rem; }
.ted-color  { width:28px; height:20px; border:1px solid var(--ab); background:none; cursor:pointer; padding:0; }
.ted-val    { font-size:.55rem; color:var(--text3); min-width:50px; font-family:'JetBrains Mono',monospace; }
.ted-select { font-size:.58rem; background:var(--bg3); border:1px solid var(--ab); color:var(--text2); padding:.2rem .4rem; font-family:'JetBrains Mono',monospace; }
.ted-range  { flex:1; }
.ted-actions { display:flex; align-items:center; justify-content:space-between; margin-top:.3rem; padding-top:.6rem; border-top:1px solid rgba(255,255,255,.05); }
.ted-reset  { font-size:.6rem; color:var(--amber); background:none; border:none; cursor:pointer; font-family:'JetBrains Mono',monospace; }
.ted-hint   { font-size:.52rem; color:var(--text3); }

/* ══ THEME EDITOR PRESETS ══ */
.ted-presets { border-bottom:1px solid rgba(255,255,255,.05); padding-bottom:.6rem; margin-bottom:.3rem; }
.ted-preset-label { font-size:.55rem; color:var(--text3); font-family:'JetBrains Mono',monospace; margin-bottom:.45rem; }
.ted-preset-grid { display:flex; gap:.4rem; }
.ted-preset-btn {
  width:28px; height:28px; border:1px solid rgba(255,255,255,.1); cursor:pointer;
  clip-path:polygon(0 0,calc(100% - 4px) 0,100% 4px,100% 100%,4px 100%,0 calc(100% - 4px));
  transition:transform .15s, border-color .15s; flex-shrink:0;
}
.ted-preset-btn:hover { transform:scale(1.15); border-color:rgba(255,255,255,.3); }

/* ══ BUGBLASTER GAME ══ */
.game-sec { background:var(--bg2); }
.game-desc { font-size:.74rem; color:var(--text2); margin-bottom:1.8rem; line-height:1.8; }

/* Preview card nella landing */
.game-preview-card {
  border:1px solid var(--ab); cursor:pointer;
  display:grid; grid-template-columns:1fr auto;
  gap:1.5rem; align-items:center; padding:1.5rem;
  background:var(--bg3); transition:all .25s; max-width:640px;
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
}
.game-preview-card:hover { border-color:var(--amber); background:var(--ad); transform:translateY(-2px); }
.game-preview-art { position:relative; height:80px; overflow:hidden; font-family:'JetBrains Mono',monospace; }
.game-preview-ship { font-size:1.1rem; color:var(--amber); font-weight:700; position:absolute; left:0; top:50%; transform:translateY(-50%); letter-spacing:-.05em; }
.gpb { position:absolute; font-size:.6rem; color:#ff8888; background:rgba(224,85,85,.08); border:1px solid rgba(224,85,85,.2); padding:.1rem .3rem; animation:bugFloat 3s ease-in-out infinite; }
.gpb1 { right:10%; top:10%; animation-delay:0s; }
.gpb2 { right:20%; top:55%; animation-delay:.7s; }
.gpb3 { right:5%;  top:78%; animation-delay:1.4s; }
.gpb4 { right:35%; top:30%; animation-delay:2s; }
@keyframes bugFloat { 0%,100%{transform:translateX(0)} 50%{transform:translateX(-6px)} }
.game-preview-info { text-align:right; flex-shrink:0; }
.game-preview-title { font-family:'Syne',sans-serif; font-size:1.1rem; font-weight:700; color:var(--amber); margin-bottom:.3rem; }
.game-preview-sub { font-size:.62rem; color:var(--text3); margin-bottom:.6rem; }
.game-preview-tags { display:flex; gap:.3rem; justify-content:flex-end; flex-wrap:wrap; }
.game-preview-tags span { font-size:.55rem; padding:.1rem .38rem; background:var(--ad); border:1px solid var(--ab); color:var(--text2); }

/* Fullscreen modal */
.game-modal {
  position:fixed; inset:0; z-index:1000;
  background:rgba(4,2,1,.97);
  display:none; align-items:center; justify-content:center;
  overflow:hidden;
}
.game-modal.open { display:flex; }
.game-modal-inner {
  position:relative;
  /* Mobile: fullscreen portrait */
  width:100vw; height:100vh;
  display:flex; align-items:center; justify-content:center;
}
/* Desktop: centra canvas portrait con proporzioni 390×720 */
@media(min-width:481px) and (min-aspect-ratio:1/1) {
  .game-modal-inner {
    width:auto; height:100vh;
  }
}
.game-modal-close {
  position:fixed; top:.7rem; right:.7rem; z-index:1010;
  width:34px; height:34px; background:rgba(18,10,4,.95);
  border:1px solid var(--ab); color:var(--amber);
  font-size:.75rem; cursor:pointer; font-family:'JetBrains Mono',monospace;
  display:flex; align-items:center; justify-content:center;
  transition:all .2s;
  clip-path:polygon(0 0,calc(100% - 4px) 0,100% 4px,100% 100%,4px 100%,0 calc(100% - 4px));
}
.game-modal-close:hover { background:var(--ad); border-color:var(--amber); }
#game-canvas {
  display:block;
  /* Mobile fullscreen */
  width:100vw; height:100vh;
  image-rendering:pixelated;
}
/* Desktop portrait simulation */
@media(min-width:481px) and (min-aspect-ratio:1/1) {
  #game-canvas {
    width:auto !important;
    height:100vh !important;
    max-height:720px;
  }
}
#game-overlay {
  position:absolute; inset:0;
  background:rgba(10,7,4,.92);
  display:flex; align-items:center; justify-content:center;
}

/* Game UI components */
.go-inner {
  text-align:center; padding:2rem 1.5rem;
  display:flex; flex-direction:column; align-items:center; gap:.9rem;
  max-width:400px;
}
.go-title { font-family:'Syne',sans-serif; font-size:1.9rem; font-weight:800; color:var(--amber); letter-spacing:.04em; }
.go-title.go-win  { color:#5fd7a0; }
.go-title.go-dead { color:#e05555; }
.go-score { font-size:1rem; color:var(--text); font-family:'JetBrains Mono',monospace; }
.go-score span { color:var(--amber); font-weight:700; font-size:1.5rem; }
.go-sub { font-size:.7rem; color:var(--text2); line-height:1.75; }
.go-boss-time { font-size:.72rem; color:var(--text2); line-height:1.7; }
.go-boss-time strong { color:var(--amber); }
.go-bonus { display:inline-block; margin-left:.4rem; font-size:.62rem; color:#5fd7a0; background:rgba(95,215,160,.08); border:1px solid rgba(95,215,160,.2); padding:.08rem .36rem; }
.go-controls { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; font-size:.62rem; color:var(--text3); font-family:'JetBrains Mono',monospace; border:1px solid rgba(255,255,255,.06); padding:.5rem 1rem; }
.go-btn { padding:.62rem 1.4rem; font-family:'JetBrains Mono',monospace; font-size:.72rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:all .2s; background:var(--bg3); color:var(--amber); border:1px solid var(--ab); clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px)); }
.go-btn:hover { background:var(--ad); border-color:var(--amber); transform:translateY(-1px); }
.go-btn.primary { background:var(--amber); color:var(--bg); border:none; }
.go-btn.primary:hover { background:var(--amber3); }
.go-actions { display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center; }
.go-lb { width:100%; border:1px solid rgba(255,255,255,.06); padding:.7rem 1rem; }
.go-lb-title { font-size:.58rem; color:var(--amber); letter-spacing:.14em; text-transform:uppercase; margin-bottom:.5rem; font-family:'JetBrains Mono',monospace; }
.go-lb-row { display:flex; gap:.8rem; align-items:center; font-size:.65rem; font-family:'JetBrains Mono',monospace; padding:.18rem 0; border-bottom:1px solid rgba(255,255,255,.04); }
.go-lb-row:last-child { border-bottom:none; }
.go-lb-rank { color:var(--amber); min-width:24px; }
.go-lb-pts  { color:var(--text); flex:1; }
.go-lb-date { color:var(--text3); font-size:.58rem; }

/* ══ GAME LEADERBOARD & NICKNAME ══ */
.go-nickname-wrap { width:100%; }
.go-nickname-label { font-size:.58rem; color:var(--amber); letter-spacing:.14em; text-transform:uppercase; margin-bottom:.45rem; font-family:'JetBrains Mono',monospace; }
.go-nickname-row { display:flex; gap:.5rem; align-items:center; }
.go-nick-input {
  width:80px; background:var(--bg3); border:1px solid var(--ab);
  color:var(--text); font-family:'JetBrains Mono',monospace;
  font-size:1rem; font-weight:700; letter-spacing:.15em;
  padding:.4rem .6rem; outline:none; text-align:center;
  text-transform:uppercase;
}
.go-nick-input:focus { border-color:var(--amber); }
.go-save-msg { font-size:.62rem; font-family:'JetBrains Mono',monospace; margin-top:.3rem; min-height:1rem; }
.go-lb-nick { color:var(--amber); font-weight:600; min-width:40px; }
.go-lb-loading { font-size:.62rem; color:var(--text3); font-family:'JetBrains Mono',monospace; padding:.3rem 0; }

/* ══ USER MENU ══ */
.nav-accedi {
  flex-shrink:0;
  font-size:.62rem;font-family:'JetBrains Mono',monospace;
  color:var(--text3);letter-spacing:.08em;text-transform:lowercase;
  border:1px solid var(--ab);padding:.28rem .65rem;transition:all .2s;
  white-space:nowrap;
}
.nav-accedi:hover{color:var(--amber);border-color:var(--amber);}


.uavatar{
  width:34px;height:34px;border-radius:50%;
  background:var(--amber);color:var(--bg);
  font-family:'Syne',sans-serif;font-size:.85rem;font-weight:800;
  border:2px solid transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .22s;box-shadow:0 2px 12px rgba(217,119,87,.3);
}
.uavatar:hover{border-color:rgba(255,255,255,.3);transform:scale(1.05);}

.udropdown{
  position:absolute;top:calc(100% + .55rem);right:0;
  background:var(--bg2);border:1px solid var(--ab);
  min-width:210px;box-shadow:0 12px 40px rgba(0,0,0,.5);
  display:none;
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
}
.udropdown.open{display:block;}

.udd-header{
  display:flex;align-items:center;gap:.7rem;
  padding:.8rem 1rem;border-bottom:1px solid var(--ab);
}
.udd-initial{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  background:var(--amber);color:var(--bg);
  display:flex;align-items:center;justify-content:center;
  font-family:'Syne',sans-serif;font-size:.85rem;font-weight:800;
}
.udd-name{font-size:.72rem;font-weight:600;color:var(--text);}
.udd-role{font-size:.58rem;color:var(--text3);margin-top:.1rem;}

.udd-sep{border-top:1px solid var(--ab);margin:.25rem 0;}

.udd-item{
  display:flex;align-items:center;gap:.55rem;
  padding:.52rem 1rem;font-size:.68rem;
  color:var(--text2);font-family:'JetBrains Mono',monospace;
  transition:all .15s;
}
.udd-item:hover{background:var(--ad);color:var(--amber);}
.udd-icon{font-size:.75rem;color:var(--text3);width:14px;text-align:center;}
.udd-item:hover .udd-icon{color:var(--amber);}
.udd-logout{color:var(--text3);}
.udd-logout:hover{background:rgba(224,85,85,.08)!important;color:#e05555!important;}
.udd-logout:hover .udd-icon{color:#e05555!important;}

/* ══ GIT GRAPH v3 ══ */
.git-graph-outer { width:100%; overflow:hidden; }
#git-side-panel::-webkit-scrollbar { width:4px; }
#git-side-panel::-webkit-scrollbar-track { background:transparent; }
#git-side-panel::-webkit-scrollbar-thumb { background:var(--ab); }



@media(max-width:768px){
  .nav-right{position:relative;z-index:400;}
  .nlinks.mob-open{z-index:198;padding-top:5.5rem;}
}



/* ══ NO TRANSFORM ANIMATIONS ON MOBILE — previene scroll jump ══ */
@media(max-width:768px) {
  .rev { transform:none !important; }
  .rev.vis { transform:none !important; }
  .services-grid.stagger-in > * { transform:none !important; }
  .services-grid.stagger-in.vis > * { animation:none !important; opacity:1 !important; }
  .how-step, .how-step.vis { transform:none !important; }
  .stat-big, .stat-big.vis { transform:none !important; }
  .test-card, .test-card.vis { transform:none !important; }
  .pc, .svc { transform:none !important; }
  * { will-change:auto !important; }
}

/* ══ FIX MOBILE ══ */
@media(max-width:768px) {
  /* Scroll indicator: su mobile position static, non absolute */
  #hero { padding-bottom:3rem; }
  .scroll-indicator { bottom:1.5rem; }
  .hstats { margin-bottom:1.5rem; }

  /* CRUD/Dashboard: larghezza corretta */
  .crud-wrap, .dash, .crud-sidebar, .crud-main { max-width:100% !important; overflow-x:hidden !important; box-sizing:border-box !important; }
  .crud-wrap { flex-direction:column !important; }
  .crud-sidebar { width:100% !important; border-right:none !important; border-bottom:1px solid var(--ab) !important; }
  table { display:block; overflow-x:auto; width:100%; }
}
