:root{--bg:#0b0d12;--bg-2:#10141d;--surface:#141821;--ink:#ece7dc;--ink-2:#b9bcc6;--muted:#8a8f9c;--line:#ffffff1a;--ember:#ff7a45;--teal:#35d0bd;--gold:#e9b949;--violet:#b48cf2;--display:"Chakra Petch", "Segoe UI", system-ui, sans-serif;--sans:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono:"IBM Plex Mono", Consolas, monospace;--hud-h:60px;--hex-clip:polygon(25% 3%, 75% 3%, 100% 50%, 75% 97%, 25% 97%, 0% 50%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:auto}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.01em;margin:0;font-weight:700}p{margin:0}a{color:var(--ember);text-decoration:none}a:hover{color:#ffa07a}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}ul{margin:0;padding:0;list-style:none}::selection{background:var(--ember);color:var(--bg)}.mono{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;font-size:12px}.eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-size:12px}.eyebrow.ember{color:var(--ember)}.eyebrow.gold{color:var(--gold)}.section{padding:120px clamp(20px,6vw,96px);position:relative}.section-head{flex-direction:column;gap:12px;max-width:760px;margin-bottom:56px;display:flex}.section-head h2{font-size:clamp(36px,5vw,60px);line-height:1}.section-head p{color:var(--muted);text-wrap:pretty;max-width:620px;font-size:17px}.btn{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border:1px solid #ece7dc59;align-items:center;gap:10px;padding:14px 22px;font-size:15px;font-weight:700;transition:transform .15s,background-color .15s,color .15s,border-color .15s;display:inline-flex;position:relative;overflow:hidden}.btn:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-2px)}.btn.primary{background:var(--ember);color:var(--bg);border-color:var(--ember)}.btn.primary:hover{color:var(--bg);background:#ff9366}.btn svg{width:16px;height:16px}.chip{border:1px solid var(--line);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:inline-flex}.hud{z-index:50;height:var(--hud-h);-webkit-backdrop-filter:blur(10px);background:#0b0d12b8;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:16px;padding:0 clamp(16px,3vw,40px);display:flex;position:fixed;inset:0 0 auto}.hud-brand{font-family:var(--mono);letter-spacing:.14em;color:var(--muted);white-space:nowrap;align-items:center;gap:12px;font-size:12px;display:flex}.hud-brand i{background:var(--ember);width:10px;height:10px;display:inline-block;transform:rotate(45deg)}.hud-levels{gap:6px;display:flex}.hud-level{color:var(--ink-2);font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;border:1px solid #ffffff24;align-items:center;gap:8px;padding:6px 11px;font-size:13px;font-weight:600;transition:border-color .2s,color .2s,background-color .2s;display:inline-flex}.hud-level kbd{font-family:var(--mono);opacity:.6;font-size:11px}.hud-level:hover{border-color:var(--ink);color:var(--ink)}.hud-level.active{border-color:var(--ember);color:var(--ember);background:#ff7a451a}.hud-select{background:var(--ink);color:var(--bg);font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;padding:9px 14px;font-size:13px;font-weight:700;display:inline-flex}.hud-select:hover{background:#fff}.hud-select svg{width:15px;height:15px}.hud-progress{background:var(--ember);transform-origin:0;width:100%;height:2px;position:absolute;bottom:-2px;left:0}@media (width<=960px){.hud-levels{display:none}}.hero{min-height:100svh;padding-top:calc(var(--hud-h) + 40px);align-items:center;display:grid;overflow:hidden}.hero-bg{pointer-events:none;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 40% 40%,#000 30%,#0000 80%);mask-image:radial-gradient(at 40% 40%,#000 30%,#0000 80%)}.glow{filter:blur(90px);pointer-events:none;border-radius:999px;position:absolute}.hero-inner{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:center;gap:40px;display:grid;position:relative}.hero-copy{flex-direction:column;gap:22px;min-width:0;display:flex}.hero-id{align-items:center;gap:16px;min-width:0;display:flex}.hero-avatar{object-fit:cover;width:72px;height:72px;clip-path:var(--hex-clip);background:var(--surface);flex:none}.btn .brand-mark{border-radius:3px;width:17px;height:17px}.btn .brand-mark.gmail{border-radius:0;width:19px;height:15px}.btn.primary .brand-mark.gmail{box-sizing:border-box;background:#fff;border-radius:3px;width:25px;height:19px;padding:2px 3px}.hero h1{letter-spacing:-.02em;font-size:clamp(56px,9.5vw,128px);line-height:.9}.hero h1 span{display:block}.hero-tag{color:var(--ink-2);text-wrap:pretty;max-width:640px;font-size:clamp(17px,1.5vw,20px)}.pillars{flex-wrap:wrap;gap:10px;display:flex}.pillar{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid;padding:6px 10px;font-size:12px}.hero-ctas{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.hero-art{place-items:center;min-height:320px;display:grid;position:relative}.hero-figure{filter:drop-shadow(0 24px 44px #ff7a4547);width:min(100%,400px);height:min(58vh,500px);animation:5s ease-in-out infinite float;display:block}.scroll-cue{color:var(--muted);justify-content:center;align-items:center;gap:10px;animation:1.6s ease-in-out infinite bob;display:flex;position:absolute;bottom:24px;left:0;right:0}.scroll-cue svg{width:14px;height:14px}.type{white-space:nowrap;border-right:2px solid var(--teal);width:0;max-width:100%;animation:2.2s steps(46,end) .4s forwards type,.8s step-end infinite caret;overflow:hidden}@keyframes type{to{width:100%}}@keyframes caret{50%{border-color:#0000}}@keyframes float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-14px)rotate(1deg)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media (width<=900px){.hero-id{gap:12px}.hero-avatar{width:56px;height:56px}.hero-inner{grid-template-columns:minmax(0,1fr)}.hero-art{order:-1;min-height:190px}.hero-figure{width:230px;height:210px}}.stats{padding-top:40px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.stat{border:1px solid var(--line);background:#141821cc;flex-direction:column;gap:6px;padding:22px 22px 18px;display:flex;position:relative;overflow:hidden}.stat:after{content:"";background:linear-gradient(90deg, var(--ember), transparent);width:100%;height:2px;position:absolute;top:0;left:0}.stat b{font-family:var(--display);font-size:40px;font-weight:700;line-height:1}.stat>span{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px}.stat b span{font:inherit}.summary{grid-template-columns:200px minmax(0,1fr) minmax(0,1fr);align-items:start;gap:40px;margin-top:48px;display:grid}.portrait{flex-direction:column;align-items:center;gap:12px;margin:0;display:flex}.portrait img{object-fit:cover;width:190px;height:190px;clip-path:var(--hex-clip);background:var(--surface)}.portrait figcaption{color:var(--muted);text-align:center}.summary p{color:var(--ink-2);text-wrap:pretty;font-size:18px}.education{flex-direction:column;gap:12px;margin-top:44px;display:flex}.education .label{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:11px}.edu-card{border:1px solid var(--line);flex-direction:column;gap:3px;max-width:560px;padding:16px 18px;display:flex}.edu-card b{font-family:var(--display);font-size:17px}.edu-card span{color:var(--muted);font-size:14px}.summary .goal{border-left:2px solid var(--teal);color:var(--ink);padding-left:20px}@media (width<=900px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary{grid-template-columns:1fr}.portrait{align-items:flex-start}}.career{background:linear-gradient(#0b0d12 0%,#151a26 55%,#1d2233 100%);height:100svh;padding:0;position:relative;overflow:hidden}.career-canvas{z-index:0;width:100%;height:100%;display:block;position:absolute;inset:0}.career-head{left:clamp(20px,6vw,96px);top:calc(var(--hud-h) + 28px);z-index:3;pointer-events:none;flex-direction:column;gap:8px;max-width:min(72vw,720px);display:flex;position:absolute}.career-head h2{text-wrap:balance;font-size:clamp(26px,3.4vw,46px);line-height:1.02}.career-head h2 .hl{color:var(--teal)}.career-hint{z-index:3;pointer-events:none;-webkit-backdrop-filter:blur(6px);color:var(--teal);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;background:#080a0ff0;border:1px solid #35d0bd80;align-items:center;gap:9px;padding:7px 13px;font-size:12px;display:inline-flex;position:absolute;bottom:46px;left:clamp(20px,6vw,96px);box-shadow:0 6px 20px #00000073}.career-hint .narrow{display:none}.career-hint svg{flex:none;width:15px;height:15px}.career-hud{right:clamp(20px,4vw,48px);top:calc(var(--hud-h) + 34px);z-index:3;color:var(--muted);font-family:var(--mono);letter-spacing:.16em;align-items:center;gap:10px;font-size:12px;display:flex;position:absolute}.career-hud svg{width:16px;height:16px}.career-hud b{color:var(--ember);font-weight:500}.career-track{will-change:transform;z-index:2;height:100%;position:absolute;top:0;left:0}.building{background:#0e1119;border-top:4px solid;flex-direction:column;gap:8px;padding:22px 22px 20px;display:flex;position:absolute;bottom:4svh;overflow:hidden;box-shadow:0 -30px 80px #00000059}.building.ember{border-color:var(--ember)}.building.teal{border-color:var(--teal)}.building.gold{border-color:var(--gold)}.building-art{background:#080a10;flex:none;height:clamp(80px,23%,190px);margin:-22px -22px 12px;position:relative;overflow:hidden}.building-art img{object-fit:cover;object-position:40% center;opacity:.9;width:100%;height:100%}.building-art .slide{opacity:0;transition:opacity .6s linear;position:absolute;inset:0}.building-art .slide.up{opacity:1}.building-art .windows{background-image:repeating-linear-gradient(#0000 0 8px,#080a10 8px 21px),repeating-linear-gradient(90deg,#e9b94929 0 6px,#0000 6px 17px);position:absolute;inset:0}.building-art:after{content:"";background:linear-gradient(#0e111900 45%,#0e1119bf 78%,#0e1119 100%);position:absolute;inset:0}.building-art.logo{background:#0c0f16}.building-art.logo img{object-fit:contain;opacity:.96;padding:16px 20px}.building-art.logo:after{background:linear-gradient(#0e111900 62%,#0e1119cc 100%)}.art-label{z-index:1;color:var(--ink-2);letter-spacing:.14em;text-shadow:0 2px 10px #000000e6;font-size:10px;position:absolute;bottom:8px;left:22px}.building .years{font-family:var(--mono);letter-spacing:.14em;font-size:11px}.building.ember .years{color:var(--ember)}.building.teal .years{color:var(--teal)}.building.gold .years{color:var(--gold)}.building h3{align-items:center;gap:10px;font-size:clamp(22px,2.1vw,30px);line-height:1.05;display:flex}.company-mark{object-fit:contain;flex:none;width:1em;height:1em}.building .role{color:var(--muted);font-size:14px}.building .sub{color:var(--muted);font-size:12px}.building ul{color:#d9d4c7;flex-direction:column;flex:auto;gap:6px;min-height:0;margin-top:8px;font-size:13.5px;line-height:1.4;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(#000 calc(100% - 22px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 22px),#0000 100%)}.building li{padding-left:14px;position:relative}.building li:before{content:"";opacity:.5;background:currentColor;width:6px;height:6px;position:absolute;top:9px;left:0}.building .tags{flex-wrap:wrap;flex:none;gap:6px;margin-top:10px;display:flex}.building .tags span{border:1px solid var(--line);font-family:var(--mono);color:var(--muted);padding:3px 7px;font-size:11px}@media (height<=820px){.building-art{height:clamp(64px,17%,130px)}.building h3{font-size:clamp(19px,1.8vw,24px)}.building .role{font-size:13px}.building ul{gap:5px;margin-top:6px;font-size:12.5px;line-height:1.34}.building .tags span{padding:2px 6px;font-size:10px}}.career-progress{z-index:3;background:#ffffff1a;height:2px;position:absolute;bottom:24px;left:clamp(20px,6vw,96px);right:clamp(20px,6vw,96px)}.career-progress i{background:var(--ember);transform-origin:0;height:100%;display:block}.career.reduced{height:auto;padding:120px clamp(20px,6vw,96px)}.career.reduced .career-head,.career.reduced .career-hud{position:static}.career.reduced .career-track{gap:24px;margin-top:40px;display:grid;position:static}.career.reduced .building{position:static;width:auto!important;height:auto!important;left:auto!important}.career.reduced .building ul{-webkit-mask-image:none;mask-image:none}.career.reduced .building-art{height:160px}@media (width<=720px){.building{padding:18px 16px 16px}.building-art{height:clamp(78px,22%,130px);margin:-18px -16px 10px}.art-label{left:16px}.building ul{font-size:13px}.career-head{max-width:74vw}.career-hint{letter-spacing:.06em;padding:6px 9px;font-size:10px;bottom:40px}.career-hint .wide{display:none}.career-hint .narrow{display:inline}.career-head h2{font-size:28px}.career-hud{top:auto;bottom:40px}}.projects{background:#070a10;overflow:hidden}.hex-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.projects-inner{z-index:1;position:relative}.projects-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:32px;display:grid}.hex-group{margin-bottom:36px}.hex-group:last-child{margin-bottom:0}.hex-group-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:16px;padding-bottom:8px;display:flex}.hex-group-head h3{font-size:17px}.cat-pill{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;margin:0;padding:4px 12px;font-size:11px;font-weight:500;display:inline-flex}.cat-pill.work{color:var(--ember);background:#ff7a451a;border-color:#ff7a458c}.cat-pill.student{color:var(--gold);background:#e9b9491f;border-color:#e9b9498c}.cat-pill.personal{color:var(--teal);background:#35d0bd1a;border-color:#35d0bd8c}.panel-eyebrow{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hex-group-head span{color:var(--muted);font-size:11px}.hex-board{--hex-w:236px;flex-direction:column;gap:10px;display:flex}.hex-board .row{gap:14px;display:flex}.hex-board .row.odd{padding-left:calc(var(--hex-w) / 2 + 7px)}.hex-tile{width:var(--hex-w);height:calc(var(--hex-w) * .88);text-align:center;cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:16px 30px;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .25s;display:flex;position:relative}.hex-edge{clip-path:var(--hex-clip);background:#ffffff29;transition:background-color .25s;position:absolute;inset:0}.hex-fill{clip-path:var(--hex-clip);background:#0f151d;position:absolute;inset:2px;overflow:hidden}.hex-fill img{object-fit:cover;opacity:.58;width:100%;height:100%;transition:opacity .35s,transform .55s cubic-bezier(.2,.8,.2,1)}.hex-scrim{background:linear-gradient(#070a106b 0%,#070a10bd 52%,#070a10eb 100%);position:absolute;inset:0}.hex-tile.teal .hex-edge{background:var(--teal)}.hex-tile.ember .hex-edge{background:var(--ember)}.hex-tile.gold .hex-edge{background:var(--gold)}.hex-tile.ink .hex-edge{background:#ffffff3d}.hex-tile:hover,.hex-tile:focus-visible,.hex-tile.active{outline:none;transform:translateY(-9px)scale(1.035)}.hex-tile:hover .hex-fill img,.hex-tile:focus-visible .hex-fill img{opacity:.72;transform:scale(1.07)}.hex-tile:hover .hex-scrim,.hex-tile:focus-visible .hex-scrim{background:linear-gradient(#070a1057 0%,#070a10ad 52%,#070a10e6 100%)}.hex-text{z-index:1;flex-direction:column;gap:5px;display:flex;position:relative}.hex-text .org{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.hex-tile.teal .hex-text .org{color:var(--teal)}.hex-tile.ember .hex-text .org{color:var(--ember)}.hex-tile.gold .hex-text .org{color:var(--gold)}.hex-tile.ink .hex-text .org{color:var(--muted)}.hex-text .h{font-family:var(--display);color:var(--ink);text-shadow:0 2px 12px #000000b3;font-size:18px;font-weight:700;line-height:1.12}.hex-text .blurb{color:var(--ink-2);font-size:11.5px;line-height:1.3}.hex-play{z-index:1;color:#0b0d12;background:#ece7dce6;border-radius:999px;place-items:center;width:22px;height:22px;display:grid;position:absolute;bottom:13px;left:50%;transform:translate(-50%)}.hex-play svg{width:11px;height:11px;margin-left:1px}.traits{top:calc(var(--hud-h) + 24px);border:1px solid var(--line);background:#0f151de6;flex-direction:column;gap:10px;padding:18px;display:flex;position:sticky}.trait{font-family:var(--display);cursor:pointer;background:#ffffff0a;border-left:3px solid;justify-content:space-between;align-items:center;padding:8px 10px;font-size:14px;font-weight:600;transition:background-color .2s;display:flex}.trait:hover,.trait.on{background:#ffffff17}.trait small{font-family:var(--mono);font-size:12px;font-weight:400}.trait.all{border-left-color:var(--muted)}.trait.all small{color:var(--muted)}.trait.all.on{border-left-color:var(--ink)}.project-overlay{place-items:center;padding:clamp(12px,3vh,40px) clamp(12px,3vw,48px);display:grid}.project-panel{background:#0d1119;border:1px solid #ffffff24;outline:none;width:min(1180px,100%);max-height:92svh;animation:.28s cubic-bezier(.2,.8,.2,1) rise;overflow:auto;box-shadow:0 40px 120px #0009}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.project-panel-head{border-bottom:1px solid var(--line);z-index:2;background:#0d1119;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px clamp(18px,3vw,30px);display:flex;position:sticky;top:0}.project-panel-head h2{margin-top:6px;font-size:clamp(24px,3vw,36px);line-height:1.05}.icon-btn{border:1px solid var(--line);color:var(--muted);align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.icon-btn:hover{color:var(--ink);border-color:var(--ink)}.icon-btn svg{width:15px;height:15px}.project-body{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(20px,3vw,34px);padding:clamp(18px,3vw,30px);display:grid}.project-stage-col{flex-direction:column;gap:12px;min-width:0;display:flex}.stage{aspect-ratio:16/9;border:1px solid var(--line);background:#05070b;place-items:center;display:grid;position:relative;overflow:hidden}.stage-img{object-fit:contain;width:100%;height:100%}.stage-frame{border:0;width:100%;height:100%;position:absolute;inset:0}.project-body.no-media{grid-template-columns:minmax(0,1fr);max-width:760px}.stage-play{color:var(--ink);background:#070a1059;flex-direction:column;justify-content:center;align-items:center;gap:14px;transition:background-color .25s;display:flex;position:absolute;inset:0}.stage-play:hover{background:#070a101f}.play-ring{background:var(--ember);color:#0b0d12;border-radius:999px;place-items:center;width:74px;height:74px;transition:transform .25s cubic-bezier(.2,.8,.2,1);display:grid;box-shadow:0 10px 40px #ff7a4573}.stage-play:hover .play-ring{transform:scale(1.09)}.play-ring svg{width:30px;height:30px;margin-left:4px}.stage-strip{flex-wrap:wrap;gap:8px;display:flex}.strip-thumb{border:1px solid var(--line);opacity:.6;width:104px;height:60px;transition:opacity .2s,border-color .2s;position:relative;overflow:hidden}.strip-thumb img{object-fit:cover;width:100%;height:100%}.strip-thumb:hover{opacity:.9}.strip-thumb.on{opacity:1;border-color:var(--ember)}.strip-play{color:#0b0d12;background:#ece7dceb;border-radius:999px;place-items:center;width:18px;height:18px;display:grid;position:absolute;bottom:5px;right:5px}.strip-play svg{width:9px;height:9px;margin-left:1px}.project-info{flex-direction:column;gap:14px;min-width:0;display:flex}.kv{grid-template-columns:78px minmax(0,1fr);align-items:baseline;gap:12px;font-size:14px;display:grid}.kv .mono{color:var(--muted)}.project-about{color:var(--ink-2);text-wrap:pretty;font-size:15px}.info-label{color:var(--ember);margin-top:4px}.project-bullets{color:var(--ink);flex-direction:column;gap:9px;font-size:14.5px;display:flex}.project-bullets li{text-wrap:pretty;padding-left:17px;position:relative}.project-bullets li:before{content:"";width:7px;height:7px;clip-path:var(--hex-clip);background:var(--teal);position:absolute;top:8px;left:0}.project-links{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.btn.small{padding:9px 14px;font-size:13px}.btn.small svg{width:13px;height:13px}@media (width<=1100px){.projects-layout{grid-template-columns:1fr}.traits{flex-flow:wrap;position:static}.trait{flex:160px}}@media (width<=900px){.project-body{grid-template-columns:1fr}}@media (width<=720px){.hex-board{--hex-w:min(43vw, 168px)}.hex-board .row.odd{padding-left:0}.hex-tile{padding:12px 16px}.hex-text .h{font-size:14px}.hex-text .blurb{display:none}.hex-text .org{font-size:9px}.strip-thumb{width:76px;height:44px}}.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.skill-card{border:1px solid var(--line);background:var(--surface);flex-direction:column;gap:14px;padding:22px;display:flex;position:relative;overflow:hidden}.skill-card:before{content:"";clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0% 50%);background:var(--accent);opacity:.08;width:140px;height:140px;position:absolute;top:-40px;right:-40px}.skill-card h3{align-items:center;gap:10px;font-size:20px;display:flex}.skill-card h3 i{clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0% 50%);background:var(--accent);width:12px;height:12px}.skill-card ul{color:var(--ink-2);flex-direction:column;gap:8px;font-size:15px;display:flex}.skill-card li{align-items:center;gap:10px;display:flex}.skill-card li:before{content:"";background:var(--accent);opacity:.6;width:18px;height:3px}@media (width<=1000px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.skills-grid{grid-template-columns:1fr}}.contact{padding-bottom:80px}.contact-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;display:grid}.contact h2{font-size:clamp(40px,6vw,84px);line-height:.95}.contact-links{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.awards{flex-direction:column;gap:14px;display:flex}.award{border:1px solid var(--line);flex-direction:column;display:flex}.award-head{appearance:none;color:inherit;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:14px;width:100%;padding:14px 16px;display:flex}button.award-head{cursor:pointer}button.award-head:hover{background:#ffffff08}.award .mark{object-fit:cover;border:1px solid var(--line);flex:none;width:58px;height:58px}.award-text{flex-direction:column;flex:auto;gap:2px;display:flex}.award b{font-family:var(--display);font-size:16px}.award span{color:var(--muted);font-size:14px}.award .chev{width:15px;height:15px;color:var(--muted);flex:none;transition:transform .18s}.award.open .chev{transform:rotate(180deg)}.award-more{flex-direction:column;gap:10px;padding:0 16px 14px;display:flex}.award-more p{color:var(--ink-2);font-size:13.5px;line-height:1.5}.award-shots{flex-wrap:wrap;gap:8px;display:flex}.award-shots button{appearance:none;border:1px solid var(--line);cursor:zoom-in;background:0 0;padding:0;line-height:0}.award-shots button:hover{border-color:var(--teal)}.award-shots img{object-fit:cover;width:118px;height:88px;display:block}.shot-view{z-index:60;cursor:zoom-out;background:#06080ceb;justify-content:center;align-items:center;padding:5vmin;display:flex;position:fixed;inset:0}.shot-view img{object-fit:contain;border:1px solid var(--line);max-width:100%;max-height:100%}.shot-view>button{border:1px solid var(--line);width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;place-items:center;display:grid;position:absolute;top:18px;right:18px}.shot-view>button svg{width:18px;height:18px}.award-more a{color:var(--teal);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid;align-self:flex-start;font-size:11px}.footer{border-top:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.1em;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:64px;padding-top:24px;font-size:12px;display:flex}@media (width<=900px){.contact-grid{grid-template-columns:1fr}}.overlay{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#07090ef0;flex-direction:column;animation:.2s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.overlay-bar{height:var(--hud-h);font-family:var(--mono);letter-spacing:.16em;color:var(--ember);border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:0 clamp(16px,3vw,40px);font-size:12px;display:flex}.overlay-bar button{color:var(--muted);font-family:var(--mono);letter-spacing:.14em;align-items:center;gap:8px;font-size:12px;display:flex}.overlay-bar button:hover{color:var(--ink)}.overlay-bar svg{width:16px;height:16px}.overlay-body{flex:1;grid-template-columns:minmax(0,1fr) 300px;align-content:start;gap:40px;padding:clamp(24px,5vh,60px) clamp(20px,6vw,96px);display:grid;overflow:auto}.levels-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid;position:relative}.level-card{background:var(--bg-2);text-align:left;border:1px solid #ffffff1f;flex-direction:column;justify-content:space-between;height:190px;padding:18px;transition:border-color .2s,background-color .2s,box-shadow .2s,transform .2s;display:flex;position:relative}.level-card .n{font-family:var(--mono);letter-spacing:.14em;color:var(--muted);font-size:11px}.level-card h3{font-size:26px}.level-card p{color:var(--muted);font-size:13px}.level-card.sel{border:2px solid var(--ember);background:#1a1410;transform:translateY(-4px);box-shadow:0 0 40px #ff7a4540}.level-card.sel .n{color:var(--ember)}.level-card.sel p{color:#d9d4c7}.ninja-cursor{pointer-events:none;z-index:2;image-rendering:auto;background-image:url(/media/assassin-sheet.png);background-repeat:no-repeat;transition:transform .35s cubic-bezier(.3,1.4,.4,1);position:absolute}.overlay-hints{color:var(--muted);font-family:var(--mono);letter-spacing:.14em;flex-wrap:wrap;gap:24px;margin-top:28px;font-size:12px;display:flex}@media (width<=1000px){.overlay-body{grid-template-columns:1fr}}@media (width<=640px){.levels-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.level-card{height:150px}.level-card h3{font-size:20px}}.devpanel{z-index:200;border:1px solid var(--teal);color:var(--teal);font-family:var(--mono);white-space:pre;background:#000c;padding:10px 12px;font-size:11px;line-height:1.6;position:fixed;bottom:12px;left:12px}.reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.2,.8,.2,1);transform:translateY(24px)}.reveal.in-view{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.building-art .slide{transition:none}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}
