@font-face{font-family:General Sans;src:url(/fonts/general-sans-variable.woff2)format("woff2-variations");font-weight:200 700;font-style:normal;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/general-sans-italic-variable.woff2)format("woff2-variations");font-weight:200 700;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono.woff2)format("woff2");font-weight:400 500;font-style:normal;font-display:swap}:root,:root[data-theme=dark]{--bg:#0b0c0f;--bg-2:#14171c;--bg-3:#1c2026;--fg:#e8e5de;--fg-2:#a6a39b;--fg-3:#857f78;--line:#e8e5de14;--line-2:#e8e5de29;--line-3:#e8e5de4d;--accent:#e8e5de;--shadow-1:0 1px 0 #00000080, 0 30px 60px -20px #0000008c, 0 6px 14px -4px #00000073;color-scheme:dark}:root[data-theme=light]{--bg:#f4f1eb;--bg-2:#ebe7de;--bg-3:#dfdace;--fg:#15161a;--fg-2:#4d4c49;--fg-3:#6e6b65;--line:#14161a14;--line-2:#14161a29;--line-3:#14161a4d;--accent:#15161a;--shadow-1:0 1px 0 #0000000d, 0 24px 60px -24px #0003, 0 6px 14px -4px #0000001a;color-scheme:light}@media (prefers-color-scheme:light){:root[data-theme=system]{--bg:#f4f1eb;--bg-2:#ebe7de;--bg-3:#dfdace;--fg:#15161a;--fg-2:#4d4c49;--fg-3:#6e6b65;--line:#14161a14;--line-2:#14161a29;--line-3:#14161a4d;--accent:#15161a;--shadow-1:0 1px 0 #0000000d, 0 24px 60px -24px #0003, 0 6px 14px -4px #0000001a;color-scheme:light}}:root{--font-sans:"General Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-display:var(--font-sans);--font-body:var(--font-sans);--measure-text:62ch;--measure-wide:1280px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%}body{min-height:100svh;color:var(--fg);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01", "cv11";background-color:var(--bg);place-items:center;font-size:15.5px;font-weight:400;line-height:1.55;transition:color .24s;display:grid;position:relative}:root{--accent-grad-text:linear-gradient(100deg, color-mix(in oklab, var(--accent), white 22%) 0%, var(--accent) 55%, color-mix(in oklab, var(--accent), black 14%) 100%);--accent-grad-button:linear-gradient(180deg, color-mix(in oklab, var(--accent), white 16%) 0%, var(--accent) 55%, color-mix(in oklab, var(--accent), black 18%) 100%);--accent-grad-button-hover:linear-gradient(180deg, color-mix(in oklab, var(--accent), white 26%) 0%, color-mix(in oklab, var(--accent), white 6%) 55%, color-mix(in oklab, var(--accent), black 10%) 100%)}.t-accent-grad{color:#0000;background:var(--accent-grad-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}body:before{content:"";pointer-events:none;z-index:1;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");background-size:240px 240px;position:fixed;inset:0}:root[data-theme=light] body:before{opacity:.05;mix-blend-mode:multiply}@media (prefers-color-scheme:light){:root[data-theme=system] body:before{opacity:.05;mix-blend-mode:multiply}}img,video,svg{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:1.5px solid var(--accent);outline-offset:2px;border-radius:2px}::selection{background:var(--accent);color:var(--bg)}.t-mono{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--fg-3);font-size:10.5px}.em{color:var(--accent)}:where(button,.works-row,.stage-action,.id-name,.id-about,.id-tag a,.footline a,.coverpage-enter,.coverpage-bio a,.passport-stamp-link,.about-extras-story a,.about-now .now-val a,.about-files a,.detail-href,.detail-appbar-back,.detail-actionbar a,.detail-prevnext a,.detail-rule .num.is-back,.detail-back a,.detail-prose a,.palette-row):active,.stage-action.is-primary.stage-action:active,.detail-href.detail-href:active,.passport-stamp-link.passport-stamp-link:active{filter:blur(1.2px);transition:filter 70ms ease-out,transform 70ms ease-out;transform:scale(.97)}@media (prefers-reduced-motion:reduce){:where(button,.works-row,.stage-action,.id-name,.id-about,.id-tag a,.footline a,.coverpage-enter,.coverpage-bio a,.passport-stamp-link,.about-extras-story a,.about-now .now-val a,.about-files a,.detail-href,.detail-appbar-back,.detail-actionbar a,.detail-prevnext a,.detail-rule .num.is-back,.detail-back a,.detail-prose a,.palette-row):active,.stage-action.is-primary.stage-action:active,.detail-href.detail-href:active,.passport-stamp-link.passport-stamp-link:active{filter:none;transform:scale(.985)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.footline{z-index:40;pointer-events:none;background:linear-gradient(to top, var(--bg) 35%, color-mix(in oklab, var(--bg), transparent 50%) 75%, transparent);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);justify-content:space-between;align-items:center;gap:16px;padding:14px 24px 16px;font-size:10px;display:flex;position:fixed;inset:auto 0 0}.footline>*{pointer-events:auto}.footline-left,.footline-right{align-items:center;gap:18px;display:inline-flex}.footline a{color:var(--fg-3);transition:color .16s}.footline a:hover{color:var(--fg)}.footline kbd{font-family:var(--font-mono);border:1px solid var(--line-2);color:var(--fg-2);border-radius:3px;margin-right:4px;padding:1px 5px;font-size:10px}.footline-more{align-items:center;display:none;position:relative}.footline-more-btn{border:1px solid var(--line-2);min-width:28px;height:22px;color:var(--fg-3);font:inherit;cursor:pointer;letter-spacing:.1em;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0 6px;line-height:1;transition:color .16s,border-color .16s,background .16s;display:inline-flex}.footline-more-btn:hover,.footline-more-btn[aria-expanded=true]{color:var(--fg);border-color:var(--fg-3);background:var(--bg-2)}.footline-more-menu{background:var(--bg-2);border:1px solid var(--line-2);min-width:160px;box-shadow:0 8px 24px color-mix(in oklab, var(--bg), transparent 30%);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;z-index:41;border-radius:8px;flex-direction:column;padding:6px;font-size:11px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0}.footline-more-menu[hidden]{display:none}.footline-more-menu a{color:var(--fg-2);border-radius:4px;padding:10px 12px;transition:background .12s,color .12s;display:block}.footline-more-menu a:hover,.footline-more-menu a:focus-visible{background:var(--bg-3);color:var(--fg);outline:none}.footline-now{color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;display:inline-flex}.footline-now a{color:var(--fg-2)}.footline-now a:hover{color:var(--fg)}.footline-now .dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 10px var(--accent);border-radius:50%;animation:2.4s ease-in-out infinite pulse;display:inline-block}.theme-toggle{border:1px solid var(--line-2);border-radius:999px;align-items:center;padding:2px;display:inline-flex}.theme-btn{width:28px;height:28px;color:var(--fg-3);border-radius:999px;place-items:center;transition:background .14s,color .14s;display:inline-grid}.theme-btn:hover{color:var(--fg-2)}.theme-btn[aria-pressed=true]{background:var(--bg-3);color:var(--fg)}.theme-btn svg{width:12px;height:12px;display:block}.index{--chrome:36px;--cap:760px;width:100%;max-width:1120px;height:min(calc(100svh - (var(--chrome) * 2)), var(--cap));grid-template-rows:1fr;grid-template-columns:300px 1fr;gap:clamp(36px,4.5vw,64px);padding:24px;display:grid;overflow:hidden}.index-left{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.index-right{justify-content:stretch;align-items:stretch;min-width:0;min-height:0;display:flex;position:relative}.id{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.id-name-wrap{letter-spacing:-.025em;margin:0;font-size:clamp(28px,3.4vw,36px);font-weight:600;line-height:1.05}.id-name{font-family:var(--font-sans);font-size:inherit;font-weight:inherit;letter-spacing:-.02em;line-height:inherit;color:var(--fg);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;transition:color .16s}.id-name:hover{color:var(--accent)}.id-name:hover .em{color:var(--fg);-webkit-text-fill-color:var(--fg);background:0 0}.id-name .em{color:#0000;background:var(--accent-grad-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:600;transition:color .32s}.id-tag{font-family:var(--font-sans);color:var(--fg-2);max-width:38ch;margin:0;font-size:15.5px;font-weight:400;line-height:1.55}.id-tag a{color:var(--fg);border-bottom:1px solid var(--line-2);transition:border-color .16s}.id-tag a:hover{border-color:var(--accent)}.id-about{font-family:var(--font-sans);letter-spacing:-.005em;color:var(--fg-2);align-self:flex-start;align-items:center;gap:5px;margin-top:6px;font-size:12.5px;font-weight:500;transition:color .14s;display:inline-flex}.id-about:hover{color:var(--fg)}.id-about .ico{font-size:12px;transition:transform .2s;display:inline-block}.id-about:hover .ico{transform:translate(2px)}.works{overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;--fade-top:0px;--fade-bottom:0px;min-height:0;max-height:100%;mask-image:linear-gradient(to bottom, transparent 0, #000 var(--fade-top), #000 calc(100% - var(--fade-bottom)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--fade-top), #000 calc(100% - var(--fade-bottom)), transparent 100%);flex:auto;padding:0;transition:--fade-top .22s,--fade-bottom .22s;position:relative;overflow-y:auto}.works[data-fade-top="1"]{--fade-top:96px}.works[data-fade-bottom="1"]{--fade-bottom:96px}@property --fade-top{syntax:"<length>";inherits:false;initial-value:0}@property --fade-bottom{syntax:"<length>";inherits:false;initial-value:0}.works::-webkit-scrollbar{width:0;height:0;display:none}.works-marker{background:var(--bg-2);border:1px solid var(--line-2);pointer-events:none;opacity:0;transform-origin:0 0;z-index:0;will-change:transform, height;border-radius:999px;height:0;transition:transform .32s cubic-bezier(.32,.72,0,1),height .32s cubic-bezier(.32,.72,0,1),opacity .24s,filter .18s ease-out;position:absolute;top:0;left:0;right:0;transform:translate(0,0)}.works:has(.works-row:active) .works-marker{filter:blur(1.2px);transition:filter 70ms ease-out}.works-row{cursor:pointer;text-align:left;z-index:1;background:0 0;border:1px solid #0000;border-radius:999px;grid-template-columns:1fr auto auto;align-items:center;column-gap:14px;width:100%;margin:1px 0;padding:9px 14px;text-decoration:none;transition:color .16s,filter .18s ease-out,transform .18s ease-out;display:grid;position:relative}.works-row:hover{background:color-mix(in oklab, var(--fg), transparent 94%)}.works-row.is-active{background:var(--bg-2);border-color:var(--line-2)}.works-row.is-active .works-icon{color:var(--accent);opacity:1}.works.is-ready .works-row:hover,.works.is-ready .works-row.is-active{background:0 0;border-color:#0000}.works-title{font-family:var(--font-sans);letter-spacing:-.012em;color:var(--fg);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:500;overflow:hidden}.works-row:not(.is-active) .works-title{color:var(--fg-2)}.works-row:hover .works-title{color:var(--fg)}.works-row.is-note .works-title{font-style:italic;font-weight:450}.works-year{font-family:var(--font-mono);letter-spacing:.04em;color:var(--fg-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:10px}.works-kicker{display:none}.works-icon{font-family:var(--font-mono);color:var(--fg-3);text-align:right;opacity:.55;width:14px;font-size:12px;transition:color .16s,opacity .16s,transform .2s}.works-row:hover .works-icon{opacity:1;color:var(--fg-2)}.works-mark{pointer-events:none;grid-template-columns:1fr auto;column-gap:14px;margin:6px 0 2px;padding:14px 14px 8px;display:grid;position:relative}.works-mark:before{content:"";background:var(--line);height:1px;position:absolute;top:0;left:14px;right:14px}.works-mark .text{font-family:var(--font-sans);color:var(--fg-3);font-size:13px;font-style:normal;font-weight:400;line-height:1.45}.works-mark .works-mark-loc{color:var(--fg-2)}.works-mark .works-mark-link{pointer-events:auto;color:var(--fg-2);border-bottom:1px solid color-mix(in oklab, var(--fg-3), transparent 60%);text-decoration:none;transition:color .12s,border-color .12s}.works-mark .works-mark-link:hover,.works-mark .works-mark-link:focus-visible{color:var(--fg);border-bottom-color:var(--fg-2)}.works-mark .yr{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:10px}.stage{flex:1;grid-template-rows:auto 1fr auto;gap:14px;min-width:0;height:100%;min-height:0;display:grid;position:relative}.stage-canvas{place-items:center;min-height:0;display:grid;position:relative}.stage-art{display:contents}.preview{z-index:1;aspect-ratio:16/10;border:1px solid var(--line);background:var(--bg-2);width:100%;max-width:min(880px,100%);max-height:100%;box-shadow:var(--shadow-1);border-radius:14px;transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .3s;position:relative;overflow:hidden}.preview img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.placeholder{z-index:1;aspect-ratio:16/10;background:var(--bg-2);width:100%;max-width:min(880px,100%);max-height:100%;box-shadow:var(--shadow-1);border-radius:14px;grid-template-rows:1fr auto;padding:clamp(28px,4vw,56px);display:grid;position:relative;overflow:hidden}.placeholder-body{align-self:end;gap:14px;display:grid}.placeholder-title{font-family:var(--font-sans);letter-spacing:-.035em;color:var(--fg);text-wrap:balance;margin:0;font-size:clamp(36px,5vw,76px);font-weight:600;line-height:1}.placeholder-title .em{color:#0000;background:var(--accent-grad-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-right:-.05em;padding-right:.05em;font-weight:600}.placeholder-kicker{font-family:var(--font-sans);color:var(--fg-2);max-width:38ch;margin:0;font-size:clamp(13px,1.2vw,16px);font-weight:400;line-height:1.5}.coverpage{--page-padding:32px;--container-width:1180px;--page-gutter:56px;background:var(--bg);isolation:isolate;flex-direction:column;justify-content:center;width:100%;display:flex;position:relative}.coverpage-pad{width:100%;padding:0 var(--page-padding);z-index:1;position:relative}.coverpage-container{width:100%;max-width:var(--container-width);margin:0 auto}.coverpage-spread{grid-template-columns:1fr 1fr;align-items:stretch;min-height:min(100svh - 56px,760px);display:grid;position:relative}.coverpage-page{flex-direction:column;min-width:0;display:flex}.coverpage-verso{padding-right:var(--page-gutter);justify-content:center;gap:18px}.coverpage-name{font-family:var(--font-sans);letter-spacing:-.045em;color:var(--fg);flex-direction:column;margin:0;font-size:clamp(48px,6.4vw,92px);font-weight:300;line-height:.95;display:flex}.coverpage-name .given{color:var(--fg-2);font-weight:200}.coverpage-name .family{color:var(--fg);margin-left:-.04em;font-weight:500}.coverpage-name .period{color:#0000;background:var(--accent-grad-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.coverpage-role{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--fg);margin:8px 0 0;font-size:clamp(15px,1.3vw,17px);font-weight:500}.coverpage-meta{font-family:var(--font-sans);color:var(--fg-3);letter-spacing:-.005em;margin:0;font-size:14.5px;font-weight:450}.coverpage-bio{font-family:var(--font-sans);color:var(--fg-2);max-width:38ch;margin:6px 0 0;font-size:16px;line-height:1.55}.coverpage-bio a{color:var(--fg);border-bottom:1px solid var(--line-2);transition:border-color .16s}.coverpage-bio a:hover{border-color:var(--accent)}.coverpage-actions{align-items:center;gap:14px;margin-top:8px;display:flex}.coverpage-enter{font-family:var(--font-sans);letter-spacing:-.005em;color:var(--fg);border:1px solid var(--line-2);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;transition:background .16s,color .16s,border-color .16s;display:inline-flex}.coverpage-enter:hover{background:var(--accent-grad-button);color:var(--bg);box-shadow:inset 0 1px 0 color-mix(in oklab, var(--accent), white 38%), 0 12px 28px -12px color-mix(in oklab, var(--accent), black 18%);background-clip:padding-box;border-color:#0000}.coverpage-enter .ico{transition:transform .2s}.coverpage-enter:hover .ico{transform:translate(2px)}.coverpage-hint{font-family:var(--font-sans);color:var(--fg-3);font-size:12.5px;font-weight:450}.coverpage-hint kbd{font-family:var(--font-mono);border:1px solid var(--line-2);color:var(--fg-2);letter-spacing:.05em;border-radius:4px;margin-left:2px;padding:2px 6px;font-size:10.5px}.coverpage-recto{padding-left:var(--page-gutter);justify-content:center}.coverpage-recto--passport{align-items:stretch}.passport{border-left:1px solid var(--line-2);flex-direction:column;justify-content:center;gap:18px;width:100%;padding-left:clamp(20px,3vw,40px);display:flex}.passport-list{gap:clamp(14px,1.6vw,20px);margin:0;padding:0;list-style:none;display:grid}.passport-stamp{position:relative}.passport-stamp-link{color:inherit;border-radius:2px;grid-template-columns:minmax(96px,max-content) 1fr;align-items:baseline;column-gap:clamp(16px,2vw,28px);padding:4px 0;transition:color .16s,transform .16s;display:grid}.passport-stamp-link:hover{transform:translate(2px)}.passport-stamp-link:hover .passport-year,.passport-stamp-link:hover .passport-project{color:var(--accent)}.passport-meta{font-family:var(--font-mono);align-items:baseline;gap:12px;display:inline-flex}.passport-year{letter-spacing:.02em;color:var(--fg);font-feature-settings:"tnum" 1, "lnum" 1;font-size:15px;transition:color .16s}.passport-code{letter-spacing:.2em;color:var(--fg-3);font-size:10px}.passport-body{flex-direction:column;gap:2px;min-width:0;display:flex}.passport-project{font-family:var(--font-sans);letter-spacing:-.005em;color:var(--fg);font-size:15px;font-weight:500;transition:color .16s}.passport-note{font-family:var(--font-sans);color:var(--fg-3);font-size:13px;line-height:1.45}@media (width<=720px){.passport{border-left:0;gap:14px;padding-left:0}.passport-list{gap:14px}.passport-stamp-link{grid-template-columns:minmax(86px,max-content) 1fr;column-gap:16px}.passport-year,.passport-project{font-size:14px}.passport-note{font-size:12.5px}}@media (width<=980px){.coverpage{--page-gutter:32px}.coverpage-name{font-size:clamp(44px,7vw,72px)}}@media (width<=720px){.coverpage{--page-padding:24px;--page-gutter:0px}.coverpage-spread{grid-template-columns:1fr;row-gap:28px;min-height:calc(100svh - 96px)}.coverpage-verso,.coverpage-recto{padding-left:0;padding-right:0}}.cover{z-index:1;aspect-ratio:16/10;background:var(--bg-2);width:100%;max-width:min(880px,100%);max-height:100%;box-shadow:var(--shadow-1);isolation:isolate;border-radius:14px;grid-template-columns:5fr 7fr;display:grid;position:relative;overflow:hidden}.cover:after{content:"";pointer-events:none;background:radial-gradient(ellipse at 100% 0%, color-mix(in oklab, var(--accent), transparent 86%) 0%, transparent 55%), radial-gradient(ellipse at 0% 100%, color-mix(in oklab, var(--accent), transparent 92%) 0%, transparent 60%);z-index:0;position:absolute;inset:0}.cover-portrait{z-index:1;width:100%;height:100%;position:relative;overflow:hidden}.cover-portrait img{object-fit:cover;filter:saturate(1.05)contrast(1.02);width:100%;height:100%;display:block}.cover-portrait:after{content:"";background:linear-gradient(90deg, transparent 70%, var(--bg-2) 100%);pointer-events:none;position:absolute;inset:0}.cover-text{z-index:1;align-content:space-between;gap:18px;padding:clamp(22px,3vw,38px) clamp(26px,3.5vw,44px);display:grid;position:relative}.cover-eyebrow{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);margin:0;font-size:10.5px}.cover-headline{font-family:var(--font-sans);letter-spacing:-.035em;color:var(--fg);text-wrap:balance;margin:0;font-size:clamp(28px,3.4vw,48px);font-weight:600;line-height:1.02}.cover-headline .em{color:var(--accent);font-weight:600}.cover-bio{font-family:var(--font-sans);color:var(--fg-2);max-width:36ch;margin:0;font-size:clamp(13px,1.05vw,14.5px);line-height:1.55}.cover-bio a{color:var(--fg);border-bottom:1px solid var(--line-2);transition:border-color .16s}.cover-bio a:hover{border-color:var(--accent)}.cover-hint{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);margin:0;font-size:10.5px}.cover-hint kbd{font-family:var(--font-mono);border:1px solid var(--line-2);color:var(--fg-2);background:color-mix(in oklab, var(--bg-2), transparent 30%);border-radius:3px;margin:0 1px;padding:1px 5px;font-size:10px}.stage[data-mode=cover] .stage-foot{display:none}.stage-foot{grid-template-columns:1fr auto;align-items:end;gap:24px;display:grid}.stage-foot[data-has-cover="0"] .stage-text{display:none}.stage-foot[data-has-cover="0"]{grid-template-columns:1fr auto;justify-items:end}.stage-text{gap:6px;max-width:56ch;display:grid}.stage-title{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--fg);margin:0;font-size:18px;font-weight:600;line-height:1.2}.stage-title .em{color:#0000;background:var(--accent-grad-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:600}.stage-kicker{font-family:var(--font-sans);color:var(--fg-2);margin:0;font-size:14.5px;font-weight:400;line-height:1.5}.stage-signal{font-family:var(--font-sans);color:var(--fg);max-width:62ch;margin:0;font-size:14.5px;font-weight:450;line-height:1.45}.stage-actions{gap:8px;display:inline-flex}.stage-action{font-family:var(--font-sans);letter-spacing:-.005em;text-transform:none;color:var(--fg-2);border:1px solid var(--line-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:500;transition:color .16s,border-color .16s,background .16s,filter .18s ease-out,transform .18s ease-out;display:inline-flex}.stage-action .ico{font-family:var(--font-mono);opacity:.7;margin-left:1px;font-size:11px}.stage-action:hover{color:var(--fg);background:var(--bg-2);border-color:var(--line-3)}.stage-action:hover .ico{opacity:1}.stage-action.is-primary{color:var(--bg);background:var(--accent-grad-button);box-shadow:inset 0 1px 0 color-mix(in oklab, var(--accent), white 38%), 0 10px 28px -12px color-mix(in oklab, var(--accent), black 18%);background-clip:padding-box;border-color:#0000;transition:background .2s,box-shadow .2s,transform .16s,filter .18s ease-out}.stage-action.is-primary .ico{opacity:.9}.stage-action.is-primary:hover{color:var(--bg);background:var(--accent-grad-button-hover);box-shadow:inset 0 1px 0 color-mix(in oklab, var(--accent), white 48%), 0 14px 32px -12px color-mix(in oklab, var(--accent), black 14%);filter:brightness(1.08);background-clip:padding-box;border-color:#0000;transform:translateY(-1px)}.preview.is-leaving,.placeholder.is-leaving{opacity:0;transform:translateY(6px)scale(.992)}.preview.is-entering,.placeholder.is-entering{opacity:0;transform:translateY(-6px)scale(.992)}@media (width<=960px){.index{height:auto;max-height:none;min-height:calc(100svh - (var(--chrome) * 2));grid-template-rows:auto auto;grid-template-columns:1fr;gap:24px;padding:24px 20px;overflow:visible}.index-left{border-bottom:1px solid var(--line);padding-bottom:20px}.index-right{min-height:60vh}.stage-foot{grid-template-columns:1fr}.stage-actions{flex-wrap:wrap}.footline{gap:8px;padding:12px 18px 14px}.footline-left{display:none}.footline-right{gap:12px}.footline-clock{display:none}.footline-more{display:inline-flex}.footline{justify-content:flex-end}.works{max-height:clamp(280px,50vh,460px)}}@media (width<=720px){body{place-items:initial;display:block}.index{grid-template-rows:auto 1fr;grid-template-columns:1fr;gap:0;max-width:none;height:auto;min-height:100svh;padding:0;overflow:visible}.index-left{border-bottom:0;padding:0}.index-right{display:none}.id{padding:calc(env(safe-area-inset-top,0px) + 24px) 22px 14px;gap:6px;margin-bottom:0}.id-name-wrap{letter-spacing:-.03em;font-size:clamp(34px,9vw,44px);line-height:1}.id-tag{display:none}.id-about{margin-top:4px;font-size:13.5px}.works{max-height:none;padding:8px 0 calc(env(safe-area-inset-bottom,0px) + 80px);border-top:1px solid var(--line);margin-top:14px;overflow-y:visible;-webkit-mask-image:none;mask-image:none}.works[data-fade-top="1"]{--fade-top:0px}.works[data-fade-bottom="1"]{--fade-bottom:0px}.works-marker{display:none}.works-row{border:0;border-bottom:1px solid var(--line);border-radius:0;grid-template:"title year icon""kicker year icon"/1fr auto auto;align-items:center;gap:4px 12px;min-height:64px;padding:16px 22px;display:grid}.works-row:hover,.works-row.is-active{border-bottom-color:var(--line);background:0 0}.works-row:active{background:color-mix(in oklab, var(--fg), transparent 92%)}.works-title{color:var(--fg);letter-spacing:-.012em;grid-area:title;font-size:16.5px;font-weight:600;line-height:1.25}.works-row:not(.is-active) .works-title{color:var(--fg)}.works-kicker{font-family:var(--font-sans);color:var(--fg-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-area:kicker;font-size:13.5px;font-weight:400;line-height:1.35;display:-webkit-box;overflow:hidden}.works-year{color:var(--fg-3);grid-area:year;align-self:center;font-size:11.5px}.works-icon{color:var(--fg-3);opacity:1;grid-area:icon;align-self:center;width:14px;font-size:14px}.works-mark{z-index:5;background:color-mix(in oklab, var(--bg), transparent 8%);-webkit-backdrop-filter:saturate(140%)blur(12px);border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;height:44px;margin:0;padding:0 22px;position:sticky;top:0}.works-mark:before{display:none}.works-mark .text{font-family:var(--font-sans);color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:11.5px;font-weight:500;overflow:hidden}.works-mark .yr{align-self:center;font-size:10.5px}.footline{padding:12px 18px calc(env(safe-area-inset-bottom,0px) + 14px)}.footline-now{display:none}}.about-extras{width:100%;padding:clamp(56px, 9vw, 112px) var(--page-padding,32px) clamp(80px, 9vw, 128px);border-top:1px solid var(--line-2)}.about-extras-inner{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start;gap:clamp(40px,6vw,96px);max-width:1180px;margin:0 auto;display:grid}.about-extras-col h2{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);margin:0 0 16px;font-size:10px;font-weight:500}.about-extras-story p{font-family:var(--font-sans);color:var(--fg-2);max-width:60ch;margin:0 0 18px;font-size:16px;line-height:1.65}.about-extras-story p:last-child{margin-bottom:0}.about-extras-story a{color:var(--fg);border-bottom:1px solid var(--line-2);padding-bottom:1px;transition:border-color .16s,color .16s}.about-extras-story a:hover{color:var(--accent);border-color:var(--accent)}.about-extras-side{gap:clamp(32px,4vw,56px);display:grid}.about-extras-block{display:block}.about-build{font-family:var(--font-sans);color:var(--fg-2);max-width:44ch;margin:0;font-size:13.5px;line-height:1.6}.about-now{gap:10px;margin:0;padding:0;list-style:none;display:grid}.about-now li{font-family:var(--font-sans);grid-template-columns:80px 1fr;align-items:baseline;gap:14px;font-size:14px;line-height:1.5;display:grid}.about-now .now-key{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);font-size:9.5px}.about-now .now-val{color:var(--fg)}.about-now .now-val a{color:var(--fg);border-bottom:1px solid var(--line-2);padding-bottom:1px;transition:border-color .16s,color .16s}.about-now .now-val a:hover{color:var(--accent);border-color:var(--accent)}.about-files{gap:8px;margin:0;padding:0;list-style:none;display:grid}.about-files li{font-family:var(--font-mono);align-items:baseline;gap:12px;font-size:12px;display:flex}.about-files li a{color:var(--fg);border-bottom:1px solid var(--line-2);letter-spacing:.02em;padding-bottom:1px;transition:border-color .16s,color .16s}.about-files li a:hover{color:var(--accent);border-color:var(--accent)}.about-files .t-mute{color:var(--fg-3);letter-spacing:.06em;text-transform:uppercase;font-size:11px}@media (width<=860px){.about-extras-inner{grid-template-columns:1fr;gap:48px}}@media (width<=480px){.about-now li{grid-template-columns:72px 1fr;gap:10px;font-size:13.5px}}.detail{max-width:var(--measure-wide);--accent-grad-text:linear-gradient(100deg, color-mix(in oklab, var(--accent), white 22%) 0%, var(--accent) 55%, color-mix(in oklab, var(--accent), black 14%) 100%);--accent-grad-button:linear-gradient(180deg, color-mix(in oklab, var(--accent), white 16%) 0%, var(--accent) 55%, color-mix(in oklab, var(--accent), black 18%) 100%);--accent-grad-button-hover:linear-gradient(180deg, color-mix(in oklab, var(--accent), white 26%) 0%, color-mix(in oklab, var(--accent), white 6%) 55%, color-mix(in oklab, var(--accent), black 10%) 100%);margin:0 auto;padding:96px 32px}.detail-rule{border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);grid-template-columns:auto 1fr auto;align-items:baseline;gap:24px;margin-bottom:clamp(40px,6vh,72px);padding-bottom:14px;font-size:10.5px;display:grid}.detail-rule .meta{font-family:var(--font-sans);text-transform:none;letter-spacing:0;color:var(--fg-2);font-size:13px;font-weight:400}.detail-rule .tag{text-align:right}.detail-rule .num.is-back{color:var(--fg-3);align-items:baseline;gap:.35em;transition:color .16s;display:inline-flex}.detail-rule .num.is-back:hover{color:var(--fg)}.detail-rule .back-arrow{transition:transform .2s;display:inline-block}.detail-rule .num.is-back:hover .back-arrow{transform:translate(-2px)}.detail-rule .num-divider{opacity:.55}.detail-rule .num-id{color:inherit}.detail-cover{aspect-ratio:16/10;border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:14px;margin:0 0 clamp(40px,6vh,72px);overflow:hidden}.detail-cover img{object-fit:cover;width:100%;height:100%;display:block}.detail-mast{margin-bottom:clamp(40px,6vh,72px)}.detail-title{font-family:var(--font-sans);letter-spacing:-.04em;text-wrap:balance;overflow-wrap:anywhere;min-width:0;max-width:18ch;color:var(--fg);margin:0 0 14px;font-size:clamp(40px,7vw,96px);font-weight:600;line-height:1}.detail-title em,.detail-title .em{color:#0000;background:var(--accent-grad-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-right:-.06em;padding-right:.06em;font-style:normal;font-weight:600}.detail-kicker{font-family:var(--font-sans);color:var(--fg-2);max-width:40ch;margin:0;font-size:clamp(16px,1.6vw,20px);font-weight:400;line-height:1.4}.detail-solved{font-family:var(--font-sans);color:var(--fg);max-width:54ch;margin:18px 0 0;font-size:clamp(17px,1.5vw,22px);font-weight:450;line-height:1.45}.detail-grid{grid-template-columns:minmax(0,1.85fr) minmax(260px,.75fr);align-items:start;gap:clamp(32px,5vw,64px);display:grid}.detail-prose{font-family:var(--font-sans);max-width:min(82ch,100%);color:var(--fg);font-size:16px;line-height:1.7}.detail-prose p{margin:0 0 1em}.detail-prose p+p{margin-top:1em}.detail-prose h2{font-family:var(--font-sans);letter-spacing:-.015em;margin:1.8em 0 .5em;font-size:24px;font-weight:600;line-height:1.25}.detail-prose h3{font-family:var(--font-sans);color:var(--fg);letter-spacing:-.01em;margin:1.4em 0 .4em;font-size:19px;font-weight:500}.detail-prose blockquote{border-left:2px solid var(--accent);font-family:var(--font-sans);color:var(--fg);margin:1.4em 0;padding-left:18px;font-size:16px;font-weight:400;line-height:1.5}.detail-prose ul,.detail-prose ol{margin:1em 0;padding-left:22px}.detail-prose li{margin-bottom:.4em;list-style:outside}.detail-prose strong{font-weight:600}.detail-prose a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}.detail-prose code{font-family:var(--font-mono);background:var(--bg-2);border:1px solid var(--line);border-radius:3px;padding:1px 5px;font-size:12.5px}.detail-prose figure{margin:1.8em 0}.detail-prose img,.detail-prose video{background:var(--bg-2);border-radius:8px;width:100%;height:auto;margin:1.8em 0;display:block}.detail-prose figure img,.detail-prose figure video{margin:0}.detail-prose:has(>p>img[src*="/assets/projects/signal-news/"]){grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;display:grid}.detail-prose:has(>p>img[src*="/assets/projects/signal-news/"])>*{grid-column:1/-1}.detail-prose:has(>p>img[src*="/assets/projects/signal-news/"])>p:has(>img[src*="/assets/projects/signal-news/"]){grid-column:auto;margin:1.4em 0 0}.detail-prose:has(>p>img[src*="/assets/projects/signal-news/"])>p:has(>img[src*="/assets/projects/signal-news/"]) img{width:100%;height:auto;margin:0}.detail-prose:has(>p>img[src*="/assets/projects/ave/"]){grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;display:grid}.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>*{grid-column:1/-1}.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src*="/assets/projects/ave/"]){aspect-ratio:1;background:#050608;border:1px solid #ffffff14;border-radius:8px;grid-column:auto;place-items:center;margin:1.4em 0 0;padding:16px;display:grid;overflow:hidden}.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src*="/assets/projects/ave/"]) img{object-fit:contain;background:0 0;width:100%;height:100%;margin:0}.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src$=ave-visual-analysis\.webp]){aspect-ratio:auto;background:0 0;grid-column:1/-1}.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src$=ave-editor-overview\.webp]){aspect-ratio:auto;grid-column:1/-1}.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src$=ave-editor-overview\.webp]) img{height:auto}.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src$=ave-sequence-settings\.webp]),.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src$=ave-ai-setup\.webp]){aspect-ratio:auto;grid-column:1/-1;padding:0}.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src$=ave-sequence-settings\.webp]) img,.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src$=ave-ai-setup\.webp]) img{height:auto}.detail-prose img[src$=ave-visual-analysis\.webp]{background:var(--bg-2);max-width:min(100%,560px);height:auto;margin-inline:auto}.detail-prose img[src$=icered-platform-vertical\.webp]{object-fit:contain;background:0 0;max-width:min(100%,680px);height:auto;margin-inline:auto}.detail-prose figcaption{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--fg-2);margin-top:8px;font-size:11.5px}.detail-aside{flex-direction:column;gap:28px;display:flex;position:sticky;top:96px}.detail-credits{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:6px 14px;margin:0;padding-top:14px;display:grid}.detail-credits dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-top:6px;font-size:9.5px}.detail-credits dd{font-family:var(--font-sans);color:var(--fg);margin:6px 0 0;font-size:13px;font-weight:500}.detail-credits dd.palette-credit{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.palette-swatch{border:1px solid var(--line-2);border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.palette-credit-name{color:var(--fg);font-weight:500}.palette-credit-hex{font-family:var(--font-mono);letter-spacing:.04em;color:var(--fg-3);font-feature-settings:"tnum";font-size:10.5px}.detail-pull{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--accent);text-wrap:balance;margin:0;font-size:clamp(18px,1.8vw,22px);font-weight:500;line-height:1.35}.detail-pull:before{content:"“";opacity:.7;margin-bottom:8px;font-size:1.4em;line-height:.5;display:block}.detail-href{font-family:var(--font-sans);letter-spacing:-.005em;text-transform:none;color:var(--bg);background:var(--accent-grad-button);width:fit-content;box-shadow:inset 0 1px 0 color-mix(in oklab, var(--accent), white 38%), 0 10px 28px -12px color-mix(in oklab, var(--accent), black 18%);background-clip:padding-box;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:500;transition:background .2s,box-shadow .2s,transform .16s,filter .18s ease-out;display:inline-flex}.detail-href:hover{background:var(--accent-grad-button-hover);box-shadow:inset 0 1px 0 color-mix(in oklab, var(--accent), white 48%), 0 14px 32px -12px color-mix(in oklab, var(--accent), black 14%);background-clip:padding-box;transform:translateY(-1px)}.detail-prevnext{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:24px;margin-top:clamp(72px,12vh,120px);padding-top:24px;display:grid}.detail-prevnext a{color:var(--fg-2);flex-direction:column;gap:6px;transition:color .16s;display:flex}.detail-prevnext a:hover{color:var(--fg)}.detail-prevnext .next{text-align:right;align-items:flex-end}.detail-prevnext .label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);font-size:9.5px}.detail-prevnext .name{font-family:var(--font-sans);letter-spacing:-.005em;font-size:16px;font-weight:500}.detail-prevnext a:hover .name{color:var(--accent)}.detail-back{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-top:28px;font-size:10.5px}.detail-back a{color:var(--fg-3);transition:color .16s}.detail-back a:hover{color:var(--fg)}@media (width<=900px){.detail{padding:88px 20px 80px}.detail-grid{grid-template-columns:1fr;gap:32px}.detail-prose:has(>p>img[src*="/assets/projects/signal-news/"]){grid-template-columns:1fr}.detail-prose:has(>p>img[src*="/assets/projects/signal-news/"])>p:has(>img[src*="/assets/projects/signal-news/"]){grid-column:1/-1}.detail-prose:has(>p>img[src*="/assets/projects/ave/"]){grid-template-columns:1fr}.detail-prose:has(>p>img[src*="/assets/projects/ave/"])>p:has(>img[src*="/assets/projects/ave/"]){grid-column:1/-1}.detail-aside{position:static}.detail-prevnext{grid-template-columns:1fr;gap:16px}.detail-prevnext .next{text-align:left;align-items:flex-start}}.detail-appbar,.detail-actionbar{display:none}@media (width<=720px){.detail-appbar{z-index:30;padding:calc(env(safe-area-inset-top,0px) + 10px) 14px 10px;background:color-mix(in oklab, var(--bg), transparent 12%);-webkit-backdrop-filter:saturate(140%)blur(14px);border-bottom:1px solid #0000;grid-template-columns:minmax(0,auto) 1fr minmax(0,auto);align-items:center;column-gap:14px;transition:border-color .2s,background .2s;display:grid;position:sticky;top:0}.detail-appbar.is-titled{border-bottom-color:var(--line)}.detail-appbar-back{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--accent);border-radius:6px;align-items:center;gap:2px;padding:8px 8px 8px 4px;font-size:15px;font-weight:500;transition:background .14s;display:inline-flex}.detail-appbar-back .ico{margin-top:-2px;margin-right:1px;font-size:22px;line-height:1}.detail-appbar-back:active{background:color-mix(in oklab, var(--accent), transparent 88%)}.detail-appbar-title{font-family:var(--font-sans);letter-spacing:-.012em;color:var(--fg);text-align:center;white-space:nowrap;text-overflow:ellipsis;opacity:0;font-size:15px;font-weight:600;transition:opacity .2s;overflow:hidden}.detail-appbar.is-titled .detail-appbar-title{opacity:1}.detail-appbar-spacer{width:56px}.detail-rule{display:none}.detail{padding:18px 20px calc(env(safe-area-inset-bottom,0px) + 96px)}.detail-title{letter-spacing:-.03em;margin-bottom:10px;font-size:clamp(28px,9vw,44px);line-height:1.05}.detail-kicker{font-size:16px;line-height:1.4}.detail-actionbar{z-index:30;padding:12px 16px calc(env(safe-area-inset-bottom,0px) + 14px);background:color-mix(in oklab, var(--bg), transparent 8%);-webkit-backdrop-filter:saturate(140%)blur(18px);border-top:1px solid var(--line);display:block;position:fixed;bottom:0;left:0;right:0}.detail-actionbar-primary{width:100%;font-family:var(--font-sans);letter-spacing:-.01em;color:var(--bg);background:var(--accent-grad-button);box-shadow:inset 0 1px 0 color-mix(in oklab, var(--accent), white 38%), 0 12px 30px -14px color-mix(in oklab, var(--accent), black 18%);background-clip:padding-box;border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:14px 18px;font-size:16px;font-weight:600;transition:transform .14s;display:flex}.detail-actionbar-primary:active{transform:translateY(1px)}.detail-actionbar-primary .ico{font-family:var(--font-mono);margin-top:-1px;font-size:14px}body:has(.detail) .footline{display:none}}html.palette-open{overflow:hidden}[hidden]{display:none!important}.palette{z-index:60;opacity:0;pointer-events:none;place-items:start center;padding-top:clamp(60px,10vh,120px);transition:opacity .18s;display:grid;position:fixed;inset:0}.palette.is-open{opacity:1;pointer-events:auto}.palette-backdrop{background:color-mix(in oklab, var(--bg), transparent 8%);backdrop-filter:blur(10px);position:absolute;inset:0}.palette-card{background:var(--bg-2);border:1px solid var(--line-2);border-radius:8px;width:min(720px,100% - 32px);transition:transform .22s cubic-bezier(.2,.7,.2,1);position:relative;overflow:hidden;transform:translateY(8px);box-shadow:0 40px 80px -20px #0009,0 8px 16px -4px #0000004d}.palette.is-open .palette-card{transform:translateY(0)}.palette-input-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 18px;display:flex}.palette-prompt{font-family:var(--font-mono);color:var(--accent);font-size:14px}.palette-input{font:inherit;color:var(--fg);font-family:var(--font-sans);letter-spacing:-.005em;background:0 0;border:0;outline:0;flex:1;font-size:16px;font-weight:500}.palette-input::placeholder{color:var(--fg-3);font-weight:400}.palette-list{max-height:50vh;overflow-y:auto}.palette-empty{font-family:var(--font-mono);color:var(--fg-3);text-align:center;letter-spacing:.08em;text-transform:uppercase;padding:18px;font-size:11px}.palette-row{cursor:pointer;border-left:2px solid #0000;grid-template-columns:60px 80px 1fr auto 18px;align-items:center;gap:14px;padding:10px 18px;transition:background .1s,border-color .1s;display:grid}.palette-row.is-selected{background:var(--bg-3);border-left-color:var(--accent)}.palette-row-tag{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);text-align:left;font-size:9.5px}.palette-row-date{font-family:var(--font-mono);color:var(--fg-3);font-size:10.5px}.palette-row-title{font-family:var(--font-sans);color:var(--fg);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.palette-row-kicker{font-family:var(--font-sans);color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;max-width:320px;font-size:12px;overflow:hidden}.palette-row-arrow{text-align:right;font-family:var(--font-mono);color:var(--fg-3)}.palette-row.is-selected .palette-row-arrow{color:var(--accent)}.t-tag{font-family:var(--font-mono)}.palette-help{padding:18px}.palette-help h4{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin:0 0 12px;font-size:10px;font-weight:500}.palette-help ul{gap:6px;display:grid}.palette-help li{color:var(--fg-2);grid-template-columns:100px 1fr;align-items:center;gap:12px;font-size:13px;display:grid}.palette-help kbd{font-family:var(--font-mono);border:1px solid var(--line-2);color:var(--fg);border-radius:3px;margin-right:6px;padding:2px 6px;font-size:10.5px}.palette-help em{font-style:normal;font-family:var(--font-sans);color:var(--fg-2)}.palette-foot{border-top:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);justify-content:space-around;gap:12px;padding:10px 18px;font-size:9.5px;display:flex}.palette-foot kbd{font-family:var(--font-mono);border:1px solid var(--line-2);color:var(--fg-2);border-radius:2px;margin-right:4px;padding:1px 5px;font-size:9.5px}.stack{width:min(784px,100%);font-family:var(--font-mono);color:var(--fg);margin:0 auto;padding:96px 32px}@media (width<=720px){.stack{padding:72px 20px}}.stack-head{border-bottom:1px dashed var(--line-2);flex-direction:column;gap:8px;margin-bottom:24px;padding-bottom:18px;display:flex}.stack-head-row{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.stack-head-prompt{color:var(--fg-3);letter-spacing:.02em;font-size:13px}.stack-head-cmd{color:var(--fg);font-size:13px}.stack-head-meta{justify-content:space-between;font-size:11px}.stack-head-md,.stack-head-back{color:var(--fg-3);border-bottom:1px dotted var(--line-2);padding-bottom:1px}.stack-head-md:hover,.stack-head-back:hover{color:var(--fg)}.stack-console{background:var(--bg-2,var(--bg));border:1px solid var(--line);color:var(--fg);border-radius:6px;margin-bottom:56px;padding:16px 18px 14px;font-size:13.5px;line-height:1.55;position:relative}@media (width<=720px){.stack-console{border-radius:4px;padding:12px 14px 10px;font-size:12.5px}}.stack-scroll{scrollbar-width:thin;scrollbar-color:var(--line-3) transparent;max-height:min(60vh,540px);margin-bottom:12px;padding-right:4px;overflow-y:auto}.stack-scroll::-webkit-scrollbar{width:6px}.stack-scroll::-webkit-scrollbar-track{background:0 0}.stack-scroll::-webkit-scrollbar-thumb{background:var(--line-3);border-radius:3px}.stack-block{margin:0 0 14px}.stack-block:last-child{margin-bottom:0}.stack-line{white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono)}.stack-line a{color:var(--accent);border-bottom:1px dotted color-mix(in oklab, var(--accent), transparent 60%);padding-bottom:1px}.stack-line a:hover{border-bottom-color:var(--accent)}.stack-line-mute{color:var(--fg-3);font-style:italic}.stack-prompt-inline{color:var(--accent);user-select:none}.stack-echo{color:var(--fg)}.stack-label{min-width:11ch;color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;font-size:.86em;display:inline-block}.stack-ship-head{margin-top:4px}.stack-ship-kicker{color:var(--fg-2)}.stack-block-source{border-left:2px solid var(--line-2);margin-left:2px;padding-left:12px}.stack-source{font-family:var(--font-mono);color:var(--fg-2);white-space:pre-wrap;word-break:break-word;background:0 0;border:0;margin:6px 0;padding:0;font-size:12.5px;line-height:1.55}.stack-source-head,.stack-source-foot{color:var(--fg-3)}.stack-input-row{border-top:1px dashed var(--line-2);align-items:center;gap:8px;padding-top:10px;display:flex}.stack-input-row .stack-prompt-inline{flex:none}.stack-input{color:var(--fg);font-family:var(--font-mono);font-size:inherit;caret-color:#0000;background:0 0;border:0;outline:0;flex:auto;padding:0;line-height:1.55}.stack-caret{color:var(--accent);pointer-events:none;flex:none;margin-left:-10px;animation:1s steps(2,end) infinite stack-caret-blink}@keyframes stack-caret-blink{0%,50%{opacity:1}51%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.stack-caret{opacity:1;animation:none}}.stack-hint{letter-spacing:.08em;margin:8px 0 0;font-size:10.5px}.stack-noscript{border:1px dashed var(--line-2);color:var(--fg-2);max-width:68ch;margin-top:32px;padding:16px 18px;font-size:13px}.stack-noscript a{color:var(--fg);border-bottom:1px dotted var(--line-2);padding-bottom:1px}.stack-noscript a:hover{color:var(--accent);border-color:var(--accent)}.footline-repl{color:var(--fg-3);font-family:var(--font-mono);letter-spacing:0;align-items:center;gap:4px;display:inline-flex}.footline-repl:hover{color:var(--fg)}.notes-index{width:100%;max-width:880px;margin:0 auto;padding:clamp(56px,9vw,120px) clamp(20px,4vw,40px) clamp(80px,9vw,140px)}.notes-index-head{flex-direction:column;gap:12px;margin-bottom:clamp(40px,6vw,72px);display:flex}.notes-index-eyebrow{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:11px}.notes-index-title{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--fg);max-width:22ch;margin:0;font-size:clamp(28px,4vw,44px);font-weight:400;line-height:1.1}.notes-index-tagline{font-family:var(--font-sans);color:var(--fg-2);margin:0;font-size:14px}.notes-index-empty{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.04em;margin:32px 0;font-size:12px}.notes-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.notes-list-item{border-bottom:1px solid var(--line)}.notes-row{color:inherit;grid-template-columns:1fr auto;grid-template-areas:"date arrow""title arrow""exc arrow";gap:6px 16px;padding:22px 4px;text-decoration:none;transition:background .14s;display:grid}.notes-row:hover{background:color-mix(in oklab, var(--fg), transparent 96%)}.notes-row:hover .notes-row-arrow{color:var(--fg);transform:translate(4px)}.notes-row-date{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase;grid-area:date;font-size:11px}.notes-row-title{font-family:var(--font-sans);color:var(--fg);letter-spacing:-.01em;grid-area:title;font-size:clamp(18px,2vw,22px);font-weight:500;line-height:1.25}.notes-row-excerpt{font-family:var(--font-sans);color:var(--fg-2);grid-area:exc;max-width:60ch;font-size:14.5px;line-height:1.5}.notes-row-arrow{font-family:var(--font-mono);color:var(--fg-3);grid-area:arrow;align-self:center;font-size:14px;transition:transform .18s,color .12s}.notes-index-back{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin:clamp(40px,6vw,72px) 0 0;font-size:12px}.notes-index-back a{color:var(--fg-3);text-decoration:none;transition:color .12s}.notes-index-back a:hover{color:var(--fg)}@media (width<=720px){.notes-row{padding:18px 2px}.notes-row-title{font-size:18px}.notes-row-excerpt{font-size:13.5px}.notes-row-arrow{display:none}}.note{flex-direction:column;gap:clamp(28px,4vw,48px);width:100%;max-width:720px;margin:0 auto;padding:clamp(48px,8vw,100px) clamp(20px,4vw,32px) clamp(80px,9vw,140px);display:flex}.note-head{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:11px;display:flex}.note-head-back{color:var(--fg-3);text-decoration:none;transition:color .12s}.note-head-back:hover{color:var(--fg)}.note-head-date{color:var(--fg-3)}.note-mast{flex-direction:column;gap:16px;display:flex}.note-title{font-family:var(--font-sans);letter-spacing:-.025em;color:var(--fg);margin:0;font-size:clamp(32px,5vw,56px);font-weight:400;line-height:1.08}.note-excerpt{font-family:var(--font-sans);color:var(--fg-2);max-width:56ch;margin:0;font-size:clamp(17px,1.6vw,19px);line-height:1.5}.note-pull{border-left:2px solid var(--line-2);font-family:var(--font-sans);color:var(--fg);letter-spacing:-.015em;max-width:50ch;margin:0;padding:20px 0 20px 24px;font-size:clamp(20px,2.2vw,26px);font-style:italic;font-weight:400;line-height:1.35}.note-prose{font-family:var(--font-sans);color:var(--fg);max-width:64ch;font-size:17px;line-height:1.7}.note-prose>*+*{margin-top:1.2em}.note-prose h2{letter-spacing:-.015em;color:var(--fg);margin-top:2.4em;font-size:22px;font-weight:500}.note-prose h3{letter-spacing:-.01em;color:var(--fg);margin-top:2em;font-size:18px;font-weight:500}.note-prose a{color:var(--fg);text-decoration:underline;text-decoration-color:color-mix(in oklab, var(--fg-3), transparent 40%);text-underline-offset:3px;transition:text-decoration-color .12s}.note-prose a:hover{text-decoration-color:var(--fg)}.note-prose blockquote{border-left:2px solid var(--line-2);color:var(--fg-2);margin:1.5em 0;padding-left:20px;font-style:italic}.note-prose code{font-family:var(--font-mono);background:var(--bg-2);color:var(--fg);border-radius:3px;padding:1px 5px;font-size:.92em}.note-prose pre{background:var(--bg-2);border:1px solid var(--line);font-family:var(--font-mono);border-radius:6px;padding:16px 18px;font-size:13.5px;line-height:1.6;overflow-x:auto}.note-prose pre code{font-size:inherit;background:0 0;padding:0}.note-prose ul,.note-prose ol{padding-left:1.4em}.note-prose li+li{margin-top:.4em}.note-prose img{border-radius:6px;max-width:100%;height:auto;margin:2em auto;display:block}.note-prose hr{border:0;border-top:1px solid var(--line-2);width:40%;margin:2.4em auto}.note-tags{border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;gap:6px;margin:0;padding-top:16px;font-size:11px;display:flex}.note-tag{border:1px solid var(--line-2);border-radius:3px;padding:3px 8px}.note-prevnext{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:24px;padding-top:24px;display:grid}.note-prevnext .label{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;font-size:10px;display:block}.note-prevnext .name{font-family:var(--font-sans);color:var(--fg-2);font-size:14.5px;line-height:1.4;transition:color .12s}.note-prevnext .next{text-align:right}.note-prevnext a{text-decoration:none}.note-prevnext a:hover .name{color:var(--fg)}.note-back{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:12px}.note-back a{color:var(--fg-3);text-decoration:none;transition:color .12s}.note-back a:hover{color:var(--fg)}@media (width<=720px){.note-prevnext{grid-template-columns:1fr;gap:16px}.note-prevnext .next{text-align:left}}.catalogue{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.catalogue-tabs{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);align-self:flex-start;align-items:center;gap:12px;margin:0 0 4px;padding:0 0 14px;font-size:11px;display:inline-flex;position:relative}.catalogue-tab{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--fg-3);cursor:pointer;background:0 0;border:0;padding:4px 2px;transition:color .14s;position:relative}.catalogue-tab:hover{color:var(--fg-2)}.catalogue-tab.is-active{color:var(--fg)}.catalogue-tab:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.catalogue-tabs-sep{color:var(--fg-3);opacity:.5}.catalogue-tabs-indicator{background:var(--fg);opacity:0;pointer-events:none;border-radius:1px;width:0;height:1px;transition:transform .24s cubic-bezier(.32,.72,0,1),width .24s cubic-bezier(.32,.72,0,1),opacity .18s;position:absolute;bottom:8px;left:0;transform:translate(0)}.catalogue[data-active=notes] .works,.catalogue[data-active=works] .notes-rail{display:none}.notes-rail{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:auto;gap:0;display:flex;overflow-y:auto}.notes-rail::-webkit-scrollbar{display:none}.notes-rail-empty{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.04em;margin:0;padding:24px 4px;font-size:12px}.notes-rail-row{border-bottom:1px solid var(--line);color:inherit;opacity:1;will-change:opacity, transform;grid-template-columns:1fr;grid-template-areas:"date""title""exc";row-gap:4px;padding:16px 4px;text-decoration:none;transition:background .14s;display:grid;transform:translateY(0)}.notes-rail-row:hover,.notes-rail-row.is-active{background:color-mix(in oklab, var(--fg), transparent 96%)}.notes-rail-row:hover .notes-rail-row-title,.notes-rail-row.is-active .notes-rail-row-title{color:var(--fg)}.notes-rail-row-date{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase;grid-area:date;font-size:10.5px}.notes-rail-row-title{font-family:var(--font-sans);color:var(--fg-2);letter-spacing:-.005em;grid-area:title;font-size:16px;font-weight:500;line-height:1.25;transition:color .12s}.notes-rail-row-excerpt{font-family:var(--font-sans);color:var(--fg-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-area:exc;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.stage-notes{will-change:opacity;justify-content:center;align-items:center;width:100%;height:100%;padding:clamp(32px,4vw,64px);display:flex}.notes-preview,.notes-preview-empty{flex-direction:column;gap:18px;max-width:52ch;display:flex}.notes-preview-eyebrow{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:11px}.notes-preview-title{font-family:var(--font-sans);letter-spacing:-.025em;color:var(--fg);margin:0;font-size:clamp(28px,3.6vw,44px);font-weight:400;line-height:1.1}.notes-preview-excerpt{font-family:var(--font-sans);color:var(--fg-2);margin:0;font-size:clamp(15px,1.4vw,17px);line-height:1.55}.notes-preview-pull{border-left:2px solid var(--line-2);font-family:var(--font-sans);color:var(--fg);letter-spacing:-.01em;margin:0;padding:10px 0 10px 18px;font-size:clamp(16px,1.6vw,20px);font-style:italic;line-height:1.4}.notes-preview-cta{border:1px solid var(--line-2);color:var(--fg);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:0 0;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-top:4px;padding:8px 14px;font-size:11px;text-decoration:none;transition:background .14s,border-color .14s;display:inline-flex}.notes-preview-cta:hover{background:color-mix(in oklab, var(--fg), transparent 92%);border-color:var(--line-3)}@media (width<=720px){.stage-notes{display:none}.catalogue-tabs{padding:4px 22px 14px}.notes-rail-row{padding:14px 22px}}@media (prefers-reduced-motion:reduce){.catalogue-tabs-indicator{transition:none!important}.notes-rail-row{transition:background .14s!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.footline-search[data-astro-cid-jo6i4kqk]{cursor:pointer;color:var(--fg-3);align-items:center;gap:4px;display:inline-flex}.footline-search[data-astro-cid-jo6i4kqk]:hover{color:var(--fg)}
