:root{--serif: "Fraunces", "Times New Roman", serif;--sans: "Inter", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--display: "Fraunces", serif;--display-weight: 300;--radius: 0;--em-style: italic;--fh-accent: #4a7c3e}html[data-system=editorial]{--ink: #16202e;--ink-soft: #3a4656;--ink-mute: #6d7787;--paper: #f4efe6;--paper-2: #ebe4d6;--paper-3: #ded5c2;--line: #d6ccb6;--accent: #b34a2a;--accent-soft: #d9b3a4;--display: "Fraunces", serif;--display-weight: 300;--em-style: italic;--radius: 0}html[data-system=editorial][data-theme=ink]{--ink: #f0e9dc;--ink-soft: #c8beab;--ink-mute: #8e8674;--paper: #131820;--paper-2: #1a2028;--paper-3: #222a35;--line: #2d3643;--accent: #e07a52;--accent-soft: #6d3a28}html[data-system=technical]{--ink: #0a0a0a;--ink-soft: #3a3a3a;--ink-mute: #7a7a7a;--paper: #fafaf7;--paper-2: #f0f0ea;--paper-3: #e4e4dc;--line: #cdcdc4;--accent: #0055ff;--accent-soft: #cfe0ff;--display: "IBM Plex Mono", ui-monospace, monospace;--display-weight: 500;--em-style: normal;--radius: 0}html[data-system=technical][data-theme=ink]{--ink: #eaeaea;--ink-soft: #a8a8a8;--ink-mute: #6a6a6a;--paper: #0a0b0d;--paper-2: #14161a;--paper-3: #1e2127;--line: #2a2e35;--accent: #4aa3ff}html[data-system=bold]{--ink: #141414;--ink-soft: #3a3a3a;--ink-mute: #7a7a7a;--paper: #ffe9b8;--paper-2: #ffd988;--paper-3: #ffc955;--line: #141414;--accent: #ff3b0f;--accent-soft: #ffccbd;--display: "DM Serif Display", "Fraunces", serif;--display-weight: 400;--em-style: italic;--radius: 0}html[data-system=bold][data-theme=ink]{--ink: #ffe9b8;--ink-soft: #d4c097;--ink-mute: #8a7c60;--paper: #141212;--paper-2: #1e1a18;--paper-3: #2a2420;--line: #ffe9b8;--accent: #ff8a40}html[data-system=playful]{--ink: #3a2f4a;--ink-soft: #5a4d6e;--ink-mute: #9487a3;--paper: #fdf4f8;--paper-2: #f7e6ef;--paper-3: #efd2e2;--line: #e8c8d8;--accent: #e85a94;--accent-soft: #ffd9e5;--display: "Caprasimo", "Fraunces", serif;--display-weight: 400;--em-style: italic;--radius: 24px}html[data-system=playful][data-theme=ink]{--ink: #fdf4f8;--ink-soft: #d9c8d3;--ink-mute: #8a7888;--paper: #2a1f2e;--paper-2: #362737;--paper-3: #43324a;--line: #4a3951;--accent: #ff8cb5;--accent-soft: #5a3a4c}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:calc(16px * var(--font-scale, 1));line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;transition:background .4s ease,color .4s ease}html[data-system=playful] body{font-family:Nunito,system-ui,sans-serif}a{color:inherit;text-decoration:none}.mono{font-family:var(--mono);letter-spacing:.02em}.serif{font-family:var(--serif);font-style:italic;font-variation-settings:"opsz" 144}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}html[data-system=playful] .eyebrow{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-size:13px;font-weight:600;color:var(--accent)}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:20px 40px;background:color-mix(in oklab,var(--paper) 82%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:border-color .3s ease,background .3s}.nav.scrolled{border-bottom-color:var(--line)}.nav-brand{font-family:Nasalization;font-size:20px;font-weight:500;letter-spacing:-.01em;display:flex;align-items:baseline;gap:10px}.nav-brand em{font-style:var(--em-style);color:var(--accent);font-weight:400}.nav-brand .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;animation:pulse 2.4s infinite ease-in-out}html[data-system=playful] .nav-brand .dot{width:12px;height:12px;background:var(--accent);animation:bounce 1.6s infinite ease-in-out}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}@keyframes bounce{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(30deg)}}.nav-links{display:flex;align-items:center;gap:4px;font-family:var(--mono);font-size:12px;letter-spacing:.04em}.nav-links a{padding:8px 14px;border-radius:999px;color:var(--ink-soft);transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.nav-links a:hover,.nav-links a.active{color:var(--ink);background:var(--paper-2)}.nav-links a.cta{background:var(--ink);color:var(--paper)}.nav-links a.cta:hover{background:var(--accent);color:#fff}.nav-divider{width:1px;height:16px;background:var(--line);margin:0 8px}html[data-system=playful] .nav-links{font-family:Nunito,sans-serif;font-weight:600;font-size:13px;letter-spacing:0}html[data-system=playful] .nav-links a{border-radius:999px}html[data-system=playful] .nav-links a.cta{background:var(--accent);color:#fff}html[data-system=playful] .nav-links a.cta:hover{background:var(--ink)}html[data-system=technical] .nav-brand{font-family:var(--mono);text-transform:uppercase;letter-spacing:.02em;font-size:14px}html[data-system=technical] .nav-brand em{font-style:normal}html[data-system=technical] .nav-links a{border-radius:0}html[data-system=bold] .nav-links a.cta{background:var(--accent);color:var(--paper);border-radius:0}html[data-system=bold] .nav-brand{font-family:var(--display);font-weight:400}.section{max-width:1280px;margin:0 auto;padding:120px 40px}.section-head{display:grid;grid-template-columns:220px 1fr;gap:40px;margin-bottom:60px;align-items:baseline}.section-head h2{font-family:var(--display);font-size:clamp(40px,5vw,64px);font-weight:var(--display-weight);line-height:1.02;letter-spacing:-.02em;color:var(--ink)}.section-head h2 em{font-style:var(--em-style);color:var(--accent)}.section-meta{display:flex;flex-direction:column;gap:6px;padding-top:8px}.section-meta .num{font-family:var(--display);font-style:var(--em-style);font-size:22px;color:var(--accent)}html[data-system=technical] .section-head h2{text-transform:uppercase;letter-spacing:-.01em;font-weight:500}html[data-system=technical] .section-meta .num{font-style:normal;letter-spacing:.1em}html[data-system=bold] .section-head h2 em{background:var(--ink);color:var(--paper);padding:0 .18em;border-radius:4px}html[data-system=playful] .section-head h2{font-weight:400}html[data-system=playful] .section-head h2 em{background:var(--accent-soft);color:var(--accent);padding:2px 14px;border-radius:999px;font-style:italic}.hero{min-height:100vh;padding:140px 40px 80px;max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:40px;position:relative}.hero-kicker{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line)}.hero-kicker .loc{display:flex;align-items:center;gap:10px}.hero-kicker .loc svg{width:14px;height:14px}.hero-title{font-family:var(--display);font-weight:var(--display-weight);font-size:clamp(72px,13vw,196px);line-height:.88;letter-spacing:-.04em;margin-top:20px}.hero-title .line{display:block}.hero-title .flourish{font-style:var(--em-style);font-weight:var(--display-weight);color:var(--accent)}html[data-system=technical] .hero-title{text-transform:uppercase;letter-spacing:-.02em;font-weight:500;line-height:.92}html[data-system=technical] .hero-title .flourish{font-style:normal}html[data-system=bold] .hero-title{font-weight:400;letter-spacing:-.04em}html[data-system=bold] .hero-title .flourish{font-style:italic;color:var(--accent)}html[data-system=playful] .hero-title{font-weight:400;letter-spacing:-.02em;line-height:.92}html[data-system=playful] .hero-title .flourish{color:var(--accent);display:inline-block;transform:rotate(-3deg);background:var(--accent-soft);padding:0 .1em;border-radius:14px}.hero-sub{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:60px;padding-top:40px;border-top:1px solid var(--line);margin-top:60px}.hero-bio{font-family:var(--display);font-size:22px;line-height:1.4;color:var(--ink);max-width:56ch;font-weight:300}.hero-bio em{font-style:var(--em-style);color:var(--accent)}html[data-system=technical] .hero-bio{font-family:var(--sans);font-weight:400;font-size:17px}html[data-system=technical] .hero-bio em{font-style:normal;font-weight:600}html[data-system=playful] .hero-bio{font-family:Nunito,sans-serif;font-size:19px;font-weight:400;line-height:1.55}html[data-system=playful] .hero-bio em{font-style:italic;font-weight:700;color:var(--accent)}.hero-meta{display:flex;flex-direction:column;gap:10px}.hero-meta .label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}.hero-meta .val{font-family:var(--display);font-style:var(--em-style);font-size:20px;color:var(--ink);font-weight:var(--display-weight)}html[data-system=technical] .hero-meta .val{font-family:var(--sans);font-style:normal;font-size:16px;font-weight:500}html[data-system=playful] .hero-meta .label{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:600;font-size:12px;color:var(--accent)}html[data-system=playful] .hero-meta .val{font-family:Nunito,sans-serif;font-style:normal;font-weight:700;font-size:17px}.hero-marquee{position:absolute;top:80px;right:40px;font-family:var(--mono);font-size:11px;color:var(--ink-mute);text-align:right;line-height:1.8}html[data-system=playful] .hero-marquee{font-family:Nunito,sans-serif}.hero-ticker{position:absolute;bottom:30px;left:0;right:0;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--ink-mute);display:flex;justify-content:space-between;padding:0 40px}.hero-ticker .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;margin:0 8px;vertical-align:middle}html[data-system=playful] .hero-ticker{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em}.xp-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}.xp-row{display:grid;grid-template-columns:140px 1fr 1.2fr 140px;gap:40px;padding:36px 0;border-bottom:1px solid var(--line);align-items:baseline;transition:padding .4s cubic-bezier(.4,0,.2,1),background .3s;position:relative;cursor:pointer}.xp-row:hover{padding-left:20px;padding-right:20px}.xp-row:before{content:"";position:absolute;left:0;top:50%;width:0;height:1px;background:var(--accent);transition:width .4s cubic-bezier(.4,0,.2,1)}.xp-row:hover:before{width:12px}.xp-row .yr{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--ink-mute)}.xp-row .role{font-family:var(--display);font-size:28px;line-height:1.15;font-weight:var(--display-weight);letter-spacing:-.01em}.xp-row .role em{font-style:var(--em-style);color:var(--accent);font-weight:var(--display-weight)}.xp-row .desc{font-size:15px;color:var(--ink-soft);line-height:1.55}.xp-row .tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-mute);text-align:right;text-transform:uppercase}html[data-system=technical] .xp-row .role{font-family:var(--sans);font-weight:500;font-size:22px}html[data-system=technical] .xp-row .role em{font-style:normal;font-weight:600}html[data-system=playful] .xp-row{background:var(--paper-2);border-radius:var(--radius);border-bottom:none;margin-bottom:12px;padding:24px;gap:24px}html[data-system=playful] .xp-row:hover{padding:24px 32px;background:var(--paper-3)}html[data-system=playful] .xp-row:before{display:none}html[data-system=playful] .xp-list{border-top:none}html[data-system=playful] .xp-row .role{font-family:Nunito,sans-serif;font-weight:700;font-size:22px}html[data-system=playful] .xp-row .role em{font-style:italic;font-weight:700}html[data-system=playful] .xp-row .yr,html[data-system=playful] .xp-row .tag{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:0;font-weight:600}html[data-system=bold] .xp-row{border-bottom:2px solid var(--ink)}html[data-system=bold] .xp-list{border-top:2px solid var(--ink)}.projects{display:grid;gap:24px}.projects[data-style=editorial]{gap:0}.projects[data-style=editorial] .project{display:grid;grid-template-columns:120px 1fr 1.3fr;gap:60px;padding:60px 0;border-top:1px solid var(--line);align-items:start;transition:transform .5s cubic-bezier(.4,0,.2,1)}.projects[data-style=editorial] .project:last-child{border-bottom:1px solid var(--line)}.projects[data-style=editorial] .project:hover{transform:translate(8px)}.projects[data-style=editorial] .project .num{font-family:var(--display);font-style:var(--em-style);font-size:72px;color:var(--accent);line-height:.9;font-weight:var(--display-weight)}.projects[data-style=editorial] .project .title{font-family:var(--display);font-size:40px;line-height:1.05;font-weight:var(--display-weight);letter-spacing:-.02em}.projects[data-style=editorial] .project .title em{font-style:var(--em-style);color:var(--accent)}.projects[data-style=editorial] .project .meta{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin-top:16px;display:flex;gap:14px;flex-wrap:wrap}.projects[data-style=editorial] .project .body{display:flex;flex-direction:column;gap:16px}.projects[data-style=editorial] .project .body p{font-size:15px;line-height:1.6;color:var(--ink-soft)}.projects[data-style=editorial] .project .placeholder{aspect-ratio:16/10;background:repeating-linear-gradient(135deg,var(--paper-2),var(--paper-2) 8px,var(--paper-3) 8px,var(--paper-3) 9px);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;color:var(--ink-mute);letter-spacing:.12em;text-transform:uppercase;margin-top:8px}.projects[data-style=card]{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px}.projects[data-style=card] .project{background:var(--paper-2);border:1px solid var(--line);padding:32px;border-radius:var(--radius);display:flex;flex-direction:column;gap:20px;transition:transform .4s ease,background .3s;cursor:pointer}.projects[data-style=card] .project:hover{transform:translateY(-6px);background:var(--paper-3)}.projects[data-style=card] .project .placeholder{aspect-ratio:4/3;background:repeating-linear-gradient(135deg,var(--paper),var(--paper) 6px,var(--paper-2) 6px,var(--paper-2) 7px);border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;color:var(--ink-mute);letter-spacing:.1em;text-transform:uppercase}.projects[data-style=card] .project .num{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--accent)}.projects[data-style=card] .project .title{font-family:var(--display);font-size:26px;font-weight:var(--display-weight);line-height:1.1;letter-spacing:-.01em}.projects[data-style=card] .project .title em{font-style:var(--em-style);color:var(--accent)}.projects[data-style=card] .project .body p{font-size:14px;color:var(--ink-soft);line-height:1.55}.projects[data-style=card] .project .meta{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.projects[data-style=technical]{gap:0}.projects[data-style=technical] .project{display:grid;grid-template-columns:60px 200px 1fr 260px;gap:30px;padding:28px 20px;border-top:1px solid var(--line);font-family:var(--mono);font-size:13px;transition:background .3s;cursor:pointer;align-items:center}.projects[data-style=technical] .project:last-child{border-bottom:1px solid var(--line)}.projects[data-style=technical] .project:hover{background:var(--paper-2)}.projects[data-style=technical] .project .num{color:var(--accent);font-weight:500}.projects[data-style=technical] .project .title{font-family:var(--display);font-size:22px;font-weight:var(--display-weight);letter-spacing:-.01em;font-style:var(--em-style)}.projects[data-style=technical] .project .placeholder{display:none}.projects[data-style=technical] .project .body p{font-family:var(--sans);font-size:13px;color:var(--ink-soft)}.projects[data-style=technical] .project .meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute)}html[data-system=playful] .projects[data-style=card] .project{border-radius:24px;border:2px solid var(--line)}html[data-system=playful] .projects[data-style=card] .project .placeholder{border-radius:14px}html[data-system=playful] .projects[data-style=card] .project .title,html[data-system=playful] .projects[data-style=editorial] .project .title{font-family:Caprasimo,serif;font-weight:400}html[data-system=playful] .projects[data-style=editorial] .project .num{font-family:Caprasimo,serif}html[data-system=technical] .projects[data-style=editorial] .project .title,html[data-system=technical] .projects[data-style=card] .project .title{font-family:var(--sans);font-weight:500;font-style:normal}html[data-system=technical] .projects[data-style=editorial] .project .title em,html[data-system=technical] .projects[data-style=card] .project .title em{font-style:normal;font-weight:600}html[data-system=technical] .projects[data-style=editorial] .project .num{font-family:var(--mono);font-style:normal;font-size:40px;font-weight:500}.edu-card{border:1px solid var(--line);padding:40px;display:grid;grid-template-columns:2fr 1fr;gap:40px;background:var(--paper-2);border-radius:var(--radius)}.edu-card .school{font-family:var(--display);font-size:42px;line-height:1.05;font-weight:var(--display-weight);letter-spacing:-.02em}.edu-card .school em{font-style:var(--em-style);color:var(--accent)}.edu-card .degree{font-family:var(--display);font-style:var(--em-style);font-size:18px;color:var(--ink-soft);margin-top:12px}.edu-card .stats{display:flex;flex-direction:column;gap:20px}.edu-card .stat .label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.edu-card .stat .val{font-family:var(--display);font-size:28px;font-weight:var(--display-weight);letter-spacing:-.01em}.edu-card .stat .val em{font-style:var(--em-style);color:var(--accent)}.edu-card .coursework{grid-column:1 / -1;padding-top:30px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px}.edu-card .chip{padding:6px 14px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-soft);background:var(--paper)}html[data-system=technical] .edu-card{border-width:2px}html[data-system=technical] .edu-card .school{font-family:var(--sans);font-weight:500;text-transform:uppercase;font-size:34px;letter-spacing:-.01em}html[data-system=technical] .edu-card .school em{font-style:normal;font-weight:600}html[data-system=technical] .edu-card .degree{font-family:var(--mono);font-style:normal;font-size:13px;text-transform:uppercase;letter-spacing:.08em}html[data-system=technical] .edu-card .stat .val{font-family:var(--sans);font-weight:500;font-style:normal}html[data-system=technical] .edu-card .chip{border-radius:0}html[data-system=bold] .edu-card{border-width:2px;background:var(--paper-2)}html[data-system=bold] .edu-card .school em{background:var(--ink);color:var(--paper);padding:0 .15em;border-radius:4px}html[data-system=playful] .edu-card{border-radius:24px;border:2px solid var(--line);background:var(--paper-2)}html[data-system=playful] .edu-card .school{font-family:Caprasimo,serif;font-weight:400}html[data-system=playful] .edu-card .chip{border-radius:999px;background:var(--paper-3);border:2px solid var(--line);font-family:Nunito,sans-serif;font-weight:600}.skills{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;border-top:1px solid var(--line);padding-top:40px}.skill-col h3{font-family:var(--display);font-style:var(--em-style);font-size:24px;font-weight:var(--display-weight);color:var(--accent);margin-bottom:20px}.skill-col ul{list-style:none;display:flex;flex-direction:column;gap:8px}.skill-col li{display:flex;justify-content:space-between;font-family:var(--mono);font-size:13px;padding:8px 0;border-bottom:1px dashed var(--line)}.skill-col li .lvl{color:var(--ink-mute);font-size:11px;letter-spacing:.08em}html[data-system=technical] .skill-col h3{font-family:var(--mono);font-style:normal;text-transform:uppercase;font-weight:500}html[data-system=playful] .skill-col h3{font-family:Caprasimo,serif;font-weight:400;font-style:normal}html[data-system=playful] .skill-col li{font-family:Nunito,sans-serif;font-weight:600;font-size:14px;border-bottom-style:dotted}.contact{padding:120px 40px 80px;max-width:1280px;margin:0 auto}.contact-big{font-family:var(--display);font-size:clamp(56px,9vw,136px);line-height:.95;font-weight:var(--display-weight);letter-spacing:-.03em;margin-bottom:60px}.contact-big em{font-style:var(--em-style);color:var(--accent)}.contact-big a{position:relative;text-decoration:none;transition:color .3s}.contact-big a:hover{color:var(--accent)}.contact-big a:after{content:"";position:absolute;left:0;bottom:4px;width:100%;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.4,0,.2,1)}.contact-big a:hover:after{transform:scaleX(1)}html[data-system=technical] .contact-big{text-transform:uppercase;font-weight:500;letter-spacing:-.01em}html[data-system=technical] .contact-big em{font-style:normal}html[data-system=playful] .contact-big{font-weight:400}html[data-system=playful] .contact-big em{display:inline-block;background:var(--accent-soft);color:var(--accent);padding:0 .15em;border-radius:18px;transform:rotate(-2deg)}.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:40px;border-top:1px solid var(--line)}.contact-grid .item .label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px}.contact-grid .item .val{font-family:var(--display);font-size:18px;font-style:var(--em-style)}html[data-system=technical] .contact-grid .item .val{font-family:var(--sans);font-style:normal;font-weight:500}html[data-system=playful] .contact-grid .item .val{font-family:Nunito,sans-serif;font-style:normal;font-weight:700}footer{padding:40px;max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-mute);border-top:1px solid var(--line)}html[data-system=playful] footer{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em}.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}.reveal.in{opacity:1;transform:translateY(0)}.page{animation:pageIn .7s cubic-bezier(.2,.8,.2,1) both}@keyframes pageIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fh-hero{max-width:1280px;margin:0 auto;padding:140px 40px 40px;display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:end;min-height:80vh;position:relative}.fh-hero .jersey{font-family:var(--display);font-weight:var(--display-weight);font-size:clamp(80px,14vw,220px);line-height:.85;letter-spacing:-.04em}.fh-hero .jersey em{font-style:var(--em-style);color:var(--fh-accent)}html[data-system=technical] .fh-hero .jersey{text-transform:uppercase;font-weight:500}html[data-system=technical] .fh-hero .jersey em{font-style:normal}html[data-system=playful] .fh-hero .jersey em{background:color-mix(in oklab,var(--fh-accent) 20%,var(--paper));padding:0 .15em;border-radius:18px;display:inline-block;transform:rotate(-3deg)}.fh-hero .num-badge{position:absolute;top:140px;right:40px;font-family:var(--display);font-size:240px;font-style:var(--em-style);line-height:.8;color:var(--fh-accent);opacity:.12;font-weight:var(--display-weight);pointer-events:none}.fh-hero .lede{font-family:var(--display);font-size:22px;line-height:1.4;font-weight:300;color:var(--ink-soft);max-width:44ch}.fh-hero .lede em{font-style:var(--em-style);color:var(--fh-accent)}html[data-system=technical] .fh-hero .lede{font-family:var(--sans);font-weight:400;font-size:17px}html[data-system=technical] .fh-hero .lede em{font-style:normal;font-weight:600}html[data-system=playful] .fh-hero .lede{font-family:Nunito,sans-serif;font-weight:400;font-size:19px}.fh-stats{max-width:1280px;margin:0 auto;padding:40px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.fh-stats .stat{padding:30px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.fh-stats .stat:last-child{border-right:none}.fh-stats .stat .label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}.fh-stats .stat .val{font-family:var(--display);font-size:42px;font-weight:var(--display-weight);letter-spacing:-.02em;line-height:1;margin-top:8px}.fh-stats .stat .val em{font-style:var(--em-style);color:var(--fh-accent)}html[data-system=technical] .fh-stats .stat .val{font-family:var(--sans);font-weight:500;font-style:normal}html[data-system=playful] .fh-stats .stat .val{font-family:Caprasimo,serif;font-weight:400}html[data-system=playful] .fh-stats .stat .label{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:700;color:var(--fh-accent);font-size:12px}.fh-section{max-width:1280px;margin:0 auto;padding:100px 40px}.fh-section h2{font-family:var(--display);font-size:clamp(40px,5vw,64px);font-weight:var(--display-weight);line-height:1.02;letter-spacing:-.02em;margin-bottom:40px}.fh-section h2 em{font-style:var(--em-style);color:var(--fh-accent)}html[data-system=technical] .fh-section h2{text-transform:uppercase;font-weight:500}html[data-system=technical] .fh-section h2 em{font-style:normal}html[data-system=playful] .fh-section h2 em{background:color-mix(in oklab,var(--fh-accent) 20%,var(--paper));color:var(--fh-accent);padding:0 .18em;border-radius:999px;display:inline-block;transform:rotate(-1deg)}.fh-videos{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.fh-video{position:relative;aspect-ratio:16/10;background:var(--paper-2);border:1px solid var(--line);overflow:hidden;cursor:pointer;transition:transform .5s cubic-bezier(.4,0,.2,1);border-radius:var(--radius)}.fh-video:hover{transform:translateY(-4px)}.fh-video .thumb{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(135deg,var(--paper-2),var(--paper-2) 6px,var(--paper-3) 6px,var(--paper-3) 7px);display:flex;align-items:center;justify-content:center}.fh-video .play{width:64px;height:64px;border-radius:50%;background:var(--fh-accent);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 30px color-mix(in oklab,var(--fh-accent) 40%,transparent);transition:transform .3s}.fh-video:hover .play{transform:scale(1.1)}.fh-video .play:after{content:"";width:0;height:0;border-left:14px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px}.fh-video .meta{position:absolute;left:0;right:0;bottom:0;padding:16px 18px;background:linear-gradient(to top,color-mix(in oklab,var(--ink) 60%,transparent),transparent);color:#fff;display:flex;justify-content:space-between;align-items:end;font-family:var(--mono);font-size:11px;letter-spacing:.08em}.fh-video .meta .title{font-family:var(--display);font-style:var(--em-style);font-size:18px;color:#fff;letter-spacing:-.01em}.fh-video.featured{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}html[data-system=playful] .fh-video{border-radius:20px;border:2px solid var(--line)}.fh-about{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;border-top:1px solid var(--line);padding-top:60px}.fh-about .portrait{aspect-ratio:3/4;background:repeating-linear-gradient(135deg,var(--paper-2),var(--paper-2) 8px,var(--paper-3) 8px,var(--paper-3) 9px);border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;color:var(--ink-mute);letter-spacing:.14em;text-transform:uppercase}html[data-system=playful] .fh-about .portrait{border-radius:24px;border:2px solid var(--line)}.fh-about .text{font-family:var(--display);font-size:20px;line-height:1.55;font-weight:300;color:var(--ink)}.fh-about .text p{margin-bottom:20px}.fh-about .text em{font-style:var(--em-style);color:var(--fh-accent)}html[data-system=technical] .fh-about .text{font-family:var(--sans);font-weight:400;font-size:17px}html[data-system=technical] .fh-about .text em{font-style:normal;font-weight:600}html[data-system=playful] .fh-about .text{font-family:Nunito,sans-serif;font-weight:400;font-size:18px}html[data-system=playful] .fh-about .text em{font-weight:700}.fh-accolades{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.fh-accolades-label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fh-accent);margin-bottom:14px}html[data-system=playful] .fh-accolades-label{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:700;font-size:12px}.fh-accolades ul{list-style:none;display:flex;flex-direction:column;gap:10px}.fh-accolades li{font-family:var(--sans);font-size:15px;color:var(--ink-soft);display:flex;align-items:baseline;gap:10px}.fh-accolades .yr{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--fh-accent);flex-shrink:0}.fh-recruiting{background:var(--paper-2);border:1px solid var(--line);padding:60px;display:grid;grid-template-columns:1fr 1fr;gap:60px;border-radius:var(--radius)}.fh-recruiting .block{display:flex;flex-direction:column;gap:24px}.fh-recruiting h3{font-family:var(--display);font-style:var(--em-style);font-size:28px;font-weight:var(--display-weight);color:var(--fh-accent)}.fh-recruiting dl{display:flex;flex-direction:column;gap:14px}.fh-recruiting .row{display:grid;grid-template-columns:180px 1fr;gap:20px;padding:10px 0;border-bottom:1px dashed var(--line)}.fh-recruiting dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.fh-recruiting dd{font-family:var(--display);font-size:17px;font-style:var(--em-style)}.fh-recruiting .cta-row{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap}.fh-recruiting .btn{display:inline-flex;align-items:center;gap:8px;padding:14px 22px;background:var(--fh-accent);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;transition:transform .2s,opacity .2s;border-radius:var(--radius)}.fh-recruiting .btn:hover{transform:translateY(-2px);opacity:.92}.fh-recruiting .btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--ink)}html[data-system=playful] .fh-recruiting{border-radius:24px;border:2px solid var(--line)}html[data-system=playful] .fh-recruiting .btn{border-radius:999px;font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:700;font-size:14px}html[data-system=playful] .fh-recruiting h3{font-family:Caprasimo,serif;font-weight:400;font-style:normal}html[data-system=playful] .fh-recruiting dd{font-family:Nunito,sans-serif;font-style:normal;font-weight:700}html[data-system=technical] .fh-recruiting .btn{border-radius:0}.tweak-panel{position:fixed;bottom:24px;right:24px;width:320px;max-height:calc(100vh - 48px);overflow-y:auto;background:var(--paper);border:1px solid var(--line);box-shadow:0 20px 60px #0003;padding:20px;z-index:100;font-family:var(--mono);font-size:12px;display:none;border-radius:var(--radius)}.tweak-panel.open{display:block}.tweak-panel h4{font-family:var(--display);font-size:18px;font-weight:var(--display-weight);font-style:var(--em-style);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}.tweak-panel .row{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px dashed var(--line)}.tweak-panel .row:last-child{border-bottom:none}.tweak-panel .label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.tweak-panel .pill-group{display:flex;gap:4px;flex-wrap:wrap}.tweak-panel .pill{padding:6px 10px;border:1px solid var(--line);background:transparent;color:var(--ink-soft);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s;border-radius:var(--radius)}.tweak-panel .pill:hover{border-color:var(--accent);color:var(--ink)}.tweak-panel .pill.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tweak-panel .swatch-group{display:flex;gap:8px;flex-wrap:wrap}.tweak-panel .swatch{width:28px;height:28px;border:2px solid transparent;cursor:pointer;transition:transform .2s;border-radius:50%}.tweak-panel .swatch:hover{transform:scale(1.12)}.tweak-panel .swatch.active{border-color:var(--ink)}.archive-head{max-width:1280px;margin:0 auto;padding:140px 40px 60px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;border-bottom:1px solid var(--line)}.archive-head h1{font-family:var(--display);font-weight:var(--display-weight);font-size:clamp(56px,10vw,148px);line-height:.88;letter-spacing:-.04em}.archive-head h1 em{font-style:var(--em-style);color:var(--accent)}[data-screen-label="All Highlights"] .archive-head h1 em{color:var(--fh-accent)}html[data-system=technical] .archive-head h1{text-transform:uppercase;font-weight:500}html[data-system=technical] .archive-head h1 em{font-style:normal}html[data-system=playful] .archive-head h1 em{display:inline-block;background:var(--accent-soft);color:var(--accent);padding:0 .15em;border-radius:20px;transform:rotate(-2deg)}html[data-system=playful] [data-screen-label="All Highlights"] .archive-head h1 em{background:color-mix(in oklab,var(--fh-accent) 20%,var(--paper))}.archive-head .meta{font-family:var(--mono);font-size:12px;line-height:1.8;color:var(--ink-mute);letter-spacing:.08em;text-align:right}.archive-head .meta .big{font-family:var(--display);font-style:var(--em-style);font-size:48px;color:var(--accent);display:block;line-height:1;letter-spacing:-.02em;margin-bottom:8px}[data-screen-label="All Highlights"] .archive-head .meta .big{color:var(--fh-accent)}.archive-filter{max-width:1280px;margin:0 auto;padding:30px 40px;display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;align-items:center}.archive-filter .filter-label{color:var(--ink-mute);margin-right:12px}.archive-filter .chip{padding:6px 12px;border:1px solid var(--line);color:var(--ink-soft);background:transparent;cursor:pointer;transition:all .2s;border-radius:var(--radius)}.archive-filter .chip:hover{border-color:var(--accent);color:var(--ink)}.archive-filter .chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}[data-screen-label="All Highlights"] .archive-filter .chip.active{background:var(--fh-accent);border-color:var(--fh-accent);color:#fff}html[data-system=playful] .archive-filter{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:600;font-size:13px}html[data-system=playful] .archive-filter .chip{border-radius:999px;border-width:2px;font-weight:600}.archive-body{max-width:1280px;margin:0 auto;padding:40px 40px 120px}.project-table{border-top:1px solid var(--line)}.project-table .row{display:grid;grid-template-columns:80px 1fr 1.2fr 220px 100px;gap:30px;padding:28px 16px;border-bottom:1px solid var(--line);align-items:baseline;cursor:pointer;transition:background .3s,padding .3s;position:relative}.project-table .row:hover{background:var(--paper-2);padding-left:28px}.project-table .num{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--accent)}.project-table .title{font-family:var(--display);font-size:24px;line-height:1.1;letter-spacing:-.01em;font-weight:var(--display-weight)}.project-table .title em{font-style:var(--em-style);color:var(--accent)}.project-table .desc{font-size:14px;color:var(--ink-soft);line-height:1.55}.project-table .tech{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);display:flex;gap:8px;flex-wrap:wrap}.project-table .yr{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-mute);text-align:right}.project-table .row:after{content:"→";position:absolute;right:16px;top:28px;font-family:var(--display);font-style:var(--em-style);color:var(--accent);opacity:0;transition:opacity .3s,transform .3s}.project-table .row:hover:after{opacity:1;transform:translate(-4px)}html[data-system=technical] .project-table .title{font-family:var(--sans);font-weight:500;font-style:normal}html[data-system=playful] .project-table .title{font-family:Caprasimo,serif;font-weight:400}html[data-system=playful] .project-table .row{background:transparent;border-radius:16px;padding:20px 16px;border-bottom:none;margin-bottom:4px}html[data-system=playful] .project-table .row:hover{background:var(--paper-2)}html[data-system=playful] .project-table{border-top:none}.highlights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.hl-card{position:relative;aspect-ratio:4/3;background:var(--paper-2);border:1px solid var(--line);overflow:hidden;cursor:pointer;transition:transform .5s cubic-bezier(.4,0,.2,1);border-radius:var(--radius)}.hl-card:hover{transform:translateY(-4px)}.hl-card .thumb{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(135deg,var(--paper-2),var(--paper-2) 6px,var(--paper-3) 6px,var(--paper-3) 7px);display:flex;align-items:center;justify-content:center}.hl-card .play{width:48px;height:48px;border-radius:50%;background:var(--fh-accent);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 30px color-mix(in oklab,var(--fh-accent) 40%,transparent);transition:transform .3s}.hl-card:hover .play{transform:scale(1.1)}.hl-card .play:after{content:"";width:0;height:0;border-left:11px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:3px}.hl-card .badge{position:absolute;top:12px;left:12px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;background:var(--fh-accent);color:#fff;padding:4px 8px;border-radius:var(--radius)}.hl-card .meta{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;background:linear-gradient(to top,color-mix(in oklab,var(--ink) 70%,transparent),transparent);color:#fff}.hl-card .meta .title{font-family:var(--display);font-style:var(--em-style);font-size:16px;letter-spacing:-.01em}.hl-card .meta .sub{font-family:var(--mono);font-size:10px;letter-spacing:.1em;opacity:.85;margin-top:2px}.hl-card.spotlight{grid-column:span 2;grid-row:span 2;aspect-ratio:auto;min-height:420px}.hl-card.wide{grid-column:span 2;aspect-ratio:16/9}html[data-system=playful] .hl-card{border-radius:18px;border:2px solid var(--line)}html[data-system=playful] .hl-card .badge{border-radius:999px;font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:700;padding:4px 10px}.view-all{margin-top:48px;display:inline-flex;align-items:center;gap:10px;padding:14px 20px;border:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:all .3s;cursor:pointer;background:transparent;border-radius:var(--radius)}.view-all:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);padding-right:28px}.view-all .arr{transition:transform .3s}.view-all:hover .arr{transform:translate(4px)}[data-screen-label="Field Hockey"] .view-all:hover{background:var(--fh-accent);border-color:var(--fh-accent);color:#fff}html[data-system=playful] .view-all{border-radius:999px;border-width:2px;font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:700;font-size:13px}@media (max-width: 900px){.nav{padding:16px 20px}.nav-links{gap:2px;font-size:11px}.nav-links a{padding:6px 10px}.section,.hero,.contact,.fh-hero,.fh-section,.fh-stats,.archive-head,.archive-body,.archive-filter{padding-left:20px;padding-right:20px}.section-head{grid-template-columns:1fr;gap:16px}.hero-sub{grid-template-columns:1fr;gap:24px}.xp-row{grid-template-columns:1fr;gap:8px;padding:24px 0}.xp-row .tag{text-align:left}.projects[data-style=editorial] .project,.projects[data-style=technical] .project,.fh-recruiting,.edu-card,.fh-about,.fh-hero,.archive-head{grid-template-columns:1fr;gap:20px}.fh-stats{grid-template-columns:repeat(2,1fr)}.fh-stats .stat{border-right:none;border-bottom:1px solid var(--line)}.fh-videos,.highlights-grid{grid-template-columns:1fr}.fh-video.featured,.hl-card.spotlight,.hl-card.wide{grid-column:auto;grid-row:auto;aspect-ratio:16/10;min-height:0}.skills,.contact-grid{grid-template-columns:1fr 1fr}.hero-marquee{display:none}.fh-hero .num-badge{font-size:140px;top:100px;right:20px}.project-table .row{grid-template-columns:1fr;gap:8px}.project-table .yr,.archive-head .meta{text-align:left}}.hero{display:grid;grid-template-columns:1.35fr .85fr;grid-template-rows:auto auto auto auto;gap:40px 60px;align-items:start}.hero-kicker{grid-column:1 / -1}.hero-title{grid-column:1;grid-row:2;margin-top:0}.hero-portrait{grid-column:2;grid-row:2 / 3;align-self:start;margin-top:8px}.hero-sub{grid-column:1 / -1;grid-row:3;margin-top:24px}.hero-ticker{grid-column:1 / -1;grid-row:4;position:static;padding:20px 0 0;border-top:1px solid var(--line);margin-top:40px}.hero-marquee{display:none}.hero-portrait figure{margin:0;display:flex;flex-direction:column;gap:12px}.hero-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%;display:block;border:1px solid var(--line);filter:saturate(.92) contrast(1.02)}.hero-portrait figcaption{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}html[data-system=editorial] .hero-portrait img{border-radius:2px}html[data-system=technical] .hero-portrait img{border-radius:0;filter:grayscale(1) contrast(1.05);border-color:var(--ink)}html[data-system=bold] .hero-portrait img{border:3px solid var(--ink);border-radius:0}html[data-system=playful] .hero-portrait img{border-radius:20px;border:2px solid var(--line)}html[data-system=playful] .hero-portrait figcaption{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:600}@media (max-width: 900px){.hero{grid-template-columns:1fr}.hero-portrait{grid-column:1;grid-row:auto;order:3;max-width:320px}.hero-portrait img{aspect-ratio:4/5}}.project .placeholder.has-img{background:none;padding:0;overflow:hidden;display:block;height:auto}.project .placeholder.has-img img{width:100%;height:100%;object-fit:cover;display:block}.projects[data-style=editorial] .project .placeholder.has-img{aspect-ratio:16/10}.projects[data-style=card] .project .placeholder.has-img{aspect-ratio:4/3}.edu-banner{margin-bottom:28px;aspect-ratio:21/6;overflow:hidden;border:1px solid var(--line);position:relative}.edu-banner img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9)}.edu-banner .caption{position:absolute;left:20px;bottom:16px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:color-mix(in oklab,#000 55%,transparent);padding:6px 10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}html[data-system=technical] .edu-banner img{filter:grayscale(1) contrast(1.05)}html[data-system=bold] .edu-banner{border:3px solid var(--ink)}html[data-system=playful] .edu-banner{border-radius:20px;border:2px solid var(--line)}html[data-system=playful] .edu-banner .caption{border-radius:999px;font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:700}.fh-hero .action-shot{position:absolute;top:40px;right:40px;width:360px;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line);z-index:0}.fh-hero .action-shot img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;display:block}.fh-hero .action-shot:after{content:"ACTION · 2025";position:absolute;bottom:10px;left:12px;font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:#fff;background:color-mix(in oklab,#000 55%,transparent);padding:4px 8px}.fh-hero .num-badge{z-index:1}html[data-system=playful] .fh-hero .action-shot{border-radius:20px;border:2px solid var(--line)}html[data-system=technical] .fh-hero .action-shot img{filter:grayscale(1) contrast(1.05)}html[data-system=bold] .fh-hero .action-shot{border:3px solid var(--ink)}@media (max-width: 1100px){.fh-hero .action-shot{width:280px;top:30px;right:20px}}@media (max-width: 900px){.fh-hero .action-shot{position:static;width:100%;max-width:400px;margin-top:24px}.fh-hero .num-badge{display:none}}.fh-about .portrait.has-img{background:none;padding:0;overflow:hidden}.fh-about .portrait.has-img img{width:100%;height:100%;object-fit:cover;display:block}html[data-system=technical] .fh-about .portrait.has-img img{filter:grayscale(1) contrast(1.05)}.fh-team{max-width:1280px;margin:0 auto;padding:40px}.fh-team .frame{aspect-ratio:21/9;overflow:hidden;border:1px solid var(--line);position:relative;background:var(--paper-2)}.fh-team .frame img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.95)}.fh-team .frame:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 40%,color-mix(in oklab,#000 55%,transparent) 100%)}.fh-team .overlay{position:absolute;left:32px;bottom:24px;right:32px;display:flex;justify-content:space-between;align-items:flex-end;color:#fff}.fh-team .overlay .h{font-family:var(--display);font-size:44px;font-style:var(--em-style);font-weight:var(--display-weight);letter-spacing:-.01em;line-height:1;text-shadow:0 2px 18px rgba(0,0,0,.35)}.fh-team .overlay .meta{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;text-align:right;line-height:1.6}html[data-system=playful] .fh-team .frame{border-radius:24px;border:2px solid var(--line)}html[data-system=playful] .fh-team .overlay .h{font-family:Caprasimo,serif;font-weight:400;font-style:normal}html[data-system=playful] .fh-team .overlay .meta{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:600}html[data-system=technical] .fh-team .frame img{filter:grayscale(1) contrast(1.05)}html[data-system=technical] .fh-team .overlay .h{text-transform:uppercase;font-family:var(--sans);font-weight:500;font-style:normal;font-size:32px;letter-spacing:-.01em}html[data-system=bold] .fh-team .frame{border:3px solid var(--ink)}@media (max-width: 900px){.fh-team .overlay .h{font-size:28px}.fh-team .frame{aspect-ratio:4/3}}.hero-title{font-size:calc(clamp(72px,13vw,196px) * var(--font-scale, 1))}.section-head h2{font-size:calc(clamp(40px,5vw,64px) * var(--font-scale, 1))}.hero-bio{font-size:calc(22px * var(--font-scale, 1))}html[data-system=technical] .hero-bio{font-size:calc(17px * var(--font-scale, 1))}html[data-system=playful] .hero-bio{font-size:calc(19px * var(--font-scale, 1))}.xp-row .role{font-size:calc(28px * var(--font-scale, 1))}.xp-row .desc{font-size:calc(15px * var(--font-scale, 1))}.projects[data-style=editorial] .project .title{font-size:calc(40px * var(--font-scale, 1))}.projects[data-style=editorial] .project .body p{font-size:calc(15px * var(--font-scale, 1))}.projects[data-style=card] .project .title{font-size:calc(26px * var(--font-scale, 1))}.projects[data-style=card] .project .body p{font-size:calc(14px * var(--font-scale, 1))}.edu-card .school{font-size:calc(42px * var(--font-scale, 1))}.edu-card .degree{font-size:calc(18px * var(--font-scale, 1))}.edu-card .stat .val{font-size:calc(28px * var(--font-scale, 1))}.contact-big{font-size:calc(var(--contact-big-base, 84px) * var(--font-scale, 1))!important}.fh-hero .jersey{font-size:calc(var(--jersey-base, 140px) * var(--font-scale, 1))}.fh-hero .lede{font-size:calc(20px * var(--font-scale, 1))}.sprite{display:inline-flex;line-height:0;color:var(--accent);pointer-events:none}.sprite svg{width:100%;height:100%;display:block}.sprite-fixed{position:absolute}@keyframes sprite-drift{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(2deg)}}@keyframes sprite-spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes sprite-twinkle{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@keyframes sprite-trace{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.sprite.drift{animation:sprite-drift 5s ease-in-out infinite}.sprite.spin{animation:sprite-spin-slow 22s linear infinite}.sprite.twinkle{animation:sprite-twinkle 3.2s ease-in-out infinite}.sprite.muted{color:var(--ink-mute);opacity:.55}.sprite.accent{color:var(--accent)}.sprite.fhaccent{color:var(--fh-accent)}.hero-portrait{position:relative}.hero-portrait figure{transform:rotate(2deg);transform-origin:center;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.hero-portrait figure:hover{transform:rotate(0) scale(1.02)}.hero-portrait figure:before,.hero-portrait figure:after{content:"";position:absolute;width:64px;height:18px;background:color-mix(in oklab,var(--accent) 28%,#fff);top:-8px;z-index:2;box-shadow:0 2px 6px #00000014;opacity:.75}.hero-portrait figure:before{left:18px;transform:rotate(-6deg)}.hero-portrait figure:after{right:18px;transform:rotate(6deg)}html[data-system=technical] .hero-portrait figure{transform:none}html[data-system=technical] .hero-portrait figure:before,html[data-system=technical] .hero-portrait figure:after{display:none}html[data-system=technical] .hero-portrait figure{background:var(--ink)}html[data-system=technical] .hero-portrait img{mix-blend-mode:luminosity;opacity:.9}.hero-sprites{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hero-sprites .s1{position:absolute;top:18%;left:2%;width:42px;height:42px;color:var(--accent);opacity:.35}.hero-sprites .s2{position:absolute;top:6%;right:34%;width:28px;height:28px;color:var(--ink-mute);opacity:.5}.hero-sprites .s3{position:absolute;bottom:26%;left:35%;width:60px;height:14px;color:var(--accent)}.hero-sprites .s4{position:absolute;top:40%;right:4%;width:36px;height:36px;color:var(--accent);opacity:.7}.section-head{position:relative}.section-head .sprite-adorn{position:absolute;right:0;top:-10px;width:80px;height:80px;opacity:.18;color:var(--accent)}.project .placeholder.has-img{position:relative}.project .placeholder.has-img:before{content:"";position:absolute;top:12px;right:-12px;bottom:-12px;left:12px;background:var(--accent-soft, color-mix(in oklab, var(--accent) 18%, var(--paper)));z-index:-1;transition:inset .4s cubic-bezier(.4,0,.2,1)}.project:hover .placeholder.has-img:before{top:18px;right:-18px;bottom:-18px;left:18px}html[data-system=playful] .project .placeholder.has-img{border-radius:14px;overflow:hidden}html[data-system=playful] .project .placeholder.has-img:before{border-radius:14px}html[data-system=technical] .project .placeholder.has-img:before{display:none}.edu-banner{position:relative}.edu-banner .sprite-float{position:absolute;top:14px;right:14px;width:36px;height:36px;color:#fff;background:var(--accent);border-radius:50%;padding:8px;box-shadow:0 6px 18px color-mix(in oklab,var(--accent) 40%,transparent)}html[data-system=technical] .edu-banner .sprite-float{background:var(--ink);color:var(--paper);border-radius:0}.fh-hero .action-shot{transform:rotate(3deg);transition:transform .5s cubic-bezier(.4,0,.2,1);box-shadow:0 20px 50px color-mix(in oklab,#000 18%,transparent)}.fh-hero .action-shot:hover{transform:rotate(0)}.fh-hero .action-shot:before{content:"";position:absolute;width:64px;height:18px;background:color-mix(in oklab,var(--fh-accent) 28%,#fff);top:-8px;left:50%;transform:translate(-50%) rotate(-2deg);z-index:3;opacity:.8;box-shadow:0 2px 6px #00000014}html[data-system=technical] .fh-hero .action-shot{transform:none;box-shadow:none}html[data-system=technical] .fh-hero .action-shot:before{display:none}.fh-hero .sprite-strip{display:flex;gap:12px;align-items:center;margin-top:24px;color:var(--fh-accent);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.75}.fh-hero .sprite-strip .sprite{width:20px;height:20px}html[data-system=playful] .fh-hero .sprite-strip{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.02em;font-weight:700}.fh-about .portrait.has-img{position:relative}.fh-about .portrait.has-img .second{position:absolute;left:-50px;bottom:-50px;width:50%;aspect-ratio:3/4;border:1px solid var(--line);background:var(--paper);overflow:hidden;transform:rotate(-4deg);box-shadow:0 14px 40px color-mix(in oklab,#000 12%,transparent);transition:transform .4s;padding:8px 8px 32px}.fh-about .portrait.has-img .second img{width:100%;height:100%;object-fit:cover;display:block}.fh-about .portrait.has-img .second:after{content:"aerial";position:absolute;left:10px;bottom:8px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--ink-mute);text-transform:uppercase}.fh-about .portrait.has-img:hover .second{transform:rotate(0) scale(1.03)}html[data-system=playful] .fh-about .portrait.has-img .second{border-radius:14px;border:2px solid var(--line)}html[data-system=technical] .fh-about .portrait.has-img .second{transform:none;box-shadow:none}@media (max-width: 900px){.fh-about .portrait.has-img .second{right:-12px;bottom:-20px;width:45%}}.contact-sprites{position:relative;height:0}.contact-sprites .c1{position:absolute;top:-80px;left:6%;width:48px;height:48px;color:var(--accent);opacity:.45}.contact-sprites .c2{position:absolute;top:-100px;right:4%;width:38px;height:38px;color:var(--ink-mute);opacity:.5}.xp-row .role-dot{display:inline-flex;width:18px;height:18px;vertical-align:-2px;margin-right:10px;color:var(--accent)}.xp-row:hover .role-dot{animation:sprite-drift 2s ease-in-out infinite}.eyebrow .sprite{width:12px;height:12px;vertical-align:-2px;margin-right:6px;color:var(--accent)}.hero-ticker .scroll-arrow{display:inline-flex;width:16px;height:16px;vertical-align:-3px;margin-left:4px;color:inherit}.nav-burger{display:none;width:40px;height:40px;background:transparent;border:none;cursor:pointer;padding:0;position:relative;z-index:102;border-radius:8px}.nav-burger span{display:block;position:absolute;left:9px;right:9px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s ease,opacity .2s ease,top .3s ease}.nav-burger span:nth-child(1){top:14px}.nav-burger span:nth-child(2){top:19px}.nav-burger span:nth-child(3){top:24px}.nav.menu-open .nav-burger span:nth-child(1){top:19px;transform:rotate(45deg)}.nav.menu-open .nav-burger span:nth-child(2){opacity:0}.nav.menu-open .nav-burger span:nth-child(3){top:19px;transform:rotate(-45deg)}.nav-scrim{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in oklab,var(--ink) 30%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99;animation:scrim-in .3s ease}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}@media (max-width: 900px){.nav-burger,.nav-scrim{display:block}.nav-links{position:fixed;top:0;right:0;bottom:0;width:min(340px,82vw);background:var(--paper);border-left:1px solid var(--line);box-shadow:-20px 0 60px color-mix(in oklab,var(--ink) 20%,transparent);padding:80px 28px 40px;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;font-size:14px;transform:translate(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:100;overflow-y:auto}.nav-links.open{transform:translate(0)}.nav-links a{padding:14px 16px;font-size:14px;border-bottom:1px solid var(--line);border-radius:0}.nav-links a.cta{margin-top:16px;padding:16px 20px;border-radius:8px;text-align:center;justify-content:center;border-bottom:none}.nav-divider{display:none}}@media (max-width: 600px){:root{--fs-hero: clamp(44px, 13vw, 68px)}.nav{padding:14px 18px}.nav-brand{font-size:17px}html[data-system=technical] .nav-brand{font-size:12px}.section,.hero,.contact,.fh-hero,.fh-section,.fh-stats,.archive-head,.archive-body,.archive-filter{padding-left:18px!important;padding-right:18px!important}.hero{padding-top:100px;padding-bottom:56px;gap:28px;min-height:0}.hero-kicker{font-size:10px;padding-bottom:14px;gap:8px;flex-wrap:wrap}.hero-kicker .loc{gap:6px}.hero-title{font-size:var(--fs-hero);line-height:.96;letter-spacing:-.03em}.hero-portrait{max-width:220px;margin:0 auto}.hero-bio{font-size:17px;line-height:1.5}html[data-system=technical] .hero-bio{font-size:15px}html[data-system=playful] .hero-bio{font-size:16px}.hero-meta{gap:6px}.hero-meta .val{font-size:15px}.hero-sub{margin-top:20px;gap:20px}.hero-ticker{font-size:10px}.section{padding-top:72px;padding-bottom:72px}.section h2,.section-head h2{font-size:clamp(32px,9vw,48px)!important;line-height:1!important}.eyebrow{font-size:10px!important}.xp-row{padding:20px 0!important;gap:6px!important}.xp-row .role{font-size:18px!important}.xp-row .org{font-size:13px!important}.xp-row p,.xp-row .body{font-size:14px!important}.projects{gap:40px}.projects .project{padding:20px 0!important}.project h3,.project .title{font-size:22px!important;line-height:1.15!important}.project p,.project .body{font-size:14px!important}.project .photo,.project figure{aspect-ratio:4/3}.edu-card{padding:20px!important}.skills,.contact-grid{grid-template-columns:1fr!important;gap:24px!important}.skills .col h4{font-size:13px!important}.contact h2,.contact-cta h2{font-size:clamp(36px,10vw,54px)!important}.contact a.big,.contact-big-link{font-size:clamp(20px,5vw,28px)!important;word-break:break-word}.fh-hero{padding-top:100px;padding-bottom:40px}.fh-hero .jersey{font-size:clamp(48px,14vw,76px);line-height:.95;letter-spacing:-.03em}.fh-hero .lede{font-size:16px}html[data-system=technical] .fh-hero .lede{font-size:14px}html[data-system=playful] .fh-hero .lede{font-size:16px}.fh-hero .action-shot{max-width:100%;margin-top:20px;transform:rotate(1.5deg)}.fh-hero .num-badge{display:none}.fh-stats{grid-template-columns:1fr 1fr!important;padding:24px 18px!important}.fh-stats .stat{padding:16px 10px!important}.fh-stats .stat .num{font-size:clamp(28px,8vw,40px)!important}.fh-stats .stat .label{font-size:9px!important}.fh-section{padding-top:56px!important;padding-bottom:56px!important}.fh-section h2{font-size:clamp(32px,9vw,48px)!important}.fh-about{gap:28px!important;padding-top:40px!important}.fh-about .text{font-size:16px!important;line-height:1.55!important}.fh-about .portrait.has-img{max-width:100%;aspect-ratio:4/5}.fh-about .portrait.has-img .second{display:none}.fh-recruiting{padding:24px!important;gap:20px!important}.fh-recruiting h3{font-size:20px!important}.archive-head h1{font-size:clamp(40px,11vw,60px)!important;line-height:.95!important}.archive-filter{flex-wrap:wrap;gap:8px!important;padding-top:16px!important;padding-bottom:16px!important}.archive-filter button,.archive-filter a{font-size:11px!important;padding:6px 12px!important}.hero-portrait figure{transform:rotate(1.5deg)}.hero-portrait figure:before{left:12px;width:48px}.hero-portrait figure:after{right:12px;width:48px}.fh-about .portrait.has-img .second{transform:rotate(2deg)}.section-head .sprite-adorn{width:50px;height:50px;opacity:.12;top:-4px}.hero-marquee{display:none!important}.tweaks-panel,.edit-panel,[class*=tweak-panel]{right:10px!important;left:10px!important;width:auto!important;max-width:none!important;bottom:10px!important;max-height:70vh!important;overflow-y:auto!important}}@media (max-width: 380px){.hero-title{font-size:44px}.section h2,.section-head h2{font-size:30px!important}.fh-hero .jersey{font-size:48px}.fh-stats{grid-template-columns:1fr!important}.fh-stats .stat{border-right:none!important;border-bottom:1px solid var(--line)}}@media (max-width: 900px){html,body{overflow-x:hidden}.sprite-fixed{max-width:40px;max-height:40px}}.thumb{position:relative;overflow:hidden}button.thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--paper-2);background-size:cover;background-position:center;background-repeat:no-repeat;border:none;padding:0;margin:0;width:100%;height:100%;font:inherit;color:inherit;cursor:pointer;display:block}button.thumb.thumb-poster:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000 40%,#00000059);pointer-events:none}.thumb-iframe{background:#000}.thumb-iframe iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.thumb-placeholder{background:repeating-linear-gradient(135deg,var(--paper-2),var(--paper-2) 6px,var(--paper-3) 6px,var(--paper-3) 7px)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;margin:0;background:transparent;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);cursor:pointer;transition:color .2s,background .2s,border-color .2s,transform .3s ease}.theme-toggle:hover{color:var(--ink);background:var(--paper-2);border-color:color-mix(in oklab,var(--ink) 25%,var(--line))}.theme-toggle svg{display:block}html[data-theme=ink] .theme-toggle svg{transform:rotate(0)}html[data-theme=cream] .theme-toggle svg{transform:rotate(0)}html[data-system=technical] .theme-toggle{border-radius:0}html[data-system=bold] .theme-toggle{border-radius:0;border-width:2px;border-color:var(--ink);color:var(--ink)}.nav-social{display:inline-flex;align-items:center;gap:4px}.nav-links .nav-social a{padding:8px 10px;gap:6px}.nav-links .nav-social .social-label{display:inline}.hero-portrait img,.hero-portrait figure,.edu-banner,.edu-banner img,.fh-team .frame,.fh-team .frame img,.action-shot,.action-shot img,.portrait.has-img,.portrait.has-img img,.portrait.has-img .second,.portrait.has-img .second img,.projects .project .placeholder.has-img,.projects .project .placeholder.has-img img,.fh-video,.fh-video .thumb,.hl-card,.hl-card .thumb{border-radius:var(--radius, 12px);overflow:hidden}html[data-system=editorial] .hero-portrait img,html[data-system=editorial] .edu-banner,html[data-system=editorial] .edu-banner img,html[data-system=editorial] .fh-team .frame,html[data-system=editorial] .fh-team .frame img,html[data-system=editorial] .action-shot,html[data-system=editorial] .action-shot img,html[data-system=editorial] .portrait.has-img,html[data-system=editorial] .portrait.has-img img,html[data-system=editorial] .projects .project .placeholder.has-img,html[data-system=editorial] .projects .project .placeholder.has-img img,html[data-system=editorial] .fh-video,html[data-system=editorial] .hl-card{border-radius:10px}html[data-system=playful] .nav-burger{border-radius:12px}@media (max-width: 900px){.nav-links{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;max-width:100vw;height:100dvh;background:color-mix(in oklab,var(--paper) 96%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-left:none;box-shadow:none;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-family:var(--display);font-weight:var(--display-weight);font-size:clamp(26px,7vw,40px);letter-spacing:-.01em;text-transform:none;transform:translate(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:100;overflow:hidden}.nav-links.open{transform:translate(0)}.nav-links>*{opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}.nav-links.open>*{opacity:1;transform:translateY(0)}.nav-links.open>*:nth-child(1){transition-delay:.12s}.nav-links.open>*:nth-child(2){transition-delay:.17s}.nav-links.open>*:nth-child(3){transition-delay:.22s}.nav-links.open>*:nth-child(4){transition-delay:.27s}.nav-links.open>*:nth-child(5){transition-delay:.3s}.nav-links.open>*:nth-child(6){transition-delay:.34s}.nav-links.open>*:nth-child(7){transition-delay:.38s}.nav-links a{padding:10px 20px;border-radius:999px;border-bottom:none;color:var(--ink);font-family:inherit;font-size:inherit;letter-spacing:inherit;text-transform:none;line-height:1.15}.nav-links a:hover,.nav-links a.active{color:var(--accent);background:transparent}.nav-links a em{color:var(--accent);font-style:var(--em-style)}.nav-links .nav-divider{display:block;width:40px;height:1px;background:var(--line);margin:16px 0 12px}.nav-links .nav-social{display:inline-flex;gap:8px;margin-top:4px}.nav-links .nav-social a{padding:10px;font-size:0;border:1px solid var(--line);border-radius:999px;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-soft)}.nav-links .nav-social a:hover{color:var(--ink);background:var(--paper-2)}.nav-links .nav-social .social-label{display:none}.nav-links .nav-social svg{width:16px;height:16px}.nav-links .theme-toggle{width:42px;height:42px}.nav-links .theme-toggle svg{width:18px;height:18px}.nav-links a.cta{margin-top:22px;padding:14px 32px;border-radius:999px;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-align:center;justify-content:center;border-bottom:none}html[data-system=playful] .nav-links a.cta{background:var(--accent);color:#fff}html[data-system=technical] .nav-links a.cta,html[data-system=bold] .nav-links a.cta{border-radius:0}.nav-links>.nav-divider{display:block}}@font-face{font-family:Nasalization;src:url(/fonts/Nasalization-Rg.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}.hero-title,.section-head h2,.jersey,.fh-section h2,.fh-hero h1{font-family:Nasalization,Fraunces,sans-serif!important;font-weight:400;letter-spacing:-.01em}.hero-title em,.section-head h2 em,.jersey em,.fh-section h2 em,.fh-hero h1 em{font-family:Nasalization,Fraunces,sans-serif!important;font-style:normal}.hero-title{font-size:clamp(40px,7vw,104px)!important;line-height:.95!important;letter-spacing:-.02em!important}.hero-portrait{max-width:520px!important;width:100%;margin:0 auto;justify-self:center}.hero-portrait figure{transform:none!important;position:relative;padding:14px;border-radius:50%;background:radial-gradient(circle at 50% 50%,transparent 62%,color-mix(in oklab,var(--accent) 14%,transparent) 63%,transparent 66%),color-mix(in oklab,var(--accent-soft, var(--accent)) 25%,transparent)}.hero-portrait figure:before,.hero-portrait figure:after{display:none!important}.hero-portrait img{width:100%;aspect-ratio:1 / 1!important;object-fit:cover;object-position:50% 30%;border-radius:50%!important;border:3px solid var(--accent)!important;box-shadow:0 0 0 10px color-mix(in oklab,var(--accent) 12%,transparent),0 20px 40px #0000001f}.hero-portrait figcaption{justify-content:center;gap:18px;margin-top:14px}@media (min-width: 901px){.hero-portrait{align-self:center!important}}@media (max-width: 720px){.hero-portrait{max-width:280px!important}.hero-portrait figure{padding:10px}.hero-portrait img{border-width:2px!important}}.scrollspy{position:fixed;top:50%;right:20px;transform:translateY(-50%);z-index:40;pointer-events:none}.scrollspy ul{list-style:none;margin:0;padding:12px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:color-mix(in oklab,var(--paper) 80%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;pointer-events:auto;box-shadow:0 4px 12px #0000000f}.scrollspy li{margin:0}.scrollspy a{display:flex;align-items:center;justify-content:flex-start;gap:10px;text-decoration:none;color:var(--ink-mute);font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:2px 4px;border-radius:6px;transition:color .18s ease}.scrollspy .dot{width:8px;height:8px;border-radius:50%;background:transparent;border:1.5px solid var(--ink-mute);transition:background-color .18s ease,border-color .18s ease,transform .18s ease;flex-shrink:0}.scrollspy .label{white-space:nowrap}.scrollspy a:hover{color:var(--ink)}.scrollspy a:hover .dot,.scrollspy a:focus-visible .dot{border-color:var(--accent)}.scrollspy li.active .dot{background:var(--accent);border-color:var(--accent);transform:scale(1.35)}.scrollspy li.active a{color:var(--ink);font-weight:600}html[data-system=playful] .scrollspy ul{border-radius:22px;background:color-mix(in oklab,var(--paper) 92%,transparent)}html[data-system=playful] .scrollspy a{font-family:Nunito,sans-serif;text-transform:none;letter-spacing:.01em;font-weight:600;font-size:12px}@media (max-width: 900px){.scrollspy{display:none}}
