:root{--bg: #0d0a08;--bg-veil: rgba(20, 8, 6, .62);--ink: #efe6d6;--ink-muted: #a89c88;--ink-faint: #6b6153;--gilt: #c9a45c;--gilt-bright: #e6c98a;--line: rgba(239, 230, 214, .14);--focus: #e6c98a;--card-bg: rgba(28, 16, 12, .6);--card-w: 284px;--font-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 20px;--text-xl: 28px;--text-2xl: 40px;--tracking-caps: .14em;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-6: 24px;--s-8: 32px;--s-12: 48px;--s-16: 64px;--radius-sm: 2px;--radius-md: 4px;--tap: 44px;--ease-out: cubic-bezier(.2, .7, .2, 1);--dur-fast: .15s;--dur-base: .22s;--dur-slow: .6s;--dur-card: .46s;--dur-card-out: .12s;--ease-soft: cubic-bezier(.22, 1, .36, 1);--dur-fade-in: .6s;--dur-fade-out: .8s;--veil: #000}*{box-sizing:border-box}html,body,#root{height:100%;height:100dvh;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-md);line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased}canvas{display:block}.overlay{position:fixed;inset:0;pointer-events:none}.overlay>*{pointer-events:auto}.hint,.badge,.crosshair{pointer-events:none}.topnav{position:absolute;top:var(--s-6);left:var(--s-8);z-index:3;display:flex;align-items:flex-start;gap:var(--s-6)}.brand{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:.02em;color:var(--ink);margin-right:var(--s-2)}.navlink{min-height:32px;margin-top:2px;padding:0 var(--s-2);background:transparent;border:0;border-bottom:1px solid transparent;color:var(--ink-muted);font:inherit;font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.navlink:hover,.menu[data-open=true]>.navlink{color:var(--ink);border-bottom-color:var(--gilt)}.menu{position:relative}.menu-list{position:absolute;left:0;top:100%;margin-top:var(--s-2);min-width:240px;padding:var(--s-2) 0;background:var(--card-bg);backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1);border:1px solid var(--gilt);border-radius:var(--radius-md);box-shadow:0 12px 32px #00000073;opacity:0;transform:translateY(-4px);pointer-events:none;visibility:hidden;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),visibility 0s linear var(--dur-fast)}.menu[data-open=true] .menu-list{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition-delay:0s}.menu-item{display:flex;align-items:baseline;gap:var(--s-3);width:100%;padding:var(--s-2) var(--s-4);background:transparent;border:0;color:var(--ink);font-family:var(--font-display);font-size:var(--text-md);text-align:left;cursor:pointer}.menu-item:hover{background:#efe6d614;color:var(--gilt-bright)}.menu-num{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--gilt);letter-spacing:.1em}.brand small{display:block;font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-muted);margin-top:var(--s-1)}.topright[data-hidden=true]{opacity:0;visibility:hidden;pointer-events:none}.topright{position:absolute;top:var(--s-6);right:var(--s-8);z-index:3;display:flex;align-items:center;gap:var(--s-2)}.daynight{--knob: calc(var(--tap) - 12px);position:relative;width:calc(var(--knob) * 2 + 12px);height:var(--tap);padding:0 6px;display:grid;grid-template-columns:1fr 1fr;align-items:center;background:transparent;border:1px solid var(--line);border-radius:999px;color:var(--ink-muted);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.daynight:hover:not(:disabled){color:var(--ink);border-color:var(--ink-muted)}.daynight:disabled{cursor:default}.daynight-icon{position:relative;z-index:1;display:grid;place-items:center;width:var(--knob);height:var(--knob);color:var(--ink-faint);transition:color var(--dur-base) var(--ease-out)}.daynight[data-night=false] .daynight-icon:first-child,.daynight[data-night=true] .daynight-icon:nth-child(2){color:var(--ink)}.daynight-knob{position:absolute;top:5px;left:5px;width:var(--knob);height:var(--knob);border-radius:50%;background:#efe6d61f;border:1px solid var(--line);transition:transform var(--dur-slow) var(--ease-out)}.daynight[data-night=true] .daynight-knob{transform:translate(var(--knob))}.veil{position:fixed;inset:0;z-index:5;pointer-events:none;background:var(--veil);opacity:0;transition:opacity var(--dur-fade-out) var(--ease-out)}.veil[data-fade=in]{opacity:1;transition-duration:var(--dur-fade-in)}.still{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:1;height:100%;width:auto;max-width:none;pointer-events:none;transition:none}.still[data-hidden=true]{opacity:0;transition:opacity .32s var(--ease-out)}.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;transition:none;background:radial-gradient(ellipse 62% 70% at 50% 48%,#0000,#0000002e 55%,#000000b8)}.vignette[data-hidden=true]{opacity:0;transition:opacity .32s var(--ease-out)}.overlay>.still,.overlay>.still-pic{pointer-events:none}.iconbtn{width:var(--tap);height:var(--tap);padding:0;display:grid;place-items:center;background:transparent;border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink-muted);font:inherit;font-size:var(--text-md);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.iconbtn:hover,.iconbtn[aria-pressed=true]{color:var(--ink);border-color:var(--ink-muted)}.enter{position:relative;overflow:hidden}.enter:disabled{cursor:default;color:var(--ink-muted);border-color:var(--line)}.enter:disabled:hover{background:transparent;color:var(--ink-muted)}.enter-bar{position:absolute;left:0;bottom:0;height:2px;background:var(--gilt);transition:width var(--dur-base) var(--ease-out)}.enter[data-ready=true] .enter-bar{opacity:0}.legend{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;background:#00000073}.legend>div{width:min(480px,calc(100vw - 2 * var(--s-6)));padding:var(--s-6) var(--s-8);background:var(--bg-veil);border:1px solid var(--line);border-radius:var(--radius-md);backdrop-filter:blur(8px)}.legend h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);margin:0 0 var(--s-4)}.legend dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--s-2) var(--s-4);margin:0 0 var(--s-6);font-size:var(--text-sm)}.legend dt{color:var(--gilt-bright);letter-spacing:.04em}.legend dd{margin:0;color:var(--ink-muted)}.home{min-height:var(--tap);padding:0 var(--s-4);background:transparent;border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink-muted);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.home:hover{color:var(--ink);border-color:var(--ink-muted)}.crosshair{position:absolute;left:50%;top:50%;width:6px;height:6px;translate:-50% -50%;border-radius:50%;background:var(--gilt-bright);opacity:.85;box-shadow:0 0 0 2px #00000059}.badge{position:absolute;bottom:var(--s-8);left:50%;translate:-50% 0;max-width:min(560px,calc(100vw - 2 * var(--s-6)));text-align:center;padding:var(--s-2) var(--s-4);background:var(--card-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--radius-md);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.wasd{--cap: 30px;position:absolute;left:var(--s-8);bottom:var(--s-8);z-index:3;pointer-events:none;display:grid;grid-template-areas:". w ." "a s d";grid-template-columns:repeat(3,var(--cap));grid-auto-rows:var(--cap);gap:5px;animation:wasd-in var(--dur-base) var(--ease-out)}.keycap{display:grid;place-items:center;border:1.5px solid #f2c440;border-radius:7px;background:#0c09068c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#f2c440;box-shadow:0 1px 3px #00000059;font-family:var(--font-ui);font-size:13px;font-weight:600;line-height:1;transition:background 80ms var(--ease-out),color 80ms var(--ease-out),transform 80ms var(--ease-out)}.keycap[data-down=true]{background:#f2c440;color:#1a140d;transform:translateY(1px)}@keyframes wasd-in{0%{opacity:0;transform:translateY(4px)}}.intro{position:absolute;inset:0;z-index:2;display:flex;justify-content:center;align-items:center;text-align:center;pointer-events:none;transition:opacity .35s var(--ease-out)}.intro[data-hidden=true]{transition:opacity .32s var(--ease-out)}.intro>div{pointer-events:auto;width:min(520px,calc(100vw - 2 * var(--s-6)));padding:var(--s-8) var(--s-8) var(--s-6);background:var(--bg-veil);border:1px solid var(--line);border-radius:var(--radius-md);backdrop-filter:blur(6px)}.intro p.what{color:var(--ink);max-width:40ch;margin:0 auto var(--s-6)}.glyphs{list-style:none;display:flex;justify-content:center;gap:var(--s-6);flex-wrap:wrap;margin:var(--s-6) 0 var(--s-4);padding:0;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.glyphs li{display:flex;align-items:center;gap:var(--s-2)}.glyph{font-size:var(--text-md);color:var(--gilt);letter-spacing:0}.contacts{display:flex;justify-content:center;gap:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line)}.contacts a{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--ink-muted);text-decoration:none;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;transition:color var(--dur-fast) var(--ease-out)}.contacts a:hover{color:var(--gilt-bright)}.intro[data-hidden=true]{opacity:0;visibility:hidden;transition:opacity .32s var(--ease-out),visibility 0s linear .32s}.intro[data-hidden=true]>div{pointer-events:none}.intro h1{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);margin:0 0 var(--s-1);letter-spacing:.01em}.intro p{color:var(--ink-muted);margin:0 0 var(--s-4)}.intro p.tagline{margin-bottom:var(--s-3)}.intro p.cue{font-size:var(--text-sm);color:var(--ink-faint);margin-bottom:var(--s-3)}.enter{min-height:var(--tap);padding:0 var(--s-8);background:transparent;border:1px solid var(--gilt);border-radius:var(--radius-md);color:var(--gilt-bright);font-family:var(--font-ui);font-size:var(--text-sm);letter-spacing:var(--tracking-caps);text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.enter:hover{background:var(--gilt);color:var(--bg)}.nav{position:absolute;left:0;right:0;bottom:var(--s-8);display:flex;justify-content:center;align-items:center;gap:var(--s-6);transition:opacity var(--dur-base) var(--ease-out)}.nav[data-hidden=true]{opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--dur-base) var(--ease-out),visibility 0s linear var(--dur-base)}.nav[data-reading=true]{justify-content:flex-start;left:var(--s-8);right:auto;bottom:var(--s-12)}.nav[data-reading=true] .placard{min-width:0;text-align:left}.hint[data-reading=true]{text-align:left;left:var(--s-8);right:auto;bottom:var(--s-6);max-width:44ch}.arrow{width:var(--tap);height:var(--tap);background:var(--bg-veil);border:1px solid var(--line);border-radius:50%;color:var(--ink);font-size:var(--text-lg);line-height:1;cursor:pointer;display:grid;place-items:center;transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.arrow:hover:not(:disabled){border-color:var(--gilt);color:var(--gilt-bright)}.arrow:disabled{opacity:.3;cursor:default}.placard{min-width:220px;text-align:center}.placard .title{font-family:var(--font-display);font-size:var(--text-lg)}.placard .meta{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-muted);margin-top:var(--s-1)}.hint{position:absolute;left:0;right:0;bottom:var(--s-3);text-align:center;font-size:var(--text-xs);color:var(--ink-faint);letter-spacing:.04em}.cards{position:fixed;inset:0;z-index:4;pointer-events:none}.preview{width:min(var(--card-w),calc(100vw - 32px));padding:var(--s-3) var(--s-4);background:linear-gradient(180deg,#ffffff12,#fff0 45%),var(--card-bg);backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1);border:1px solid var(--gilt);border-radius:var(--radius-md);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-sm);line-height:1.4;box-shadow:0 12px 32px #00000073;opacity:0;transform:translateY(8px) scale(.985);transition:opacity var(--dur-card-out) var(--ease-out),transform var(--dur-card-out) var(--ease-out);will-change:opacity,transform}.preview[data-shown=true]{opacity:1;transform:none;transition:opacity var(--dur-card) var(--ease-soft),transform var(--dur-card) var(--ease-soft)}.preview[data-side=right]{translate:50% 0}.preview[data-side=left]{translate:-50% 0}.preview-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--gilt-bright);margin-bottom:var(--s-1)}.preview-hook{margin:0 0 var(--s-2);color:var(--ink)}.preview-tags{display:flex;flex-wrap:wrap;gap:var(--s-1);margin-bottom:var(--s-2)}.preview-tags span{font-size:var(--text-xs);color:var(--ink-muted);border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 var(--s-2)}.preview-prompt{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--gilt)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (prefers-reduced-motion: reduce){*{transition-duration:0ms!important}}.menubtn{display:none}.menubtn[data-hidden=true]{visibility:hidden}.close-reading{position:absolute;z-index:3;top:max(var(--s-6),env(safe-area-inset-top));right:max(var(--s-8),env(safe-area-inset-right));background:var(--bg-veil);font-size:var(--text-lg)}.sheet-scrim{position:fixed;inset:0;z-index:6;background:#00000073;display:flex;align-items:flex-end;justify-content:center}.sheet{width:min(520px,100vw);max-height:85dvh;overflow-y:auto;padding:var(--s-4) max(var(--s-4),env(safe-area-inset-right)) max(var(--s-4),env(safe-area-inset-bottom)) max(var(--s-4),env(safe-area-inset-left));background:var(--bg-veil);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-md) var(--radius-md) 0 0;animation:sheet-in var(--dur-base) var(--ease-out)}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}}.sheet .menu-item{min-height:var(--tap);border-radius:var(--radius-sm)}.sheet-group{display:flex;flex-direction:column;padding-bottom:var(--s-3);margin-bottom:var(--s-3);border-bottom:1px solid var(--line)}.sheet-row{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;margin-bottom:var(--s-4)}.sheet-foot{display:flex;justify-content:space-between;align-items:center}.sheet:focus{outline:none}.stick{position:absolute;z-index:3;left:max(var(--s-6),env(safe-area-inset-left));bottom:calc(max(var(--s-6),env(safe-area-inset-bottom)) + 28px);width:120px;height:120px;border-radius:50%;display:grid;place-items:center;touch-action:none;border:1.5px solid rgba(242,196,64,.7);background:#0c090659;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.stick[data-raised=true]{bottom:calc(max(var(--s-3),env(safe-area-inset-bottom)) + 28px + var(--tap) + var(--s-4));width:104px;height:104px}.pager{position:absolute;z-index:3;left:50%;translate:-50% 0;bottom:calc(max(var(--s-3),env(safe-area-inset-bottom)) + 28px + var(--tap) + var(--s-3));display:flex;align-items:center;gap:var(--s-3);padding:var(--s-1) var(--s-2);background:var(--bg-veil);border:1px solid var(--line);border-radius:999px}.pager .arrow{width:40px;height:40px;animation:pager-nudge .9s var(--ease-out) .6s 2}.pager .arrow:disabled{animation:none}.pager-dots{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--ink-muted);letter-spacing:.06em}.pager-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}.pager-dots i[data-on=true]{background:var(--gilt-bright)}.pager-dots em{font-style:normal;margin-left:var(--s-1);white-space:nowrap}@keyframes pager-nudge{50%{border-color:var(--gilt);color:var(--gilt-bright);transform:scale(1.12)}}.stick-knob{width:52px;height:52px;border-radius:50%;background:#f2c440d9;box-shadow:0 2px 8px #0006;pointer-events:none}.preview-go{margin-top:var(--s-2);width:100%;color:var(--gilt-bright);border-color:var(--gilt)}.hint[data-touch=true]{display:block;bottom:max(var(--s-3),env(safe-area-inset-bottom))}.list{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--s-8) var(--s-6) var(--s-16)}.list-inner{max-width:680px;margin:0 auto}.list h1{font-family:var(--font-display);font-weight:400;font-size:var(--text-2xl);margin:0 0 var(--s-2)}.list .tagline{color:var(--ink-muted);margin:0 0 var(--s-4)}.list .contacts{justify-content:flex-start;border-top:0;padding-top:0;margin-bottom:var(--s-8)}.list .what{color:var(--ink-muted);font-size:var(--text-sm);margin:0 0 var(--s-8)}.list .what a{color:var(--gilt-bright)}.list article{padding:var(--s-6) 0;border-top:1px solid var(--line)}.list article h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);margin:0 0 var(--s-1)}.list .meta{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--s-3)}.list .hook{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);margin:0 0 var(--s-4)}.list h3{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-muted);margin:var(--s-4) 0 var(--s-1)}.list p{margin:0 0 var(--s-3)}.list .links{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-4)}.list .links a{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--gilt-bright);border:1px solid var(--gilt);padding:var(--s-2) var(--s-3);border-radius:var(--radius-sm)}.list .about{padding:var(--s-6) 0;border-top:1px solid var(--line)}body[data-app=gallery],body[data-app=gallery] canvas,body[data-app=gallery] .overlay button,body[data-app=gallery] .overlay a{cursor:url(/cursors/hand.svg) 8 3,pointer}body[data-app=gallery][data-cursor=grab] canvas{cursor:url(/cursors/hand-grab.svg) 14 12,grabbing}canvas{touch-action:none}.legend-foot{display:flex;align-items:center;gap:var(--s-4)}.quiet{font-size:var(--text-xs);color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;text-decoration:none}.quiet:hover{color:var(--ink-muted)}.contacts .quiet{margin-left:auto}@media (max-width: 1100px){.brand small{display:none}.topnav{gap:var(--s-4)}.placard{min-width:160px}}@media (max-width: 820px){.navlink,.home{font-size:var(--text-xs);padding:0 var(--s-3)}.hint{display:none}.badge{font-size:var(--text-xs);letter-spacing:.04em}.wasd{--cap: 26px;left:var(--s-4);bottom:var(--s-4)}}@media (max-width: 640px),(max-height: 500px){.topnav{top:max(var(--s-3),env(safe-area-inset-top));left:max(var(--s-4),env(safe-area-inset-left))}.topnav .navlink,.topnav .menu,.topright{display:none}.brand{font-size:var(--text-md);text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 12px rgba(0,0,0,.45)}.menubtn{display:grid;position:absolute;z-index:3;top:max(var(--s-3),env(safe-area-inset-top));right:max(var(--s-4),env(safe-area-inset-right));background:var(--bg-veil)}.close-reading{top:calc(max(var(--s-3),env(safe-area-inset-top)) + var(--tap) + var(--s-2));right:max(var(--s-4),env(safe-area-inset-right))}.nav{bottom:calc(max(var(--s-3),env(safe-area-inset-bottom)) + 28px);gap:var(--s-4)}.nav[data-reading=true]{left:0;right:0;justify-content:center;bottom:calc(max(var(--s-3),env(safe-area-inset-bottom)) + 28px)}.nav[data-reading=true] .placard{text-align:center}.placard{min-width:120px}.placard .title{font-size:var(--text-md)}.hint[data-reading=true]{left:0;right:0;max-width:none;text-align:center}.intro>div{padding:var(--s-6) var(--s-4) var(--s-4)}}@media (max-height: 500px){.intro>div{padding:var(--s-4) var(--s-6) var(--s-3);width:min(560px,calc(100vw - 2 * var(--s-16)))}.intro h1{font-size:var(--text-lg)}.intro p.what{display:none}.intro p.cue{margin-bottom:var(--s-2)}.sheet{max-height:92dvh}.sheet-group{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--s-4)}.sheet .menu-item{min-height:40px}}@media (max-height: 640px){.intro>div{padding:var(--s-6)}.glyphs{display:none}}
