.city{height:calc(100vh - var(--header-h));height:calc(100dvh - var(--header-h));background:var(--city-sky);min-height:540px;position:relative;overflow:clip}.city canvas{cursor:grab;touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.city canvas.grabbing{cursor:grabbing}.city:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(130% 95% at 50% 58%,#0000 58%,#ece8e080 100%);position:absolute;inset:0}.city-labels{z-index:2;pointer-events:none;position:absolute;inset:0}.city-labels>*{opacity:0;transition:opacity .9s ease calc(var(--i,0) * 90ms), transform .9s cubic-bezier(.2, .8, .2, 1) calc(var(--i,0) * 90ms)}.city-labels.shown>*{opacity:1}.city-labels.shown>.city-mark.covered{opacity:0;transition-duration:.3s;transition-delay:0s}.city-pin{pointer-events:auto;cursor:pointer;font:inherit;color:var(--ink);background:0 0;border:0;justify-items:center;padding:0;display:grid;position:absolute;transform:translate(-50%,-100%)}.pin-plate{background:color-mix(in srgb, var(--paper) 80%, transparent);backdrop-filter:blur(10px)saturate(1.15);border:1px solid color-mix(in srgb, var(--ink) 11%, transparent);border-radius:3px;justify-items:center;gap:2px;padding:6px 11px 5px;transition:background .25s,color .25s,border-color .25s;display:grid}.pin-plate b{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:600;line-height:1.2}@media (width<=760px){.city-pin .pin-plate{padding:4px 6px 3px}.city-pin .pin-plate b{letter-spacing:.06em;font-size:9px}.city-pin .pin-plate small,.city-pin .pin-go{display:none}}.pin-plate small{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-muted);white-space:nowrap;font-size:10px;line-height:1.2;transition:color .25s}.pin-go{color:var(--seal);letter-spacing:0;transition:transform .25s var(--ease);margin-left:7px;font-style:normal;display:inline-block}.city-pin:hover .pin-go,.city-pin:focus-visible .pin-go,.city-pin.hot .pin-go{transform:translate(3px)}.city-cursor{z-index:3;pointer-events:none;background:var(--ink);color:var(--paper);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;opacity:0;border-radius:3px;padding:6px 10px;font-size:11px;transition:opacity .18s;position:absolute;top:0;left:0}.city-cursor.on{opacity:1}.city-cursor i{color:var(--seal);margin-left:6px;font-style:normal}.city-intro .how{text-wrap:pretty;align-items:baseline;gap:10px;display:flex}.city-intro .how:before{content:"";background:var(--seal);width:7px;height:7px;box-shadow:0 0 0 2px var(--paper), 0 0 0 3px color-mix(in srgb, var(--seal) 45%, transparent);border-radius:50%;flex:none;transform:translateY(-1px)}.pin-stalk{background:color-mix(in srgb, var(--ink) 42%, transparent);width:1px;height:20px}.pin-dot{background:var(--seal);width:7px;height:7px;box-shadow:0 0 0 2px var(--paper);border-radius:50%;margin-top:-1px;transition:transform .25s;position:relative}.pin-dot:after{content:"";border:1px solid var(--seal);opacity:0;animation:3.6s ease-out infinite pinBeacon;animation-delay:calc(var(--i,0) * .45s);border-radius:50%;position:absolute;inset:-5px}@keyframes pinBeacon{0%{opacity:.7;transform:scale(.5)}70%,to{opacity:0;transform:scale(1.9)}}.city-pin:hover .pin-plate,.city-pin:focus-visible .pin-plate,.city-pin.hot .pin-plate{background:var(--ink);color:var(--paper);border-color:var(--ink)}.city-pin:hover .pin-plate small,.city-pin:focus-visible .pin-plate small,.city-pin.hot .pin-plate small{color:color-mix(in srgb, var(--paper) 75%, transparent)}.city-pin:hover .pin-dot,.city-pin:focus-visible .pin-dot,.city-pin.hot .pin-dot{transform:scale(1.35)}.city-pin:focus-visible{outline:none}.city-mark{font-family:var(--font-serif);letter-spacing:.02em;color:color-mix(in srgb, var(--ink) 80%, transparent);white-space:nowrap;pointer-events:none;text-shadow:0 0 2px var(--paper), 0 0 6px var(--paper), 0 0 12px var(--paper), 0 0 18px var(--paper);font-size:15px;font-style:italic;line-height:1;position:absolute;transform:translate(-50%,-50%)}.city-intro{z-index:2;background:color-mix(in srgb, var(--paper) 76%, transparent);backdrop-filter:blur(18px)saturate(1.2);max-width:300px;color:var(--ink);border:1px solid color-mix(in srgb, var(--ink) 9%, transparent);border-radius:4px;padding:12px 14px 11px;position:absolute;bottom:20px;right:20px;box-shadow:0 30px 60px -40px #282d3273}.city-intro h1{font-family:var(--font-serif);letter-spacing:-.01em;margin:0 0 8px;font-size:24px;font-weight:400;line-height:1}.city-intro p{margin:0 0 5px;font-size:12px;line-height:1.45}.city-intro .lead{color:var(--ink);margin-bottom:9px;font-size:13.5px;line-height:1.45}.city-intro p:not(.lead){color:var(--ink-muted)}.city-intro .links{border-top:1px solid color-mix(in srgb, var(--ink) 10%, transparent);flex-wrap:wrap;gap:6px;margin:9px 0 0;padding-top:9px;display:flex}.city-intro .links a{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);border:1px solid color-mix(in srgb, var(--ink) 22%, transparent);background:color-mix(in srgb, var(--paper) 70%, transparent);border-radius:3px;padding:6px 8px 5px;font-size:11px;text-decoration:none}.city-intro .links a:after{content:" →";color:var(--seal)}.city-intro .links a:hover{color:var(--seal-deep)}.city-back{z-index:4;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--paper);cursor:pointer;border:0;border-radius:3px;padding:10px 14px;font-size:11px;position:absolute;top:20px;left:24px;box-shadow:0 14px 30px -18px #14191e99}.city-back:hover{background:var(--seal-deep)}.city-panel{z-index:4;background:color-mix(in srgb, var(--paper) 94%, transparent);backdrop-filter:blur(16px);width:min(400px,max(300px,31vw),100% - 36px);max-height:calc(100% - 36px);color:var(--ink);border:1px solid color-mix(in srgb, var(--ink) 9%, transparent);border-radius:4px;padding:24px 22px;position:absolute;top:18px;right:18px;overflow:auto;box-shadow:0 30px 70px -40px #1e232880}.city-panel .panel-close{z-index:1;background:var(--paper);width:32px;height:32px;color:var(--ink-muted);cursor:pointer;border:0;border-radius:50%;place-items:center;margin:-12px -10px -20px auto;font-size:20px;line-height:1;display:grid;position:sticky;top:-12px}.city-panel .panel-close:hover,.city-panel .panel-close:focus-visible{background:var(--paper-2);color:var(--ink);outline:none}.panel-open{z-index:4;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid color-mix(in srgb, var(--ink) 11%, transparent);background:color-mix(in srgb, var(--paper) 90%, transparent);color:var(--ink);cursor:pointer;border-radius:3px;padding:10px 14px;font-size:11px;position:absolute;top:18px;right:18px}.panel-open:hover{background:var(--ink);color:var(--paper)}.panel-open[hidden]{display:none}.city-panel .k{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 4px;font-size:11px}.city-panel h2{font-family:var(--font-serif);margin:0 0 10px;font-size:30px;font-weight:400;line-height:1.05}.city-panel p{margin:0 0 12px;font-size:14px;line-height:1.5}.city-panel .line{color:var(--ink);margin-bottom:16px;line-height:1.55}.city-panel .roles{margin:0 0 16px;padding:0;list-style:none;display:grid}.city-panel .roles+.about{margin-top:-14px}.city-panel .roles li{border-top:1px solid color-mix(in srgb, var(--ink) 8%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 14px;padding:9px 0;display:flex}.city-panel .roles li:last-child{border-bottom:1px solid color-mix(in srgb, var(--ink) 8%, transparent)}.city-panel .roles b{font-size:14px;font-weight:600}.city-panel .roles .rl{color:var(--ink-muted);flex-basis:100%;margin-top:3px;font-size:13px;line-height:1.45}.city-panel .roles .when{font-family:var(--font-mono);color:var(--ink-muted);white-space:nowrap;flex-basis:100%;font-size:11px}.city-panel .about{margin:0 0 18px}.city-panel .about summary{cursor:pointer;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:10px 0 4px;font-size:11px;list-style:none}.city-panel .about summary::-webkit-details-marker{display:none}.city-panel .about summary:after{content:"+";color:var(--seal);margin-left:6px;transition:transform .2s;display:inline-block}.city-panel .about[open] summary:after{transform:rotate(45deg)}.city-panel .about summary:hover{color:var(--ink)}.city-panel .about .rt{margin:12px 0 2px;font-size:13px;font-weight:600}.city-panel .about p{color:var(--ink-muted);margin:4px 0 8px;font-size:13px}.city-panel .about ul{color:var(--ink-muted);margin:4px 0 8px;padding-left:18px;font-size:13px;line-height:1.5}.city-panel .about li+li{margin-top:3px}.city-panel .cases{gap:10px;margin:6px 0 20px;display:grid}.city-panel .case{color:var(--ink);background:var(--card);border:1px solid color-mix(in srgb, var(--ink) 9%, transparent);border-radius:4px;text-decoration:none;transition:border-color .2s,box-shadow .3s;display:block;overflow:hidden}.city-panel .case:hover{border-color:color-mix(in srgb, var(--ink) 20%, transparent);box-shadow:0 20px 44px -30px #14191e8c}.city-panel .case .ci{aspect-ratio:16/9;background:var(--paper-2);display:block;overflow:hidden}.city-panel .case .ci img{object-fit:cover;width:100%;height:100%;transition:transform .7s var(--ease);display:block}.city-panel .case:hover .ci img{transform:scale(1.03)}.city-panel .case b{font-family:var(--font-serif);margin:14px 16px 6px;font-size:22px;font-weight:400;line-height:1.12;display:block}.city-panel .case .cd{color:var(--ink-muted);margin:0 16px;font-size:13px;line-height:1.45;display:block}.city-panel .case .go{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--seal-deep);margin:12px 16px 14px;font-size:11px;display:block}.city-panel .case-row{color:var(--ink);border-radius:4px;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;margin:0 -6px;padding:6px;text-decoration:none;display:grid}.city-panel .case-row:hover{background:var(--paper-2)}.city-panel .case-row img,.city-panel .case-row>span{object-fit:cover;background:var(--paper-2);border-radius:3px;width:52px;height:36px;display:block}.city-panel .case-row b{font-size:14px;font-weight:500;line-height:1.3}.city-panel .case-row i{color:var(--seal);font-style:normal}.city-panel .inroom{gap:2px;margin:6px 0 14px;padding:0;list-style:none;display:grid}.city-panel .inroom button{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;grid-template-columns:58px 1fr;align-items:center;gap:10px;padding:6px;display:grid}.city-panel .inroom button:hover,.city-panel .inroom button.hot{background:var(--paper-2)}.city-panel .inroom img{object-fit:cover;background:var(--paper-2);border-radius:3px;width:58px;height:44px}.city-panel .inroom b{font-size:14px;font-weight:500;line-height:1.3;display:block}.city-panel .inroom small{color:var(--ink-muted);margin-top:1px;font-size:12px;display:block}.city-panel .more{color:var(--ink);font-size:14px}.city-panel .tools-go{width:100%;font:inherit;text-align:left;color:var(--paper);background:var(--ink);cursor:pointer;border:0;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:12px 14px;font-size:14px;display:flex}.city-panel>:last-child{margin-bottom:0}.city-panel .tools-go:hover{background:var(--seal-deep)}.city-panel .tools-go i{font-style:normal}.city-panel .draft{margin-left:6px}.city-curtain{z-index:8;background:var(--paper);place-items:center;transition:opacity 1s;display:grid;position:absolute;inset:0}.city-curtain.up{opacity:0;pointer-events:none}.city-curtain[hidden]{display:none}.city-curtain .cc{opacity:0;align-items:center;gap:14px;transition:transform 1s;animation:.9s .1s forwards ccIn;display:flex}.city-curtain.up .cc{transform:translateY(-8px)}.city-curtain .cc-seal{background:var(--seal);border-radius:3px;width:14px;height:14px;display:block}.city-curtain b{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--ink);font-size:clamp(32px,4vw,48px);font-weight:400}@keyframes ccIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.city-hint{z-index:2;white-space:nowrap;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0;font-size:11px;transition:opacity 1.2s 2s;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.city.used .city-hint{opacity:0}.room{z-index:3;opacity:0;pointer-events:none;touch-action:none;cursor:grab;transition:opacity .45s;position:absolute;inset:0}.room.grabbing{cursor:grabbing}.room.on{opacity:1;pointer-events:auto}.room-backdrop{background:color-mix(in srgb, var(--city-sky) 62%, transparent);-webkit-backdrop-filter:blur(5px)saturate(.9);position:absolute;inset:0}.room-stage{transform-origin:50%;will-change:transform, opacity;position:absolute}.room-bg{filter:drop-shadow(0 24px 30px #1e2d3738);user-select:none;-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.room-work{transform-origin:0 0;cursor:pointer;background:#1c1e1e;border:0;margin:0;padding:0;position:absolute;top:0;left:0;overflow:hidden}.room-work img{object-fit:cover;filter:saturate(.95)brightness(.97);width:100%;height:100%;transition:filter .2s;display:block}.room-work:after{content:"";pointer-events:none;background:linear-gradient(118deg,#ffffff2e,#fff0 40%);position:absolute;inset:0;box-shadow:inset 0 0 24px #00000047}.room-work:hover img,.room-work.hot img,.room-work:focus-visible img{filter:brightness(1.14)}.room-work:focus-visible{outline:10px solid #fff}.room-slide{color:#1d2529;cursor:inherit;background:#f7f7f4;align-content:center;gap:10px;padding:0 34px;display:grid}.room-slide:after{background:linear-gradient(118deg,#ffffff1a,#fff0 40%);box-shadow:inset 0 0 30px #0000001f}.room-slide small{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#900;font-size:15px}.room-slide b{font-family:var(--font-serif);font-size:40px;font-weight:400;line-height:1.05}.room-slide span{color:#4d5b62;font-size:17px}.room-spot{cursor:pointer;background:0 0;border:0;border-radius:1.2em;padding:0;transition:background .2s,box-shadow .2s;position:absolute}.room-spot:hover,.room-spot.hot,.room-spot:focus-visible{background:#ffffff29;outline:none;box-shadow:0 0 0 2px #ffffffe6}.room-name{z-index:1;font-family:var(--font-serif);letter-spacing:.01em;color:color-mix(in srgb, var(--ink) 82%, transparent);white-space:nowrap;pointer-events:none;text-shadow:0 0 2px var(--paper), 0 0 6px var(--paper), 0 0 12px var(--paper), 0 0 18px var(--paper);font-size:17px;font-style:italic;line-height:1;position:absolute;transform:translate(-50%,-50%)}.room-sign{z-index:2;transform:translate(-50%, calc(-100% + 4px)) scale(var(--ui,1));transform-origin:50% 100%;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;justify-items:center;padding:0;display:grid;position:absolute}.room-sign.down{transform:translate(-50%, -4px) scale(var(--ui,1));transform-origin:50% 0}.room-sign .pin-stalk{height:16px}.room-sign:hover .pin-plate,.room-sign:focus-visible .pin-plate,.room-sign.hot .pin-plate{background:var(--ink);color:var(--paper);border-color:var(--ink)}.room-sign:hover .pin-go,.room-sign:focus-visible .pin-go,.room-sign.hot .pin-go{transform:translate(3px)}.room-sign:hover .pin-dot,.room-sign:focus-visible .pin-dot,.room-sign.hot .pin-dot{transform:scale(1.35)}.room-sign:focus-visible{outline:none}.room-hint{z-index:4;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap;pointer-events:none;margin:0;font-size:11px;transition:opacity .8s;position:absolute;transform:translate(-50%,-100%)}.room-hint.used{opacity:0}.room-cases{background:#1b2024;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:8px;padding:12px;display:grid}.room-cases img{object-fit:cover;border-radius:3px;width:100%;height:100%;min-height:0;display:block}.room-cases.one{padding:0;display:block}.room-cases.one img{border-radius:0}.room-cases:hover,.room-cases.hot,.room-cases:focus-visible{filter:brightness(1.14);outline:none}.room-cases.still{cursor:inherit;filter:none}.room-letters{cursor:inherit;font-family:var(--font-serif);letter-spacing:.01em;color:#262b2f;white-space:nowrap;text-shadow:0 10px 12px #00000029;background:0 0;place-items:center;font-size:205px;line-height:1;display:grid;overflow:visible}.room-letters:after{content:none}.room-books{cursor:inherit;background:0 0;align-items:flex-end;gap:3px;padding:10px 10px 0;display:flex;overflow:visible}.room-books:after{content:none}.room-books a{height:var(--h,92%);background:var(--c);color:#f6f1e6;writing-mode:vertical-rl;font-family:var(--font-serif);text-align:center;transition:transform .25s var(--ease), filter .2s;cursor:pointer;border-radius:3px 3px 0 0;flex:1;justify-content:center;align-items:center;padding:10px 0;font-size:18px;line-height:1.05;text-decoration:none;display:flex;overflow:hidden;transform:rotate(180deg);box-shadow:inset -4px 0 #0000002e,inset 3px 0 #ffffff1f}.room-books a:hover,.room-books a:focus-visible,.room-books.hot a{filter:brightness(1.12);outline:none}.room-books a:hover,.room-books a:focus-visible{transform:rotate(180deg)translateY(10px)}.room-books i{height:var(--h,90%);background:var(--c);pointer-events:none;border-radius:3px 3px 0 0;flex:1;box-shadow:inset -4px 0 #0000002e,inset 3px 0 #ffffff1f}.room-blank{cursor:inherit;background:linear-gradient(160deg,#f7f4ee,#e8e3d9)}.room-blank:after{background:0 0;box-shadow:inset 0 0 22px #00000014}.room-tools{background:linear-gradient(160deg,#2c353a,#1b2125);grid-template-columns:repeat(5,1fr);align-content:center;gap:12px;padding:24px 28px;display:grid}.room-tools span{aspect-ratio:1;background:var(--c);color:#fff;font-family:var(--font-mono);border-radius:13px;place-items:center;font-size:24px;display:grid;box-shadow:inset 0 -3px #0003}.room-tools:hover,.room-tools.hot,.room-tools:focus-visible{filter:brightness(1.15)}.room-canvas{cursor:inherit;background:#fbfaf6;grid-template-rows:auto 1fr 1fr .8fr;grid-template-columns:repeat(10,1fr);gap:3px;padding:12px 14px 14px;display:grid}.room-canvas>b{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#2a3035;grid-column:1/-1;padding-bottom:3px;font-size:11px;font-weight:400}.room-canvas>div{border:2px solid #2a3035;padding:4px 5px;position:relative}.room-canvas small{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;color:#2a3035;font-size:8.5px;line-height:1.15;display:block}.room-canvas i{background:var(--c);width:17px;height:17px;position:absolute;box-shadow:0 1px 2px #00000038}.room-dot{pointer-events:none;background:#fff;border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute;box-shadow:0 1px 4px #0000004d}.room-dot:after{content:"";border:2px solid #ffffffd9;border-radius:50%;animation:2.6s ease-out infinite roomPulse;position:absolute;inset:-6px}@keyframes roomPulse{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(1.7)}}.room-tip{z-index:2;background:var(--ink);color:var(--card);white-space:nowrap;pointer-events:none;opacity:0;border-radius:7px;padding:5px 10px;font-size:12px;transition:opacity .15s;position:absolute;transform:translate(-50%,calc(-100% - 12px))}.room-tip.on{opacity:1}.room-steam{pointer-events:none;width:0;height:0;position:absolute}.room-steam i{filter:blur(.45em);opacity:0;background:#fff9;border-radius:50%;width:1.4em;height:1.4em;animation:3.4s ease-in infinite roomSteam;position:absolute;top:-.7em;left:-.7em}.room-steam i:nth-child(2){animation-delay:1.15s;left:-.1em}.room-steam i:nth-child(3){animation-delay:2.3s;left:-1.2em}@keyframes roomSteam{0%{opacity:0;transform:translateY(0)scale(.6)}20%{opacity:.85}to{opacity:0;transform:translateY(-6em)scale(1.9)}}.room-person{pointer-events:none;user-select:none;width:auto;position:absolute;transform:translate(-50%,-96%)}.room-person.flip{transform:translate(-50%,-96%)scaleX(-1)}.room-glow{mix-blend-mode:screen;pointer-events:none;background:radial-gradient(circle,#ffd28280,#ffd28200 68%);border-radius:50%;width:5em;height:5em;margin:-2.5em 0 0 -2.5em;animation:4.5s ease-in-out infinite roomGlow;position:absolute}@keyframes roomGlow{0%,to{opacity:.6}50%{opacity:1}}.viewer{z-index:6;background:color-mix(in srgb, var(--paper) 96%, transparent);-webkit-backdrop-filter:blur(8px);grid-template-columns:minmax(0,1fr) 340px;animation:.28s viewerIn;display:grid;position:absolute;inset:0}.viewer[hidden]{display:none}.viewer-fly{z-index:60;object-fit:cover;pointer-events:none;transform-origin:0 0;will-change:transform, opacity;background:var(--paper-2);border-radius:6px;position:fixed;box-shadow:0 30px 60px -30px #14191e8c}.viewer-media>img,.viewer-media>video,.viewer-media .audio{transition:opacity .25s}.viewer-media.arriving>img,.viewer-media.arriving>video,.viewer-media.arriving .audio{opacity:0;transition:none}@keyframes viewerIn{0%{opacity:0}to{opacity:1}}.viewer-media{place-items:center;min-width:0;min-height:0;padding:64px 72px 40px;display:grid;position:relative;overflow:hidden}.viewer-media>img,.viewer-media>video{object-fit:contain;background:var(--paper-2);border-radius:6px;width:auto;max-width:100%;height:auto;max-height:100%;box-shadow:0 30px 60px -34px #14191e8c}.viewer-media audio{width:min(520px,100%);margin-top:18px}.viewer-media .audio{justify-items:center;max-height:100%;display:grid}.viewer-media .audio img{max-height:60vh;box-shadow:var(--shadow);border-radius:10px}.viewer-pages{font-family:var(--font-mono);color:var(--ink-muted);align-items:center;gap:10px;font-size:12px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.viewer-pages button{border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;border-radius:999px;width:30px;height:30px}.viewer-info{padding:64px 28px 28px 8px;overflow:auto}.viewer-info .k{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 6px;font-size:11px}.viewer-info h2{font-family:var(--font-serif);margin:0 0 12px;font-size:clamp(28px,2.6vw,38px);font-weight:400;line-height:1.05}.viewer-info p{margin:0 0 14px;font-size:15px;line-height:1.55}.viewer-info .count{font-family:var(--font-mono);color:var(--ink-muted);font-size:12px}.viewer-info .go{gap:8px;margin:18px 0 14px;display:grid}.viewer-info .go a{background:var(--card);border:1px solid color-mix(in srgb, var(--ink) 9%, transparent);color:var(--ink);border-radius:4px;padding:11px 14px;font-size:14px;text-decoration:none;transition:border-color .2s;display:block}.viewer-info .go a:hover{border-color:color-mix(in srgb, var(--ink) 25%, transparent);color:var(--seal-deep)}.viewer-close{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--paper);cursor:pointer;border:0;border-radius:3px;padding:10px 14px;font-size:11px;position:absolute;top:16px;right:18px}.viewer-close:hover{background:var(--seal-deep)}.viewer-nav{background:var(--card);width:46px;height:46px;color:var(--ink);box-shadow:var(--shadow-sm);cursor:pointer;border:0;border-radius:50%;font-size:20px;position:absolute;top:50%;transform:translateY(-50%)}.viewer-nav.prev{left:14px}.viewer-nav.next{right:346px}.viewer-nav:disabled{opacity:.3;cursor:default}.viewer.tools .viewer-nav,.viewer.cases .viewer-nav{display:none}.viewer.card{background:var(--paper);border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);backdrop-filter:none;border-radius:4px;flex-direction:column;width:min(470px,100% - 48px);max-height:calc(100% - 100px);display:flex;inset:76px auto auto 24px;overflow:auto;box-shadow:0 30px 70px -34px #14191e8c}.viewer.card .viewer-info{order:1;max-height:none;padding:24px 22px 8px;overflow:visible}.viewer.card{margin:0}.viewer.card:hover img{transform:none}.viewer.card .viewer-info,.viewer.card .viewer-media{flex:none}.viewer.card .viewer-media:empty{display:none}.viewer.card .viewer-media:empty+.viewer-info{padding-bottom:22px}.viewer.card .viewer-media:empty+.viewer-info>:last-child{margin-bottom:0}.viewer.card .viewer-info .k{margin-bottom:4px}.viewer.card .viewer-media{order:2;padding:6px 22px 22px;display:block;overflow:visible}.viewer.card .viewer-close{z-index:1;background:var(--paper);width:32px;height:32px;color:var(--ink-muted);letter-spacing:0;border-radius:50%;flex:none;order:0;align-self:flex-end;margin:12px 12px -44px 0;padding:0;font-family:inherit;font-size:20px;position:sticky;top:12px;right:auto}.viewer.card .viewer-close:hover{background:var(--paper-2);color:var(--ink)}.viewer.card .viewer-close:focus{outline:none}.viewer.card .viewer-close:focus-visible{outline:2px solid color-mix(in srgb, var(--ink) 28%, transparent);outline-offset:2px}.viewer.card .tools-desk{border-radius:8px;width:100%;max-height:none;padding:12px 14px 14px}.viewer.card .tools-desk h3{margin:10px 0 5px;font-size:11px}.viewer.card .tools-desk h3:first-child{margin-top:0}.viewer.card .tools-desk ul{flex-wrap:wrap;gap:5px;display:flex}.viewer.card .tools-desk li>a,.viewer.card .tools-desk li>span{background:#ffffff0f;border-radius:999px;align-items:center;gap:7px;padding:3px 10px 3px 3px;display:flex}.viewer.card .tools-desk .ic{width:22px;height:22px;box-shadow:none;border-radius:50%;font-size:9.5px}.viewer.card .tools-desk b{font-size:12.5px;display:inline}.viewer.card .tools-desk small{margin:0 0 0 4px;font-size:11px;display:inline}.viewer.card .viewer-info p:not(.k):not(.count){font-size:14px}.viewer.card .viewer-info h2{margin-bottom:10px;font-size:30px;line-height:1.05}.viewer.card.aside{width:min(400px,max(300px,31vw),100% - 36px);max-height:calc(100% - 36px);top:18px;left:auto;right:18px}.viewer.card .case-shelf{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;width:100%;max-height:none}.viewer.card .case-shelf b{font-size:18px}.case-shelf{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;width:min(880px,100%);max-height:100%;padding:2px;display:grid;overflow:auto}.case-shelf a{color:var(--ink);background:var(--card);border:1px solid color-mix(in srgb, var(--ink) 9%, transparent);transition:border-color .2s, box-shadow .3s, transform .3s var(--ease);border-radius:4px;text-decoration:none;display:block;overflow:hidden}.case-shelf a:hover,.case-shelf a:focus-visible{border-color:color-mix(in srgb, var(--ink) 22%, transparent);outline:none;transform:translateY(-2px);box-shadow:0 20px 44px -30px #14191e8c}.case-shelf .ci{aspect-ratio:16/9;background:var(--paper-2);display:block;overflow:hidden}.case-shelf .ci img{object-fit:cover;width:100%;height:100%;display:block}.case-shelf b{font-family:var(--font-serif);margin:12px 14px 6px;font-size:21px;font-weight:400;line-height:1.12;display:block}.case-shelf .draft{vertical-align:middle;margin-left:8px}.case-shelf .cd{color:var(--ink-muted);margin:0 14px;font-size:13px;line-height:1.45;display:block}.case-shelf .go{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--seal-deep);margin:10px 14px 14px;font-size:11px;display:block}.tools-desk{color:#f2efe8;background:linear-gradient(160deg,#2c353a,#1b2125);border-radius:10px;width:min(820px,100%);max-height:100%;padding:22px 22px 24px;overflow:auto;box-shadow:0 30px 60px -34px #14191e8c}.tools-desk h3{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#f2efe89e;margin:14px 0 4px;font-size:11px;font-weight:400}.tools-desk h3:first-child{margin-top:0}.tools-desk ul{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px 6px;margin:0;padding:0;list-style:none;display:grid}.tools-desk li>a,.tools-desk li>span{color:inherit;border-radius:8px;grid-template-columns:34px 1fr;align-items:center;gap:10px;padding:5px 6px;text-decoration:none;display:grid}.tools-desk li>a:hover,.tools-desk li>a:focus-visible{background:#ffffff17;outline:none}.tools-desk .ic{background:var(--c);color:#fff;width:34px;height:34px;font-family:var(--font-mono);border-radius:9px;place-items:center;font-size:13px;display:grid;box-shadow:inset 0 -2px #0003}.tools-desk b{font-size:14px;font-weight:500;line-height:1.2;display:block}.tools-desk small{color:#f2efe899;margin-top:2px;font-size:12px;display:block}.case-pop{z-index:8;background:color-mix(in srgb, var(--city-sky) 55%, transparent);backdrop-filter:blur(6px);place-items:center;padding:20px;animation:.25s viewerIn;display:grid;position:absolute;inset:0}.case-pop[hidden]{display:none}.case-pop-card{background:var(--paper);border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:8px;width:min(1120px,100%);height:100%;position:relative;overflow:hidden;box-shadow:0 40px 90px -40px #14191e99}.case-pop iframe{border:0;width:100%;height:100%;display:block}.case-pop-close{background:var(--ink);width:38px;height:38px;color:var(--paper);cursor:pointer;border:0;border-radius:50%;font-size:22px;line-height:1;position:absolute;top:12px;right:14px;box-shadow:0 10px 24px -12px #14191e99}.case-pop-close:hover{background:var(--seal-deep)}.case-pop-back{border:1px solid color-mix(in srgb, var(--ink) 14%, transparent);background:var(--paper);height:38px;color:var(--ink);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:19px;padding:0 16px;font-size:11px;position:absolute;top:12px;left:14px;box-shadow:0 10px 24px -14px #14191e80}.case-pop-back:hover{border-color:var(--ink)}.case-pop-back[hidden]{display:none}.city-flat{background:var(--paper);z-index:7;padding:40px 0 80px;position:absolute;inset:0;overflow:auto}.city.flat .city-flat{display:block}.city.flat canvas,.city.flat .city-intro,.city.flat .city-hint{display:none}.flat-places{grid-template-columns:minmax(0,1fr);gap:28px;max-width:70ch;margin:32px 0 0;padding:0;list-style:none;display:grid}.flat-places .row{flex-wrap:wrap}.flat-places .chip{white-space:normal;text-align:left;max-width:100%;height:auto}.flat-places .h2{margin:2px 0 8px}@media (prefers-reduced-motion:reduce){.room-steam,.room-glow,.room-dot:after{animation:none}.room-stage{transition:none}.viewer{animation:none}}@media (width<=760px){.room-name{font-size:12px}.city-intro{max-width:none;padding:12px 14px;bottom:12px;left:12px;right:12px}.city-hint,.room-hint{display:none}.city-intro h1{font-size:28px}.city-intro .lead{font-size:14.5px;line-height:1.45}.city-intro p:not(.lead){font-size:12.5px}.city-panel{width:auto;max-height:42%;inset:auto 8px 8px}.panel-open{text-align:center;inset:auto 8px 8px}.viewer{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.viewer-media{padding:56px 12px 44px}.viewer-info{max-height:38vh;padding:4px 18px 22px}.viewer-nav{width:40px;height:40px;top:auto;bottom:calc(38vh + 6px);transform:none}.viewer-nav.next{right:12px}.viewer-nav.prev{left:12px}.viewer.card,.viewer.card.aside{width:auto;max-height:52%;inset:auto 8px 8px}}
