:root{--orange:#e85d2f;--orange-deep:#b84418;--orange-soft:#f5b89c;--bg:#f4ebe0;--bg-2:#eadfd0;--bg-3:#faf3ea;--ink:#1a1410;--ink-2:#3a2e25;--muted:#8a7866;--line:#d9c9b5;--line-strong:#b49a7e;--ok:#27c93f;--serif:"Instrument Serif","Times New Roman",serif;--sans:"Inter Tight",-apple-system,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;--ease:cubic-bezier(.2,.7,.2,1)}html[data-theme=dark]{--bg:#1a1410;--bg-2:#241c16;--bg-3:#1f1813;--ink:#f4ebe0;--ink-2:#d9cbb8;--muted:#8a7866;--line:#3a2e25;--line-strong:#5a4838;--orange-soft:#c9532a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;cursor:none;margin:0;line-height:1.5;transition:background .4s,color .4s;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:1;opacity:.5;background-image:linear-gradient(90deg,#8a786612 1px,#0000 1px),linear-gradient(#8a786612 1px,#0000 1px);background-size:40px 40px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(at 50% 0,#000 30%,#0000 80%);mask-image:radial-gradient(at 50% 0,#000 30%,#0000 80%)}a{color:var(--orange);cursor:none;text-decoration:none}a:hover{color:var(--orange-deep)}html[data-theme=dark] a:hover{color:var(--orange-soft)}button{cursor:none;font:inherit}::selection{background:var(--orange);color:#fff}@media (pointer:coarse){body,a,button{cursor:auto}.cursor,.cursor-ring{display:none}}.cursor{background:var(--orange);pointer-events:none;z-index:9999;mix-blend-mode:difference;border-radius:50%;width:8px;height:8px;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-ring{border:1px solid var(--orange);pointer-events:none;z-index:9998;width:34px;height:34px;transition:width .25s var(--ease),height .25s var(--ease),background .25s,border-color .25s;border-radius:50%;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}body.is-hovering .cursor-ring{background:#e85d2f1f;width:56px;height:56px}.boot{z-index:10000;color:#f4ebe0;font-family:var(--mono);transition:opacity .6s,transform .6s var(--ease);background:#1a1410;flex-direction:column;justify-content:flex-end;padding:40px;font-size:13px;display:flex;position:fixed;inset:0}.boot.done{opacity:0;pointer-events:none;transform:translateY(-100%)}.boot-line{opacity:0;white-space:pre;animation:50ms forwards bootline}.boot-line .k{color:var(--ok)}.boot-line .o{color:var(--orange)}@keyframes bootline{to{opacity:1}}.boot-bar{background:#3a2e25;height:2px;margin-top:16px;overflow:hidden}.boot-bar i{background:var(--orange);width:0;height:100%;animation:bootbar 1.4s var(--ease) forwards;display:block}@keyframes bootbar{to{width:100%}}.qr .boot-bar i{animation-duration:2.4s}.qr-go{color:var(--orange-soft);opacity:0;margin-top:14px;font-size:11px;animation:.3s 2s forwards bootline}.qr.playing{justify-content:center;align-items:center;padding:0}.qr-player{background:#000;border:0;width:100%;height:100%;position:absolute;inset:0}.qr-catch{padding:0;padding-bottom:calc(110px + env(safe-area-inset-bottom));cursor:pointer;background:0 0;border:0;justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:0}.qr-hint{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;background:var(--orange);color:#1a1410;padding:12px 18px;font-size:11px;animation:1.4s steps(2,end) infinite blink}.veil{background:var(--orange);z-index:9000;transform-origin:bottom;pointer-events:none;transition:transform .5s var(--ease);position:fixed;inset:0;transform:scaleY(0)}body.leaving .veil{transform-origin:top;transform:scaleY(1)}main{animation:pagein .7s var(--ease) both}@keyframes pagein{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.top{z-index:100;background:var(--ink);color:var(--bg);font-family:var(--mono);letter-spacing:.06em;align-items:center;gap:14px;padding:10px 20px;font-size:11px;transition:background .4s;display:flex;position:sticky;top:0}html[data-theme=dark] .top{background:#0f0b09}.dots{gap:6px;display:flex}.dot{border-radius:50%;width:10px;height:10px}.dr{background:#ff5f56}.dy{background:#ffbd2e}.dg{background:#27c93f}.top-path{opacity:.7}.top-path b{color:var(--orange);font-weight:600}.nav{align-items:center;gap:4px;margin-left:auto;display:flex}.nav a{color:var(--bg);opacity:.65;border-radius:3px;padding:6px 10px;transition:opacity .2s,background .2s;position:relative}.nav a:hover,.nav a[aria-current]{opacity:1;background:#f4ebe014}.nav a[aria-current]:before{content:"> ";color:var(--orange)}.tog{border-left:1px solid #f4ebe026;gap:4px;margin-left:10px;padding-left:12px;display:flex}.tog button{color:var(--bg);font-family:var(--mono);letter-spacing:.12em;background:0 0;border:1px solid #f4ebe033;border-radius:3px;padding:5px 9px;font-size:10px;transition:all .2s}.tog button:hover{border-color:var(--orange)}.tog button[aria-pressed=true]{background:var(--orange);border-color:var(--orange);color:#1a1410;font-weight:600}.burger{display:none}.wrap{max-width:1180px;margin:0 auto;padding:0 32px}.sec{padding-top:96px;padding-bottom:96px}.sec-h{font-family:var(--mono);letter-spacing:.14em;color:var(--orange);text-transform:uppercase;align-items:center;gap:16px;margin-bottom:40px;font-size:12px;display:flex}.sec-h:after{content:"";background:var(--line-strong);flex:1;height:1px}.sec-h .meta{color:var(--muted);text-transform:none;letter-spacing:.06em;font-size:11px}h1,h2,h3{font-family:var(--serif);letter-spacing:-.015em;margin:0;font-weight:400;line-height:1}h2{font-size:clamp(40px,5vw,64px)}h3{font-size:28px}.em{color:var(--orange);font-style:italic}p.lede{font-size:clamp(20px,2.2vw,28px);font-family:var(--serif);color:var(--ink);text-wrap:pretty;max-width:28ch;line-height:1.3}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.card{background:var(--bg-3);border:1px solid var(--line-strong);transition:transform .5s var(--ease),border-color .3s,box-shadow .5s var(--ease);padding:24px 28px;position:relative}.card:hover{border-color:var(--orange);transform:translateY(-4px);box-shadow:0 24px 60px -24px #e85d2f59}.card-h{font-family:var(--mono);color:var(--orange);letter-spacing:.06em;border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;margin-bottom:16px;padding-bottom:10px;font-size:12px;display:flex}.card-h .meta{color:var(--muted);font-size:11px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{font-family:var(--mono);background:var(--bg-2);border:1px solid var(--line);color:var(--ink);letter-spacing:.04em;white-space:nowrap;padding:5px 9px;font-size:11px;line-height:1.2}.chip.soft{background:var(--orange);color:#fff;border-color:var(--orange-deep)}.chip.ink{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--ink);color:var(--ink);will-change:transform;background:0 0;align-items:center;gap:10px;padding:14px 22px;font-size:12px;transition:color .3s,border-color .3s;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";background:var(--orange);transition:transform .4s var(--ease);z-index:0;position:absolute;inset:0;transform:translateY(101%)}.btn:hover:before{transform:none}.btn:hover{color:#fff;border-color:var(--orange)}.btn span{z-index:1;position:relative}.btn.solid{background:var(--orange);border-color:var(--orange);color:#fff}.btn.solid:before{background:var(--ink)}.rv{opacity:0;transition:opacity .9s var(--ease),transform .9s var(--ease);transform:translateY(28px)}.rv.in{opacity:1;transform:none}.rv-l{opacity:0;transition:opacity .9s var(--ease),transform .9s var(--ease);transform:translate(-32px)}.rv-l.in{opacity:1;transform:none}[data-stagger]>*{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);transform:translateY(20px)}[data-stagger].in>*{opacity:1;transform:none}[data-stagger].in>:nth-child(2){transition-delay:80ms}[data-stagger].in>:nth-child(3){transition-delay:.16s}[data-stagger].in>:nth-child(4){transition-delay:.24s}[data-stagger].in>:nth-child(5){transition-delay:.32s}[data-stagger].in>:nth-child(6){transition-delay:.4s}[data-stagger].in>:nth-child(7){transition-delay:.48s}[data-stagger].in>:nth-child(8){transition-delay:.56s}.marq{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--bg-2);padding:18px 0;overflow:hidden}.marq-in{width:max-content;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);gap:48px;font-size:13px;animation:40s linear infinite marq;display:flex}.marq-in span b{color:var(--orange);margin-right:48px;font-weight:400}@keyframes marq{to{transform:translate(-50%)}}.foot{background:var(--ink);color:var(--bg);margin-top:96px;transition:background .4s}html[data-theme=dark] .foot{background:#0f0b09}.foot .wrap{padding-top:72px;padding-bottom:0}.foot-grid{border-bottom:1px solid #f4ebe01f;grid-template-columns:1.4fr 1fr 1fr;gap:48px;padding-bottom:64px;display:grid}.foot h2{color:var(--bg);font-size:clamp(40px,5vw,72px)}.foot a.big{font-family:var(--mono);color:var(--bg);border-bottom:1px solid var(--orange);margin-top:24px;padding-bottom:4px;font-size:clamp(16px,2vw,22px);transition:color .2s;display:inline-block}.foot a.big:hover{color:var(--orange)}.foot-col{font-family:var(--mono);letter-spacing:.08em;font-size:12px}.foot-col .k{color:var(--orange);letter-spacing:.14em;margin-bottom:16px}.foot-col a{color:var(--bg);opacity:.75;transition:opacity .2s,transform .3s var(--ease);margin-bottom:10px;display:block}.foot-col a:hover{opacity:1;transform:translate(6px)}.statusbar{font-family:var(--mono);letter-spacing:.08em;color:#f4ebe099;gap:24px;padding:14px 0;font-size:11px;display:flex}.statusbar .ok{color:var(--ok)}.statusbar .r{color:var(--orange);margin-left:auto}.cur{background:var(--orange);vertical-align:-2px;width:7px;height:12px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.hero{padding:88px 32px 64px}.hero-grid{grid-template-columns:1.3fr .7fr;align-items:center;gap:64px;display:grid}.hero-name{flex-direction:column;font-size:clamp(56px,9vw,132px);line-height:.96;display:flex}.hero-name .w{display:block}.hero-name .em{padding-left:.6em}.hero-name .w .em{padding-left:0}.hero-role{color:var(--ink-2);min-height:1.6em;margin:32px 0 0;font-size:clamp(14px,1.4vw,18px)}.hero-cta{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.hero-portrait{aspect-ratio:4/5;background:var(--bg-2);border:1px solid var(--line-strong);margin:0;position:relative;overflow:hidden}.hero-portrait img{object-fit:cover;object-position:30% 25%;filter:contrast(1.05);width:100%;height:100%;transition:transform 1.2s var(--ease);display:block}.hero-portrait:hover img{transform:scale(1.04)}.hero-portrait:after{content:"";pointer-events:none;background:repeating-linear-gradient(#0000 0 3px,#1a14100d 3px 4px);position:absolute;inset:0}.hero-portrait figcaption{background:var(--ink);color:var(--bg);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;padding:6px 10px;font-size:10px;display:flex;position:absolute;bottom:12px;left:12px}.ok-dot{background:var(--ok);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #27c93f33}.corner{border:1.5px solid var(--orange);width:16px;height:16px;position:absolute}.tl{border-bottom:0;border-right:0;top:8px;left:8px}.tr{border-bottom:0;border-left:0;top:8px;right:8px}.bl{border-top:0;border-right:0;bottom:8px;left:8px}.br{border-top:0;border-left:0;bottom:8px;right:8px}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}.about-txt p{color:var(--ink-2);text-wrap:pretty;margin:0 0 16px;font-size:16px}.stats{background:var(--line-strong);border:1px solid var(--line-strong);grid-template-columns:repeat(4,1fr);gap:1px;margin-top:64px;display:grid}.stat{background:var(--bg-3);flex-direction:column;gap:8px;padding:28px 24px;display:flex}.stat b{font-family:var(--serif);color:var(--orange);font-size:56px;font-weight:400;line-height:1}.stat span{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px}.grid3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.proj{color:inherit;display:block}.proj h3{margin:0 0 10px;font-size:24px;line-height:1.1}.proj p{color:var(--ink-2);margin:0 0 18px;font-size:14px}.notes{border-top:1px solid var(--line-strong);flex-direction:column;display:flex}.notes .note{border-bottom:1px solid var(--line);color:inherit;font-family:var(--serif);transition:background .3s,padding-left .4s var(--ease);grid-template-columns:90px 1fr auto;align-items:baseline;gap:24px;padding:22px 8px;font-size:clamp(20px,2.2vw,28px);display:grid}.notes .note:hover{background:var(--bg-3);color:var(--orange);padding-left:20px}.notes .note .mono{letter-spacing:.08em;font-size:12px}.tl-bar{font-family:var(--mono);margin:48px 0 64px}.tl-axis{color:var(--muted);border-bottom:1px solid var(--line-strong);grid-template-columns:repeat(11,1fr);margin-bottom:10px;padding-bottom:6px;font-size:10px;display:grid}.tl-axis span{text-align:center}.tl-bars{background:repeating-linear-gradient(to right,transparent 0 calc(10% - 1px),var(--line) calc(10% - 1px) 10%);height:64px;position:relative}.bar{letter-spacing:.1em;text-transform:uppercase;color:#fff;transform-origin:0;height:16px;transition:transform 1.2s var(--ease);align-items:center;padding:0 8px;font-size:9px;display:flex;position:absolute;transform:scaleX(0)}.in .bar{transform:none}.in .b2{transition-delay:.2s}.in .b3{transition-delay:.4s}.b1{background:var(--orange-soft);color:var(--ink);top:4px}.b2{background:var(--ink);color:var(--bg);top:24px}.b3{background:var(--orange);top:44px}.xps{flex-direction:column;display:flex}.xp{grid-template-columns:140px 1fr;gap:32px;padding-bottom:40px;display:grid}.xp-side{flex-direction:column;gap:6px;display:flex;position:relative}.xp-side .num{color:var(--orange);letter-spacing:.12em;font-size:13px;font-weight:600}.xp-side .yrs{color:var(--muted);letter-spacing:.08em;font-size:11px}.xp-side .rail{background:var(--line-strong);width:1px;position:absolute;top:44px;bottom:-40px;left:0}.xp:last-child .rail{display:none}.roles{border-bottom:1px dashed var(--line);flex-direction:column;gap:6px;margin-bottom:18px;padding-bottom:14px;display:flex}.role{font-family:var(--mono);justify-content:space-between;gap:16px;font-size:13px;display:flex}.role.now span:first-child{color:var(--orange);font-weight:600}.bul{color:var(--ink-2);margin:0 0 18px;padding:0;font-size:15px;list-style:none}.bul li{margin-bottom:6px;padding-left:16px;position:relative}.bul li:before{content:"›";color:var(--orange);font-family:var(--mono);position:absolute;left:0}.skills{background:var(--line-strong);border:1px solid var(--line-strong);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.sk{background:var(--bg-3);grid-template-columns:120px 1fr;align-items:start;gap:16px;padding:22px 24px;display:grid}.sk .cat{color:var(--orange);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:600}.filters{gap:6px;margin:32px 0;display:flex}.filters button{border:1px solid var(--line-strong);color:var(--ink);letter-spacing:.12em;text-transform:uppercase;background:0 0;padding:8px 14px;font-size:11px;transition:all .2s}.filters button:hover{border-color:var(--orange)}.filters button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.pgrid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.pgrid>div{transition:opacity .4s,transform .4s var(--ease)}.pgrid>div.hide{opacity:.15;pointer-events:none;transform:scale(.96)}.pj{flex-direction:column;height:100%;display:flex}.pj h3{margin:0 0 10px;font-size:26px;line-height:1.1}.pj p{color:var(--ink-2);flex:1;margin:0 0 18px;font-size:14px}.pj .go{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;margin-top:16px;font-size:11px}.ngrid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.ngrid .note{color:inherit;flex-direction:column;padding:28px 30px;display:flex}.ngrid h3{margin:0 0 12px;font-size:clamp(24px,2.4vw,32px);line-height:1.1}.ngrid p{color:var(--ink-2);flex:1;margin:0 0 20px;font-size:15px}.ngrid .more{letter-spacing:.12em;text-transform:uppercase;color:var(--orange);font-size:11px}@media (width<=1000px){.pgrid{grid-template-columns:1fr 1fr}}@media (width<=860px){.wrap{padding:0 20px}.sec{padding-top:64px;padding-bottom:64px}.foot-grid{grid-template-columns:1fr;gap:32px}.nav{background:var(--ink);transition:transform .4s var(--ease);flex-direction:column;align-items:stretch;margin:0;padding:12px 20px 20px;position:fixed;inset:44px 0 auto;transform:translateY(-120%)}.nav.open{transform:none}.tog{border:0;margin:0;padding:12px 0 0}html[data-theme=dark] .nav{background:#0f0b09}.burger{color:var(--bg);font-family:var(--mono);letter-spacing:.12em;background:0 0;border:0;margin-left:auto;font-size:11px;display:block}.hero{padding:48px 20px 40px}.hero-grid,.about-grid{grid-template-columns:1fr;gap:32px}.hero-portrait{max-width:360px}.stats{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr}.notes .note{grid-template-columns:1fr auto;font-size:20px}.notes .note .muted{display:none}.xp{grid-template-columns:1fr;gap:12px}.xp-side{flex-direction:row;gap:16px}.rail{display:none}.skills{grid-template-columns:1fr}.sk{grid-template-columns:1fr;gap:10px}}@media (width<=760px){.ngrid{grid-template-columns:1fr}}@media (width<=640px){.pgrid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rv,.rv-l,[data-stagger]>*{opacity:1;transition:none;transform:none}.marq-in,.cur,.boot-bar i,main{animation:none}.veil{transition:none}}
