:root{--paper:#f1ebda;--paper-dim:#e7dfc8;--paper-soft:#ebe3cf;--ink:#0c0a08;--ink-soft:#1c1812;--ink-mid:#2a251d;--accent:#ff4a1c;--accent-soft:#ff6a44;--accent-deep:#d63411;--muted:#6b6256;--muted-soft:#8a8275;--rule:#0c0a081f;--rule-strong:#0c0a0847;--rule-dark:#f1ebda1f;--rule-dark-strong:#f1ebda47;--font-display:"Fraunces", "Iowan Old Style", "Georgia", serif;--font-sans:"Space Grotesk", "Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;--font-serif:var(--font-display);--font-jp:var(--font-display);--font-pixel:var(--font-mono);--display-hero:clamp(80px, 22vw, 360px);--display-1:clamp(64px, 14vw, 220px);--display-2:clamp(48px, 9vw, 140px);--display-3:clamp(40px, 6vw, 96px);--display-4:clamp(28px, 4vw, 56px);--display-5:clamp(22px, 2.6vw, 36px);--body-lg:clamp(18px, 1.4vw, 22px);--body:16px;--body-sm:14px;--mono-sm:12px;--mono-xs:11px;--mono-2xs:10px;--leading-tight:.85;--leading-snug:1.1;--leading-body:1.55;--leading-loose:1.75;--tracking-mono:.18em;--tracking-loose:.32em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--space-40:160px;--space-48:192px;--container-max:1440px;--container-narrow:1100px;--container-gutter-desktop:clamp(32px, 5vw, 80px);--container-gutter-tablet:24px;--container-gutter-phone:16px;--nav-h:56px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-out-fast:cubic-bezier(.28, 0, .22, 1)}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h);-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font:400 var(--body)/var(--leading-body) var(--font-sans);font-feature-settings:"ss01", "ss02", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{flex-direction:column;width:100%;min-height:100dvh;display:flex}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}::selection{background:var(--accent);color:var(--paper)}@media (pointer:fine){html,html *{cursor:none!important}}.custom-cursor{background:var(--paper);mix-blend-mode:difference;pointer-events:none;z-index:99999;width:28px;height:28px;transition:width .22s var(--ease-out), height .22s var(--ease-out), background .18s ease;will-change:left, top;border-radius:50%;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.custom-cursor--hover{background:var(--accent);width:64px;height:64px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--paper-dim)}::-webkit-scrollbar-thumb{background:var(--ink);border:2px solid var(--paper-dim)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}::-webkit-scrollbar-corner{background:var(--paper-dim)}*{scrollbar-width:thin;scrollbar-color:var(--ink) var(--paper-dim)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%;max-width:var(--container-max);padding-inline:var(--container-gutter-desktop);margin-inline:auto;position:relative}.container--narrow{max-width:var(--container-narrow)}@media (width<=900px){.container{padding-inline:var(--container-gutter-tablet)}}@media (width<=640px){.container{padding-inline:var(--container-gutter-phone)}}.band{isolation:isolate;padding-block:clamp(96px,14vw,200px);position:relative;overflow:hidden}.band--paper{background:var(--paper);color:var(--ink)}.band--paper-dim{background:var(--paper-dim);color:var(--ink)}.band--ink{background:var(--ink);color:var(--paper)}.band--accent{background:var(--accent);color:var(--ink)}.band+.band{border-top:1px solid var(--rule)}.band--ink+.band,.band+.band--ink{border-top:none}@media (width<=768px){.band{padding-block:clamp(72px,16vw,120px)}}.section-label{align-items:center;gap:var(--space-4);font-family:var(--font-mono);font-size:var(--mono-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted);margin-bottom:var(--space-8);font-weight:500;display:flex}.band--ink .section-label{color:#f1ebda8c}.section-label__num{color:var(--accent);font-weight:700}.section-label__rule{background:var(--rule);flex:1;height:1px}.band--ink .section-label__rule{background:var(--rule-dark)}.section-label__meta{color:var(--muted-soft)}.band--ink .section-label__meta{color:#f1ebda66}.section-heading{margin-bottom:clamp(48px,8vw,120px);position:relative}.section-heading__title{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 50;font-size:var(--display-1);font-weight:900;line-height:var(--leading-tight);letter-spacing:-.045em;color:inherit;text-wrap:balance;margin:0;display:block}.section-heading__title em{font-variation-settings:"opsz" 144, "SOFT" 100;color:var(--accent);font-style:italic}.section-heading__lede{margin:var(--space-8) 0 0;max-width:36ch;font-family:var(--font-display);font-style:italic;font-size:var(--body-lg);color:var(--muted);line-height:1.35}.band--ink .section-heading__lede{color:#f1ebdab3}.reveal-text{vertical-align:baseline;display:inline-block;overflow:hidden}.reveal-text__inner{will-change:transform, opacity;display:inline-block}.marquee{isolation:isolate;width:100%;display:flex;position:relative;overflow:hidden}.marquee__track{align-items:center;gap:var(--marquee-gap,var(--space-12));white-space:nowrap;animation:marquee-scroll var(--marquee-duration,40s) linear infinite;animation-direction:var(--marquee-direction,normal);padding-right:var(--marquee-gap,var(--space-12));will-change:transform;flex-shrink:0;display:inline-flex}.marquee:hover .marquee__track{animation-play-state:paused}@keyframes marquee-scroll{0%{transform:translate(0,0)}to{transform:translate(-50%)}}.marquee__item{align-items:center;gap:var(--space-4);display:inline-flex}@media (prefers-reduced-motion:reduce){.marquee__track{animation:none}}.scroll-progress{background:var(--accent);transform-origin:0;z-index:9999;will-change:transform;pointer-events:none;height:2px;transition:opacity .3s;position:fixed;top:0;left:0;right:0}.back-to-top{z-index:9000;background:var(--ink);color:var(--paper);border:1px solid var(--ink);font:500 var(--mono-xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;cursor:pointer;transition:background .2s ease, color .2s ease, transform .2s var(--ease-out);border-radius:999px;align-items:center;gap:10px;padding:12px 18px;display:inline-flex;position:fixed;bottom:24px;right:24px}.back-to-top:hover{background:var(--accent);color:var(--ink);border-color:var(--accent)}.back-to-top svg{flex-shrink:0;width:14px;height:14px}@media (width<=640px){.back-to-top{padding:10px 14px;bottom:16px;right:16px}.back-to-top span{display:none}}.hero{background:var(--paper);min-height:100svh;color:var(--ink);isolation:isolate;flex-direction:column;display:flex;position:relative;overflow:hidden}.hero__noise{pointer-events:none;z-index:1;opacity:.4;mix-blend-mode:multiply;background-image:radial-gradient(#0c0a080b 1px,#0000 1px);background-size:6px 6px;position:absolute;inset:0}.hero__topbar{z-index:5;font-family:var(--font-mono);font-size:var(--mono-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted);grid-template-columns:1fr auto 1fr;align-items:center;padding:22px clamp(24px,5vw,64px);display:grid;position:relative}.hero__topbar>:first-child{justify-self:start}.hero__topbar>:nth-child(2){justify-self:center}.hero__topbar>:last-child{justify-self:end}.hero__topbar strong{color:var(--ink);font-weight:500;font-family:var(--font-sans);letter-spacing:.08em}.hero__status{align-items:center;gap:8px;display:inline-flex}.hero__status:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.8s ease-out infinite pulse;box-shadow:0 0 #ff4a1c99}@keyframes pulse{0%{box-shadow:0 0 #ff4a1c8c}70%{box-shadow:0 0 0 14px #ff4a1c00}to{box-shadow:0 0 #ff4a1c00}}.hero__stage{z-index:2;flex:1;grid-template-columns:minmax(0,1fr);align-items:end;padding:clamp(20px,6vh,60px) clamp(24px,5vw,64px) clamp(60px,10vh,140px);display:grid;position:relative}.hero__name{z-index:3;font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 30;font-size:var(--display-hero);letter-spacing:-.05em;color:var(--ink);pointer-events:none;margin:0;font-weight:900;line-height:.82;display:block;position:relative}.hero__name-line{display:block;position:relative}.hero__name-line--shift{padding-left:clamp(0px,8vw,140px)}.hero__name-char{will-change:transform;pointer-events:auto;transition:transform .4s var(--ease-out), color .25s ease;display:inline-block}.hero__name-char:hover{color:var(--accent)}.hero__name-char--space{width:.25em;display:inline-block}.hero__sub{z-index:4;text-align:right;max-width:22ch;font-family:var(--font-mono);font-size:var(--mono-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted);position:absolute;top:clamp(120px,18vh,220px);right:clamp(24px,5vw,80px)}.hero__sub-callout{color:var(--ink);margin-bottom:12px;font-weight:700;display:block}.hero__sub-callout em{color:var(--accent);font-style:normal}.hero__sub-manifesto{font-family:var(--font-display);letter-spacing:-.01em;text-transform:none;color:var(--ink);margin-top:12px;font-size:clamp(16px,1.4vw,22px);font-style:italic;font-weight:400;line-height:1.25}.hero__meta-column{z-index:4;font-family:var(--font-mono);font-size:var(--mono-2xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted);flex-direction:column;gap:6px;display:flex;position:absolute;bottom:clamp(140px,22vh,260px);left:clamp(24px,5vw,80px)}.hero__meta-column span:first-child{color:var(--ink);font-weight:700}.hero__outline-year{z-index:1;font-family:var(--font-display);letter-spacing:-.04em;color:#0000;-webkit-text-stroke:1px var(--ink);pointer-events:none;opacity:.55;font-size:clamp(120px,18vw,280px);font-weight:900;line-height:.8;position:absolute;bottom:clamp(80px,12vh,140px);right:clamp(24px,4vw,80px)}.hero__scroll-cue{z-index:4;font-family:var(--font-mono);font-size:var(--mono-2xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted);flex-direction:column;align-items:center;gap:8px;animation:2.4s ease-in-out infinite hero-cue;display:flex;position:absolute;bottom:56px;left:50%;transform:translate(-50%)}.hero__scroll-cue:after{content:"";background:linear-gradient(to bottom, var(--ink), transparent);width:1px;height:32px}@keyframes hero-cue{0%,to{opacity:.4;transform:translate(-50%)}50%{opacity:1;transform:translate(-50%,6px)}}.hero__marquee{z-index:5;background:var(--ink);color:var(--paper);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding-block:18px;position:relative}.hero__marquee .marquee__item{font-family:var(--font-mono);font-size:var(--mono-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;font-weight:500}.hero__marquee .marquee__item em{color:var(--accent);font-style:normal}.hero__marquee .marquee__item span.dot{background:var(--accent);border-radius:50%;width:6px;height:6px;display:inline-block}@media (width<=900px){.hero__name{font-size:clamp(68px,19vw,180px)}.hero__sub{top:clamp(100px,18vh,160px)}.hero__outline-year{font-size:clamp(96px,22vw,200px)}.hero__meta-column{bottom:clamp(160px,26vh,220px)}}@media (width<=640px){.hero__topbar{grid-template-columns:1fr auto;padding:16px}.hero__topbar>:nth-child(2){display:none}.hero__name{font-size:clamp(56px,18vw,110px)}.hero__name-line--shift{padding-left:0}.hero__sub{text-align:left;margin-top:var(--space-6);max-width:100%;position:relative;top:auto;right:auto}.hero__stage{gap:var(--space-6);align-items:start;padding:24px 16px 80px}.hero__meta-column,.hero__outline-year,.hero__scroll-cue{display:none}}.section-nav{z-index:50;-webkit-backdrop-filter:saturate(140%)blur(10px);border-bottom:1px solid var(--ink);background:#f1ebdad9;position:sticky;top:0}.section-nav__inner{align-items:center;gap:var(--space-8);padding-block:14px;display:flex}.section-nav__brand{font-family:var(--font-mono);font-size:var(--mono-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink);flex-shrink:0;align-items:center;gap:8px;font-weight:700;display:inline-flex}.section-nav__brand span{color:var(--accent)}.section-nav__list{align-items:center;gap:var(--space-6);scrollbar-width:none;flex:1;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.section-nav__list::-webkit-scrollbar{display:none}.section-nav__link{font:500 var(--mono-xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted);white-space:nowrap;align-items:baseline;gap:6px;padding-block:6px;transition:color .15s;display:inline-flex;position:relative}.section-nav__link:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .35s var(--ease-out);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.section-nav__link:hover{color:var(--ink)}.section-nav__link:hover:after{transform:scaleX(1)}.section-nav__link--active{color:var(--ink);font-weight:700}.section-nav__link--active:after{transform:scaleX(1)}.section-nav__num{color:var(--accent);font-weight:700}.section-nav__counter{font-family:var(--font-mono);font-size:var(--mono-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted);flex-shrink:0}@media (width<=640px){.section-nav__counter{display:none}.section-nav__inner,.section-nav__list{gap:var(--space-4)}}.about-grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr);align-items:start;gap:clamp(48px,6vw,96px);display:grid}@media (width<=900px){.about-grid{gap:var(--space-12);grid-template-columns:1fr}}.about-bio{gap:var(--space-8);flex-direction:column;display:flex}.about-bio__lead{font-family:var(--font-display);font-variation-settings:"opsz" 96, "SOFT" 80;letter-spacing:-.02em;color:var(--ink);text-wrap:pretty;margin:0;font-size:clamp(24px,2.6vw,38px);font-weight:400;line-height:1.25}.about-bio__lead em{color:var(--accent);font-style:italic}.about-bio__body{font-family:var(--font-sans);font-size:var(--body-lg);line-height:var(--leading-loose);color:var(--ink-soft);max-width:60ch;margin:0}.about-bio__body strong{color:var(--ink);border-bottom:2px solid var(--accent);font-weight:600}.about-poster{background:var(--paper);border:1px solid var(--ink);padding:var(--space-8);box-shadow:12px 12px 0 var(--ink);gap:var(--space-6);flex-direction:column;display:flex;position:relative}.about-poster:before{content:"NS — DOSSIER";background:var(--paper-dim);font:500 var(--mono-2xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink);padding:0 8px;position:absolute;top:-12px;left:16px}.about-poster__year{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);font-size:clamp(80px,10vw,160px);font-weight:900;line-height:.8}.about-poster__year span{color:var(--accent)}.about-poster__caption{font-family:var(--font-mono);font-size:var(--mono-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted);border-top:1px solid var(--rule-strong);padding-top:var(--space-4)}.about-poster__stats{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.about-poster__stat{flex-direction:column;gap:4px;display:flex}.about-poster__stat-value{font-family:var(--font-display);color:var(--ink);font-size:clamp(32px,3.2vw,48px);font-weight:900;line-height:1}.about-poster__stat-label{font:500 var(--mono-2xs)/1.3 var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.skills-quadrants{border-top:1px solid var(--rule-dark-strong);border-left:1px solid var(--rule-dark-strong);grid-template-columns:1fr 1fr;gap:0;display:grid}.skill-quadrant{border-right:1px solid var(--rule-dark-strong);border-bottom:1px solid var(--rule-dark-strong);gap:var(--space-6);flex-direction:column;min-height:280px;padding:clamp(28px,4vw,56px);display:flex;position:relative}.skill-quadrant__num{font:500 var(--mono-xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);color:#f1ebda66;position:absolute;top:clamp(16px,2vw,28px);right:clamp(16px,2vw,28px)}.skill-quadrant__title{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--paper);margin:0;font-size:clamp(28px,3vw,42px);font-weight:700}.skill-quadrant__title em{color:var(--accent);font-style:italic}.skill-quadrant__list{flex-wrap:wrap;gap:10px;display:flex}.skill-chip{font:500 var(--mono-sm)/1 var(--font-mono);letter-spacing:.06em;color:var(--paper);transition:background .2s ease, color .2s ease, border-color .2s ease, transform .25s var(--ease-out);will-change:transform;background:0 0;border:1px solid #f1ebda59;border-radius:999px;align-items:center;padding:8px 14px;display:inline-flex}.skill-chip:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}.skills-marquee{border-top:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark);margin-top:clamp(64px,8vw,120px);padding-block:24px}.skills-marquee .marquee__item{font-family:var(--font-display);letter-spacing:-.03em;color:#0000;-webkit-text-stroke:1px var(--paper);font-size:clamp(36px,5vw,84px);font-weight:900;line-height:1}.skills-marquee .marquee__item:nth-child(odd){color:var(--paper);-webkit-text-stroke:0}.skills-marquee .marquee__item span.dot{background:var(--accent);width:14px;height:14px;margin:0 var(--space-4);border-radius:50%;display:inline-block}@media (width<=768px){.skills-quadrants{grid-template-columns:1fr}.skill-quadrant{min-height:0}}.stats-marquee{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:clamp(48px,8vw,120px);padding-block:18px}.stats-marquee .marquee__item{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:clamp(32px,4.5vw,64px);font-weight:900;line-height:1}.stats-marquee .marquee__item:nth-child(2n){color:#0000;-webkit-text-stroke:1px var(--ink)}.stats-marquee .marquee__item span.dot{background:var(--accent);width:10px;height:10px;margin:0 var(--space-3);border-radius:50%;display:inline-block}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:clamp(8px,1.5vw,24px);display:grid}.stat-card{gap:var(--space-3);padding-top:var(--space-6);border-top:1px solid var(--rule-strong);flex-direction:column;display:flex}.stat-card:first-child{transform:translateY(0)}.stat-card:nth-child(2){transform:translateY(clamp(12px,2vw,28px))}.stat-card:nth-child(3){transform:translateY(clamp(-8px,-1vw,-20px))}.stat-card:nth-child(4){transform:translateY(clamp(16px,2.4vw,36px))}.stat-card__value{font-family:var(--font-display);letter-spacing:-.06em;color:var(--ink);font-size:clamp(96px,15vw,240px);font-weight:900;line-height:.85}.stat-card__value em{color:var(--accent);font-style:italic}.stat-card__label{font:500 var(--mono-xs)/1.3 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted)}@media (width<=900px){.stats-grid{gap:var(--space-10) var(--space-8);grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{transform:none!important}}@media (width<=480px){.stat-card__value{font-size:clamp(72px,22vw,120px)}}.projects-stack{flex-direction:column;gap:clamp(64px,10vw,160px);display:flex}.project-feature{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:clamp(40px,5vw,96px);display:grid;position:relative}.project-feature--reverse{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.project-feature__media-wrap{order:2;position:relative}.project-feature--reverse .project-feature__media-wrap{order:1}.project-feature__body{gap:var(--space-6);flex-direction:column;order:1;display:flex;position:relative}.project-feature--reverse .project-feature__body{order:2}.project-feature__num{font-family:var(--font-display);letter-spacing:-.05em;color:#0000;-webkit-text-stroke:1px var(--paper);opacity:.45;pointer-events:none;z-index:0;font-size:clamp(120px,18vw,240px);font-weight:900;line-height:.8;position:absolute;top:-.18em;right:-.05em}.project-feature--reverse .project-feature__num{left:-.05em;right:auto}.project-feature__tag{font:500 var(--mono-xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:#f1ebda8c;align-items:center;gap:8px;display:inline-flex}.project-feature__tag:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;display:inline-block}.project-feature__name{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 40;letter-spacing:-.045em;color:var(--paper);z-index:1;margin:0;font-size:clamp(48px,7vw,112px);font-weight:900;line-height:.92;position:relative}.project-feature__desc{font-family:var(--font-sans);font-size:var(--body-lg);color:#f1ebdabf;z-index:1;max-width:56ch;margin:0;line-height:1.7;position:relative}.project-feature__links{margin-top:var(--space-4);z-index:1;flex-wrap:wrap;gap:12px;display:flex;position:relative}.project-link{font:500 var(--mono-xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--paper);transition:color .25s ease, border-color .25s ease, transform .25s var(--ease-out);isolation:isolate;will-change:transform;border:1px solid #f1ebda59;border-radius:999px;align-items:center;gap:8px;padding:12px 22px;display:inline-flex;position:relative;overflow:hidden}.project-link:before{content:"";background:var(--accent);transition:transform .4s var(--ease-out);z-index:-1;position:absolute;inset:0;transform:translateY(101%)}.project-link:hover{color:var(--ink);border-color:var(--accent)}.project-link:hover:before{transform:translateY(0)}.project-link__arrow{transition:transform .3s var(--ease-out);display:inline-block}.project-link:hover .project-link__arrow{transform:translate(4px)}.project-feature .terminal-preview{border:1px solid var(--rule-dark-strong);box-shadow:20px 20px 0 var(--accent);background:#0a0a0a;border-radius:12px;position:relative;overflow:hidden}.project-feature--reverse .terminal-preview{box-shadow:-20px 20px 0 var(--accent)}@media (width<=900px){.project-feature,.project-feature--reverse{gap:var(--space-10);grid-template-columns:1fr}.project-feature__media-wrap{order:2!important}.project-feature__body{order:1!important}.project-feature__num{font-size:clamp(96px,28vw,160px)}.project-feature .terminal-preview,.project-feature--reverse .terminal-preview{box-shadow:8px 8px 0 var(--accent)}}.terminal-preview__bar{background:#f1ebda08;border-bottom:1px solid #f1ebda0f;align-items:center;gap:6px;padding:12px 16px;display:flex}.terminal-preview__bar span{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:block}.terminal-preview__bar span:first-child{background:#ff5f56}.terminal-preview__bar span:nth-child(2){background:#ffbd2e}.terminal-preview__bar span:nth-child(3){background:#27c93f}.terminal-preview__body{font-family:var(--font-mono);color:#f1ebdac7;flex-direction:column;gap:10px;padding:22px 24px 26px;font-size:12px;line-height:1.6;display:flex}.terminal-preview__line{flex-wrap:wrap;gap:6px;display:flex}.terminal-preview__prompt{color:#27c93f}.terminal-preview__accent{color:var(--accent)}.terminal-preview__dim{color:#f1ebda73}.terminal-preview__caret{animation:1s steps(2,end) infinite caret-blink}@keyframes caret-blink{50%{opacity:0}}.terminal-preview__chart{align-items:flex-end;gap:6px;height:56px;margin:8px 0;display:flex}.terminal-preview__bar-chart{background:#f1ebda14;border-radius:2px 2px 0 0;flex:1;min-height:8px}.terminal-preview__bar-chart--accent{background:var(--accent)}.terminal-preview__badge-row{flex-wrap:wrap;gap:6px;display:flex}.terminal-preview__badge{color:#f1ebda8c;text-transform:uppercase;letter-spacing:.08em;border:1px solid #f1ebda24;border-radius:2px;padding:3px 8px;font-size:10px}.exp-ledger{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.exp-card{gap:var(--space-5);border-right:1px solid var(--rule);flex-direction:column;min-height:360px;padding:clamp(28px,3vw,48px) clamp(24px,2.6vw,40px);display:flex;position:relative}.exp-card:last-child{border-right:none}.exp-card--current:before{content:"";background:var(--accent);width:4px;position:absolute;top:0;bottom:0;left:0}.exp-card__flag{font:700 var(--mono-2xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--accent);position:absolute;top:clamp(20px,2vw,32px);right:clamp(20px,2vw,32px)}.exp-card__period{font:500 var(--mono-xs)/1.2 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted)}.exp-card__role{font-family:var(--font-display);font-variation-settings:"opsz" 96, "SOFT" 50;letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(28px,3vw,44px);font-weight:900;line-height:1}.exp-card__place{font:500 var(--mono-sm)/1.3 var(--font-mono);color:var(--accent);margin:0}.exp-card__desc{font-family:var(--font-sans);font-size:var(--body-sm);color:var(--ink-soft);margin:0;line-height:1.65}.exp-card__type{font:500 var(--mono-2xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted-soft);margin-top:auto}.exp-divider{font:500 var(--mono-sm)/1 var(--font-mono);color:var(--accent);letter-spacing:.1em;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-top:clamp(48px,6vw,80px);display:flex}.exp-divider span:last-child{color:var(--muted)}@media (width<=900px){.exp-ledger{grid-template-columns:1fr}.exp-card{border-right:none;border-bottom:1px solid var(--rule);min-height:0}.exp-card:last-child{border-bottom:none}}.cert-ticket{background:var(--paper);border:1px solid var(--ink);isolation:isolate;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:clamp(32px,4vw,80px);padding:clamp(40px,5vw,80px);display:grid;position:relative}.cert-ticket:before,.cert-ticket:after{content:"";background:var(--paper-dim);border:1px solid var(--ink);z-index:1;border-radius:50%;width:28px;height:28px;position:absolute;top:50%;transform:translateY(-50%)}.cert-ticket:before{left:-14px}.cert-ticket:after{right:-14px}.cert-ticket__meta{gap:var(--space-5);flex-direction:column;display:flex}.cert-ticket__label{font:500 var(--mono-xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--muted)}.cert-ticket__name{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 40;letter-spacing:-.03em;color:var(--ink);margin:0;font-size:clamp(36px,5vw,72px);font-weight:900;line-height:.95}.cert-ticket__detail-list{font:500 var(--mono-sm)/1.5 var(--font-mono);color:var(--muted);padding-top:var(--space-4);border-top:1px solid var(--rule);flex-direction:column;gap:6px;display:flex}.cert-ticket__detail-list span:first-child{color:var(--ink)}.cert-ticket__cta{margin-top:var(--space-4);border:1px solid var(--ink);font:500 var(--mono-xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink);background:var(--paper);isolation:isolate;width:fit-content;transition:color .25s ease, border-color .25s ease, transform .25s var(--ease-out);will-change:transform;border-radius:999px;align-items:center;gap:10px;padding:14px 24px;display:inline-flex;position:relative;overflow:hidden}.cert-ticket__cta:before{content:"";background:var(--ink);transition:transform .4s var(--ease-out);z-index:-1;position:absolute;inset:0;transform:translateY(101%)}.cert-ticket__cta:hover{color:var(--paper);border-color:var(--ink)}.cert-ticket__cta:hover:before{transform:translateY(0)}.cert-ticket__cta-arrow{transition:transform .3s var(--ease-out)}.cert-ticket__cta:hover .cert-ticket__cta-arrow{transform:translate(4px)}.cert-ticket__grade{justify-content:center;align-items:center;min-height:240px;display:flex;position:relative}.cert-ticket__grade-value{font-family:var(--font-display);letter-spacing:-.06em;color:var(--ink);font-size:clamp(160px,22vw,320px);font-weight:900;line-height:.8}.cert-ticket__grade-slash{background:var(--accent);transform-origin:50%;z-index:2;pointer-events:none;height:6px;position:absolute;top:50%;left:-8%;right:-8%;transform:rotate(-12deg)}@media (width<=900px){.cert-ticket{padding:var(--space-8);gap:var(--space-8);grid-template-columns:1fr}.cert-ticket:before,.cert-ticket:after{display:none}.cert-ticket__grade{min-height:0}.cert-ticket__grade-value{font-size:clamp(120px,36vw,200px)}}.contact-headline{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 30;letter-spacing:-.05em;color:var(--paper);margin:0;font-size:clamp(64px,14vw,240px);font-weight:900;line-height:.86}.contact-headline em{color:var(--accent);font-style:italic}.contact-headline__line{display:block}.contact-headline__line--shift{padding-left:clamp(24px,6vw,120px)}.contact-lines{border-top:1px solid var(--rule-dark-strong);margin-top:clamp(48px,6vw,96px)}.contact-line{justify-content:space-between;align-items:center;gap:var(--space-6);border-bottom:1px solid var(--rule-dark-strong);isolation:isolate;color:var(--paper);cursor:pointer;transition:padding-left .4s var(--ease-out);padding:clamp(20px,3vw,40px) clamp(8px,2vw,24px);display:flex;position:relative;overflow:hidden}.contact-line:before{content:"";background:var(--accent);transition:transform .45s var(--ease-out);z-index:-1;position:absolute;inset:0;transform:translate(-101%)}.contact-line:hover{color:var(--ink);padding-left:clamp(24px,4vw,80px)}.contact-line:hover:before{transform:translate(0)}.contact-line__label{font-family:var(--font-sans);letter-spacing:-.02em;font-size:clamp(32px,6vw,84px);font-weight:700;line-height:1}.contact-line__handle{font-family:var(--font-mono);font-size:var(--mono-sm);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:#f1ebda73;transition:color .3s ease, transform .3s var(--ease-out)}.contact-line:hover .contact-line__handle{color:var(--ink);transform:translate(-8px)}.contact-line__arrow{font-family:var(--font-display);transition:transform .4s var(--ease-out);font-size:clamp(24px,4vw,56px);font-weight:400;line-height:1}.contact-line:hover .contact-line__arrow{transform:translate(12px)}.contact-copy{align-items:center;gap:var(--space-4);flex-wrap:wrap;justify-content:flex-end;margin-top:clamp(32px,4vw,64px);display:flex}.contact-copy__hint{font:500 var(--mono-xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:#f1ebda80}.contact-copy__btn{font:500 var(--mono-xs)/1 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--paper);isolation:isolate;background:0 0;border:1px solid #f1ebda66;border-radius:999px;align-items:center;gap:10px;padding:14px 24px;transition:color .25s,border-color .25s;display:inline-flex;position:relative;overflow:hidden}.contact-copy__btn:before{content:"";background:var(--paper);transition:transform .4s var(--ease-out);z-index:-1;position:absolute;inset:0;transform:translateY(101%)}.contact-copy__btn:hover{color:var(--ink);border-color:var(--paper)}.contact-copy__btn:hover:before{transform:translateY(0)}.contact-copy__btn--copied{color:var(--ink);border-color:var(--accent)}.contact-copy__btn--copied:before{background:var(--accent);transform:translateY(0)}@media (width<=768px){.contact-line{flex-direction:column;align-items:flex-start;gap:8px}.contact-line__arrow{display:none}.contact-copy{justify-content:flex-start}}.app-footer{background:var(--ink);color:var(--paper);isolation:isolate;padding:clamp(48px,6vw,96px) 0 clamp(24px,3vw,48px);position:relative;overflow:hidden}.app-footer__wordmark{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 30;letter-spacing:-.05em;color:var(--paper);white-space:nowrap;text-align:left;margin:0;font-size:clamp(72px,18vw,320px);font-weight:900;line-height:.85}.app-footer__wordmark span{color:#0000;-webkit-text-stroke:1px var(--paper)}.app-footer__meta-grid{gap:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--rule-dark);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(32px,4vw,64px);display:grid}.app-footer__col{gap:var(--space-2);font:500 var(--mono-xs)/1.4 var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:#f1ebda80;flex-direction:column;display:flex}.app-footer__col strong{color:var(--paper);font-weight:700}.app-footer__col em{color:var(--accent);font-style:normal}.app-footer__note{padding-top:var(--space-5);border-top:1px solid var(--rule-dark);font:400 var(--mono-2xs)/1.5 var(--font-mono);color:#f1ebda59;letter-spacing:var(--tracking-mono);text-transform:uppercase;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-top:clamp(32px,4vw,48px);display:flex}@media (width<=900px){.app-footer__meta-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.app-footer__meta-grid{grid-template-columns:1fr}}.particle-field{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.particle{background:var(--ink);opacity:.18;border-radius:50%;width:2px;height:2px;animation:linear infinite particle-float;position:absolute}@keyframes particle-float{0%{opacity:0;transform:translateY(0)scale(1)}10%{opacity:.25}90%{opacity:.25}to{opacity:0;transform:translateY(-100vh)scale(.4)}}
