:root{
  --reveal-accent:#16f7c0;
  --reveal-cyan:#00e8d1;
  --reveal-dark:#020807;
}
@media(hover:hover) and (pointer:fine){html.custom-cursor-active,html.custom-cursor-active *{cursor:none!important}}

/* Short cinematic beats: content may hold briefly, but never traps the scroll. */
.chapter{height:112vh}
.hero{height:112vh}
.skills{height:125vh}
.projects{height:170vh}
.experience{height:360vh}
.contact{height:112vh}
.project-card__visual:before{border-style:dashed;animation:spin 18s linear infinite}
.project-card__visual:after{width:45%;border-style:solid;animation:none;opacity:.0}
.project-card__logo{position:relative;z-index:2;width:clamp(150px,54%,250px);height:auto;object-fit:contain;transform:translateY(-9px);filter:drop-shadow(0 12px 28px rgba(0,0,0,.5)) drop-shadow(0 0 18px rgba(0,190,151,.1));user-select:none;pointer-events:none}
.project-card__logo--clientbook{width:clamp(195px,52%,235px);border-radius:50%;transform:translateY(-1px) translateX(.5px);filter:drop-shadow(0 12px 30px rgba(0,0,0,.42))}
.project-card__logo--saif{width:clamp(145px,12vw,175px);height:clamp(145px,12vw,175px);padding:0;border-radius:50%;background:#2d587c;object-fit:cover;transform:translateY(0px);filter:drop-shadow(0 12px 30px rgba(0,0,0,.42))}
.project-card__logo--linearcraze{width:clamp(265px,62%,380px);border-radius:50%;object-fit:cover;transform:translateY(0px);filter:drop-shadow(0 12px 30px rgba(0,0,0,.46))}
.project-card__logo--coffeebrew{width:clamp(210px,62%,360px);border-radius:50%;object-fit:cover;transform:translateY(0);filter:drop-shadow(0 12px 32px rgba(0,0,0,.5))}
.project-card__logo--mia{width:clamp(210px,62%,360px);border-radius:50%;object-fit:cover;transform:translateY(0);filter:drop-shadow(0 12px 32px rgba(0,0,0,.48))}
.project-modal__mockup{position:relative;z-index:4;display:block;width:auto;max-width:92%;max-height:min(72vh,680px);object-fit:contain;border-radius:8px;filter:drop-shadow(0 28px 55px rgba(0,0,0,.52))}
.project-modal__mockup[hidden]{display:none}
.project-modal__visual.has-mockup .mockup-plane{display:none}
.project-modal__visual.has-mockup:before{opacity:.22}
.project-modal__visual.has-mockup{background:radial-gradient(ellipse at 50% 48%,rgba(var(--mockup-theme-rgb),.96) 0%,rgba(var(--mockup-theme-rgb),.72) 42%,rgba(var(--mockup-theme-rgb),.34) 72%,rgba(2,8,7,.96) 112%);transition:background .45s ease}.project-modal__visual.has-mockup:before{border-color:rgba(var(--mockup-theme-rgb),.35)}.project-modal__visual.has-mockup figcaption{color:rgba(3,19,13,.68);font-weight:500}.project-modal__visual.has-mockup .project-modal__mockup{filter:drop-shadow(0 28px 55px rgba(0,0,0,.38))}
@media(min-width:761px){
  .projects .chapter__layout{grid-template-columns:minmax(0,1fr) minmax(0,1.85fr);grid-template-rows:1fr;column-gap:clamp(1.5rem,3vw,4rem)}
  .projects .chapter-heading{position:relative;left:auto;top:auto;grid-column:1;grid-row:1;min-width:0;width:100%;max-width:none}
  .projects .chapter-heading h2{max-width:100%;font-size:clamp(2.25rem,3.35vw,4.5rem);line-height:1.02;overflow-wrap:anywhere}
  .projects .chapter-heading h2 em{display:block}
  .projects .project-stage{grid-column:2;grid-row:1;min-width:0;justify-self:end;width:100%}
}
@media(hover:hover) and (pointer:fine){.career-stage:focus{outline:none}.career-stage:focus-visible{outline:1px solid rgba(98,245,183,.32);outline-offset:8px}}
.career-node{z-index:2}
.career-peek{position:absolute;z-index:1;left:110px;right:0;display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.28rem 1rem;padding:.65rem 1rem;border-left:1px solid rgba(165,140,255,.2);color:#a58cff;opacity:.11;transform:translateY(0);transition:opacity .35s,transform .45s;pointer-events:none}
.career-peek--previous{top:0}.career-peek--next{bottom:0}
.career-peek b{grid-row:1/3;color:#70817b;font:300 .43rem var(--mono);letter-spacing:.13em;white-space:nowrap}.career-peek strong{font:400 clamp(.78rem,1.15vw,1.05rem) var(--sans);letter-spacing:-.025em}.career-peek small{color:#6f827b;font:300 .43rem var(--mono);letter-spacing:.08em}
.career-peek.is-empty{opacity:0}.career-peek--previous:not(.is-empty){transform:translateY(-5px)}.career-peek--next:not(.is-empty){transform:translateY(5px)}

.hero__layout{isolation:isolate;overflow:hidden;background:radial-gradient(circle at 52% 36%,#062019 0%,#03110e 36%,#020706 76%)}
.hero-portrait--reveal{
  position:absolute!important;
  inset:0!important;
  grid-column:1 / -1!important;
  grid-row:1 / -1!important;
  z-index:1!important;
  width:100%!important;
  height:100svh!important;
  min-height:0!important;
  margin:0!important;
  pointer-events:none;
}
.hero-reveal__stage{position:absolute;inset:0;overflow:hidden;background:transparent}
#hero-reveal-canvas,.hero-reveal__fallback{position:absolute;inset:0;width:100%;height:100%;display:block}
#hero-reveal-canvas{z-index:2;opacity:0;transition:opacity .45s ease}
.hero-reveal-ready #hero-reveal-canvas{opacity:1}
.hero-reveal-ready .hero-reveal__fallback{opacity:0}
.hero-portrait--reveal .hero-reveal__fallback{z-index:1;object-fit:contain;filter:none;transition:opacity .35s ease}
.hero__copy{position:relative;z-index:6;text-shadow:0 2px 22px rgba(0,0,0,.72)}
.hero__title .name{filter:drop-shadow(0 12px 35px rgba(0,0,0,.68))}
.hero-portrait--reveal figcaption{display:flex!important;position:absolute;z-index:8;top:17%;left:50%;gap:.75rem;align-items:center;color:rgba(221,255,244,.66);font:400 .62rem var(--mono);letter-spacing:.16em;transform:translateX(-4%);opacity:.7}
.hero-portrait--reveal figcaption b{display:grid;width:25px;height:25px;place-items:center;border:1px solid rgba(22,247,192,.6);border-radius:50%;color:var(--reveal-accent);box-shadow:0 0 18px rgba(22,247,192,.16)}
.hero-skill-layer{position:absolute;inset:0;z-index:7;pointer-events:none}
.hero-skill-connectors{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hero-skill-path{fill:none;stroke:rgba(22,247,192,.65);stroke-width:1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px rgba(22,247,192,.35));opacity:var(--activation,.04);transition:opacity .18s linear}
.hero-skill-node{fill:#16f7c0;filter:drop-shadow(0 0 7px #16f7c0);opacity:var(--activation,.05)}
.hero-skill-pulse{fill:#cafff1;filter:drop-shadow(0 0 7px #16f7c0);opacity:var(--activation,.05)}
.hero-skill-module{
  --activation:.04;position:absolute;right:clamp(1.3rem,5.8vw,7rem);top:var(--top);width:clamp(132px,15vw,205px);padding:.68rem .85rem .64rem 2.8rem;
  border:1px solid rgba(22,247,192,.58);border-radius:2px;background:rgba(2,13,11,.76);
  color:rgba(199,255,238,.96);box-shadow:0 0 24px rgba(0,232,161,.12);opacity:var(--activation);transform:translateX(18px);transition:border-color .18s,background .18s,color .18s,box-shadow .18s,opacity .18s,transform .18s;
}
.hero-skill-module:before{content:attr(data-code);position:absolute;left:.75rem;top:50%;color:var(--reveal-accent);font:500 .65rem var(--mono);transform:translateY(-50%)}
.hero-skill-module strong{display:block;font:500 clamp(.61rem,.8vw,.76rem) var(--mono);letter-spacing:.12em}.hero-skill-module small{display:block;margin-top:.25rem;color:rgba(130,181,166,.78);font:400 .48rem var(--mono);letter-spacing:.1em}
.hero-reveal-locked .hero-skill-module{backdrop-filter:blur(10px)}
body.hero-reveal-scroll-lock{overflow:hidden!important;touch-action:none}

@media(max-width:900px){
  .hero-portrait--reveal figcaption{top:23%;left:auto;right:1rem;transform:none;font-size:.48rem}
  .hero-skill-module{right:.65rem;width:118px;padding:.48rem .55rem .45rem 2.1rem}.hero-skill-module:before{left:.55rem;font-size:.52rem}.hero-skill-module small{display:none}
}
@media(max-width:760px){
  .chapter{height:auto;min-height:105svh}
  .hero{height:auto;min-height:112svh}
  .skills{height:auto;min-height:118svh}
  .projects{height:170svh;min-height:0}
  .experience{height:320svh;min-height:0}
  .contact{height:auto;min-height:118svh}
  .career-peek{left:54px;padding:.45rem .65rem}.career-peek b{display:none}.career-peek strong{font-size:.68rem}.career-peek small{font-size:.38rem}
  .hero__layout{padding-top:0!important}.hero__copy{padding-top:18vh!important;pointer-events:none}.hero__copy a{pointer-events:auto}
  .hero-portrait--reveal{position:absolute!important;inset:0!important;width:100%!important;height:100svh!important;margin:0!important}
  .hero__title .name{font-size:clamp(4rem,20vw,6.4rem)}
  .hero-skill-module{top:auto!important;bottom:var(--mobile-bottom);right:.65rem}
}
@media(prefers-reduced-motion:reduce){
  #hero-reveal-canvas,.hero-reveal__fallback,.hero-skill-module{transition:none!important}
  .hero-skill-pulse{display:none}
}

.project-destination--live{position:relative;min-width:210px;border-color:var(--green);background:var(--green);color:#03130d;font-weight:600;box-shadow:0 0 28px rgba(98,245,183,.16);transition:transform .25s,background .25s,box-shadow .25s}.project-destination--live:before{content:"";width:6px;height:6px;border-radius:50%;background:#03130d;box-shadow:0 0 0 4px rgba(3,19,13,.12)}.project-destination--live span{margin-left:auto;color:#03130d}.project-destination--live:hover,.project-destination--live:focus-visible{background:#eafbf4;color:#03130d;box-shadow:0 0 38px rgba(98,245,183,.28);transform:translateY(-2px)}

/* Reversible light Work chapter experiment — checkpoint 1218d53. */
.about .chapter__sticky{background:#e4e7e5;color:#07110e;isolation:isolate}
.about .chapter__sticky:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 68% 40%,rgba(7,17,14,.055),transparent 34%),linear-gradient(rgba(7,17,14,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(7,17,14,.045) 1px,transparent 1px);background-size:auto,54px 54px,54px 54px}
.about .eyebrow,.about .terminal-head b,.about .terminal-head i,.about .telemetry b{color:#08795a}.about .terminal-head i{background:#08795a}
.about .chapter-heading h2{color:#063d30}.about .chapter-heading h2 em{color:transparent;-webkit-text-stroke-color:rgba(8,121,90,.58)}
.about .profile-terminal{border-color:rgba(213,234,226,.16);background:#03110e;box-shadow:0 30px 85px rgba(7,17,14,.24)}
.about .terminal-head{border-color:rgba(213,234,226,.14);color:#9aaba5}.about .terminal-head b{color:#c6d2ce}.about .terminal-head i{background:#71817c}.about .terminal-body p{color:#aebdb8}.about .terminal-body strong{color:#f2f7f5}.about .specializations span{border-color:rgba(213,234,226,.2);color:#b3c0bc;background:rgba(255,255,255,.025)}
.about .text-link{border-color:#879791;color:#f2f7f5}.about .text-link span{color:#b7c5c0}
.about .telemetry{border-color:rgba(8,92,66,.18);background:rgba(8,92,66,.18)}.about .telemetry div{background:rgba(255,255,255,.9)}.about .telemetry strong{color:#064c3b}.about .telemetry small,.about .telemetry span{color:#5f746c}
.projects .chapter__sticky{background:#f5f7f4;color:#07110e;isolation:isolate}
.projects .chapter__sticky:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 74% 38%,rgba(44,196,139,.1),transparent 32%),linear-gradient(rgba(8,92,66,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(8,92,66,.045) 1px,transparent 1px);background-size:auto,54px 54px,54px 54px}
.projects .eyebrow,.projects .project-card__number,.projects .project-card__body>p:first-child,.projects .project-index span:first-child{color:#08795a}
.projects .chapter-heading h2{color:#07110e}.projects .chapter-heading h2 em{color:transparent;-webkit-text-stroke-color:rgba(7,17,14,.34)}
.projects .project-index,.projects .project-status{color:#62736c}.projects .project-index i{background:rgba(8,92,66,.22)}
.projects .project-card{border-color:rgba(8,92,66,.2);background:rgba(255,255,255,.9);color:#07110e;box-shadow:0 28px 80px rgba(20,52,42,.1)}
.projects .project-card__visual{border-color:rgba(8,92,66,.18);background:radial-gradient(circle at 50% 50%,rgba(35,187,132,.13),transparent 48%),linear-gradient(135deg,#f1f6f3,#e8f0ec)}
.projects .project-card__visual:before,.projects .project-card__visual:after{border-color:rgba(8,121,90,.24)}
.projects .project-card__visual i{background:linear-gradient(transparent,#08795a,transparent)}
.projects .project-card__body>p:nth-of-type(2){color:#53665f}.projects .project-card li{border-color:rgba(8,92,66,.2);color:#49665c;background:rgba(8,121,90,.035)}
.projects .project-card__open,.projects .project-status .text-link{border-color:#08795a;color:#07110e}.projects .project-card__open span,.projects .project-status .text-link span{color:#08795a}
body.projects-active .hud-nav.scrolled{background:rgba(248,250,248,.86);border-color:rgba(8,92,66,.2);box-shadow:0 12px 40px rgba(20,52,42,.06)}
body.projects-active .hud-nav .brand span,body.projects-active .hud-nav nav a.active,body.projects-active .nav-cta{color:#07110e}body.projects-active .hud-nav nav a{color:#5d7169}body.projects-active .hud-nav nav a:after{background:#08795a}body.projects-active .hud-nav .brand b,body.projects-active .nav-cta span{color:#08795a;background:#08795a}
body.projects-active .rail a.active{color:#08795a;text-shadow:none}body.projects-active .rail__label,body.projects-active .rail a{color:#667970}body.projects-active .rail__track{background:rgba(8,92,66,.2)}body.projects-active .rail__track i{background:#08795a;box-shadow:0 0 8px rgba(8,121,90,.35)}
body.projects-active .corner-data{color:#6c7d76}
body.profile-active .hud-nav.scrolled{background:rgba(248,250,248,.86);border-color:rgba(8,92,66,.2);box-shadow:0 12px 40px rgba(20,52,42,.06)}
body.profile-active .hud-nav .brand span,body.profile-active .hud-nav nav a.active,body.profile-active .nav-cta{color:#07110e}body.profile-active .hud-nav nav a{color:#5d7169}body.profile-active .hud-nav nav a:after{background:#08795a}body.profile-active .hud-nav .brand b,body.profile-active .nav-cta span{color:#08795a;background:#08795a}
body.profile-active .rail a.active{color:#08795a;text-shadow:none}body.profile-active .rail__label,body.profile-active .rail a{color:#667970}body.profile-active .rail__track{background:rgba(8,92,66,.2)}body.profile-active .rail__track i{background:#08795a;box-shadow:0 0 8px rgba(8,121,90,.35)}body.profile-active .corner-data{color:#6c7d76}

.contact .chapter__sticky{background:radial-gradient(circle at 72% 42%,rgba(22,112,82,.12),transparent 34%),linear-gradient(135deg,#010302,#020706 58%,#010302);color:#eefbf6;isolation:isolate}

/* Project dossiers inherit the active product rather than the site palette. */
.project-modal{--green:rgb(var(--project-popup-accent-rgb,98,245,183));--line:rgba(var(--project-popup-accent-rgb,98,245,183),.25);--white:#eefbf6}
.project-modal .project-modal__shell{border-color:rgba(var(--project-popup-accent-rgb),.42);background:radial-gradient(circle at 18% 45%,rgba(var(--project-popup-accent-rgb),.13),transparent 42%),rgb(var(--project-popup-bg-rgb));box-shadow:0 38px 120px rgba(0,0,0,.68),0 0 70px rgba(var(--project-popup-accent-rgb),.12)}
.project-modal .project-modal__shell:before{background:linear-gradient(rgba(var(--project-popup-accent-rgb),.055) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--project-popup-accent-rgb),.055) 1px,transparent 1px);background-size:44px 44px}
.project-modal .project-modal__shell:after{background:linear-gradient(90deg,transparent,rgb(var(--project-popup-accent-rgb)),transparent);box-shadow:0 0 16px rgba(var(--project-popup-accent-rgb),.5)}
.project-modal .project-modal__header,.project-modal .project-modal__footer{color:rgba(220,238,232,.62)}
.project-modal .project-modal__content>p:not(.eyebrow){color:rgba(220,238,232,.7)}
.project-modal .project-modal__meta>span,.project-modal .project-modal__destinations>span,.project-modal .project-modal__destinations>p{color:rgba(220,238,232,.5)}
.project-modal .project-modal__meta li{border-color:var(--line);color:rgba(232,246,241,.72)}
.project-modal--light{--white:#07110e}.project-modal--light .project-modal__shell{color:#07110e;box-shadow:0 38px 120px rgba(0,0,0,.3),0 0 70px rgba(var(--project-popup-accent-rgb),.1)}
.project-modal--light .project-modal__header,.project-modal--light .project-modal__footer,.project-modal--light .project-modal__close{color:rgba(7,17,14,.65)}
.project-modal--light .project-modal__content>p:not(.eyebrow){color:rgba(7,17,14,.68)}
.project-modal--light .project-modal__meta>span,.project-modal--light .project-modal__destinations>span,.project-modal--light .project-modal__destinations>p{color:rgba(7,17,14,.52)}
.project-modal--light .project-modal__meta li{color:rgba(7,17,14,.72)}
.project-modal--light .project-destination:not(.project-destination--live){color:#07110e;background:rgba(var(--project-popup-accent-rgb),.08)}
.project-modal:not(.project-modal--light) .project-modal__visual.has-mockup figcaption{color:rgba(232,246,241,.68)}.project-modal--light .project-modal__visual.has-mockup figcaption{color:rgba(7,17,14,.68)}
@media(max-width:820px){.project-modal .project-modal__header{background:rgba(var(--project-popup-bg-rgb),.96)}}
@media(max-width:760px){body.projects-active .hud-nav nav,body.profile-active .hud-nav nav{background:rgba(248,250,248,.97);border-color:rgba(8,92,66,.2)}body.projects-active .menu-toggle span,body.profile-active .menu-toggle span{background:#07110e}}
:root{--project-background-r:225;--project-background-g:250;--project-background-b:239;--project-accent-r:0;--project-accent-g:143;--project-accent-b:101;--project-text-r:7;--project-text-g:17;--project-text-b:14;--project-muted-r:76;--project-muted-g:101;--project-muted-b:92;--project-panel-r:255;--project-panel-g:255;--project-panel-b:255}
.projects .chapter__sticky{background:rgb(var(--project-background-r),var(--project-background-g),var(--project-background-b));color:rgb(var(--project-text-r),var(--project-text-g),var(--project-text-b))}
.projects .chapter__sticky:before{background:radial-gradient(circle at 74% 38%,rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.16),transparent 34%),linear-gradient(rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.07) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.07) 1px,transparent 1px);background-size:auto,54px 54px,54px 54px}
.projects .eyebrow,.projects .project-card__number,.projects .project-card__body>p:first-child,.projects .project-index span:first-child{color:rgb(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b))}
.projects .chapter-heading h2{color:rgb(var(--project-text-r),var(--project-text-g),var(--project-text-b))}.projects .chapter-heading h2 em{color:transparent;-webkit-text-stroke-color:rgba(var(--project-text-r),var(--project-text-g),var(--project-text-b),.38)}
.projects .project-index,.projects .project-status{color:rgb(var(--project-muted-r),var(--project-muted-g),var(--project-muted-b))}.projects .project-index i{background:rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.32)}
.projects .project-card{border-color:rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.34);background:rgba(var(--project-panel-r),var(--project-panel-g),var(--project-panel-b),.94);color:rgb(var(--project-text-r),var(--project-text-g),var(--project-text-b));box-shadow:0 28px 80px rgba(0,0,0,.2)}
.projects .project-card__visual{border-color:rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.3);background:radial-gradient(circle at 50% 50%,rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.2),transparent 50%),linear-gradient(135deg,rgba(var(--project-panel-r),var(--project-panel-g),var(--project-panel-b),.96),rgba(var(--project-background-r),var(--project-background-g),var(--project-background-b),.98))}
.projects .project-card__visual:before,.projects .project-card__visual:after{border-color:rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.38)}.projects .project-card__visual i{background:linear-gradient(transparent,rgb(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b)),transparent)}
.projects .project-card__body>p:nth-of-type(2){color:rgb(var(--project-muted-r),var(--project-muted-g),var(--project-muted-b))}.projects .project-card li{border-color:rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.32);color:rgb(var(--project-muted-r),var(--project-muted-g),var(--project-muted-b));background:rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.08)}
.projects .project-card__open,.projects .project-status .text-link{border-color:rgb(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b));color:rgb(var(--project-text-r),var(--project-text-g),var(--project-text-b))}.projects .project-card__open span,.projects .project-status .text-link span{color:rgb(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b))}
body.projects-active .hud-nav.scrolled{background:rgba(var(--project-panel-r),var(--project-panel-g),var(--project-panel-b),.88);border-color:rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.28);box-shadow:0 12px 40px rgba(0,0,0,.1)}
body.projects-active .hud-nav .brand span,body.projects-active .hud-nav nav a.active,body.projects-active .nav-cta{color:rgb(var(--project-text-r),var(--project-text-g),var(--project-text-b))}body.projects-active .hud-nav nav a{color:rgb(var(--project-muted-r),var(--project-muted-g),var(--project-muted-b))}body.projects-active .hud-nav nav a:after{background:rgb(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b))}body.projects-active .hud-nav .brand b,body.projects-active .nav-cta span{color:rgb(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b));background:rgb(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b))}
body.projects-active .rail a.active{color:rgb(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b));text-shadow:0 0 9px rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.45)}body.projects-active .rail__label,body.projects-active .rail a,body.projects-active .corner-data{color:rgb(var(--project-muted-r),var(--project-muted-g),var(--project-muted-b))}body.projects-active .rail__track{background:rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.28)}body.projects-active .rail__track i{background:rgb(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b));box-shadow:0 0 8px rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.5)}
@media(max-width:760px){body.projects-active .menu-toggle span{background:rgb(var(--project-text-r),var(--project-text-g),var(--project-text-b))}}
.project-modal:not([open]){display:none!important}

/* Cinematic closing scene — the lime frame deliberately belongs to the footer only. */
.contact{
  --footer-lime:#caff18;
  --footer-accent:var(--footer-lime);
  height:112vh;
  min-height:760px;
  background:var(--footer-lime);
}
.contact .chapter__sticky.contact__layout{
  display:block;
  position:sticky;
  padding:clamp(.55rem,1vw,1rem) clamp(.55rem,1vw,1rem) 2.4rem;
  background:var(--footer-lime);
  color:#f4f7ef;
  overflow:hidden;
  isolation:isolate;
}
.contact-cinematic{
  --footer-top-growth:34px;
  --footer-parallax-x:0px;
  --footer-parallax-y:0px;
  --footer-copy-x:0px;
  --footer-copy-y:0px;
  position:relative;
  transform:translateY(calc(22px - var(--footer-top-growth)));
  width:100%;
  height:calc(100% + var(--footer-top-growth));
  min-height:650px;
  overflow:hidden;
  border-radius:clamp(28px,2.5vw,48px);
  background:radial-gradient(circle at 50% 40%,rgba(202,255,24,.07),transparent 30%),#1d2419;
  box-shadow:inset 0 0 0 1px rgba(202,255,24,.08);
  isolation:isolate;
  z-index:1;
}
.contact-cinematic:before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 25% 75%,rgba(0,0,0,.18)),linear-gradient(180deg,rgba(0,0,0,.12),transparent 45%);
}
.contact-contours{position:absolute;inset:-7%;width:114%;height:114%;z-index:-1;opacity:.72;pointer-events:none}
.contact-contours path{fill:none;stroke:rgba(202,255,24,.11);stroke-width:1;vector-effect:non-scaling-stroke}
.contact-cinematic__brand{position:absolute;top:7%;left:2.7rem;z-index:8;color:#f6f8f2;font:800 clamp(1.3rem,2vw,2rem) var(--sans);letter-spacing:-.08em}
.contact-cinematic__brand span{color:var(--footer-accent)}
.contact-cinematic__status{position:absolute;top:7.3%;right:2.7rem;z-index:8;display:flex;align-items:center;gap:.7rem;color:rgba(244,247,239,.72);font:500 .57rem var(--mono);letter-spacing:.16em}
.contact-cinematic__status i{width:7px;height:7px;border-radius:50%;background:var(--footer-accent);box-shadow:0 0 16px var(--footer-accent);animation:footer-status 2.5s ease-in-out infinite}
@keyframes footer-status{50%{opacity:.48;box-shadow:0 0 5px var(--footer-accent)}}
.contact-cinematic__headline{position:absolute;top:8%;left:50%;z-index:5;width:min(940px,72vw);text-align:center;transform:translateX(-50%)}
.contact-cinematic__headline>p{margin:0 0 .7rem;color:var(--footer-accent);font:600 .57rem var(--mono);letter-spacing:.22em;text-align:left}
.contact-cinematic__headline h2{position:relative;margin:0;line-height:.78;text-transform:uppercase;transform:translate3d(var(--footer-copy-x),var(--footer-copy-y),0);transition:transform .12s linear}
.contact-cinematic__headline h2 span,.contact-cinematic__headline h2 em{display:block;font-style:normal}
.contact-cinematic__headline h2 span{color:#f6f7f2;font:800 clamp(3.8rem,7.2vw,8.3rem)/.82 var(--sans);letter-spacing:-.075em}
.contact-cinematic__headline h2 em{color:#aecb25;font:500 clamp(3.6rem,7vw,8rem)/.8 Georgia,"Times New Roman",serif;letter-spacing:-.065em}
.contact-cinematic__signature{position:absolute;top:-.45em;left:51%;z-index:2;color:var(--footer-accent);font-size:clamp(2.8rem,5.3vw,6rem);width:1.2em;aspect-ratio:79/71;transform:translateX(-50%) rotate(-8deg);pointer-events:none}
.contact-cinematic__signature svg{display:block;width:100%;height:100%;overflow:visible}
.signature-stroke{stroke-dasharray:1;stroke-dashoffset:1;visibility:hidden}
.signature-ready .signature-fallback{display:none}
@media(prefers-reduced-motion:reduce){.contact-cinematic__signature .signature-fallback{display:block}}
.contact-cinematic__pages,.contact-cinematic__socials{position:absolute;top:46%;z-index:7;display:flex;flex-direction:column;align-items:flex-start}
.contact-cinematic__pages{left:clamp(2rem,10vw,11rem)}
.contact-cinematic__socials{right:clamp(2rem,10vw,11rem)}
.contact-cinematic__pages small,.contact-cinematic__socials small{margin-bottom:.55rem;color:var(--footer-accent);font:600 .52rem var(--mono);letter-spacing:.12em}
.contact-cinematic__pages a,.contact-cinematic__socials a{color:#f4f6ef;font:750 clamp(1rem,1.55vw,1.55rem)/1.22 var(--sans);letter-spacing:-.03em;text-transform:uppercase;transition:color .2s,transform .2s}
.contact-cinematic__pages a:hover,.contact-cinematic__socials a:hover{color:var(--footer-accent)}
.footer-roll-word{display:inline-block;white-space:nowrap}.footer-roll-mask{position:relative;display:inline-block;overflow:hidden;vertical-align:top}.footer-roll-char{display:inline-block;will-change:transform}.footer-roll-char--clone{position:absolute!important;inset:0 auto auto 0;pointer-events:none}
.contact-tech-marquee{position:absolute;left:0;right:0;bottom:15%;z-index:2;display:flex;align-items:center;height:clamp(3.2rem,4vw,4.2rem);overflow:visible;pointer-events:none;white-space:nowrap}
.contact-tech-marquee__track{display:flex;align-items:center;width:max-content;height:100%;will-change:transform;animation:footer-tech-marquee 28s linear infinite}
.contact-tech-marquee__set{display:flex;align-items:center;gap:clamp(3.6rem,6.5vw,8rem);padding-right:clamp(3.6rem,6.5vw,8rem)}
.contact-tech-brand{display:grid;place-items:center;width:clamp(3.8rem,5vw,5.5rem);height:clamp(1.25rem,1.7vw,1.7rem);flex:0 0 auto;opacity:.92}
.contact-tech-brand img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;filter:brightness(0) saturate(100%) invert(91%) sepia(93%) saturate(1641%) hue-rotate(28deg) brightness(105%) contrast(105%)}
.contact-tech-brand--symbol{width:clamp(1.5rem,2vw,2.05rem)}
.contact-tech-brand--flutter,.contact-tech-brand--javascript{width:clamp(2.7rem,3.45vw,3.7rem);height:clamp(1.55rem,2.05vw,2.05rem)}
.contact-tech-brand--flutter,.contact-tech-brand--javascript img{transform:translateY(20px)}
.contact-tech-brand--javascript img{filter:none}
@keyframes footer-tech-marquee{to{transform:translateX(-50%)}}
.contact-cinematic__portrait{position:absolute;left:50%;bottom:-9%;z-index:3;width:min(64vw,1120px);margin:0;pointer-events:none;transform:translateX(-50%)}
.contact-cinematic__portrait:after{content:"";position:absolute;left:16%;right:16%;bottom:1%;height:12%;background:rgba(0,0,0,.55);filter:blur(28px);z-index:-1}
.contact-cinematic__portrait img{display:block;width:100%;height:auto;transform:translate3d(var(--footer-parallax-x),var(--footer-parallax-y),0) scale(1.015);transform-origin:50% 80%;transition:transform .12s linear;filter:drop-shadow(0 -12px 34px rgba(4,14,10,.28))}
.contact-cinematic__cta{position:absolute;left:50%;bottom:2rem;z-index:9;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;width:228px;min-width:228px;min-height:54px;padding:0 17px 0 18px;border:1px solid var(--footer-lime);border-radius:9px;background:var(--footer-lime);color:#12180e;box-shadow:0 12px 40px rgba(0,0,0,.22);transform:translateX(-50%);transition:background .2s,transform .2s,box-shadow .2s}
.contact-cinematic__cta span{font:800 .84rem var(--sans);line-height:1;letter-spacing:-.025em}
.contact-cinematic__cta b{flex:0 0 auto;font:700 1rem var(--sans);line-height:1}
.contact-cinematic__cta:hover{background:#e8ff8e;box-shadow:0 18px 50px rgba(0,0,0,.3);transform:translateX(-50%) translateY(-3px)}
.contact-brief{position:absolute;right:2rem;bottom:1.60rem;z-index:14;width:min(380px,calc(100% - 4rem));font-family:var(--mono)}
.contact-brief summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:max-content;max-width:100%;margin-left:auto;padding:.72rem .9rem;border:1px solid rgba(202,255,24,.36);border-radius:7px;background:rgba(15,20,13,.76);color:var(--footer-accent);font-size:.52rem;letter-spacing:.13em;cursor:pointer;list-style:none;backdrop-filter:blur(12px)}
.contact-brief summary::-webkit-details-marker{display:none}.contact-brief[open] summary span{transform:rotate(45deg)}
.contact-brief summary span{font-size:.9rem;transition:transform .2s}
.contact-brief .contact-form{position:absolute!important;right:0!important;bottom:calc(100% + .7rem)!important;display:grid!important;grid-template-columns:1fr!important;width:min(380px,calc(100vw - 3rem))!important;margin:0!important;padding:1rem!important;border:1px solid rgba(202,255,24,.32)!important;border-radius:10px;background:rgba(10,15,9,.96)!important;box-shadow:0 24px 70px rgba(0,0,0,.45);backdrop-filter:blur(18px)}
.contact-brief:not([open]) .contact-form{display:none!important}
.contact-brief .contact-form h3{color:#f3f6ef}.contact-brief .contact-form label{color:rgba(244,247,239,.58)}
.contact-brief .contact-form input,.contact-brief .contact-form textarea{border-color:rgba(202,255,24,.2);background:rgba(255,255,255,.035);color:#f5f7f1}
.contact-brief .contact-form button{border-color:var(--footer-accent);color:var(--footer-accent)}
.contact-cinematic__discipline{position:absolute;left:2rem;right:2rem;bottom:1.85rem;z-index:6;display:flex;gap:clamp(1rem,2.4vw,2.6rem);width:max-content;color:rgba(202,255,24,.62);font:600 .55rem var(--mono);letter-spacing:.12em}
.contact .footer{--footer-legal-size:clamp(.48rem,.6vw,.62rem);position:absolute;left:1.5rem;right:1.45rem;bottom:1.25rem;z-index:20;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:0;border:0;color:#11170d;font-family:var(--mono);font-size:var(--footer-legal-size);font-weight:650;line-height:1;letter-spacing:.06em}
.contact .footer p,.contact .footer p span{font:inherit;color:inherit;letter-spacing:inherit}
.contact .footer a{justify-self:end;color:#11170d;font-weight:800}
body.contact-active .hud-nav{opacity:0;transform:translateY(calc(-100% - 2.5rem));pointer-events:none}

@media (min-width:761px) and (max-width:1500px),
(min-width:761px) and (max-height:850px) {

.contact .footer {
  --footer-legal-size: clamp(.51rem, .98vw, .51rem);
}

.contact .footer a {
font-size: clamp(.65rem, .75vw, .75rem);
font-weight: 800;
letter-spacing: .04em;
}

.contact-cinematic__headline {
width: min(820px, 68vw);
}

.contact-cinematic__headline h2 span {
font-size: clamp(3.35rem, 6.15vw, 6.8rem);
}

.contact-cinematic__headline h2 em{font-size:clamp(3.2rem,5.95vw,6.55rem)}

.contact-cinematic__signature {
font-size: clamp(2.7rem, 4.65vw, 5rem);
}
}
@media(max-width:1050px){
  .contact-cinematic__headline{top:10%;width:78vw}.contact-cinematic__pages{left:3rem}.contact-cinematic__socials{right:3rem}
  .contact-cinematic__portrait{width:min(76vw,900px);bottom:-5%}.contact-cinematic__discipline{display:none}
}
/* Mobile closing card: links first, followed by the headline and portrait. */
@media(max-width:760px){
  .contact{height:auto;min-height:0;padding:0;background:var(--footer-lime)}
  .contact .chapter__sticky.contact__layout{
    position:relative;height:auto;min-height:0;padding:18px 14px 0;
  }
  .contact-cinematic{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:64px auto auto minmax(220px,1fr) 44px;
    height:auto;min-height:calc(100svh - 60px);padding-top:22px;
    transform:none;border-radius:18px;
  }
  .contact-cinematic__brand,.contact-cinematic__status,.contact-cinematic__headline>p{display:none}
  .contact-tech-marquee{position:relative;grid-column:1/-1;grid-row:1;inset:auto;align-self:center;height:40px;min-width:0}
  .contact-tech-marquee__track{animation-duration:22s}
  .contact-tech-marquee__set{gap:2.6rem;padding-right:2.6rem}
  .contact-tech-brand{display:flex;align-items:center;justify-content:center;width:4rem;height:2.5rem}
  .contact-tech-brand img{width:100%;height:100%;min-height:0;object-fit:contain}
  .contact-tech-brand--symbol{width:2rem}
  .contact-tech-brand--flutter,.contact-tech-brand--javascript{width:2.6rem;height:2rem}
  .contact-tech-brand--flutter,.contact-tech-brand--javascript img{transform:none}
  .contact-cinematic__pages,.contact-cinematic__socials{
    position:relative;grid-row:2;inset:auto;align-items:center;
    padding:12px 0 0;min-width:0;
  }
  .contact-cinematic__pages{grid-column:1;padding-left:22px}
  .contact-cinematic__socials{grid-column:2;padding-right:22px}
  .contact-cinematic__pages small,.contact-cinematic__socials small{margin-bottom:8px;font-size:.6rem;color:#abb29e}
  .contact-cinematic__pages a,.contact-cinematic__socials a{
    display:flex;align-items:center;justify-content:center;min-height:28px;
    font-size:clamp(1rem,4.6vw,1.4rem);line-height:1.15;
  }
  .contact-cinematic__headline{
    position:relative;grid-column:1/-1;grid-row:3;inset:auto;
    width:auto;min-width:0;margin:48px 10px 10px;transform:none;
  }
  .contact-cinematic__headline h2 span{font-size:clamp(2.3rem,11.2vw,5rem);line-height:.9}
  .contact-cinematic__headline h2 em{font-size:clamp(2.5rem,12vw,5.4rem);line-height:.95}
  .contact-cinematic__signature{top:-32px;width:1.8em;font-size:clamp(2.1rem,9.5vw,3.8rem)}
  .contact-cinematic__portrait{
    position:relative;grid-column:1/-1;grid-row:4;inset:auto;
    width:100%;height:100%;min-height:220px;transform:none;
  }
  .contact-cinematic__portrait img{
    position:absolute;left:50%;bottom:-12px;width:auto;height:calc(100% + 40px);max-width:none;
    translate:-50% 0;transform:none!important;
  }
  .contact-cinematic__cta{bottom:51px;width:210px;min-width:0;min-height:46px;padding:0 15px}
  .contact-cinematic__cta span{font-size:.78rem}
  .contact-brief{right:50%;bottom:8px;width:calc(100% - 32px);transform:translateX(50%)}
  .contact-brief summary{margin:0 auto;min-height:32px;padding:5px 10px;font-size:.55rem}
  .contact-brief .contact-form{width:100%!important;max-height:calc(100svh - 100px);overflow-y:auto}
  .contact .footer{
    --footer-legal-size:.55rem;position:relative;inset:auto;
    grid-template-columns:1fr auto;gap:8px;min-height:42px;margin:0;
    line-height:1.5;letter-spacing:0;
  }
}
@media(prefers-reduced-motion:reduce){
  .contact-cinematic__status i{animation:none}.contact-tech-marquee__track{animation:none;transform:translateX(-12%)}.contact-cinematic__portrait img,.contact-cinematic__headline h2{transform:none!important;transition:none!important}
}


/* Reference-led profile composition: one biography card and a 2x2 metric grid. */
.about .chapter__sticky{
  background:#f4f4f3;
}
.about .chapter__sticky:before{
  background:none;
}
.about .chapter__layout{
  display:grid;
  grid-template-columns:minmax(330px,.82fr) minmax(560px,1.55fr);
  grid-template-rows:1fr;
  align-items:center;
  gap:clamp(.7rem,.85vw,.95rem);
  padding:clamp(7.2rem,12vh,9rem) max(var(--pad),20vw) 4rem;
}
.about .chapter-heading{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.about .profile-terminal{
  grid-column:1;
  grid-row:1;
  align-self:center;
  display:flex;
  flex-direction:column;
  width:100%;
  max-width:none;
  height:min(54vh,560px);
  min-height:440px;
  padding:clamp(1.35rem,1.5vw,1.65rem);
  border:0;
  border-radius:22px;
  background:#0b3f34;
  box-shadow:20px 12px 46px rgba(11, 11, 11, 0.15);
  backdrop-filter:none;
}
.about .terminal-head{
  display:block;
  padding:0;
  border:0;
}
.about .terminal-head h3{
  margin:0;
  color:#f5f8f6;
  font-size:clamp(1.1rem,1.3vw,1.5rem);
  font-weight:500;
  letter-spacing:-.035em;
}
.about .terminal-body{
  padding:clamp(1.15rem,2vh,1.6rem) 0 1rem;
}
.about .terminal-body p{
  margin:0 0 .9rem;
  color:#c2cec9;
  font-size:clamp(.76rem,.84vw,.92rem);
  line-height:1.55;
}
.about .terminal-body strong{color:#f7faf8;font-weight:500}
.about .specializations{display:none}
.about .profile-terminal>.text-link{
  position:relative;
  display:flex;
  width:100%;
  min-height:54px;
  margin-top:auto;
  padding:0 1.25rem;
  justify-content:center;
  border:0;
  border-radius:14px;
  background:#fafbfa;
  color:#0b3f34;
  font-family:var(--sans);
  font-size:clamp(.8rem,1vw,1rem);
  font-weight:500;
  letter-spacing:-.01em;
  text-transform:none;
}
.about .profile-terminal>.text-link span{
  position:absolute;
  right:1.25rem;
  color:#0b3f34;
}
.about .telemetry{
  grid-column:2;
  grid-row:1;
  align-self:center;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:clamp(.7rem,.85vw,.95rem);
  width:100%;
  height:min(54vh,560px);
  border:0;
  background:transparent;
}
.about .telemetry div{
  display:grid;
  grid-template-columns:auto auto 1fr;
  grid-template-rows:auto 1px 1fr;
  align-items:start;
  gap:clamp(.8rem,1.4vh,1.15rem) .18rem;
  min-width:0;
  padding:clamp(1.2rem,1.4vw,1.55rem);
  border:0;
  border-radius:20px;
  background:#fafbfa;
  box-shadow:none;
}
.about .telemetry small{
  grid-column:3;
  grid-row:1;
  align-self:end;
  color:#747b78;
  font-family:var(--sans);
  font-size:clamp(.68rem,.75vw,.84rem);
  font-weight:400;
  letter-spacing:-.02em;
  justify-self:end;
  text-align:right;
}
.about .telemetry strong{
  grid-column:1;
  grid-row:1;
  display:inline-block;
  align-self:start;
  margin:0;
  color:#07110e;
  font-size:clamp(2.8rem,3.5vw,4.4rem);
  font-weight:400;
  line-height:.78;
  letter-spacing:-.075em;
}
.about .telemetry b{
  grid-column:2;
  grid-row:1;
  align-self:end;
  justify-self:start;
  margin:0 0 .04em 0;
  color:#07110e;
  font-family:var(--sans);
  font-size:clamp(1.25rem,1.8vw,2.15rem);
  font-weight:400;
  line-height:1;
}
.about .telemetry div:nth-child(n+2) b{margin-left:0}
.about .telemetry div:after{
  content:"";
  grid-column:1/-1;
  grid-row:2;
  display:block;
  width:100%;
  height:1px;
  background:#dfe2e0;
}
.about .telemetry span{
  grid-column:1/-1;
  grid-row:3;
  margin:0;
  color:#747b78;
  font-family:var(--sans);
  font-size:clamp(.68rem,.74vw,.82rem);
  font-weight:400;
  line-height:1.42;
  letter-spacing:-.018em;
}
@media(max-width:1500px) and (min-width:1101px){
  .about .chapter__layout{
    grid-template-columns:minmax(300px,.82fr) minmax(500px,1.55fr);
    padding-left:max(var(--pad),15vw);
    padding-right:max(var(--pad),15vw);
  }
}
@media(max-width:1100px){
  .about .chapter__layout{grid-template-columns:minmax(285px,.82fr) minmax(460px,1.45fr);gap:.75rem;padding-left:max(var(--pad),7vw);padding-right:max(var(--pad),7vw)}
  .about .profile-terminal,.about .telemetry{height:min(66vh,590px);min-height:450px}
  .about .profile-terminal{padding:1.45rem}
  .about .terminal-body p{font-size:.78rem}
  .about .telemetry{gap:.75rem}
  .about .telemetry div{padding:1.35rem}
  .about .telemetry small,.about .telemetry span{font-size:.68rem}
}
@media(max-width:760px){
  .about .chapter__sticky{padding-top:5.5rem;overflow:visible}
  .about .chapter__layout{display:block;padding:0 var(--pad) 3rem}
  .about .profile-terminal{height:auto;min-height:510px;margin:0;border-radius:24px}
  .about .terminal-body p{font-size:.86rem}
  .about .telemetry{height:auto;margin-top:.75rem;grid-template-columns:1fr;grid-template-rows:none;gap:.75rem}
  .about .telemetry div{min-height:230px;padding:1.5rem;border-radius:24px}
  .about .telemetry strong{font-size:4.3rem}
  .about .telemetry b{margin-left:0;font-size:2.25rem}
  .about .telemetry div:nth-child(n+2) b{margin-left:0}
  .about .telemetry small,.about .telemetry span{font-size:.8rem}
}

/* Interactive depth for the Profile card system. */
.about .profile-terminal-shell{
  grid-column:1;
  grid-row:1;
  align-self:center;
  width:100%;
  height:min(54vh,560px);
  perspective:1100px;
}
.about .profile-terminal-shell .profile-terminal{
  grid-column:auto;
  grid-row:auto;
  height:100%;
  min-height:0;
}
.about .profile-terminal,
.about .telemetry>div{
  --card-tilt-x:0deg;
  --card-tilt-y:0deg;
  --card-lift:0px;
  --card-scale:1;
  --card-light-x:50%;
  --card-light-y:50%;
  --card-light-opacity:0;
  position:relative;
  overflow:hidden;
  transform:perspective(900px) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y)) translate3d(0,var(--card-lift),12px) scale(var(--card-scale));
  transform-style:preserve-3d;
  transform-origin:center;
  will-change:transform;
  transition:box-shadow .3s ease,border-color .3s ease;
}
.about .profile-terminal:before,
.about .telemetry>div:before{
  content:"";
  position:absolute;
  inset:-1px;
  z-index:0;
  pointer-events:none;
  border-radius:inherit;
  opacity:var(--card-light-opacity);
  background:radial-gradient(circle at var(--card-light-x) var(--card-light-y),rgba(255,255,255,.22),transparent 42%);
  transition:opacity .25s ease;
}
.about .profile-terminal>* ,
.about .telemetry>div>*{
  position:relative;
  z-index:1;
}
.about .profile-terminal.is-tilting{
  box-shadow:14px 18px 34px rgba(7,24,19,.2);
}
.about .telemetry>div.is-tilting{
  box-shadow:10px 15px 28px rgba(7,17,14,.11);
}
@media(max-width:1500px) and (min-width:1101px){
  .about .profile-terminal-shell{height:min(54vh,560px)}
}
@media(max-width:1100px){
  .about .profile-terminal-shell{height:min(66vh,590px);min-height:450px}
  .about .profile-terminal-shell .profile-terminal{height:100%;min-height:0}
}
@media(max-width:760px){
  .about .profile-terminal-shell{height:auto;min-height:510px;margin:0;perspective:none}
  .about .profile-terminal-shell .profile-terminal{height:100%;min-height:510px}
  .about .profile-terminal,.about .telemetry>div{transform:none!important}
}
@media(prefers-reduced-motion:reduce){
  .about .profile-terminal,.about .telemetry>div{transform:none!important}
}

.career-node h4 a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:transparent;transition:text-decoration-color .22s ease,color .22s ease}
.career-node h4 a:hover,.career-node h4 a:focus-visible{color:var(--white);text-decoration-line:underline;text-decoration-color:var(--green);outline:none}

/* Depth portrait / liquid reveal. The image itself is a displaced WebGL mesh. */
.hero-portrait--reveal .hero-reveal-controls{display:flex!important;top:auto!important;bottom:2.5rem;left:50%!important;right:auto!important;transform:translateX(-50%)!important;align-items:center;gap:1rem;white-space:nowrap;pointer-events:auto;opacity:1;font-size:.48rem}
.hero-reveal-status{color:rgba(200,225,215,.56);font:400 .47rem var(--mono);letter-spacing:.1em}
.hero-reveal-toggle{border:1px solid rgba(98,245,183,.3);background:rgba(2,13,10,.74);color:#c2f9e1;border-radius:30px;padding:.7rem 1rem;font:400 .52rem var(--mono);letter-spacing:.06em;backdrop-filter:blur(10px);cursor:pointer;transition:background .2s,border-color .2s}
.hero-reveal-toggle:hover,.hero-reveal-toggle:focus-visible{background:#0a2c20;border-color:#62f5b7;outline:1px solid #62f5b7;outline-offset:4px}
.hero-reveal-locked .hero-reveal-toggle{background:#62f5b7;color:#03130d}
.hero-reveal-failed .hero-reveal-controls{display:none!important}
@media(max-width:760px){.hero-portrait--reveal .hero-reveal-controls{bottom:1.2rem;gap:.5rem}.hero-reveal-status{display:none}.hero-reveal-toggle{font-size:.49rem;padding:.65rem .9rem}}
@media(max-width:760px){
  .hero-portrait--reveal .hero-reveal__fallback{transform:translateY(9.5%) scale(1.7)}
  .hero-skill-layer{display:none}
}

/* Scroll assembly uses individual transforms so pointer tilt stays independent. */
.about.profile-assembly-desktop{height:180vh}
.about.profile-assembly .scene-copy{opacity:1;transform:none}
.about .profile-assembly-card{
  translate:var(--assembly-x,0px) var(--assembly-y,0px);
  rotate:var(--assembly-turn,0deg);
  will-change:translate,rotate,transform;
}
@media(max-width:760px){.about.profile-assembly{overflow:clip}}
@media(prefers-reduced-motion:reduce){
  .about .profile-assembly-card{translate:none;rotate:none;will-change:auto}
}

/* Let’s Ryde: show the product first, then make the engineering work inspectable. */
.project-card--case-study .project-card__visual--screens{padding:1rem;background:radial-gradient(ellipse at 50% 55%,rgba(var(--project-accent-r),var(--project-accent-g),var(--project-accent-b),.16),transparent 70%),rgb(var(--project-background-r),var(--project-background-g),var(--project-background-b))}
.project-card--case-study .project-card__visual:before,.project-card--case-study .project-card__visual:after{display:none}
.project-card__screens{display:block;width:100%;height:100%;max-height:calc(100% - 2rem);object-fit:contain;filter:drop-shadow(0 20px 18px rgba(7,55,39,.17))}
.project-card--case-study .project-card__visual .project-card__screen-label{position:absolute;bottom:1.4rem;left:0;right:0;text-align:center;font:400 .48rem var(--mono);letter-spacing:.1em;color:rgba(var(--project-text-r),var(--project-text-g),var(--project-text-b),.7)}
.project-card--case-study .project-card__body{min-width:0;padding:clamp(1.25rem,3vw,3.5rem)}
.project-card--case-study h3{font-size:clamp(2.1rem,3.8vw,4.6rem);overflow-wrap:anywhere}
.project-modal--case-study[open]{display:block;overscroll-behavior:contain;padding-block:0}
.project-modal--case-study .project-modal__shell{margin:clamp(.75rem,2.5vw,2.5rem) auto;display:block;overflow:visible;background:#f6faf7}
.project-modal--case-study .project-modal__shell:before,.project-modal--case-study .project-modal__shell:after{display:none}
.project-modal--case-study .project-modal__header{position:sticky;top:0;z-index:10;background:rgba(246,250,247,.97);backdrop-filter:blur(12px)}
.project-modal--case-study .project-modal__status{display:none}
.project-modal--case-study .project-modal__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.project-modal--case-study .project-modal__visual.has-mockup{min-height:0;height:540px;background:radial-gradient(ellipse at 50% 55%,rgba(255,255,255,.45),transparent 70%),var(--case-tint,#e3f5eb)}
.project-modal--case-study .project-modal__visual:before{display:none}
.project-modal--case-study .project-modal__mockup{width:90%;height:90%;max-height:480px;object-fit:contain;filter:drop-shadow(0 18px 20px rgba(7,55,39,.17))!important}
.project-modal--case-study .project-modal__content{padding:clamp(1.5rem,3.5vw,3rem)}
.project-modal--case-study .project-modal__content h2{font-size:clamp(3.5rem,6vw,5.5rem);line-height:.96}
.project-modal--case-study .project-modal__content>p:not(.eyebrow){color:#455d51;font-size:1rem;line-height:1.7}
.project-modal--case-study .project-modal__meta{margin-top:1.6rem}
.project-modal--case-study .project-modal__destinations{margin-top:1.2rem}
.project-case-study{color:#122c20}
.project-case-study[hidden]{display:none}
.case-label{display:block;color:#537360;font:500 .58rem/1.6 var(--mono);letter-spacing:.12em}
.case-overview{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:2rem;padding:2rem 3rem;border-block:1px solid #d8e5dc}
.case-overview p{margin:.6rem 0 0;font-size:.87rem;line-height:1.65}
.case-status i{display:inline-block;width:7px;height:7px;margin-right:.3rem;border-radius:50%;background:#b57d27}
.case-challenge{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;padding:3.5rem 3rem;background:var(--case-deep,#0b3f31);color:#eff9f2}
.case-challenge .case-label{color:#9ac5ad}
.case-challenge h3,.case-section h3,.case-production-note h3{margin:1rem 0;font-size:clamp(1.8rem,3.2vw,2.65rem);line-height:1.12;letter-spacing:-.045em;font-weight:500}
.case-challenge-copy{align-self:center}
.case-challenge-copy p{color:#c3d9cc;font-size:1rem;line-height:1.8;margin:0 0 1rem}
.case-decisions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;border-top:1px solid #477363;padding-top:1.6rem}
.case-decisions>div>span{font:400 .64rem var(--mono);color:#85b59c}
.case-decisions h4{font-size:1rem;font-weight:500;margin:.8rem 0}
.case-decisions p{margin:0;color:#bdd3c6;font-size:.85rem;line-height:1.7}
.case-section{padding:3.5rem 3rem;border-bottom:1px solid #d8e5dc}
.case-section-heading>p{max-width:520px;color:#51665a;font-size:.95rem;line-height:1.8}
.case-stack{display:grid;grid-template-columns:1fr 1fr;gap:0 2rem;margin:2rem 0 0}
.case-stack>div{padding:1.4rem 0;border-top:1px solid #cfdfd3}
.case-stack dt{font-size:1.2rem;font-weight:600;letter-spacing:-.025em}
.case-stack dt span{display:block;margin-bottom:.5rem;color:#648170;font:400 .55rem var(--mono);letter-spacing:.1em}
.case-stack dd{margin:.6rem 0 0;color:#51665a;font-size:.9rem;line-height:1.7;max-width:400px}
.case-delivery{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.case-feature-list{list-style:none;padding:0;margin:0}
.case-feature-list li{display:flex;gap:.85rem;padding:.95rem 0;border-bottom:1px solid #d8e5dc;font-size:.93rem}
.case-feature-list li:before{content:'↗';color:#16815b}
.case-production-note{padding:2.5rem 3rem;background:var(--case-tint,#e9f1e9)}
.case-production-note h3{font-size:1.65rem}
.case-production-note p{max-width:720px;color:#51665a;font-size:.9rem;line-height:1.8}
@media(max-width:820px){
  .project-modal--case-study .project-modal__grid{display:block}
  .project-modal--case-study .project-modal__visual.has-mockup{height:390px;min-height:0}
  .project-modal--case-study .project-modal__content{padding:1.8rem 1.4rem}
  .case-overview{grid-template-columns:1fr;gap:1.2rem;padding:1.6rem 1.4rem}
  .case-challenge{grid-template-columns:1fr;gap:1rem;padding:2.5rem 1.4rem}
  .case-decisions{grid-template-columns:1fr;gap:1.5rem}
  .case-section,.case-production-note{padding:2.5rem 1.4rem}
  .case-stack,.case-delivery{grid-template-columns:1fr;gap:1rem}
}
@media(max-width:760px){
  .project-card--case-study .project-card__visual--screens{padding:0 .8rem}
  .project-card--case-study .project-card__screens{height:100%;max-height:100%;width:100%;object-fit:contain}
  .project-card--case-study .project-card__screen-label{display:none}
  .project-card--case-study .project-card__body{padding:1rem 1.1rem}
  .project-card--case-study h3{font-size:2.25rem}
}

/* Editorial case studies use readable ink even when the product theme is dark. */
.project-modal--case-study .project-modal__meta>span,.project-modal--case-study .project-modal__destinations>span{color:#52675b}
.project-modal--case-study .project-modal__content h2{overflow-wrap:anywhere}
.project-modal--case-study .project-modal__visual.has-mockup figcaption{color:#455d51}
.project-modal--case-study .project-destination--live{background:var(--case-deep);color:#fff}
.project-modal--case-study .project-destination--live span{color:#fff}
.project-modal--case-study .project-destination--live:hover{background:#162b21}
.project-modal__destinations[hidden]{display:none}
