:root{--bg:#f0f2ef;--surface:#fff;--surface-2:#e4e8e6;--text:#18223d;--muted:#4a5468;--line:#c9cfd4;--line-strong:#76809a;--brand:#2443c9;--on-brand:#fff;--signal:#ffc21a;--focus:#2443c9;--ink:#18223d;--on-ink:#f0f2ef;--shadow-c:#18223d2e;--font:"Archivo Variable", "Archivo Fallback", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-xs:.8125rem;--fs-sm:.9375rem;--fs-base:1rem;--fs-md:1.25rem;--fs-lg:clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem);--fs-xl:clamp(1.9rem, 1.3rem + 2.6vw, 3rem);--fs-hero:clamp(2.1rem, 1rem + 4.6vw, 4.75rem);--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--r-media:6px;--r-card:12px;--r-panel:20px;--r-pill:999px;--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--dur-line:1.6s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-line:cubic-bezier(.65, 0, .35, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1424;--surface:#162036;--surface-2:#1e2a44;--text:#e8ecf4;--muted:#a6b0c6;--line:#2c3a58;--line-strong:#6a7a9c;--brand:#9db0ff;--on-brand:#0e1424;--signal:#ffd042;--focus:#9db0ff;--ink:#e8ecf4;--on-ink:#0e1424;--shadow-c:#00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e1424;--surface:#162036;--surface-2:#1e2a44;--text:#e8ecf4;--muted:#a6b0c6;--line:#2c3a58;--line-strong:#6a7a9c;--brand:#9db0ff;--on-brand:#0e1424;--signal:#ffd042;--focus:#9db0ff;--ink:#e8ecf4;--on-ink:#0e1424;--shadow-c:#00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@font-face{font-family:Archivo Variable;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/fonts/archivo-latin-wdth-normal.woff2)format("woff2-variations")}@font-face{font-family:Archivo Fallback;src:local(Arial);size-adjust:98%;ascent-override:88%;descent-override:22%;line-gap-override:0%}*{box-sizing:border-box}html{scroll-padding-top:var(--sp-4)}body{background:var(--bg);color:var(--text);font:400 var(--fs-base)/1.55 var(--font);-webkit-font-smoothing:antialiased;padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);margin:0;font-stretch:100%}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--r-media)}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}.skip{left:var(--sp-2);background:var(--brand);color:var(--on-brand);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-pill);z-index:10;transition:top var(--dur-1);font-weight:600;position:absolute;top:-4rem}.skip:focus{top:var(--sp-2)}svg.i{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.1em;height:1.1em}.top,main,.foot{width:min(74rem,100% - 2rem);margin-inline:auto}.top{padding:var(--sp-3) 0;justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.brand{align-items:center;gap:var(--sp-2);min-height:44px;font-weight:800;font-stretch:112%;text-decoration:none;display:inline-flex}.theme{border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);padding:3px;display:inline-flex;position:relative}.theme button{z-index:1;min-width:44px;min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-pill);color:var(--muted);font-weight:600;font-stretch:88%;font-size:var(--fs-sm);transition:color var(--dur-2), background var(--dur-2);background:0 0;border:0;position:relative}.theme button:hover{color:var(--text)}.theme button[aria-pressed=true]{background:var(--brand);color:var(--on-brand)}main:focus{outline:none}.hero{padding:clamp(1.5rem, 5vw, 4rem) 0 var(--sp-6)}h1{font:800 var(--fs-hero)/.98 var(--font);letter-spacing:-.02em;margin:0 0 var(--sp-4);text-wrap:balance;max-width:17ch;font-stretch:125%}.h1-sub{margin-top:var(--sp-3);letter-spacing:0;max-width:30ch;font-size:.38em;font-weight:600;font-stretch:100%;line-height:1.25;display:block}.lede{max-width:38rem;font-size:var(--fs-md);color:var(--muted);margin:0 0 var(--sp-6)}.line{margin:0 0 var(--sp-5);padding:var(--sp-5) 0 var(--sp-7);position:relative;container-type:inline-size}.stages{justify-content:space-between;margin:0;padding:0;list-style:none;display:flex;position:relative}.stages:before{content:"";background:var(--surface-2);height:4px;box-shadow:inset 0 0 0 1px var(--line);transform-origin:0;animation:draw var(--dur-line) var(--ease-line) both;border-radius:2px;margin-top:-2px;position:absolute;top:.55rem;left:.55rem;right:.55rem}.stages li{align-items:center;gap:var(--sp-2);width:1.1rem;font-weight:600;font-stretch:88%;font-size:var(--fs-sm);flex-direction:column;display:flex;position:relative}.stages li span{white-space:nowrap}.stages li:before{content:"";background:var(--brand);border:3px solid var(--bg);width:1.1rem;height:1.1rem;box-shadow:0 0 0 2px var(--brand);z-index:1;animation:station var(--dur-3) var(--ease-out) both;animation-delay:calc(var(--n) * .4s);border-radius:50%;position:relative}.stages li:first-child{align-items:flex-start}.stages li:last-child{align-items:flex-end}.stages li:last-child:before{background:var(--signal);box-shadow:0 0 0 2px var(--text);border-radius:4px}.dock{align-items:center;gap:var(--sp-3);display:flex;position:absolute;bottom:0;right:0}.lots{gap:3px;display:flex}.lots i{background:var(--accent);width:.55rem;height:.9rem;box-shadow:0 0 0 1px var(--text);border-radius:2px}.dock a{text-underline-offset:3px;color:var(--brand);min-height:44px;animation:fade var(--dur-3) var(--ease-out) calc(var(--dur-line) + .1s) both;align-items:center;font-weight:700;font-stretch:100%;text-decoration-thickness:2px;display:inline-flex}.lot{left:.1rem;top:calc(var(--sp-5) + .1rem);background:var(--accent);width:.9rem;height:1.2rem;box-shadow:0 0 0 2px var(--text);z-index:2;animation:travel var(--dur-line) var(--ease-line) both;border-radius:3px;margin-top:-.1rem;position:absolute}@keyframes draw{0%{transform:scaleX(0)}}@keyframes station{0%{opacity:.25;transform:scale(.4)}}@keyframes fade{0%{opacity:0}}@keyframes travel{0%{opacity:1;transform:translate(0)}96%{opacity:1}to{opacity:0;transform:translate(calc(100cqw - 1.1rem))}}.lot{opacity:0;transform:translate(calc(100cqw - 1.1rem))}.stats{margin:0 0 var(--sp-5);align-items:baseline;gap:var(--sp-2) var(--sp-5);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;padding:0;list-style:none;display:flex}.stats li{font-weight:600;font-stretch:88%}.stats .big{color:var(--text)}.stats strong{font-size:var(--fs-xl);margin-right:.25rem;font-weight:800;font-stretch:112%}.cta,.big-open,.btn{align-items:center;gap:var(--sp-2);min-height:48px;padding:0 var(--sp-5);border-radius:var(--r-pill);background:var(--brand);color:var(--on-brand);transition:transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2);border:0;font-weight:700;text-decoration:none;display:inline-flex}.cta:hover,.big-open:hover,.btn:hover{box-shadow:0 8px 20px -8px var(--brand);transform:translateY(-2px)}.cta:active,.big-open:active,.btn:active{transition-duration:var(--dur-1);transform:scale(.97)}h2{font:750 var(--fs-lg)/1.1 var(--font);letter-spacing:-.01em;margin:var(--sp-7) 0 var(--sp-4);font-stretch:112%}.coach{align-items:center;gap:var(--sp-3);min-height:3.5rem;margin:0 0 var(--sp-4);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--r-card);background:var(--surface);display:flex}.coach[hidden]{display:none}.coach p{flex:1;margin:0}.coach button{min-height:44px;padding:0 var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:0 0;font-weight:600}.coach button:hover{background:var(--surface-2)}kbd{font:600 var(--fs-xs)/1 var(--font);border:1px solid var(--line-strong);border-radius:var(--r-media);background:var(--surface-2);border-bottom-width:2px;padding:.2rem .4rem}.bar{gap:var(--sp-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.bar>*{min-width:0}.pills{gap:var(--sp-2);flex-wrap:wrap;display:flex}.pill{min-height:44px;padding:0 var(--sp-4);border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);transition:background var(--dur-2), color var(--dur-2), border-color var(--dur-2), transform var(--dur-1);font-weight:600;font-stretch:88%}.pill:hover:not(:disabled){border-color:var(--brand)}.pill:active:not(:disabled){transform:scale(.96)}.pill.small{min-height:44px;padding:0 var(--sp-3);font-size:var(--fs-sm);font-weight:500}.pill[aria-pressed=true]{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.pill:disabled{opacity:.55;cursor:not-allowed}.pill .n{opacity:.75;font-variant-numeric:tabular-nums;margin-left:.25rem}.tagpills{margin-top:var(--sp-3)}.search{align-items:center;display:flex;position:relative}.search .i{left:var(--sp-3);color:var(--muted);pointer-events:none;position:absolute}.search kbd{right:var(--sp-3);pointer-events:none;position:absolute}input[type=search]{min-height:44px;padding:0 var(--sp-6) 0 2.4rem;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);min-width:16rem;transition:border-color var(--dur-2)}input[type=search]:hover{border-color:var(--brand)}.count{color:var(--muted);margin:var(--sp-4) 0 var(--sp-2);font-size:var(--fs-sm);font-weight:500;font-stretch:88%}.grid{gap:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(18.5rem,1fr));margin:0;padding:0;list-style:none;display:grid}@media (width>=1024px){.grid{grid-template-columns:repeat(3,1fr)}.cell[data-new]{grid-column:span 2}.cell[data-new] .media{aspect-ratio:16/7.4}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);color:inherit;height:100%;transition:transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2), border-color var(--dur-2);flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden}.card:hover{border-color:var(--accent-b,var(--brand));box-shadow:0 14px 30px -14px var(--glow,var(--shadow-c));transform:translateY(-3px)}.card:active{transition-duration:var(--dur-1);transform:translateY(-1px)scale(.99)}.card:focus-visible{outline-offset:3px;border-radius:var(--r-card)}.media{aspect-ratio:8/5;background:var(--wash);margin:var(--sp-2) var(--sp-2) 0;border-radius:var(--r-media);position:relative;overflow:hidden}.media img,.p-media img{object-fit:cover;width:100%;height:100%;display:block}.ph{aspect-ratio:8/5;width:100%;height:100%;padding:var(--sp-4);text-align:center;font:800 var(--fs-md)/1.1 var(--font);color:var(--accent-text,var(--text));background:repeating-linear-gradient(135deg, var(--chip) 0 12px, var(--wash) 12px 24px);place-items:center;font-stretch:112%;display:grid}.body{padding:var(--sp-4);gap:var(--sp-2);flex-direction:column;display:flex}.meta{justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;font-weight:600;font-stretch:88%;display:flex}.card h3{font:700 1.3rem/1.2 var(--font);margin:0}.tagline{margin:0}.chip{background:var(--chip,var(--surface-2));color:var(--text);border-radius:var(--r-pill);font-weight:600;font-stretch:88%;font-size:var(--fs-xs);align-items:center;gap:.35rem;padding:.15rem .7rem;display:inline-flex}.chip:before{content:"";background:var(--accent,var(--muted));border-radius:50%;width:.5rem;height:.5rem}.tags{margin:var(--sp-1) 0 0;gap:var(--sp-1);flex-wrap:wrap;padding:0;list-style:none;display:flex}.tags li{font-size:var(--fs-xs);color:var(--muted);border:1px solid var(--line);border-radius:var(--r-media);padding:0 .4rem;font-weight:500;font-stretch:88%}.empty{text-align:center;padding:var(--sp-7) var(--sp-4);border:2px dashed var(--line-strong);border-radius:var(--r-card)}.empty svg{width:8rem;height:auto;color:var(--muted);margin-bottom:var(--sp-3)}.empty h3{font:750 1.4rem var(--font);margin:0 0 var(--sp-2);font-stretch:112%}.empty p{color:var(--muted);margin:0 0 var(--sp-4)}.cell[hidden],.empty[hidden]{display:none}.foot{padding:var(--sp-7) 0 var(--sp-6);color:var(--muted)}.foot a{color:var(--brand);font-weight:600}.ns{text-align:center;padding:var(--sp-4)}main{min-height:100svh}.filters{min-height:7.5rem}.themed{--wash:var(--wash-l);--chip:var(--chip-l);--accent-b:var(--edge-l);--glow:var(--glow-l);--accent-text:var(--at-l)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .themed{--wash:var(--wash-d);--chip:var(--chip-d);--accent-b:var(--edge-d);--glow:var(--glow-d);--accent-text:var(--at-d)}}:root[data-theme=dark] .themed{--wash:var(--wash-d);--chip:var(--chip-d);--accent-b:var(--edge-d);--glow:var(--glow-d);--accent-text:var(--at-d)}.built{margin-top:var(--sp-8)}.hl{margin:0 0 var(--sp-4);gap:var(--sp-3) var(--sp-6);padding:0;list-style:none;display:grid}.hl li{gap:var(--sp-3);align-items:flex-start;display:flex}.hl li .i{color:var(--brand);margin-top:.25em}.built .hl{grid-template-columns:repeat(2,1fr)}.back{margin:var(--sp-4) 0}.back a{align-items:center;gap:var(--sp-2);min-height:44px;font-weight:600;display:inline-flex}.project{gap:0;display:grid}.p-media{aspect-ratio:8/5;background:var(--wash);border:1px solid var(--accent-b);border-radius:var(--r-panel);padding:var(--sp-3);margin-bottom:var(--sp-5);position:relative;overflow:hidden}.p-media>picture,.p-media>.ph{border-radius:var(--r-card);width:100%;height:100%;display:block;overflow:hidden}.p-media img{border-radius:var(--r-card)}.project h1{font-size:var(--fs-xl);max-width:none;margin:0 0 var(--sp-2)}.p-tag{font-size:var(--fs-md);margin:0 0 var(--sp-4);max-width:40rem}.p-open{margin:0 0 var(--sp-4)}.p-meta{gap:var(--sp-2) var(--sp-3);color:var(--muted);flex-wrap:wrap;align-items:center;font-weight:600;font-stretch:88%;display:flex}.project h2{margin:var(--sp-6) 0 var(--sp-3)}.desc{max-width:68ch;font-size:1.0625rem}.tags.big li{font-size:var(--fs-sm);padding:0}.tags.big a{align-items:center;min-height:44px;padding:0 .6rem;display:inline-flex}.pns{gap:var(--sp-4);margin-top:var(--sp-6);grid-template-columns:1fr 1fr;display:grid}.pn{padding:var(--sp-4);border:1px solid var(--line);border-left:6px solid var(--accent);background:var(--surface);border-radius:var(--r-card);transition:border-color var(--dur-2), transform var(--dur-2) var(--ease-out);flex-direction:column;gap:.2rem;text-decoration:none;display:flex}.pn:hover{border-color:var(--accent-b);transform:translateY(-3px)}.pn:last-child{text-align:right;border-left-width:1px;border-right:6px solid var(--accent)}.pn span{color:var(--muted);font-size:var(--fs-sm)}@view-transition{navigation:auto}::view-transition-group(*){animation-duration:var(--dur-3);animation-timing-function:var(--ease-out)}.pv{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity var(--dur-2) var(--ease-out);position:absolute;inset:0}.pv.on{opacity:1}.pp{left:var(--sp-5);bottom:var(--sp-5);z-index:2;min-height:44px;padding:0 var(--sp-4);border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);font-weight:600;position:absolute}.noscript{padding:var(--sp-3) var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--r-card);background:var(--surface)}@media (width<=700px){.built .hl{grid-template-columns:1fr}.bar{flex-flow:column-reverse;align-items:stretch}.pills{padding-bottom:var(--sp-1);flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),#0000)}.pills.tagpills{flex-wrap:nowrap}.pill{flex:none}input[type=search]{width:100%;min-width:0}.search{width:100%}.grid{grid-template-columns:1fr}.stages li span{font-size:var(--fs-xs)}.line{padding-bottom:5.5rem}.dock{flex-direction:column;align-items:flex-end;gap:0}.pns{grid-template-columns:1fr}.foot{padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@view-transition{navigation:none}}@media (hover:none){.fine,.search kbd{display:none}}
