:root{--bg:#0a0d1a;--bg-2:#10152a;--bg-3:#171d36;--ink:#e8e6df;--muted:#9a9aa8;--amber:#f5b542;--amber-2:#ffd58a;--line:#232a44;--focus:#8fb3ff;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--measure:72rem;--pad:clamp(1rem, 4vw, 2.5rem);--radius:10px;color-scheme:dark;--kind-foundation:#8fa2e0;--kind-simulation:#5fc9bf;--kind-generative:#c894d8;--kind-toy:#f0a184;--kind-game:#a6a9ff;--kind-tool:#e0a06a;--kind-visualization:#a8b8d4;--kind-text:#cfcc7e;--kind-maintenance:#6fd0a0}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:17px}body{background-color:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-body);text-rendering:optimizelegibility;background-image:radial-gradient(120% 60% at 50% -18%,#f5b5420a 0%,#f5b54200 62%);background-repeat:no-repeat;background-attachment:fixed;margin:0;line-height:1.55}h1,h2,h3,h4{font-family:var(--font-body);letter-spacing:-.02em;text-wrap:balance;margin:0 0 .5em;font-weight:600;line-height:1.2}h1{font-size:clamp(2rem,6vw,3.1rem)}h2{font-size:clamp(1.35rem,3.2vw,1.75rem)}h3{font-size:1.15rem}p{margin:0 0 1rem}a{color:var(--amber-2);text-underline-offset:.18em;text-decoration-color:#ffd58a66}a:hover{color:var(--amber);text-decoration-color:currentColor}:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:3px}code,kbd,pre,samp{font-family:var(--font-mono);font-size:.92em}pre{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem;overflow-x:auto}hr{border:0;border-top:1px solid var(--line);margin:2rem 0}img,canvas,iframe{max-width:100%}ul,ol{padding-left:1.35rem}li{margin-bottom:.4rem}.shell{flex-direction:column;min-height:100dvh;display:flex}.wrap{width:100%;max-width:var(--measure);padding-inline:var(--pad);margin-inline:auto}.site-main{flex:1 0 auto;padding-block:clamp(1.75rem,5vw,3rem) clamp(2.5rem,6vw,4rem)}.stack>*+*{margin-top:clamp(2.25rem,5vw,3.5rem)}.skip-link{z-index:20;background:var(--bg-3);border:1px solid var(--line);border-radius:0 0 var(--radius) 0;padding:.6rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.site-header{border-bottom:1px solid var(--line);backdrop-filter:blur(6px);z-index:10;background:#0a0d1adb;position:sticky;top:0}.site-header__inner{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;padding-block:.7rem;display:flex}.wordmark{letter-spacing:-.015em;color:var(--ink);white-space:nowrap;font-size:1.05rem;font-weight:600;text-decoration:none}.wordmark:hover{color:var(--amber-2)}.wordmark:before{content:"";background:var(--amber);vertical-align:baseline;border-radius:50%;width:.62em;height:.62em;margin-right:.5em;display:inline-block;box-shadow:0 0 10px #f5b5428c}.site-nav{flex-wrap:wrap;align-items:center;gap:.35rem 1rem;margin-right:auto;display:flex}.site-nav a{color:var(--muted);border-bottom:1px solid #0000;padding:.15rem 0;font-size:.94rem;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--amber)}.site-footer{border-top:1px solid var(--line);color:var(--muted);flex-shrink:0;padding-block:1.4rem 2rem;font-size:.86rem}.site-footer p{margin:0 0 .35rem}.site-footer .mono{font-family:var(--font-mono);font-size:.82rem}.status{border:1px solid var(--line);background:var(--bg-2);font-family:var(--font-mono);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.5rem;padding:.28rem .7rem .28rem .6rem;font-size:.76rem;line-height:1.4;display:inline-flex}.status__dot{background:#4a5170;border-radius:50%;flex:none;width:.5rem;height:.5rem}.status[data-state=on]{color:var(--amber-2);border-color:#f5b5426b}.status[data-state=on] .status__dot{background:var(--amber);animation:2.4s ease-out infinite status-pulse;box-shadow:0 0 #f5b5428c}@keyframes status-pulse{0%{box-shadow:0 0 #f5b54280}70%{box-shadow:0 0 0 7px #f5b54200}to{box-shadow:0 0 #f5b54200}}.hero__tagline{color:var(--amber-2);margin-bottom:1.1rem;font-size:clamp(1.05rem,2.6vw,1.28rem)}.hero__intro{max-width:46rem;color:var(--ink)}.stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.75rem;margin-top:1.6rem;padding:0;list-style:none;display:grid}.stat{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);margin:0;padding:.75rem .9rem}.stat__label{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-size:.7rem;display:block}.stat__value{font-family:var(--font-mono);color:var(--ink);margin-top:.2rem;font-size:1.05rem;display:block}.stat__note{color:var(--muted);margin-top:.15rem;font-size:.78rem;display:block}.section__title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;display:flex}.section__title h2{margin-bottom:.6rem}.lede{color:var(--muted);max-width:46rem}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);padding:clamp(.9rem,2.5vw,1.25rem)}.night-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.night-list>li{margin:0}.night-card{grid-template-columns:auto 1fr;align-items:baseline;gap:.35rem 1rem;display:grid}.night-card__num{font-family:var(--font-mono);color:var(--amber);grid-row:1;font-size:.95rem}.night-card__head{flex-wrap:wrap;grid-row:1;align-items:baseline;gap:.4rem .7rem;display:flex}.night-card__title{letter-spacing:-.015em;color:var(--ink);font-size:1.12rem;font-weight:600;text-decoration:none}.night-card__title:hover{color:var(--amber-2);text-underline-offset:.18em;text-decoration:underline}.night-card__date{font-family:var(--font-mono);color:var(--muted);font-size:.78rem}.night-card__summary{color:var(--muted);grid-column:2;margin:0}@media (width<=30rem){.night-card{grid-template-columns:1fr}.night-card__num,.night-card__head,.night-card__summary{grid-area:auto/1}}.badge{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:#0a0d1a80;border:1px solid;border-radius:999px;padding:.08rem .5rem;font-size:.68rem;display:inline-block}.badge[data-kind=foundation]{color:var(--kind-foundation)}.badge[data-kind=simulation]{color:var(--kind-simulation)}.badge[data-kind=generative]{color:var(--kind-generative)}.badge[data-kind=toy]{color:var(--kind-toy)}.badge[data-kind=game]{color:var(--kind-game)}.badge[data-kind=tool]{color:var(--kind-tool)}.badge[data-kind=visualization]{color:var(--kind-visualization)}.badge[data-kind=text]{color:var(--kind-text)}.badge[data-kind=maintenance]{color:var(--kind-maintenance)}.badge--size{color:var(--muted);background:0 0}.search{max-width:34rem;margin-top:1.25rem}.search[hidden]{display:none}.search__input{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);width:100%;max-width:34rem;color:var(--ink);font:inherit;padding:.6rem .8rem;display:block}.search__input::placeholder{color:var(--muted);opacity:1}.search__input:focus{outline:none}.search__input:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.search__help,.search__status{font-family:var(--font-mono);color:var(--muted);margin:.5rem 0 0;font-size:.78rem}.search__help code,.search__help kbd{color:var(--ink);font-family:inherit}.search__status:empty{display:none}.search__snippet{color:var(--muted);overflow-wrap:anywhere;margin:.5rem 0 0;padding:0 clamp(.9rem,2.5vw,1.25rem);font-size:.92rem}.search__snippet[hidden]{display:none}.search__snippet mark{color:var(--amber-2);background:#f5b54238;border-radius:3px;padding:0 .1em}.search__empty{color:var(--muted);margin-top:1.25rem}.search__empty[hidden]{display:none}.search__clear{color:var(--amber);font:inherit;text-underline-offset:.18em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.search__clear:hover{color:var(--amber-2)}.search__clear:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:2px}.city{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);touch-action:manipulation;width:100%;height:clamp(360px,62vh,720px);position:relative;overflow:hidden}.city--fullscreen{border:0;border-radius:0;height:100dvh}.city__canvas{cursor:grab;touch-action:pan-y;width:100%;height:100%;display:block}.city--fullscreen .city__canvas{touch-action:none}.city__canvas:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}.city__fit{z-index:4;border:1px solid var(--line);color:var(--ink);font-family:var(--font-mono);cursor:pointer;background:#0a0d1acc;border-radius:999px;padding:.3rem .75rem;font-size:.78rem;line-height:1.4;position:absolute;bottom:.6rem;right:.6rem}.city__fit[hidden]{display:none}.city__replay{bottom:2.6rem}.city__fit:hover{color:var(--amber-2);border-color:#f5b5426b}.city__fit:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.city__filters{z-index:4;pointer-events:none;flex-wrap:wrap;justify-content:center;gap:.35rem;display:flex;position:absolute;bottom:.6rem;left:.6rem;right:5.6rem}.city__chip{border:1px solid var(--line);min-height:1.9rem;color:var(--ink);font-family:var(--font-mono);cursor:pointer;pointer-events:auto;background:#0a0d1acc;border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .65rem;font-size:.74rem;line-height:1.3;display:inline-flex}.city__chip[hidden]{display:none}.city__chip-dot{background:var(--kind);border-radius:50%;flex:none;width:.5rem;height:.5rem}.city__chip:hover{color:var(--amber-2);border-color:#f5b5426b}.city__chip:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.city__chip[aria-pressed=true]{color:var(--kind);border-color:var(--kind);box-shadow:inset 0 0 0 1px var(--kind);background:#0a0d1aeb}:root[data-filter-active=true] .city__chip[aria-pressed=false]:not(.city__chip--all){opacity:.7}@media (width<=34rem){.city__filters{overscroll-behavior-x:contain;scrollbar-width:none;pointer-events:auto;flex-wrap:nowrap;justify-content:flex-start;gap:.2rem;padding-right:1rem;bottom:.4rem;left:.4rem;right:5.3rem;overflow-x:auto;mask-image:linear-gradient(90deg,#000 calc(100% - 1.2rem),#0000)}.city__filters::-webkit-scrollbar{display:none}.city__chip{white-space:nowrap;letter-spacing:-.01em;flex:none;gap:.25rem;min-height:1.75rem;padding:.1rem .4rem;font-size:.64rem}.city__chip-dot{width:.42rem;height:.42rem}}.city__minimap{z-index:4;box-sizing:content-box;border:1px solid var(--line);cursor:crosshair;touch-action:none;opacity:1;background:#0a0d1acc;border-radius:8px;width:11rem;max-width:11rem;height:5.5rem;max-height:9rem;transition:opacity .2s,visibility linear;display:block;position:absolute;top:.6rem;left:.6rem}.city__minimap[hidden]{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s,visibility 0s linear .2s;display:block}.city--fullscreen .city__minimap{top:3.4rem}@media (width<=34rem){.city__minimap{max-width:7rem;max-height:6rem;top:.4rem;left:.4rem}}@media (width<=519px){.city--fullscreen .city__minimap{top:5.9rem}}@media (prefers-reduced-motion:reduce){.city__minimap,.city__minimap[hidden]{transition:none}}.city__tooltip{z-index:3;border:1px solid var(--line);pointer-events:none;opacity:0;visibility:hidden;background:#0a0d1af0;border-radius:8px;max-width:min(20rem,74vw);padding:.5rem .65rem;font-size:.82rem;line-height:1.35;transition:opacity .12s;position:absolute;top:0;left:0;box-shadow:0 8px 22px #00000073}.city__tooltip[data-visible=true]{opacity:1;visibility:visible}.city__tooltip .tt-title{font-family:var(--font-mono);color:var(--amber-2);display:block}.city__tooltip .tt-meta{font-family:var(--font-mono);color:var(--muted);margin-top:.1rem;font-size:.74rem;display:block}.city__tooltip .tt-summary{-webkit-line-clamp:2;line-clamp:2;color:var(--ink);-webkit-box-orient:vertical;margin-top:.3rem;display:-webkit-box;overflow:hidden}.city__hint{color:var(--muted);margin-top:.75rem;font-size:.86rem}.legend{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.1rem 1.1rem;margin:1rem 0 0;padding:0;font-size:.84rem;list-style:none;display:grid}.legend li{margin:0}.legend__button{width:100%;min-height:2rem;color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.5rem;margin:0;padding:.2rem .45rem;transition:opacity .12s,background-color .12s;display:flex}.legend__button:hover:not(:disabled){color:var(--ink);background:#ffffff09}.legend__button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.legend__button:disabled{opacity:.45;cursor:default}.legend__button[aria-pressed=true]{background:#ffffff0d}.legend__button[aria-pressed=true] .legend__swatch{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--kind)}.legend__button[aria-pressed=true] .legend__kind{color:var(--kind)}:root[data-filter-active=true] .legend__button[aria-pressed=false]:not(:disabled){opacity:.6}:root[data-filter-active=true] .legend__button[aria-pressed=false]:not(:disabled):hover{opacity:1}.legend__swatch{background:var(--kind);border:1px solid #ffffff24;border-radius:2px;flex:none;width:.7rem;height:.7rem}.legend__kind{font-family:var(--font-mono);color:var(--ink);font-size:.76rem}.legend__count{font-family:var(--font-mono);color:var(--muted);margin-left:.4em;font-size:.7rem}.legend__clear{border:1px solid var(--line);min-height:2rem;color:var(--ink);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:999px;margin-top:.5rem;padding:.3rem .75rem;font-size:.78rem}.legend__clear[hidden]{display:none}.legend__clear:hover{color:var(--amber-2);border-color:#f5b5426b}.legend__clear:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.city-page{margin:0;overflow:hidden}.city-chrome{z-index:5;position:fixed;top:clamp(.6rem,2vw,1.1rem)}.city-chrome--left{left:clamp(.6rem,2vw,1.1rem)}.city-chrome--right{right:clamp(.6rem,2vw,1.1rem)}@media (width<=519px){.city-chrome--right{top:calc(clamp(.6rem,2vw,1.1rem) + 2.4rem);left:clamp(.6rem,2vw,1.1rem);right:auto}}.city-back{border:1px solid var(--line);color:var(--ink);font-family:var(--font-mono);background:#0a0d1acc;border-radius:999px;padding:.3rem .75rem;font-size:.78rem;text-decoration:none;display:inline-block}.city-back:hover{color:var(--amber-2);border-color:#f5b5426b}.night-header .meta{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.3rem .55rem;margin:0 0 1.5rem;font-size:.82rem;display:flex}.night-header .meta .sep{opacity:.5}.night-header h1 .num{font-family:var(--font-mono);color:var(--amber);letter-spacing:.06em;margin-bottom:.15em;font-size:.55em;display:block}.piece{margin-bottom:2rem}.piece__frame{aspect-ratio:16/10;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);width:100%;max-height:70vh;position:relative;overflow:hidden}.piece__frame iframe{border:0;width:100%;height:100%;display:block}.piece__controls{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:.7rem;font-size:.88rem;display:flex}.button{font:inherit;color:var(--ink);background:var(--bg-3);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:.32rem .9rem;font-size:.88rem}.button:hover{color:var(--amber-2);border-color:#f5b5426b}.journal{max-width:44rem}.journal p{margin-bottom:1.15rem}.journal h2,.journal h3{margin-top:2rem}.journal blockquote{border-left:2px solid var(--line);color:var(--muted);margin:0 0 1.15rem;padding-left:1rem}.prose{max-width:44rem}.prose h2{margin-top:2.4rem}.prose ol,.prose ul{margin-bottom:1.15rem}.pager{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.5rem;margin-top:2.5rem;padding-top:1.25rem;font-size:.9rem;display:flex}.pager__link{color:var(--muted);max-width:22rem;text-decoration:none}.pager__link:hover{color:var(--amber-2)}.pager__link .dir{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;display:block}.pager__link .name{color:var(--ink)}.pager__link:hover .name{color:var(--amber-2)}.pager__link--next{text-align:right;margin-left:auto}.columns{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem;margin-top:1rem;display:grid}.columns p{color:var(--muted);margin:0}.columns p strong{color:var(--ink);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.74rem;font-weight:400;display:block}.error-page{text-align:center;padding-block:clamp(3rem,12vh,7rem)}.error-page p{color:var(--muted)}.mono{font-family:var(--font-mono)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
