:root{--bg:#070708;--bg-2:#0a0a0c;--fg:#ededed;--muted:#ededed8f;--faint:#ededed57;--ghost:#ededed29;--line:#ededed1a;--line-2:#ededed0f;--accent:#ececec;--sans:"Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;--serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--ease:cubic-bezier(.16, 1, .3, 1);--pad:clamp(24px, 5vw, 64px);--maxw:1280px;--gutter:max(var(--pad), calc((100vw - var(--maxw)) / 2 + var(--pad)))}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--fg);font-family:var(--sans);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-weight:400;line-height:1.5;overflow-x:hidden}::selection{background:var(--accent);color:#060606}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}canvas{display:block}.grain{z-index:60;pointer-events:none;opacity:.05;mix-blend-mode:screen;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' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:1s steps(4,end) infinite grain;position:fixed;top:-50%;bottom:-50%;left:-50%;right:-50%}@keyframes grain{0%,to{transform:translate(0)}25%{transform:translate(-4%,3%)}50%{transform:translate(3%,-4%)}75%{transform:translate(-3%,-3%)}}.grain.off{display:none}.cursor-dot,.cursor-ring{z-index:70;pointer-events:none;mix-blend-mode:difference;will-change:transform;border-radius:50%;position:fixed;top:0;left:0}.cursor-dot{background:#fff;width:6px;height:6px;margin:-3px 0 0 -3px}.cursor-ring{width:34px;height:34px;transition:width .25s var(--ease), height .25s var(--ease), margin .25s var(--ease), opacity .25s;border:1px solid #ffffffb3;margin:-17px 0 0 -17px}.cursor-ring.hot{width:56px;height:56px;margin:-28px 0 0 -28px}.no-cursor .cursor-dot,.no-cursor .cursor-ring{display:none}@media (hover:none),(pointer:coarse){.cursor-dot,.cursor-ring{display:none!important}}.wrap{max-width:var(--maxw);padding-left:var(--pad);padding-right:var(--pad);margin:0 auto}.eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--faint);font-size:11px;font-weight:500}.section{padding-top:max(96px,min(14vh,200px));padding-bottom:max(96px,min(14vh,200px));position:relative}.section+.section{border-top:1px solid var(--line-2)}.s-head{align-items:baseline;gap:16px;margin-bottom:max(40px,min(6vw,72px));display:flex}.s-head .idx{font-family:var(--mono);letter-spacing:.16em;color:var(--faint);font-size:11px}.s-head h2{letter-spacing:.02em;color:var(--muted);text-transform:none;font-size:max(13px,min(1.4vw,15px));font-weight:500}.reveal{opacity:0;transform:translateY(26px)}.reveal.in{opacity:1;transition:opacity 1s var(--ease), transform 1s var(--ease);transform:none}[data-d="1"]{transition-delay:70ms}[data-d="2"]{transition-delay:.14s}[data-d="3"]{transition-delay:.21s}[data-d="4"]{transition-delay:.28s}[data-d="5"]{transition-delay:.35s}[data-d="6"]{transition-delay:.42s}@media (prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}.grain{animation:none}}.nav{z-index:50;position:fixed;top:max(14px,min(2vw,22px));left:0;right:0}.nav-inner{max-width:var(--maxw);padding-left:var(--pad);padding-right:var(--pad);justify-content:space-between;align-items:center;gap:14px;margin:0 auto;display:flex}.nav-panel{-webkit-backdrop-filter:blur(14px)saturate(140%);border:1px solid var(--line);transition:background .4s var(--ease), border-color .4s;background:#07070880;border-radius:0;padding:9px 14px}.nav.scrolled .nav-panel{background:#070708b8;border-color:#ededed29}.brand{letter-spacing:-.01em;align-items:center;gap:11px;font-size:14px;display:flex}.brand .glyph{width:26px;height:26px;font-family:var(--mono);color:var(--fg);border:0;border-radius:0;place-items:center;font-size:11px;display:grid;overflow:hidden}.brand .glyph img{width:100%;height:100%;display:block}.brand b{font-weight:500}.nav-links{align-items:center;gap:max(18px,min(3vw,40px));display:flex}.nav-links a{color:var(--muted);transition:color .3s var(--ease);padding:4px 0;font-size:13px;position:relative}.nav-links a:after{content:"";background:var(--accent);width:0;height:1px;transition:width .35s var(--ease);position:absolute;bottom:0;left:0}.nav-links a:hover{color:var(--fg)}.nav-links a:hover:after{width:100%}.nav-links .num{font-family:var(--mono);color:var(--faint);margin-right:5px;font-size:10px}.status{font-family:var(--mono);color:var(--muted);letter-spacing:.04em;align-items:center;gap:8px;font-size:11px;display:flex}.status .dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 0 var(--accent);animation:pulse 2.6s var(--ease) infinite;border-radius:50%}@keyframes pulse{0%{box-shadow:0 0 #ececec80}70%,to{box-shadow:0 0 0 7px #ececec00}}@media (max-width:720px){.nav-links .label-hide,.status{display:none}}.hero{align-items:flex-end;min-height:100svh;display:flex;position:relative;overflow:hidden}.hero-canvas{z-index:0;position:absolute;top:0;bottom:0;left:0;right:0}.hero-canvas:after{content:"";background:radial-gradient(125% 95% at 50% 6%, transparent 26%, #07070873 74%, var(--bg) 100%), linear-gradient(to bottom, #0707088c 0%, #0707081f 20%, transparent 46%, #07070880 82%, var(--bg) 100%);pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.hero-inner{z-index:1;width:100%;padding-top:140px;padding-bottom:max(56px,min(12vh,130px));position:relative}.hero-eyebrow{align-items:center;gap:14px;margin-bottom:26px;display:flex}.hero-eyebrow .eb-flag{background-image:repeating-conic-gradient(var(--ghost) 0% 25%, transparent 0% 50%);background-position:0 0;background-size:8px 8px;flex:none;width:64px;height:8px}.eb-gh{color:inherit;text-decoration:none;transition:color .3s}.eb-gh:hover{color:var(--muted)}.hero h1{letter-spacing:-.035em;text-wrap:balance;max-width:16ch;font-size:max(2rem,min(5.2vw,4.1rem));font-weight:500;line-height:1.02}.hero h1 .dim{color:var(--faint)}.hero-sub{max-width:46ch;color:var(--muted);letter-spacing:-.005em;margin-top:26px;font-size:max(15px,min(1.5vw,17px));line-height:1.55}.hero-meta{flex-wrap:wrap;align-items:flex-end;gap:30px 56px;margin-top:44px;display:flex}.hero-meta .mi{flex-direction:column;gap:7px;display:flex}.hero-meta .mi span{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:10.5px}.hero-meta .mi b{color:var(--fg);letter-spacing:-.01em;font-size:14px;font-weight:400}.scrollcue{left:var(--gutter);z-index:2;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);align-items:center;gap:12px;font-size:10.5px;display:flex;position:absolute;bottom:30px}.scrollcue .bar{background:linear-gradient(var(--ghost), transparent);width:1px;height:38px;position:relative;overflow:hidden}.scrollcue .bar:after{content:"";background:var(--accent);width:1px;height:50%;animation:drop 2.2s var(--ease) infinite;position:absolute;top:-50%;left:0}@keyframes drop{0%{top:-50%}60%,to{top:100%}}@media (max-width:720px){.scrollcue{display:none}}.feat-head-row{grid-template-columns:1fr minmax(200px,260px);align-items:start;gap:max(28px,min(4vw,64px));margin-bottom:44px;display:grid}.feat-top{grid-template-columns:1fr;gap:22px;display:grid}.feat-title{letter-spacing:-.03em;text-wrap:balance;max-width:18ch;font-size:max(1.9rem,min(4.4vw,3.4rem));font-weight:500;line-height:1.04}.feat-desc{max-width:52ch;color:var(--muted);font-size:max(15px,min(1.4vw,16.5px));line-height:1.6}.feat-meta{flex-direction:column;gap:18px;margin-bottom:0;padding:0;display:flex}.feat-meta .cell{flex-direction:column;gap:6px;display:flex}@media (max-width:760px){.feat-head-row{grid-template-columns:1fr;gap:28px}.feat-meta{flex-flow:wrap;gap:18px 0}.feat-meta .cell{flex:160px;min-width:130px}}.feat-meta .cell span{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:10px}.feat-meta .cell b{color:var(--fg);font-size:14px;font-weight:400}.px-bg{z-index:0;pointer-events:none;width:100vw;position:absolute;top:0;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.px-scene{height:max(380px,min(66%,720px));position:absolute;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 54%);mask-image:linear-gradient(#0000 0%,#000 54%)}.px-grade{z-index:2;pointer-events:none;background:linear-gradient(180deg, var(--bg) 0%, #070708a8 24%, #07070833 50%, #0707084d 78%, #07070875 100%);position:absolute;top:0;bottom:0;left:0;right:0}.feat-sec>:not(.px-bg):not(.px-grid){z-index:1;position:relative}.feat-content{will-change:transform;transform:translate3d(0, calc(var(--sp,0) * 210px), 0)}.px-grid{transform:translate(-50%, calc(var(--sp,0) * -34px));z-index:0;pointer-events:none;will-change:transform;background-image:url(/uploads/grid-final.webp);background-position:top;background-repeat:no-repeat;background-size:100% 100%;width:100vw;height:100%;position:absolute;top:0;left:50%}.ph{background:repeating-linear-gradient(135deg, #ededed09 0 2px, transparent 2px 9px), var(--bg-2);place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.ph .ph-lbl{font-family:var(--mono);letter-spacing:.12em;color:var(--faint);text-transform:uppercase;font-size:11px}.tl-sec{border-bottom:1px solid var(--line-2);max-width:none;padding:0}.tl-sec+.section{border-top:none}.tl-scroll{scrollbar-width:thin;scrollbar-color:var(--ghost) transparent;padding-top:0;padding-bottom:0;overflow:auto hidden}.tl-scroll::-webkit-scrollbar{height:8px}.tl-scroll::-webkit-scrollbar-thumb{background:var(--ghost);background-clip:padding-box;border:2px solid #0000;border-radius:0}.tl-nodes{grid-template-columns:repeat(7,1fr);min-width:1080px;display:grid;position:relative}.tl-track{z-index:0;background:linear-gradient(to right, var(--line) 0%, var(--ghost) 52%, var(--accent) 100%);height:1px;position:absolute;top:37px;left:0;right:0;transform:translateY(-.5px)}.tl-node{grid-template-rows:auto 14px 1fr;align-content:start;padding:0 18px 25px;display:grid;position:relative}.tl-node:first-child{padding-left:2px}.tl-node+.tl-node{border-left:1px solid var(--line-2)}.tl-month{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);white-space:nowrap;align-self:start;padding-top:10px;padding-bottom:3px;font-size:11px;font-weight:500}.tl-month .c{color:var(--muted);margin-right:7px}.tl-dotrow{z-index:1;align-items:center;display:flex;position:relative}.tl-dot{background:var(--bg);border:1.5px solid var(--faint);width:10px;height:10px;box-shadow:0 0 0 4px var(--bg);border-radius:50%}.tl-node.hot .tl-dot{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px var(--bg), 0 0 0 7px #ececec21}.tl-node.cap .tl-dot{border-style:dashed;border-color:var(--faint);background:0 0;width:8px;height:8px}.tl-body{flex-direction:column;padding-top:18px;display:flex}.tl-name{letter-spacing:-.015em;color:var(--fg);text-wrap:balance;margin-bottom:7px;font-size:15px;font-weight:500;line-height:1.25}.tl-node.cap .tl-name{color:var(--muted)}.tl-desc{color:var(--muted);text-wrap:pretty;margin-bottom:14px;font-size:12.5px;line-height:1.5}.tl-code{font-family:var(--mono);color:var(--faint);font-size:11px}.tl-stat{flex-direction:column;gap:4px;margin-top:auto;display:flex}.tl-stat .val{font-family:var(--mono);color:var(--muted);letter-spacing:-.005em;font-size:12px;font-weight:500;line-height:1.3}.tl-node.hot .tl-stat .val{color:var(--accent)}.tl-stat .lbl{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-size:9.5px}.skills-grid{grid-template-columns:repeat(3,1fr);gap:max(18px,min(2vw,28px));display:grid}.skill-col{isolation:isolate;border:1px solid var(--line);min-height:max(460px,min(56vh,600px));transition:border-color .4s var(--ease), transform .5s var(--ease);background:#060b09;border-radius:0;flex-direction:column;justify-content:flex-end;padding:max(24px,min(2.4vw,34px));display:flex;position:relative;overflow:hidden}.skill-fig{z-index:0;background-image:var(--cap-bg);transition:transform 1.1s var(--ease), filter .5s var(--ease);background-position:50% 18%;background-size:cover;position:absolute;top:0;bottom:0;left:0;right:0;transform:scale(1.02)}.skill-col:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(#0000 0%,#060b092e 24%,#060b098c 42%,#050a08db 60%,#050a08f2 78%,#05100a 100%),radial-gradient(120% 60% at 50% 0,#060b094d,#0000 60%);position:absolute;top:0;bottom:0;left:0;right:0}.skill-body{z-index:2;position:relative}.skill-col h3{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg);text-shadow:0 1px 2px #050a08f2,0 2px 14px #050a08d9;border-bottom:1px solid #78f2b84d;margin-bottom:16px;padding-bottom:13px;font-size:11px}.skill-lede{color:#edededc7;letter-spacing:-.005em;text-shadow:0 1px 3px #050a08f2,0 1px 14px #050a08e6;max-width:22ch;margin:-4px 0 16px;font-size:13px;line-height:1.45}.skill-col ul{flex-direction:column;list-style:none;display:flex}.skill-col li{color:#ededed94;letter-spacing:-.01em;transition:color .3s var(--ease), padding-left .35s var(--ease);cursor:default;text-shadow:0 1px 3px #050a08f2,0 1px 12px #050a08d9;align-items:baseline;gap:12px;padding:9px 0;font-size:max(15px,min(1.6vw,17px));display:flex}.skill-col li .mk{font-family:var(--mono);color:#78f2b86b;font-size:10px;transition:color .3s}.skill-col:hover li{color:var(--fg)}.skill-col:hover li .mk{color:#6df0b6}.skill-col li:hover{padding-left:8px}.skill-col:hover{border-color:#78f2b84d}.skill-col:hover .skill-fig{transform:scale(1.05)}@media (max-width:760px){.skills-grid{grid-template-columns:1fr;gap:18px}.skill-col{min-height:420px}}.meteor-canvas{z-index:4;pointer-events:none;mix-blend-mode:screen;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}#skills{position:relative;overflow:hidden}.skills-glow{pointer-events:none;z-index:0;background:radial-gradient(60% 70% at 50% 116%,#4eecae33 0%,#38da9e1c 28%,#2ccc940b 48%,#0000 70%);width:100%;height:72%;position:absolute;bottom:0;left:50%;transform:translate(-50%)}#skills .s-head,#skills .skills-grid,#work>.s-head,#work>.work-feature,#work>.work-more,#work>.work-grid{z-index:1;position:relative}.work-cols{pointer-events:none;z-index:0;width:100vw;position:absolute;top:0;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.work-col{--colw:156px;width:var(--colw);opacity:.55;flex-direction:column;display:flex;position:absolute;top:max(56px,min(9vh,150px));bottom:0}.wc-cap{flex:none;width:100%;height:auto;display:block}.wc-shaft{--fl:#ededed57;background-image:linear-gradient(90deg, transparent calc(11.927% - .5px), var(--fl) calc(11.927% - .5px), var(--fl) calc(11.927% + .5px), transparent calc(11.927% + .5px)), linear-gradient(90deg, transparent calc(16.858% - .5px), var(--fl) calc(16.858% - .5px), var(--fl) calc(16.858% + .5px), transparent calc(16.858% + .5px)), linear-gradient(90deg, transparent calc(27.52% - .5px), var(--fl) calc(27.52% - .5px), var(--fl) calc(27.52% + .5px), transparent calc(27.52% + .5px)), linear-gradient(90deg, transparent calc(33.183% - .5px), var(--fl) calc(33.183% - .5px), var(--fl) calc(33.183% + .5px), transparent calc(33.183% + .5px)), linear-gradient(90deg, transparent calc(44.011% - .5px), var(--fl) calc(44.011% - .5px), var(--fl) calc(44.011% + .5px), transparent calc(44.011% + .5px)), linear-gradient(90deg, transparent calc(48.942% - .5px), var(--fl) calc(48.942% - .5px), var(--fl) calc(48.942% + .5px), transparent calc(48.942% + .5px)), linear-gradient(90deg, transparent calc(59.537% - .5px), var(--fl) calc(59.537% - .5px), var(--fl) calc(59.537% + .5px), transparent calc(59.537% + .5px)), linear-gradient(90deg, transparent calc(64.468% - .5px), var(--fl) calc(64.468% - .5px), var(--fl) calc(64.468% + .5px), transparent calc(64.468% + .5px));flex:auto;width:100%;min-height:0;margin-top:-1px;-webkit-mask-image:linear-gradient(#000 0 64%,#0000 100%);mask-image:linear-gradient(#000 0 64%,#0000 100%)}.work-col--l{left:min(0px, calc(var(--gutter) - var(--colw)))}.work-col--r{right:min(0px, calc(var(--gutter) - var(--colw)));transform:scaleX(-1)}@media (max-width:1080px){.work-cols{display:none}}@media (prefers-reduced-motion:no-preference){.work-col{transition:opacity .8s var(--ease)}}.work-feature{border-top:1px solid var(--line);flex-direction:column;display:flex}.wf{border-bottom:1px solid var(--line);cursor:pointer;transition:padding-left .4s var(--ease);grid-template-columns:46px 1fr auto auto;align-items:center;gap:30px;padding:max(26px,min(3.4vw,42px)) 6px;text-decoration:none;display:grid;position:relative}.wf:hover{padding-left:18px}.wf-idx{font-family:var(--mono);color:var(--faint);align-self:start;padding-top:6px;font-size:11px;transition:color .3s}.wf:hover .wf-idx{color:var(--accent)}.wf-main{flex-direction:column;gap:9px;display:flex}.wf-title{letter-spacing:-.025em;color:var(--muted);transition:color .35s var(--ease);font-size:max(1.5rem,min(3.2vw,2.5rem));font-weight:500}.wf:hover .wf-title{color:var(--fg)}.wf-tag{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:12px}.wf-type{font-family:var(--mono);letter-spacing:.04em;color:var(--faint);justify-self:end;font-size:13px;transition:color .3s}.wf-year{font-family:var(--mono);color:var(--faint);text-align:right;justify-self:end;min-width:56px;font-size:12px;transition:color .3s}.wf:hover .wf-type,.wf:hover .wf-year{color:var(--muted)}.work-more{align-items:center;gap:18px;margin:44px 0 18px;display:flex}.work-more>span:first-child{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-size:11px}.work-more-rail{background:var(--line);flex:1;height:1px}.work-grid{grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:14px;display:grid}.wg{border:1px solid var(--line);cursor:default;flex-direction:column;gap:9px;padding:max(20px,min(2.2vw,28px));text-decoration:none;transition:background .3s,border-color .3s;display:flex;position:relative}.wg:hover{background:var(--bg-2);border-color:var(--line-2,var(--muted))}.wg-year{font-family:var(--mono);color:var(--faint);font-size:11px}.wg-title{letter-spacing:-.02em;color:var(--muted);font-size:max(1.05rem,min(1.9vw,1.4rem));font-weight:500;transition:color .3s}.wg:hover .wg-title{color:var(--fg)}.work-grid--groups{grid-template-columns:repeat(2,1fr)}@media (max-width:720px){.work-grid--groups{grid-template-columns:1fr}}.wg--group{gap:12px;min-height:168px}.wg-items{flex-direction:column;gap:6px;margin:2px 0 0;padding:0;list-style:none;display:flex}.wg-items li{font-family:var(--mono);letter-spacing:.02em;color:var(--faint);padding-left:14px;font-size:12px;line-height:1.45;transition:color .3s;position:relative}.wg-items li:before{content:"";background:var(--muted);width:5px;height:1px;transition:opacity .25s;position:absolute;top:.62em;left:0}.wg-item-name{color:var(--muted);transition:color .3s}.wg-item-desc{color:var(--faint)}.wg--group:hover .wg-items li{color:var(--muted)}.wg--group:hover .wg-item-name{color:var(--fg)}.wg-note{font-family:var(--mono);letter-spacing:.04em;color:var(--faint);font-size:12px}.wg--locked{cursor:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='46'%20height='22'%3E%3Crect%20x='1'%20y='1'%20width='44'%20height='20'%20rx='4'%20fill='%230d0d0d'%20stroke='%2378f2b8'%20stroke-opacity='0.8'/%3E%3Ctext%20x='23'%20y='15.5'%20font-family='monospace'%20font-size='11'%20font-weight='bold'%20letter-spacing='1.5'%20text-anchor='middle'%20fill='%2378f2b8'%3ENDA%3C/text%3E%3C/svg%3E") 4 4,default}.wg--locked.is-hot .wg-title{font-family:var(--mono)}.wg--locked.is-hot .wg-title,.wg--locked.is-hot .wg-item-name,.wg--locked.is-hot .wg-year,.wg--locked.is-hot .wg-items li,.wg--locked.is-hot .wg-item-desc{transition:none}.wg--locked.is-hot .wg-title,.wg--locked.is-hot .wg-item-name{color:#78f2b8d9}.wg--locked.is-hot .wg-year,.wg--locked.is-hot .wg-items li,.wg--locked.is-hot .wg-item-desc{color:#78f2b866}.wg--bloom{overflow:visible}.wg--bloom.is-open{z-index:6;border-color:#78f2b833}.wg--bloom .emit{opacity:0;pointer-events:none;z-index:1;transition:transform .5s var(--ease), opacity .4s ease;position:absolute}.wg--bloom .emits{display:contents}.wg--bloom .panel{background:linear-gradient(#101113,#0c0d0e);border:1px solid #ededed2e;position:relative;overflow:hidden}.wg--bloom .cap{letter-spacing:.14em;text-transform:uppercase;color:var(--faint);white-space:nowrap;font-size:9px;position:absolute}.wg--bloom .emit.top{transition-delay:20ms;bottom:100%;left:50%;transform:translate(-50%,16px)}.wg--bloom.is-open .emit.top{transform:translate(calc(-50% + var(--nx,0px)), calc(-12px + var(--ny,0px)));opacity:1}.wg--bloom .emit.bottom{transition-delay:.1s;top:100%;left:50%;transform:translate(-50%,-16px)}.wg--bloom.is-open .emit.bottom{transform:translate(calc(-50% + var(--nx,0px)), calc(8px + var(--ny,0px)));opacity:1}.wg--bloom .emit.left{transition-delay:60ms;top:50%;right:100%;transform:translate(16px,-50%)}.wg--bloom.is-open .emit.left{transform:translate(calc(-12px + var(--nx,0px)), calc(-50% + var(--ny,0px)));opacity:1}.wg--bloom .emit.right{transition-delay:.14s;top:50%;left:100%;transform:translate(-16px,-50%)}.wg--bloom.is-open .emit.right{transform:translate(calc(12px + var(--nx,0px)), calc(-50% + var(--ny,0px)));opacity:1}@media (hover:none),(pointer:coarse){.wg--bloom .emit{display:none}.wg--bloom.is-open .emits{grid-template-columns:1fr 1fr;align-items:start;gap:12px 10px;margin-top:4px;display:grid}.wg--bloom.is-open .emit.top,.wg--bloom.is-open .emit.left,.wg--bloom.is-open .emit.right,.wg--bloom.is-open .emit.bottom{opacity:1;animation:bloomIn .42s var(--ease) both;display:block;position:static;transform:none}.wg--bloom.is-open .panel,.wg--bloom.is-open .deck{width:100%}.wg--bloom.is-open .emit.left{animation-delay:50ms}.wg--bloom.is-open .emit.right{animation-delay:.1s}.wg--bloom.is-open .emit.bottom{animation-delay:.15s}.wg--bloom.is-open .wg-items li.dir-up{--arrow:"↖"}.wg--bloom.is-open .wg-items li.dir-left{--arrow:"↗"}.wg--bloom.is-open .wg-items li.dir-right{--arrow:"↙"}.wg--bloom.is-open .wg-items li.dir-down{--arrow:"↘"}}@keyframes bloomIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.wg--bloom .air{width:128px;height:74px}.wg--bloom .air .cap{color:#78f2b88c;top:7px;left:8px}.wg--bloom .air .pm{color:var(--fg);font-variant-numeric:tabular-nums;font-size:11px;position:absolute;top:6px;right:8px}.wg--bloom .air .pm b{color:#78f2b8;transition:color .7s}.wg--bloom .particle{opacity:0;will-change:transform, opacity;background:#78f2b8;border-radius:50%;width:3px;height:3px;position:absolute;bottom:-6px}.wg--bloom .air.hi .pm b{color:#ff6b7a}@keyframes bloomRise{0%{opacity:0;transform:translateY(0)translate(0)}12%{opacity:.9}80%{opacity:.55}to{transform:translateY(-74px) translateX(var(--dx,0));opacity:0}}.wg--bloom .deck{width:150px;height:108px;position:relative}.wg--bloom .pcard{width:54px;height:78px;color:var(--fg);transition:box-shadow .4s var(--ease), border-color .4s var(--ease);background:#15171a;border:1px solid #ededed2e;border-radius:6px;padding:6px;font-size:13px;position:absolute;top:4px;left:50%;box-shadow:0 8px 18px #00000080}.wg--bloom .pcard.win{border-color:#78f2b8cc;box-shadow:0 8px 18px #00000080,0 0 18px #78f2b88c}.wg--bloom .pcard .v{font-weight:600}.wg--bloom .pcard .v.red{color:#ff6b7a}.wg--bloom .pcard .s{font-size:14px;position:absolute;bottom:6px;right:6px}.wg--bloom .pcard.c1{transform:translate(-92%)rotate(-9deg)}.wg--bloom .pcard.c2{transform:translate(-8%)rotate(9deg)}.wg--bloom .pcard.c3{z-index:3;opacity:0;transition:transform .3s var(--ease), opacity .3s var(--ease), box-shadow .3s var(--ease);border-color:#ff6b7ad9;top:-3px;left:50%;transform:translate(-50%)translateY(-16px)rotate(2deg)}.wg--bloom .pcard.c3.dealt{opacity:1;transform:translate(-50%)rotate(2deg);box-shadow:0 8px 18px #00000080,0 0 18px #ff6b7a99}.wg--bloom .deck .foot .bustxt{color:#ff6b7a}.wg--bloom .deck .foot{white-space:nowrap;color:var(--faint);font-size:10px;position:absolute;top:90px;left:50%;transform:translate(-50%)}.wg--bloom .deck .foot .cap2{color:#78f2b88c;text-transform:uppercase;letter-spacing:.12em;font-size:9px}.wg--bloom .chat{width:172px;padding:10px 11px 11px}.wg--bloom .chat .cap{color:#ef5d5d;top:8px;right:10px}.wg--bloom .chat .line{align-items:flex-start;gap:8px;margin-top:6px;display:flex}.wg--bloom .chat .av{background:#c42727 url(/assets/works/damian-bot.webp) 50% 30%/150% no-repeat;border-radius:50%;flex:none;width:22px;height:22px;box-shadow:0 0 0 1px #c427278c}.wg--bloom .chat .who{color:#ef5d5d;font-size:11px}.wg--bloom .chat .bub{color:var(--muted);font-size:11px;line-height:1.35}.wg--bloom .chat .bub b{color:var(--fg);font-variant-numeric:tabular-nums}.wg--bloom .chat .ts{color:var(--faint);margin-left:4px;font-size:9px}.wg--bloom .sw{flex-direction:column;gap:9px;width:150px;padding:11px 12px 12px;display:flex}.wg--bloom .sw .srow{justify-content:space-between;align-items:center;display:flex}.wg--bloom .sw .sval{color:var(--fg);font-variant-numeric:tabular-nums;font-size:11px}.wg--bloom .sw .cap{top:8px;left:12px}.wg--bloom .sw .row{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.wg--bloom .sw .lbl{color:var(--muted);font-size:11px}.wg--bloom .sw .toggle{background:#23262b;border-radius:11px;width:38px;height:21px;position:relative}.wg--bloom .sw .knob{width:16px;height:16px;transition:transform .25s var(--ease);background:#cfd2d6;border-radius:50%;position:absolute;top:2.5px;left:2.5px}.wg--bloom .sw.on .knob{transform:translate(17px)}.wg--bloom .sw .state{color:var(--faint);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.wg--bloom .sw.on .state{color:#78f2b88c}@media (prefers-reduced-motion:reduce){.wg--bloom .emit{transition:none}.wg--bloom .particle{animation:none}}.wg--bloom.is-open .wg-items li{padding-left:20px}.wg--bloom.is-open .wg-items li:before{content:var(--arrow,"→");width:auto;height:auto;line-height:1.45;font-family:var(--mono);color:#78f2b8e6;text-shadow:0 0 8px #78f2b880;background:0 0;font-size:12px;font-weight:500;top:0;left:0}.wg--bloom .wg-items li.dir-up{--arrow:"↑"}.wg--bloom .wg-items li.dir-left{--arrow:"←"}.wg--bloom .wg-items li.dir-right{--arrow:"→"}.wg--bloom .wg-items li.dir-down{--arrow:"↓"}@media (prefers-reduced-motion:no-preference){.wg--bloom.is-open .wg-items li.dir-up:before{animation:1.1s ease-in-out infinite arrUp}.wg--bloom.is-open .wg-items li.dir-down:before{animation:1.1s ease-in-out infinite arrDn}.wg--bloom.is-open .wg-items li.dir-left:before{animation:1.1s ease-in-out infinite arrLf}.wg--bloom.is-open .wg-items li.dir-right:before{animation:1.1s ease-in-out infinite arrRt}}@keyframes arrUp{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}@keyframes arrDn{0%,to{transform:translateY(0)}50%{transform:translateY(2.5px)}}@keyframes arrLf{0%,to{transform:translate(0)}50%{transform:translate(-2.5px)}}@keyframes arrRt{0%,to{transform:translate(0)}50%{transform:translate(2.5px)}}@media (max-width:560px){.work-grid{grid-template-columns:1fr}.wf{grid-template-columns:34px 1fr;gap:6px 16px}.wf-type,.wf-year{grid-column:2;justify-self:start}}.work-preview{z-index:40;pointer-events:none;opacity:0;width:320px;transition:opacity .3s var(--ease), transform .4s var(--ease);border:1px solid var(--line);background:var(--bg);border-radius:0;flex-direction:column;display:flex;position:fixed;overflow:hidden;transform:translate(-50%,-50%)scale(.92);box-shadow:0 24px 60px #00000080}.work-preview.show{opacity:1;transform:translate(-50%,-50%)scale(1)}@media (max-width:900px){.work-preview{display:none}}.wp-bars{gap:4px;padding:10px 10px 9px;display:flex}.wp-bar{background:#ededed29;flex:1;height:2px;overflow:hidden}.wp-bar-fill{background:var(--fg);width:0;height:100%;display:block}.wp-bar.done .wp-bar-fill{width:100%}.wp-bar.on .wp-bar-fill{width:100%;animation:linear forwards wpFill}@keyframes wpFill{0%{width:0}to{width:100%}}.wp-media{aspect-ratio:4/3;width:100%;transition:aspect-ratio .38s var(--ease);position:relative;overflow:hidden}.wp-media.portrait{aspect-ratio:3/4}@media (prefers-reduced-motion:reduce){.wp-media{transition:none}}.wp-img{object-fit:cover;transform-origin:50%;will-change:transform;width:100%;height:100%;display:block}@media (prefers-reduced-motion:no-preference){.wp-img[data-pan=a]{animation:7s ease-out both wpKenA}.wp-img[data-pan=b]{animation:7s ease-out both wpKenB}}@keyframes wpKenA{0%{transform:scale(1.005)translate(0)}to{transform:scale(1.07)translate(-1.4%,-1.1%)}}@keyframes wpKenB{0%{transform:scale(1.07)translate(1.4%,1.1%)}to{transform:scale(1.005)translate(0)}}.wp-media .ph{top:0;bottom:0;left:0;right:0}.wp-locked{background:var(--bg-2);place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.wp-noise{font-family:var(--mono);letter-spacing:.22em;color:#78f2b829;word-break:break-all;-webkit-user-select:none;user-select:none;font-size:12px;line-height:1.5;animation:9s linear infinite wpDrift;position:absolute;top:-10%;bottom:-10%;left:-4%;right:-4%}@keyframes wpDrift{0%{transform:translateY(0)}to{transform:translateY(-12%)}}.wp-scan{pointer-events:none;background:linear-gradient(#0000,#78f2b81a 50%,#0000);height:38%;animation:2.6s cubic-bezier(.45,0,.55,1) infinite wpScan;position:absolute;left:0;right:0}@keyframes wpScan{0%{top:-40%}to{top:100%}}.wp-lockwrap{flex-direction:column;align-items:center;gap:12px;display:flex;position:relative}.wp-lock{width:26px;height:22px;position:relative}.wp-lock:before{content:"";border:1.6px solid var(--fg);border-radius:3px;height:15px;position:absolute;bottom:0;left:0;right:0}.wp-lock:after{content:"";border:1.6px solid var(--fg);border-bottom:none;border-radius:8px 8px 0 0;width:15px;height:14px;position:absolute;top:0;left:50%;transform:translate(-50%)}.wp-lock-txt{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:10px}.wp-meta{border-top:1px solid var(--line);background:var(--bg);flex-direction:column;gap:4px;padding:11px 14px 14px;display:flex}.wp-eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:10px}.wp-name{letter-spacing:-.01em;color:var(--fg);font-size:14px;font-weight:500}.wp-desc{font-family:var(--mono);color:var(--muted);font-size:11px;line-height:1.42}.contact{padding-bottom:max(60px,min(9vh,120px))}.contact-top{grid-template-columns:1fr minmax(220px,300px);align-items:center;gap:max(32px,min(6vw,88px));margin-bottom:max(44px,min(6vw,72px));display:grid}.contact-intro{flex-direction:column;align-items:flex-start;display:flex}.contact-intro .contact-mail{margin-bottom:0}.contact-portrait{flex-direction:column;gap:12px;margin:0;display:flex}.cp-frame{border:1px solid var(--line);aspect-ratio:1032/1200;position:relative;overflow:hidden}.cp-frame img{object-fit:cover;filter:contrast(1.02);width:100%;height:100%;transition:filter .6s var(--ease), transform 1.2s var(--ease);display:block}.contact-portrait:hover .cp-frame img{filter:contrast();transform:scale(1.025)}.contact-portrait figcaption{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:12px;font-size:10px;display:flex}.cp-name{color:var(--muted)}.cp-loc{color:var(--faint)}.hud--shot{--hud-inset:7px;--hud-len:13px;--hud-color:var(--faint);z-index:3}@media (max-width:720px){.contact-top{grid-template-columns:1fr;align-items:start;gap:32px}.contact-portrait{max-width:280px}}.contact-lead{letter-spacing:-.035em;max-width:none;font-size:max(2rem,min(5vw,3.75rem));font-weight:500;line-height:1.12}.contact-lead .lead-line{white-space:nowrap}.contact-lead .dim{color:var(--faint)}.contact-lead .cyc{text-align:left;display:inline}.contact-lead .cyc-w{vertical-align:baseline;will-change:opacity, transform, filter;line-height:1;display:inline-block}.contact-lead .cyc-w.is-serif{font-family:var(--serif);letter-spacing:0;font-size:1.32em;font-style:italic;font-weight:600;line-height:.82}.contact-lead .cyc-w.is-mono{font-family:var(--mono);letter-spacing:-.02em;font-size:.82em;font-weight:400}.contact-lead .cyc-w.is-sans{font-family:var(--sans)}.contact-lead .cyc-w.is-out{animation:.76s cubic-bezier(.55,0,.68,.35) both breathe-out}.contact-lead .cyc-w.is-in{animation:1.25s cubic-bezier(.16,.68,.26,1) both breathe-in}@keyframes breathe-out{0%{opacity:1;filter:blur();transform:translateY(0)scale(1)}to{opacity:0;filter:blur(5px);transform:translateY(-.1em)scale(.985)}}@keyframes breathe-in{0%{opacity:0;filter:blur(5px);transform:translateY(.14em)scale(.975)}60%{opacity:1}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.contact-lead .cyc-w.is-out,.contact-lead .cyc-w.is-in{animation:none}}.contact-mail{letter-spacing:-.02em;color:var(--fg);align-items:center;gap:14px;margin:14px 0 56px;font-size:max(1.1rem,min(2.6vw,1.7rem));font-weight:500;display:inline-flex;position:relative}.contact-mail .arrow{transition:transform .4s var(--ease)}.contact-mail:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .45s var(--ease);position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.contact-mail:hover:after{transform:scaleX(1)}.contact-mail:hover .arrow{transform:translate(5px,-5px)}.contact-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:0;display:grid}.cc{border-right:1px solid var(--line-2);flex-direction:column;gap:10px;padding:26px;transition:background .3s;display:flex;position:relative}.cc:first-child{padding-left:0}.cc:last-child{border-right:0;padding-right:0}.cc .k{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:10px}.cc .v{color:var(--fg);letter-spacing:-.01em;align-items:center;gap:8px;font-size:15px;display:inline-flex}.cc a.v{transition:color .3s}.cc a.v:hover{color:var(--accent)}.cv-btn{border:1px solid var(--ghost);color:var(--fg);transition:background .35s var(--ease), border-color .35s, color .35s;border-radius:0;align-self:flex-start;align-items:center;gap:10px;padding:11px 17px;font-size:13px;display:inline-flex;position:relative;overflow:hidden}.cv-btn .ic{transition:transform .4s var(--ease)}.cv-btn:hover{background:var(--accent);border-color:var(--accent);color:#070708}.cv-btn:hover .ic{transform:translateY(2px)}@media (max-width:860px){.contact-grid{grid-template-columns:1fr 1fr}.cc{border-right:0;border-bottom:1px solid var(--line-2);padding:22px 16px}.cc:first-child{padding-left:16px}}@media (max-width:460px){.contact-grid{grid-template-columns:1fr}}.footer{border-top:1px solid var(--line-2);font-family:var(--mono);color:var(--faint);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:40px;padding:30px 0 4px;font-size:11px;display:flex}.footer a{color:var(--muted);transition:color .3s}.footer a:hover{color:var(--fg)}.totop{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.totop:hover{color:var(--fg)}.foot-copy{flex:auto}.foot-actions{flex:none;align-items:center;gap:22px;display:inline-flex}.legal-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font-family:var(--mono);letter-spacing:.04em;color:var(--muted);background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:11px;transition:color .3s;display:inline-flex}.legal-line:hover{color:var(--fg)}.legal-sign{border:1px solid var(--line);width:14px;height:14px;color:var(--faint);place-items:center;font-size:11px;line-height:1;transition:border-color .3s,color .3s;display:inline-grid}.legal-line:hover .legal-sign,.legal-line[aria-expanded=true] .legal-sign{border-color:var(--ghost);color:var(--fg)}.legal-panel{width:100%;transition:grid-template-rows .5s var(--ease);grid-template-rows:minmax(0,0fr);display:grid}.legal-panel.open{grid-template-rows:minmax(0,1fr)}.legal-panel>.legal-inner{opacity:0;min-height:0;transition:opacity .4s var(--ease), transform .5s var(--ease);position:relative;overflow:hidden;transform:translateY(-6px)}.legal-panel.open>.legal-inner{opacity:1;transform:none}.legal-inner{border-top:1px solid var(--line-2);margin-top:22px;padding:46px 30px 36px}.hud--legal{--hud-inset:14px;--hud-len:11px;--hud-color:var(--ghost)}.legal-head{align-items:baseline;gap:14px;margin-bottom:26px;display:flex}.legal-head-t{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:11px}.legal-head-rail{background:var(--line-2);flex:1;min-width:30px;height:1px}.legal-head-meta{font-family:var(--mono);letter-spacing:.04em;color:var(--faint);font-size:10px}.legal-grid{grid-template-columns:repeat(2,1fr);gap:28px 56px;display:grid}.legal-item{grid-template-columns:auto 1fr;align-content:start;gap:8px 14px;display:grid}.legal-item .lg-n{font-family:var(--mono);letter-spacing:.1em;color:var(--ghost);grid-row:1/3;padding-top:2px;font-size:11px}.legal-item h4{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg);font-size:11px;font-weight:500}.legal-item p{color:var(--muted);text-wrap:pretty;max-width:52ch;font-size:12.5px;line-height:1.62}.legal-item p a,.legal-item a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--ghost);text-decoration-color:var(--ghost);text-underline-offset:2px}.legal-stamp{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ghost);margin-top:26px;font-size:10px;display:block}@media (max-width:720px){.legal-grid{grid-template-columns:1fr;gap:22px}.foot-actions{gap:18px}}.mag{will-change:transform}.hud{inset:var(--hud-inset,-6px);pointer-events:none;z-index:5;--hc:var(--hud-color,var(--faint));--hl:var(--hud-len,14px);--ht:1px;background-image:linear-gradient(var(--hc), var(--hc)), linear-gradient(var(--hc), var(--hc)), linear-gradient(var(--hc), var(--hc)), linear-gradient(var(--hc), var(--hc)), linear-gradient(var(--hc), var(--hc)), linear-gradient(var(--hc), var(--hc)), linear-gradient(var(--hc), var(--hc)), linear-gradient(var(--hc), var(--hc));background-repeat:no-repeat;background-size:var(--hl) var(--ht), var(--ht) var(--hl),  var(--hl) var(--ht), var(--ht) var(--hl),  var(--hl) var(--ht), var(--ht) var(--hl),  var(--hl) var(--ht), var(--ht) var(--hl);background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;position:absolute}body:not(.hud-on) .hud{opacity:0}.hud--hero{--hud-inset:clamp(16px, 2.4vw, 30px);--hud-len:20px;--hud-color:var(--faint);z-index:2}.hud--skill{--hud-inset:8px;--hud-len:12px;--hud-color:#78f2b86b;z-index:3}.work-preview .hud{--hud-inset:6px;--hud-len:11px;--hud-color:var(--faint)}.sprog{z-index:45;pointer-events:none;flex-direction:column;align-items:center;gap:13px;display:flex;position:fixed;top:50%;right:max(12px,min(1.8vw,26px));transform:translateY(-50%)}body:not(.hud-on) .sprog{opacity:0}.sprog-pct{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);align-items:baseline;font-size:10px;display:flex}.sprog-pct b{text-align:right;min-width:2ch;font-weight:500}.sprog-pct i{color:var(--faint);margin-left:1px;font-style:normal}.sprog-track{background:var(--line);width:3px;height:max(130px,min(22vh,210px));position:relative}.sprog-track:after{content:"";background-image:repeating-linear-gradient(to bottom, var(--ghost) 0 1px, transparent 1px 18px);width:5px;position:absolute;top:0;bottom:0;left:9px}.sprog-fill{background:var(--accent);height:0%;position:absolute;top:0;left:0;right:0}.sprog-knob{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 3px var(--bg);margin:-3.5px 0 0 -3.5px;position:absolute;top:0;left:50%;transform:rotate(45deg)}.sprog-cap{writing-mode:vertical-rl;font-family:var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--faint);font-size:9px}@media (max-width:980px),(pointer:coarse){.sprog{display:none}}.feat-showcase{position:relative}.head-rail{background-image:repeating-conic-gradient(var(--ghost) 0% 25%, transparent 0% 50%);background-size:10px 10px;flex:1;align-self:center;min-width:40px;height:10px;margin-left:4px;-webkit-mask-image:linear-gradient(90deg,#0000,#000 56px 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 56px 88%,#0000)}body:not(.hud-on) .head-rail{opacity:0}body.hud-on .cv-btn{background-image:repeating-linear-gradient(-45deg,#ededed1f 0 1px,#0000 1px 6px);background-size:200% 100%}.hud--btn{--hud-inset:4px;--hud-len:8px;--hud-color:var(--ghost);z-index:2}@media (prefers-reduced-motion:no-preference){body.hud-on .cv-btn:not(:hover){animation:9s linear infinite hatch-drift}}@keyframes hatch-drift{to{background-position:56px 0}}
