@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin.woff2)format("woff2")}:root{color-scheme:dark;--bg:#0c0d10;--bg-2:#14161b;--line:#262a33;--fg:#eceae4;--fg-dim:#9a9ea8;--accent:#ff7a3d;--accent-ink:#14110d;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--gutter:clamp(20px, 5vw, 72px);--max:1360px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{color:var(--fg);background-color:var(--bg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-image:radial-gradient(60% 40% at 0 35%,#ff7a3d12,#0000 70%),radial-gradient(50% 35% at 100% 75%,#7896ff0f,#0000 70%);background-repeat:no-repeat,no-repeat;background-size:100% 100%,100% 100%;margin:0;font-size:1.0625rem;line-height:1.6}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle at 1px 1px,#fff3 1px,#0000 1.5px) 0 0/26px 26px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 24% 76%,#000);mask-image:linear-gradient(90deg,#000,#0000 24% 76%,#000)}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip{z-index:60;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);padding:10px 14px;font-size:12px;position:absolute;top:-80px;left:12px}.skip:focus{top:12px}:root{--header-h:68px}.site-header{z-index:40;height:var(--header-h);padding:0 var(--gutter);-webkit-backdrop-filter:blur(14px)saturate(1.2);background:#0c0d10b8;border-bottom:1px solid #ffffff1a;align-items:center;gap:28px;transition:transform .35s,background .25s;display:flex;position:fixed;inset:0 0 auto}.site-header.is-scrolled{background:#0c0d10e6}.site-header.is-hidden{transform:translateY(-110%)}.with-header{padding-top:var(--header-h)}.site-header__name{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:12px;font-weight:500;display:inline-flex}.site-header__name i{background:var(--accent);width:10px;height:10px}.site-header__nav{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;gap:6px;margin-left:auto;font-size:13px;display:flex}.site-header__nav a{color:#cfccc4;border:1px solid #0000;padding:9px 14px;transition:color .2s,border-color .2s,background .2s}.site-header__nav a:hover{color:var(--fg);background:#ffffff12}.site-header__nav a[aria-current=true]{color:var(--fg);border-color:#ffffff47}.site-header__tools{align-items:center;gap:12px;display:flex}.lang{font-family:var(--font-mono);letter-spacing:.08em;border:1px solid #ffffff47;font-size:12px;display:flex}.lang a{color:#cfccc4;padding:8px 11px}.lang a[aria-current=true]{background:var(--fg);color:var(--bg);pointer-events:none}.lang a:hover:not([aria-current=true]){color:var(--fg);background:#ffffff14}.btn--sm{padding:10px 18px;font-size:12px}.contact-panel{top:calc(100% + 10px);right:var(--gutter);width:min(430px, calc(100vw - 2 * var(--gutter)));background:var(--bg-2);border:1px solid #ffffff29;padding:22px;animation:.22s panelIn;position:absolute;box-shadow:0 24px 60px #0000008c}.contact-panel[hidden]{display:none}@keyframes panelIn{0%{opacity:0;transform:translateY(-8px)}}.contact-panel__title{letter-spacing:-.02em;margin:0 0 6px;font-size:1.5rem;font-weight:500}.contact-panel__open{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim);align-items:center;gap:10px;margin:0 0 18px;font-size:11px;display:flex}.contact-panel__open i{background:#4ade80;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #4ade802e}.contact-panel__list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.contact-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;display:flex}.contact-row>a{flex:1;gap:2px;min-width:0;padding:13px 0;display:grid}.contact-row>a span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim);font-size:11px}.contact-row>a strong{overflow-wrap:anywhere;font-weight:500}.contact-row>a:hover strong{color:var(--accent)}.contact-row>a:after{content:none}.contact-row__copy{cursor:pointer;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:1px solid #ffffff47;padding:8px 12px;font-size:11px}.contact-row__copy:hover{border-color:var(--fg);background:#ffffff14}.hero{isolation:isolate;min-height:100svh;padding:120px var(--gutter) clamp(36px, 7vh, 72px);flex-direction:column;justify-content:flex-end;gap:28px;display:flex;position:relative;overflow:hidden}.reel{z-index:-2;background:#000;position:absolute;inset:0}.reel__clip{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity 1.4s;position:absolute;inset:0}.reel__clip.is-on{opacity:1}.hero:before{content:"";z-index:-1;pointer-events:none;background:repeating-linear-gradient(#0000002e 0 1px,#0000 1px 3px),radial-gradient(at 50% 40%,#0000 40%,#0006 100%),linear-gradient(#0c0d101f 0%,#0c0d106b 60%,#0c0d10f0 100%);position:absolute;inset:0}.kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:12px}.hero__title{letter-spacing:-.035em;max-width:16ch;margin:0;font-size:clamp(2.6rem,7.6vw,7rem);font-weight:500;line-height:.98}.hero__sub{color:#cfccc4;max-width:46ch;margin:0;font-size:clamp(1.05rem,1.5vw,1.3rem)}.hero__actions{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.btn{cursor:pointer;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg);background:#ffffff14;border:1px solid #ffffff8c;align-items:center;gap:10px;padding:15px 26px;font-size:13px;font-weight:500;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.btn:hover{border-color:var(--fg);background:#ffffff2e}.btn--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn--primary:hover,.site-header.is-open .btn--primary{color:var(--accent-ink);background:#ff9566;border-color:#ff9566}.reel-meta{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim);align-items:center;gap:14px;margin-top:18px;font-size:11px;display:flex}.reel-meta__dots{gap:6px;display:flex}.reel-meta__dots i{background:#ffffff40;width:22px;height:2px}.reel-meta__dots i.on{background:var(--accent)}.section{width:min(100%, var(--max));padding:clamp(72px, 10vw, 140px) var(--gutter);margin-inline:auto}.section__head{gap:14px;margin-bottom:clamp(32px,5vw,56px);display:grid}.section__label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);margin:0;font-size:12px}.h2{letter-spacing:-.025em;margin:0;font-size:clamp(2rem,4.4vw,3.6rem);font-weight:500;line-height:1.05}.rule{border:0;border-top:1px solid var(--line);margin:0}.filters{flex-wrap:wrap;gap:8px;margin-bottom:36px;display:flex}.chip{cursor:pointer;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);color:var(--fg-dim);background:0 0;border-radius:999px;padding:8px 16px;font-size:12px;transition:all .2s}.chip:hover{color:var(--fg);border-color:var(--fg-dim)}.chip[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,5vw,64px) clamp(20px,3vw,40px);display:grid}.card{align-content:start;gap:18px;display:grid}.card__media{aspect-ratio:16/10;background:var(--bg-2);border:1px solid var(--line);display:block;position:relative;overflow:hidden}.card__media img,.card__media video{object-fit:cover;width:100%;height:100%;transition:transform .6s;position:absolute;inset:0}.card:hover .card__media img,.card:hover .card__media video{transform:scale(1.035)}.card__media:after{content:"";pointer-events:none;background:repeating-linear-gradient(#0000001a 0 1px,#0000 1px 3px);position:absolute;inset:0}.card__tags{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);gap:10px;margin:0;padding:0;font-size:11px;list-style:none;display:flex}.card__title{letter-spacing:-.02em;margin:0;font-size:clamp(1.4rem,2.2vw,2rem);font-weight:500;line-height:1.15}.card__title a:hover{color:var(--accent)}.card__desc{color:var(--fg-dim);max-width:52ch;margin:0}.card__meta{border-top:1px solid var(--line);flex-wrap:wrap;gap:6px 22px;margin:0;padding:14px 0 0;font-size:.92rem;display:flex}.card__meta div{gap:8px;display:flex}.card__meta dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim);padding-top:3px;font-size:11px}.card__meta dd{margin:0}.card__link{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);justify-self:start;font-size:12px}.card__link:after{content:" →"}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}.cell{cursor:pointer;text-align:left;color:var(--fg);background:0 0;border:0;gap:10px;padding:0;display:grid}.cell__media{aspect-ratio:4/3;background:var(--bg-2);border:1px solid var(--line);display:block;position:relative;overflow:hidden}.cell__media img{object-fit:cover;width:100%;height:100%;transition:transform .5s;position:absolute;inset:0}.cell:hover .cell__media img,.cell:focus-visible .cell__media img{transform:scale(1.05)}.cell__cap{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.cell__title{font-size:.98rem}.cell:hover .cell__title{color:var(--accent)}.cell__tags{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim);white-space:nowrap;font-size:11px}.note{color:var(--fg-dim);margin:28px 0 0;font-size:.9rem}.viewer{border:1px solid var(--line);background:var(--bg-2);width:min(1000px,94vw);height:min(660px,86vh);color:var(--fg);padding:0}.viewer[open]{flex-direction:column;display:flex}.viewer::backdrop{background:#050608d1}.viewer__bar{border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:12px;display:flex}.viewer__close{cursor:pointer;border:1px solid var(--line);color:var(--fg);font-family:var(--font-mono);text-transform:uppercase;background:0 0;padding:6px 12px;font-size:11px}.viewer__close:hover{border-color:var(--fg-dim)}.viewer iframe{background:#000;border:0;flex:1;width:100%}.about{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:clamp(32px,6vw,96px);display:grid}.about__lead{letter-spacing:-.015em;margin:0;font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1.3}.about__lead span{color:var(--fg-dim)}.facts{border-top:1px solid var(--line);margin:0}.facts>div{border-bottom:1px solid var(--line);grid-template-columns:9rem 1fr;gap:16px;padding:16px 0;display:grid}.facts dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim);padding-top:4px;font-size:11px}.facts dd{margin:0}.footer{border-top:1px solid var(--line);padding:clamp(64px, 9vw, 120px) var(--gutter) 36px}.footer__inner{width:min(100%, var(--max));gap:40px;margin-inline:auto;display:grid}.footer__mail{letter-spacing:-.03em;word-break:break-word;border-bottom:2px solid var(--accent);justify-self:start;font-size:clamp(1.6rem,5.4vw,4.4rem);font-weight:500;line-height:1.05;display:inline-block}.footer__mail:hover{color:var(--accent)}.footer__row{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:14px 28px;font-size:12px;display:flex}.footer__row a{color:var(--fg-dim)}.footer__row a:hover{color:var(--fg)}.footer__role{color:var(--fg-dim);letter-spacing:.06em;text-transform:none;font-family:var(--font-body);margin-left:auto;font-size:.9rem}@media (width<=900px){:root{--header-h:104px}.site-header .btn--sm{padding:8px 12px;font-size:11px}.site-header .lang a{padding:6px 9px}.site-header__name{font-size:15px}.site-header{flex-wrap:wrap;align-content:center;gap:6px 14px;padding-block:10px}.site-header__tools{margin-left:auto}.site-header__nav{order:3;gap:2px;width:100%;margin-left:0;overflow-x:auto}.site-header__nav a{padding:7px 11px}.contact-panel{right:var(--gutter);left:var(--gutter);width:auto}.hero{padding-top:150px}.cards{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.about{grid-template-columns:1fr}.facts>div{grid-template-columns:1fr;gap:4px}.footer__role{width:100%;margin-left:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reel__clip{transition:none}.site-header,.contact-panel{transition:none;animation:none}.card__media img,.card__media video,.cell__media img{transition:none}}.hero2{width:min(100%, var(--max));min-height:calc(100svh - var(--header-h));padding:24px var(--gutter) 56px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(28px,4vw,64px);margin-inline:auto;display:grid}.hero2__copy{justify-items:start;gap:22px;display:grid}.hero2 .hero__title{text-wrap:balance;max-width:13ch;font-size:clamp(2.5rem,5.4vw,5.2rem)}.hero2 .hero__sub{color:var(--fg-dim);max-width:40ch;font-size:1.05rem}.hood{--pos:50%;aspect-ratio:5/4;background:#0a0b0d;border:1px solid #3a3f4a;margin:0;position:relative;overflow:hidden;box-shadow:0 30px 60px #00000080}.hood__media{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hood__code{clip-path:inset(0 calc(100% - var(--pos)) 0 0);background:#0f1115;position:absolute;inset:0}.hood__code pre{height:100%;font-family:var(--font-mono);color:#d5d8de;white-space:pre;margin:0;padding:50px 22px 44px 26px;font-size:clamp(10px,.95vw,12.5px);line-height:1.6;overflow:hidden}.hood__code .k{color:var(--accent);font-weight:400}.hood__code .t{color:#6ec1d6;font-weight:400}.hood__code .f{color:#f0d98a;font-weight:400}.hood__code .c{color:#6f7685;font-weight:400}.hood__code .s{color:#a9d68b;font-weight:400}.hood__code .n{color:#c49df0;font-weight:400}.hood__tag{z-index:2;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg);background:#0c0d10d9;padding:5px 10px;font-size:11px;position:absolute;top:14px}.hood__tag--l{left:14px}.hood__tag--r{right:14px}.hood__handle{top:0;bottom:0;left:var(--pos);background:var(--accent);z-index:2;pointer-events:none;width:2px;position:absolute;translate:-50%}.hood__handle span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;background:var(--accent);color:var(--accent-ink);padding:9px 12px;font-size:11px;position:absolute;top:50%;left:50%;translate:-50% -50%}.hood__handle span:before{content:"← "}.hood__handle span:after{content:"  →"}.hood__range{z-index:3;opacity:0;cursor:ew-resize;width:100%;height:100%;margin:0;position:absolute;inset:0}.hood figcaption{z-index:2;font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-dim);pointer-events:none;background:#0c0d10cc;padding:4px 8px;font-size:10.5px;position:absolute;bottom:12px;left:14px}@media (width<=900px){.hero2{grid-template-columns:minmax(0,1fr);min-height:0;padding-top:12px}.hood{aspect-ratio:1}.hood__code pre{padding:46px 12px 34px 16px;font-size:9.5px}}.idx{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:clamp(28px,5vw,80px);display:grid}.idx__list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.idx__row{border-bottom:1px solid var(--line);color:var(--fg-dim);grid-template-columns:2.6rem 1fr auto;align-items:baseline;gap:12px;padding:clamp(18px,2.6vw,30px) 0;transition:color .2s,padding .25s;display:grid}.idx__n,.idx__tags{font-family:var(--font-mono);letter-spacing:.12em;font-size:12px}.idx__title{letter-spacing:-.025em;font-size:clamp(1.5rem,3vw,2.7rem);font-weight:500;line-height:1.1}.idx__row[aria-current=true]{color:var(--fg);padding-left:14px}.idx__row[aria-current=true] .idx__n,.idx__row[aria-current=true] .idx__tags{color:var(--accent)}.idx__view{top:calc(var(--header-h) + 20px);gap:16px;display:grid;position:sticky}.idx__media{aspect-ratio:16/10;background:var(--bg-2);border:1px solid var(--line);display:block;position:relative;overflow:hidden}.idx__media video,.idx__media img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0}.idx__media .on{opacity:1}.idx__desc{color:var(--fg-dim);max-width:54ch;margin:0}@media (width<=900px){.idx{grid-template-columns:minmax(0,1fr)}.idx__view{order:-1;position:static}}:root{--u-font:Tahoma, "Segoe UI", Verdana, sans-serif;--u-face:#3b3b3b;--u-bar:#262626;--u-btn:#4c4c4c;--u-sunk:#1d1d1d;--u-text:#d6d6d6;--u-dim:#9b9b9b;--u-title:#f0f0f0;--u-sel:#2f5da0;--u-sel-text:#fff;--b1:#6e6e6e;--b2:#0b0b0b;--b3:#515151;--b4:#1a1a1a}html[data-theme=light]{--u-face:#d4d0c8;--u-bar:linear-gradient(90deg, #0a246a, #3a6ea5 60%, #a6caf0);--u-btn:#d4d0c8;--u-sunk:#1b1b1b;--u-text:#111;--u-dim:#555;--u-title:#fff;--u-sel:#0a246a;--u-sel-text:#fff;--b1:#fff;--b2:#404040;--b3:#d4d0c8;--b4:gray}.bevel-up,.uwin,.codebox,.proj__role,.uwin__btns i,.galwrap .gal__tabs button,.codebox__toggle{box-shadow:inset -1px -1px var(--b2), inset 1px 1px var(--b1), inset -2px -2px var(--b4), inset 2px 2px var(--b3)}.uwin{background:var(--u-face);color:var(--u-text);font-family:var(--u-font);filter:drop-shadow(0 18px 24px #00000080);border:0;padding:3px}.uwin__bar{background:var(--u-bar);height:26px;color:var(--u-title);font:700 12px/1 var(--u-font);align-items:center;gap:6px;padding:0 3px 0 8px;display:flex}.uwin__tab{color:var(--u-title);box-shadow:none;text-shadow:none;background:0 0;border:0;padding:0}.uwin__tab+.uwin__tab{opacity:.7;border-left:1px solid #ffffff40;padding-left:10px;font-weight:400}.uwin__btns{gap:2px;margin-left:auto;display:flex}.uwin__btns i{background:var(--u-btn);width:18px;height:16px;color:var(--u-text);font:700 10px/1 var(--u-font);place-items:center;font-style:normal;display:grid}.uwin .gal,.uwin .hood{box-shadow:inset 1px 1px var(--b2), inset -1px -1px var(--b1), inset 2px 2px var(--b4), inset -2px -2px var(--b3);border:0;margin:3px}.hood-win{align-self:center}.hood-win .hood{margin:3px}.theme-btn{cursor:pointer;width:38px;height:38px;color:var(--fg);background:0 0;border:1px solid #ffffff47;place-items:center;display:grid}.theme-btn:hover{background:#ffffff14}.theme-btn svg{width:18px;height:18px}.theme-btn .i-sun{display:none}html[data-theme=light] .theme-btn .i-sun{display:block}html[data-theme=light] .theme-btn .i-moon{display:none}html[data-theme=light]{color-scheme:light;--bg:#e2ebf7;--bg-2:#f5f8fd;--line:#aebdd3;--fg:#10203a;--fg-dim:#46587a;--accent:#d9480f;--accent-ink:#fff}html[data-theme=light] body{background-image:radial-gradient(60% 45% at 0 30%,#4678d229,#0000 70%),radial-gradient(50% 40% at 100% 70%,#ffffffe6,#0000 70%),linear-gradient(#eef4fc,#dbe6f6)}html[data-theme=light] body:before{background-image:radial-gradient(circle at 1px 1px,#10285a33 1px,#0000 1.5px)}html[data-theme=light] .site-header{border-bottom:1px solid var(--line);background:#eef4fce0}html[data-theme=light] .site-header.is-scrolled{background:#eef4fcf5}html[data-theme=light] .site-header__nav a{color:var(--fg-dim)}html[data-theme=light] .site-header__nav a:hover{color:var(--fg);background:#10285a14}html[data-theme=light] .site-header__nav a[aria-current=true]{color:var(--fg);border-color:#10285a66}html[data-theme=light] .lang,html[data-theme=light] .theme-btn,html[data-theme=light] .contact-row__copy{border-color:#10285a66}html[data-theme=light] .lang a{color:var(--fg-dim)}html[data-theme=light] .lang a:hover:not([aria-current=true]),html[data-theme=light] .theme-btn:hover,html[data-theme=light] .contact-row__copy:hover{background:#10285a14}html[data-theme=light] .btn{background:#10285a0d;border-color:#10285a80}html[data-theme=light] .btn:hover{background:#10285a21}html[data-theme=light] .btn--primary{background:var(--accent);border-color:var(--accent)}html[data-theme=light] .btn--primary:hover,html[data-theme=light] .site-header.is-open .btn--primary{color:#fff;background:#f06a2a;border-color:#f06a2a}html[data-theme=light] .contact-panel{border-color:#10285a4d;box-shadow:0 24px 50px #10285a38}html[data-theme=light] .contact-panel__title{color:var(--fg)}.hood__tag,.hood figcaption,.gal__btn,.gal__count,.ba__label{color:#eceae4}.hood__code .k,.codebox .k{color:#ff8a4d}html[data-theme=light] .card__media,html[data-theme=light] .idx__media,html[data-theme=light] .gal{border-color:var(--line)}.hood:has(.hood__range:focus-visible) .hood__handle span{outline:3px solid var(--fg);outline-offset:2px}
