*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;margin:0;background:#080c12;color:#f3eee4;font-family:system-ui,sans-serif;overflow:hidden;overscroll-behavior:none;touch-action:auto}button,a{font:inherit}button{color:inherit;border:1px solid #ffffff25;background:#111922df;border-radius:13px;min-height:46px;padding:10px 15px;touch-action:manipulation;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #efc777;outline-offset:3px}button:disabled{opacity:.45;cursor:default}#scene{position:fixed;inset:0;z-index:0;transform:translateZ(0);display:block;width:100%;height:100%;touch-action:none;cursor:grab}#scene:active{cursor:grabbing}#hud{position:fixed;z-index:1;inset:0;pointer-events:none;background:linear-gradient(#04070cd9,transparent 25%,transparent 70%,#04070cbb)}.top{position:absolute;top:20px;inset-inline:22px;display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.top h1{margin:6px 0;font-size:clamp(19px,4vw,28px);max-width:65vw;line-height:1.1}.eyebrow{color:#d8bc85;letter-spacing:3px;font-size:9px;font-weight:700}#title{font-size:11px;color:#d8d1c1}.actions{display:flex;gap:7px}.actions button{font-size:20px;width:46px;padding:0;pointer-events:auto}#reticle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:22px;color:#fff7;text-shadow:0 0 15px #fff}#hint{position:absolute;left:50%;top:64%;transform:translateX(-50%);width:min(85%,420px);text-align:center;color:#f9e2ad;font-size:12px;text-shadow:0 1px 8px #000;background:#090e16b3;padding:9px 12px;border-radius:10px;transition:opacity .2s}#joystick{pointer-events:none;touch-action:none;position:absolute;left:20px;bottom:42px;width:120px;height:120px;border:1px solid #ffffff38;background:#ffffff0b;border-radius:50%;box-shadow:inset 0 0 20px #fff1}#stick{position:absolute;left:37px;top:37px;width:46px;height:46px;border-radius:50%;background:linear-gradient(#ddd9cf88,#6e777344);border:1px solid #ffffffe0;box-shadow:0 2px 15px #0006}#moveLabel{position:absolute;top:128px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;color:#ddd9cf}.bottom{position:absolute;right:22px;bottom:55px;display:flex;gap:8px;pointer-events:none}.bottom button{pointer-events:auto}#inspect:disabled{pointer-events:none}#inspect{max-width:40vw;background:#d5b36b;color:#161109;font-size:12px;font-weight:700;border:0}#reset{font-size:20px;padding:6px 13px}#artwork{position:absolute;bottom:10px;width:100%;text-align:center;font-size:9px;color:#aaa8a1}#panel{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#0007;padding:16px;z-index:5}.sheet{position:relative;background:linear-gradient(145deg,#19212b,#0d131d);border:1px solid #d8bc8544;border-radius:24px;width:min(100%,620px);max-height:85%;overflow:auto;padding:30px 24px 20px;box-shadow:0 20px 80px #000c;overscroll-behavior:contain}.close{position:sticky;top:0;float:right;margin:-12px -5px 0 12px;font-size:26px;background:#27313c;line-height:1}.sheet h2{font-size:24px;margin:10px 0 20px;line-height:1.25}.count{font-size:40px;color:#efce8c;line-height:1.2;margin:8px 0 22px}.count span{font-size:14px;color:#dbd5c7;margin-inline-start:9px}.sheet p{font-size:14px;line-height:1.75;white-space:pre-line;color:#d8dce1}.yearHeading{font-size:11px;letter-spacing:1px;color:#b9b0a0;margin-bottom:12px}.years{display:flex;gap:8px;flex-wrap:wrap}.year{border:1px solid #d8bc8544;border-radius:8px;padding:7px 10px;color:#f0d8a8;font-size:13px;background:#d8bc850c;direction:ltr}.credit{font-size:10px;color:#8490a0;margin-top:24px}.credit a{color:#adb5c0}.source{display:inline-block;color:#dbc28e;font-size:12px;margin-top:20px;line-height:1.5}.panelNav{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.catalogueItem{width:100%;text-align:start;display:flex;justify-content:space-between;gap:15px;margin:8px 0;background:#ffffff04}.catalogueItem span{color:#d8bc85;flex-shrink:0}.hidden{display:none!important}#error{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:24px;text-align:center;gap:14px}#error p{max-width:340px;line-height:1.7}@media(min-height:700px){#hint{top:69%}}@media(max-height:450px){.top{top:12px}.top h1{font-size:18px}#hint{top:58%;font-size:10px}#joystick{bottom:32px;width:84px;height:84px}#stick{left:23px;top:23px}#moveLabel{top:88px}.bottom{bottom:36px}.sheet{max-height:96%}}
/* Reading panels retain the gallery behind them. */
#nearby{position:absolute;inset-inline:20px;bottom:172px;max-width:420px;padding:19px 20px 15px;border:1px solid #d1ad6655;border-radius:18px;background:linear-gradient(135deg,#131b28ee,#0a101bee);box-shadow:0 18px 70px #0008;backdrop-filter:blur(16px);pointer-events:none}#nearby *{pointer-events:none}#nearby button,#nearbyRead{pointer-events:auto}#nearby h2{font-size:18px;line-height:1.25;margin:9px 0 8px;color:#f2e4c4}#nearby p{font-size:11px;line-height:1.65;color:#b3becb;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}#nearbyRead{min-height:36px;padding:6px 14px;background:#d8b774;color:#18140d;border:0;font-size:11px;font-weight:700}.sheet{background:linear-gradient(130deg,#1b2533,#101720);border-radius:24px 24px 18px 18px;border-color:#b7985c50}.sheet h3{font-size:13px;color:#dcc391;margin-top:25px;font-weight:600;letter-spacing:.4px}.description{border-top:1px solid #c6a56725;padding-top:15px}.credit{border-top:1px solid #ffffff12;padding-top:15px}.credit summary{cursor:pointer;color:#a5997e;font-size:11px}.credit p{font-size:10px;line-height:1.6;color:#8f99a7}.credit a{display:inline-block;font-size:10px;margin:7px 14px 0 0}.actions button{border-radius:50%;background:#141e2b99;border-color:#d4b57833;color:#e0c598}.top{padding:8px 0}.top h1{font-weight:650;letter-spacing:-.65px}.eyebrow{letter-spacing:2.6px}.bottom button{border-radius:50px}#joystick{border-color:#d4b57850;background:radial-gradient(#d4b57812,#07101d77)}#stick{background:linear-gradient(#dfc78c,#71603e);border-color:#f9dfaa;box-shadow:0 4px 18px #0006}.storyItem{border-color:#c6a56735}.year{background:linear-gradient(130deg,#bd985415,#1d2633);color:#e8d5ad}
@media(min-width:700px){#nearby{inset-inline:auto;left:50%;transform:translateX(-50%);bottom:75px;width:420px}.sheet{width:560px}#panel{align-items:center;justify-content:flex-end;padding:28px}}@media(max-height:500px){#nearby{width:290px;inset-inline:auto;right:20px;bottom:103px;max-height:170px;padding:12px 16px}#nearby h2{font-size:14px}#nearby p{-webkit-line-clamp:2;font-size:10px}#nearbyRead{min-height:30px}}
.archiveSearch{display:block;width:100%;min-height:48px;margin:22px 0 15px;padding:13px 16px;border:1px solid #c6a56755;border-radius:13px;background:#080f1999;color:#f3e6c7;font:inherit;font-size:13px;outline:none}.archiveSearch:focus{border-color:#d8bc85;box-shadow:0 0 0 2px #d8bc8515}.archiveSearch::placeholder{color:#959eab}.storyItem strong{display:block;font-weight:550;line-height:1.5;font-size:13px}.storyItem small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#98a5b5;font-size:11px;line-height:1.65;margin-top:6px}.storyItem{padding:15px 17px}
.sheet{scrollbar-width:thin;scrollbar-color:#7a6948 #101720}.sheet::-webkit-scrollbar{width:5px}.sheet::-webkit-scrollbar-track{background:#101720}.sheet::-webkit-scrollbar-thumb{background:#7a6948;border-radius:5px}html[dir=rtl] .close{float:left;margin:-12px 12px 0 -5px}
#loading{position:fixed;inset:0;z-index:9;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(ellipse at center,#17212e,#080c12 70%);gap:18px}#loading p{color:#d6c5a3;font-size:13px;margin:0}#loading span{height:1px;width:110px;background:linear-gradient(90deg,transparent,#d9b574,transparent);animation:museumBreath 1.8s ease-in-out infinite}@keyframes museumBreath{50%{opacity:.3;transform:scaleX(.65)}}@media(prefers-reduced-motion:reduce){#loading span{animation:none}}
/* Tablet reading leaves the showcase sharp and visible alongside the text. */
@media(min-width:700px){#panel{background:linear-gradient(90deg,#0000 25%,#0007);backdrop-filter:none;pointer-events:none}.sheet{pointer-events:auto;width:clamp(340px,48vw,600px);max-height:calc(100% - 12px);padding:34px 30px 25px}.sheet p{font-size:15px;line-height:1.85}.sheet h2{font-size:27px}.sheet .close{min-width:46px}.top{inset-inline:30px}.top h1{font-size:30px}#joystick{left:34px;bottom:50px}.bottom{right:34px;bottom:58px}html[dir=rtl] #panel{justify-content:flex-end;background:linear-gradient(270deg,#0000 25%,#0007)}}

/* Each gesture has one owner: fixed left pad, right canvas, or native text scroll. */
#moveZone{position:fixed;left:0;bottom:0;width:190px;height:230px;max-width:48vw;pointer-events:auto;touch-action:none;user-select:none;z-index:1}
#joystick{--size:140px;--thumb:54px;position:absolute;left:20px;bottom:42px;width:var(--size);height:var(--size);border-radius:50%;border:1px solid #d4b57850;background:radial-gradient(#d4b57812,#07101d77);box-shadow:inset 0 0 20px #fff1;pointer-events:none;opacity:1;transition:opacity .22s ease}
#joystick.idle{opacity:0}
#joystick.active{opacity:1;border-color:#e5c789b3;box-shadow:inset 0 0 24px #d4b57818,0 8px 26px #0005}
#stick{position:absolute;width:var(--thumb);height:var(--thumb);left:calc((var(--size) - var(--thumb))/2);top:calc((var(--size) - var(--thumb))/2);border-radius:50%;background:linear-gradient(#dfc78c,#71603e);border:1px solid #f9dfaa;box-shadow:0 4px 18px #0006;will-change:transform}
#moveLabel{position:absolute;top:calc(var(--size) + 8px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;color:#ddd9cf}
#nearby{bottom:212px;backdrop-filter:none}
#panel{backdrop-filter:none}
.sheet{overflow-y:auto;overflow-x:hidden;touch-action:pan-y;contain:layout paint;transform:translateZ(0);-webkit-overflow-scrolling:touch}
#panelBody{overflow-wrap:anywhere}
body.reading #moveZone,body.reading .bottom,body.reading #reticle,body.reading #hint{visibility:hidden;pointer-events:none}
body.reading #hud button{pointer-events:none}
body.wide-controls #joystick{--size:156px;--thumb:60px;left:34px;bottom:50px}
body.wide-controls #nearby{bottom:75px}
body.compact-controls #joystick{--size:116px;--thumb:46px;left:14px;bottom:24px}
body.compact-controls #nearby{bottom:103px}
#joystick.active #moveLabel{opacity:0}

#panel{touch-action:pan-y pinch-zoom}.sheet{touch-action:pan-y pinch-zoom;min-height:0;will-change:scroll-position}
