:root{--bg:#0b0a08;--bg-2:#14110d;--ink:#f2ede3;--muted:#a79f90;--faint:#6f6759;--line:#f2ede324;--accent:#ff4d00;--accent-soft:#ff4d001f;--font-display:"Anton", "Arial Narrow", sans-serif;--font-body:"Archivo", "Helvetica Neue", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", monospace;--nav-h:70px;--ease-out:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg)}body{font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6;overflow-x:hidden}::selection{background:var(--accent);color:#0b0a08}html{scrollbar-width:thin;scrollbar-color:#2b261f var(--bg)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:#2b261f;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}img{max-width:100%;display:block}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.grain{z-index:60;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");position:fixed;inset:0}.progress{background:var(--accent);transform-origin:0;z-index:70;height:3px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}.wrap{max-width:1440px;margin:0 auto;padding-inline:clamp(20px,4vw,56px)}.mono{font-family:var(--font-mono)}.accent{color:var(--accent)}.nav{z-index:50;border-bottom:1px solid #0000;transition:background .35s,border-color .35s;position:fixed;top:0;left:0;right:0}.nav.is-scrolled{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom-color:var(--line);background:#0b0a08db}.nav-inner{height:var(--nav-h);justify-content:space-between;align-items:center;gap:24px;display:flex}.brand{font-family:var(--font-display);letter-spacing:.01em;text-transform:uppercase;padding-top:5px;font-size:29px;line-height:1;text-decoration:none;display:block}@keyframes blink{50%{opacity:.25}}.nav-links{align-items:center;gap:clamp(14px,2.4vw,30px);display:flex}.nav-links button{color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:12px;transition:color .25s;position:relative}.nav-links button:after{content:"";background:var(--accent);transform-origin:100%;width:100%;height:1px;transition:transform .35s var(--ease-out);position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav-links button:hover,.nav-links button.is-active{color:var(--ink)}.nav-links button.is-active:after,.nav-links button:hover:after{transform-origin:0;transform:scaleX(1)}.nav-cta{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:9px 18px;font-size:12px;text-decoration:none;transition:border-color .25s,background .25s,color .25s}.nav-cta:hover{border-color:var(--accent);background:var(--accent);color:#0b0a08}.hero{min-height:100svh;padding-top:calc(var(--nav-h) + 24px);flex-direction:column;justify-content:space-between;display:flex;position:relative}.slate{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:12px 0;font-size:12px;display:flex;overflow:hidden}.rec{background:var(--accent);border-radius:50%;flex:none;width:10px;height:10px;animation:1.2s steps(2,start) infinite blink}.hero-grid{grid-template-columns:1fr 340px;align-items:end;gap:40px;padding:34px 0 30px;display:grid}.hero-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.005em;font-size:clamp(64px,12.5vw,196px);line-height:.92}.h-mask{margin-bottom:-.06em;padding-bottom:.06em;display:block;overflow:hidden}.h-line{will-change:transform;display:block}.hero-title .outline{color:#0000;-webkit-text-stroke:2px var(--ink)}.hero-aside{padding-bottom:10px}.hero-role{margin-bottom:18px;font-size:clamp(20px,2vw,26px);font-weight:600;line-height:1.25}.hero-meta{font-family:var(--font-mono);color:var(--muted);font-size:12px;list-style:none}.hero-meta li{border-top:1px solid var(--line);gap:12px;padding:9px 0;display:flex}.hero-meta li:last-child{border-bottom:1px solid var(--line)}.hero-meta .k{color:var(--faint);text-transform:uppercase;letter-spacing:.1em;min-width:86px;padding-top:2px;font-size:12px}.hero-foot{border-top:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding:22px 0 30px;font-size:12px;display:flex}.scroll-cue{align-items:center;gap:12px;display:flex}.scroll-cue .bar{background:var(--line);width:1px;height:34px;position:relative;overflow:hidden}.scroll-cue .bar:after{content:"";background:var(--accent);width:100%;height:100%;animation:cue 1.8s var(--ease-out) infinite;position:absolute;top:-100%;left:0}@keyframes cue{60%,to{top:100%}}.toolkit{padding:clamp(56px,8vw,110px) 0;overflow:hidden}.toolkit-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);justify-content:space-between;gap:16px;margin-bottom:30px;font-size:12px;display:flex}.tk-drifts{border-bottom:1px solid var(--line)}.tk-drift{border-top:1px solid var(--line);overflow:hidden}.tk-drift-inner{white-space:nowrap;will-change:transform;align-items:baseline;gap:clamp(16px,3vw,44px);width:max-content;padding:4px clamp(20px,4vw,56px);display:flex}.tk-drift-no{font-family:var(--font-mono);letter-spacing:.12em;color:var(--muted);font-size:12px}.tk-drift-word{letter-spacing:-.02em;font-size:clamp(46px,9vw,124px);font-weight:600;line-height:1.05;transition:color .25s}.tk-drift.is-ghost .tk-drift-word{color:#0000;-webkit-text-stroke:1.5px var(--muted)}.tk-drift:hover .tk-drift-word{color:var(--accent)}.tk-drift.is-ghost:hover .tk-drift-word{-webkit-text-stroke-color:var(--accent)}.section{padding:clamp(72px,9vw,140px) 0;scroll-margin-top:80px}.band{background:var(--bg-2);border-block:1px solid var(--line)}.h-wrap{scroll-margin-top:70px}.sec-head{border-bottom:1px solid var(--line);align-items:baseline;gap:22px;margin-bottom:clamp(34px,4.5vw,60px);padding-bottom:20px;display:flex}.sec-index{font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;font-size:12px}.sec-title{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(40px,6.4vw,92px);line-height:.95}.sec-note{max-width:300px;color:var(--muted);text-align:right;margin-left:auto;font-size:15px}.h-wrap{position:relative;overflow:hidden}.h-track{z-index:1;align-items:stretch;width:max-content;min-height:100svh;display:flex;position:relative}.h-panel{width:clamp(420px,64vw,980px);padding:calc(var(--nav-h) + 10px) clamp(20px, 4vw, 56px) 78px;border-right:1px solid var(--line);flex-direction:column;flex:none;justify-content:center;display:flex}.h-panel.intro{width:clamp(320px,38vw,560px)}.h-kicker{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;font-size:12px}.h-big{font-family:var(--font-display);text-transform:uppercase;text-wrap:balance;margin-bottom:22px;font-size:clamp(42px,4.9vw,74px);line-height:.96}.h-sub{color:var(--muted);max-width:34ch;margin-bottom:26px;font-size:16px}.h-hint{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:12px}.work-top{align-items:baseline;gap:16px;margin-bottom:14px;display:flex}.work-no{font-family:var(--font-display);color:var(--accent);font-size:clamp(28px,3vw,44px)}.work-type{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 13px;font-size:12px}.work-img{border:1px solid var(--line);background:var(--bg-2);border-radius:6px;height:clamp(210px,34vh,400px);margin-bottom:18px;overflow:hidden}.work-img img{object-fit:cover;width:112%;max-width:none;height:100%;margin-left:-6%}.work-name{font-family:var(--font-display);text-transform:uppercase;margin-bottom:12px;font-size:clamp(32px,3.6vw,56px);line-height:1}.work-line{color:var(--muted);max-width:62ch;margin-bottom:14px;font-size:16px}.work-stack{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.work-stack li{font-family:var(--font-mono);letter-spacing:.06em;background:var(--accent-soft);color:var(--ink);border:1px solid #ff4d0059;border-radius:3px;padding:5px 12px;font-size:12px;list-style:none}.work-links{flex-wrap:wrap;align-items:center;gap:10px 26px;display:flex}.work-links a{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:3px;font-size:12px;text-decoration:none;transition:color .25s,border-color .25s}.work-links a:hover{color:var(--accent)}.work-note{font-family:var(--font-mono);color:var(--faint);letter-spacing:.06em;font-size:12px}.h-progress-shell{background:var(--line);height:2px;position:absolute;bottom:34px;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px)}.h-progress{background:var(--accent);transform-origin:0;height:100%;transform:scaleX(0)}.h-readout{font-family:var(--font-mono);letter-spacing:.14em;color:var(--faint);font-variant-numeric:tabular-nums;font-size:12px;position:absolute;top:-24px;right:0}.b-no{font-family:var(--font-display);color:var(--accent);margin-bottom:14px;font-size:clamp(28px,3vw,44px)}.b-word{font-family:var(--font-display);text-transform:uppercase;margin-bottom:18px;font-size:clamp(52px,7vw,116px);line-height:.94}.b-word.outline{color:#0000;-webkit-text-stroke:2px var(--ink)}.b-line{color:var(--muted);max-width:40ch;margin-bottom:20px;font-size:clamp(17px,1.6vw,20px)}.b-ghost{font-family:var(--font-display);text-transform:uppercase;white-space:nowrap;color:#0000;-webkit-text-stroke:1.5px #f2ede329;pointer-events:none;z-index:0;font-size:26vw;line-height:1;position:absolute;top:50%;left:0;transform:translateY(-50%)}.rows{border-top:1px solid var(--line)}.row{border-bottom:1px solid var(--line);transition:background .25s ease, padding-left .3s var(--ease-out);grid-template-columns:64px 1fr auto;align-items:baseline;gap:18px;padding:20px 8px;text-decoration:none;display:grid}.row:hover{background:#f2ede309;padding-left:18px}.row-no{font-family:var(--font-mono);color:var(--faint);font-size:12px}.row:hover .row-no{color:var(--accent)}.row-main{min-width:0}.row-name{letter-spacing:-.01em;font-size:clamp(20px,2.6vw,30px);font-weight:600;line-height:1.15}.row-sub{font-family:var(--font-mono);color:var(--muted);margin-top:5px;font-size:12px}.row-sub .tag-client{color:var(--accent)}.row-links{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;gap:20px;font-size:12px;display:flex}.row-links a{color:var(--muted);border-bottom:1px solid #0000;padding-bottom:2px;text-decoration:none;transition:color .25s,border-color .25s}.row-links a:hover{color:var(--ink);border-bottom-color:var(--accent)}.timeline{padding-left:clamp(28px,4vw,54px);position:relative}.t-rail{background:var(--line);width:2px;position:absolute;top:6px;bottom:6px;left:8px}.t-rail-fill{background:var(--accent);transform-origin:50% 0;position:absolute;inset:0;transform:scaleY(0)}.t-entry{border-bottom:1px solid var(--line);grid-template-columns:210px 1fr;gap:12px 34px;padding:26px 0 30px;display:grid;position:relative}.t-entry:first-child{padding-top:0}.t-entry:before{content:"";background:var(--bg);border:2px solid var(--faint);border-radius:50%;width:12px;height:12px;transition:border-color .3s,background .3s,box-shadow .3s;position:absolute;top:32px;left:calc(-1*clamp(28px,4vw,54px) + 3px)}.t-entry.lit:before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 5px #ff4d0026}.t-entry:first-child:before{top:6px}.t-when{font-family:var(--font-mono);color:var(--accent);letter-spacing:.06em;font-size:12px}.t-company{letter-spacing:-.01em;font-size:clamp(21px,2.6vw,30px);font-weight:600;line-height:1.15}.t-title{color:var(--muted);margin:4px 0 10px;font-size:16px}.t-blurb{color:var(--muted);max-width:72ch;font-size:16px}.t-tech{font-family:var(--font-mono);color:var(--ink);opacity:.85;margin-top:12px;font-size:12px}.skill-groups{border-top:1px solid var(--line)}.skill-group{border-bottom:1px solid var(--line);grid-template-columns:200px 1fr;align-items:baseline;gap:12px 34px;padding:30px 0;display:grid}.skill-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-size:12px}.skill-group.hot .skill-label{color:var(--accent)}.skill-items{flex-wrap:wrap;gap:10px 34px;display:flex}.skill-items span{letter-spacing:-.01em;transition:color .25s ease, transform .3s var(--ease-out);font-size:clamp(20px,2.6vw,30px);font-weight:600}.skill-items span:hover{color:var(--accent);transform:translate(6px)}.skill-group.hot .skill-items span{font-size:clamp(26px,3.4vw,40px);font-weight:700}.about-grid{grid-template-columns:1.1fr 1fr;gap:clamp(30px,5vw,80px);display:grid}.about-lede{letter-spacing:-.015em;margin-bottom:26px;font-size:clamp(24px,3vw,36px);font-weight:600;line-height:1.3}.about-lede em{color:var(--accent);font-style:normal}.about-body p{color:var(--muted);max-width:60ch;margin-bottom:16px}.about-body strong{color:var(--ink);font-weight:600}.stats{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(2,1fr);align-self:start;display:grid}.stat{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 24px}.stat-v{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:clamp(44px,4.6vw,68px);line-height:1}.stat:nth-child(odd) .stat-v{color:var(--accent)}.stat-l{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:8px;font-size:12px}.paper{border-top:1px solid var(--line);padding-top:36px}.paper-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start;gap:clamp(28px,5vw,80px);display:grid}.paper-title{font-family:var(--font-display);text-transform:uppercase;margin-bottom:20px;font-size:clamp(44px,6.4vw,104px);line-height:.95}.paper-meta{border-top:1px solid var(--line)}.paper-meta div{border-bottom:1px solid var(--line);justify-content:space-between;gap:18px;padding:13px 0;display:flex}.paper-meta dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-size:12px}.paper-meta dd{text-align:right;font-size:15px}.edu-list{border-top:1px solid var(--line)}.edu-row{border-bottom:1px solid var(--line);grid-template-columns:210px 1fr;gap:12px 34px;padding:28px 0;display:grid}.edu-when{font-family:var(--font-mono);color:var(--accent);letter-spacing:.06em;font-size:12px}.edu-school{letter-spacing:-.01em;font-size:clamp(21px,2.6vw,30px);font-weight:600;line-height:1.2}.edu-degree{color:var(--muted);margin-top:6px}.contact{border-top:1px solid var(--line);padding-bottom:0}.contact-big{font-family:var(--font-display);text-transform:uppercase;margin-bottom:10px;font-size:clamp(58px,11vw,168px);line-height:.94}.contact-big a{text-decoration:none;transition:color .3s}.contact-big a:hover{color:var(--accent)}.contact-sub{color:var(--muted);max-width:52ch;margin-bottom:34px;font-size:16px}.mail-btn{font-family:var(--font-mono);letter-spacing:.08em;background:var(--ink);color:#0b0a08;border-radius:999px;margin-bottom:54px;padding:16px 34px;font-size:14px;text-decoration:none;transition:background .25s;display:inline-block}.mail-btn:hover{background:var(--accent)}@media (width<=640px){.mail-btn{overflow-wrap:anywhere;max-width:100%;padding:14px 22px;font-size:12px}}.foot{border-top:1px solid var(--line);padding:54px 0 34px}.foot-grid{grid-template-columns:1.2fr 1fr 1fr;align-items:start;gap:36px;display:grid}.foot-brand{font-family:var(--font-display);margin-bottom:12px;font-size:54px;line-height:1}.foot-tag{color:var(--muted);font-size:15px;line-height:1.6}.copy{font-family:var(--font-mono);letter-spacing:.06em;color:var(--faint);align-items:center;gap:8px;margin-top:16px;font-size:12px;display:inline-flex}.copy svg{flex:none}.foot-nav{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.foot-nav button{color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:color .25s ease, transform .3s var(--ease-out);background:0 0;border:0;padding:7px 0;font-size:12px}.foot-nav button:hover{color:var(--accent);transform:translate(6px)}.foot-meta{font-family:var(--font-mono);color:var(--muted);flex-direction:column;align-items:flex-start;gap:12px;font-size:12px;display:flex}.foot-meta a{color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:2px;text-decoration:none;transition:border-color .25s,color .25s}.foot-meta a:hover{color:var(--accent);border-bottom-color:var(--accent)}@media (width<=1020px){.hero-grid{grid-template-columns:1fr;gap:8px}.hero-aside{max-width:560px}.sec-note{display:none}.about-grid{grid-template-columns:1fr}}@media (width<=900px){.nav-links{display:none}.h-track{flex-direction:column;width:auto;min-height:0}.h-panel{border-right:0;border-bottom:1px solid var(--line);width:auto;min-height:0;padding:56px clamp(20px,4vw,56px)}.h-panel.intro{width:auto}.h-progress-shell,.h-hint,.b-ghost{display:none}.work-img{aspect-ratio:16/10;height:auto}.work-img img{width:100%;margin-left:0}.t-entry,.edu-row{grid-template-columns:1fr;gap:8px}.skill-group{grid-template-columns:1fr;gap:12px}.foot-grid{grid-template-columns:1fr;gap:28px}.row{grid-template-columns:44px 1fr}.row-links{grid-column:2}}@media (prefers-reduced-motion:reduce){.scroll-cue .bar:after,.rec{animation:none}}.reduced-motion .h-track{flex-direction:column;width:auto;min-height:0}.reduced-motion .h-panel{border-right:0;border-bottom:1px solid var(--line);width:auto;min-height:0;padding:56px clamp(20px,4vw,56px)}.reduced-motion .h-panel.intro{width:auto}.reduced-motion .h-progress-shell,.reduced-motion .h-hint,.reduced-motion .b-ghost{display:none}.reduced-motion .work-img{aspect-ratio:16/9;height:auto}.reduced-motion .work-img img{width:100%;margin-left:0}@media (width>=901px) and (height<=720px){.work-img{height:190px}.work-name{font-size:32px}.h-panel{padding-top:78px;padding-bottom:64px}.h-progress-shell{bottom:22px}}
