@import url('./assets/fonts/fonts.css');
:root{color-scheme:dark;--amber:#f5ac54;--dim:#868b89;--line:#ffffff19}*{box-sizing:border-box}body{margin:0;background:#101211;color:#eaece8;font-family:'DM Sans',sans-serif;font-size:12px;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:#181d1c99;border-radius:7px;transition:background .2s,border-color .2s}button:hover{background:#ffffff16;border-color:#f5ac5477}button:focus-visible{outline:2px solid var(--amber);outline-offset:4px}button:disabled{opacity:.35;cursor:wait}#world{position:fixed;inset:0}canvas{display:block;touch-action:none}header{position:fixed;top:0;left:0;right:0;height:104px;padding:30px 40px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#0b0f10bf,transparent);pointer-events:none}header>*{pointer-events:auto}.brand{text-decoration:none;color:#eee;display:flex;align-items:center;gap:12px;font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:700;letter-spacing:1.5px}.bitcoin{display:grid;place-items:center;background:var(--amber);color:#171a19;border-radius:50%;width:37px;height:37px;font:700 30px Georgia}.brand-light{font-weight:400;color:#acb0ab}.brand small{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:3px;color:#858c88;margin-top:5px}.connection{display:flex;align-items:center;gap:9px;position:absolute;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:1.2px;color:#9ba29e}.connection i{width:5px;height:5px;border-radius:50%;background:var(--amber)}.connection i.live{background:#9acaaa;box-shadow:0 0 8px #9acaaa}.divider{height:12px;width:1px;background:var(--line);margin:0 6px}.header-right{display:flex;align-items:center;gap:10px}.header-right button{width:33px;height:33px;font-size:15px}.solo{font-size:9px;letter-spacing:1.5px;color:#9ba29e;margin-right:15px}.location{position:fixed;top:155px;left:42px;pointer-events:none}.eyebrow{font:10px 'Space Grotesk',sans-serif;letter-spacing:2.6px;color:var(--amber)}h1{font-size:29px;font-weight:500;letter-spacing:-1px;margin:12px 0 8px}.location p{color:#8c9590;font-size:11px;letter-spacing:1px}.chain{position:fixed;right:42px;top:160px;width:175px}.chain .eyebrow{color:#8c9590;font-size:9px}.chain strong{font:400 37px 'Space Grotesk',sans-serif;display:block;letter-spacing:-1.5px;margin:10px 0 15px}.mining{display:flex;gap:7px;align-items:center;color:#e9b774;font-size:10px}.mining i{width:4px;height:4px;background:var(--amber);border-radius:50%;animation:blink 1.8s infinite}.ticks{display:flex;gap:4px;height:15px;align-items:center;margin:13px 0}.ticks b{height:4px;flex:1;background:#eaa34d;opacity:.25;animation:blink 2.5s infinite}.ticks b:nth-child(3n){animation-delay:.5s}.ticks b:nth-child(2n){animation-delay:1.3s}.chain-sub{font:8px 'Space Grotesk',sans-serif;letter-spacing:1px;color:#7d8580}@keyframes blink{50%{opacity:.3}}.bottom{position:fixed;left:32px;right:32px;bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.controls{display:flex;align-items:center;gap:12px;color:#7f8983;font-size:10px;flex:1}.keyset{display:flex;flex-direction:column;align-items:center;gap:2px}.keyset span{display:flex;gap:2px}kbd{font:8px 'DM Sans',sans-serif;border:1px solid #ffffff28;border-radius:3px;width:14px;height:14px;display:inline-grid;place-items:center;color:#b6bcb7}.mouse-icon{width:12px;height:18px;border:1px solid #ffffff48;border-radius:6px;margin-left:12px}.lift-panel{display:flex;align-items:center;gap:14px;background:#161d1be6;backdrop-filter:blur(15px);padding:13px 15px;border:1px solid #ffffff20;border-radius:11px;box-shadow:0 8px 30px #0004}.lift-icon{font-size:27px;font-weight:300;color:var(--amber);margin:0 6px}.lift-panel small{display:block;color:#8f9b93;font:8px 'Space Grotesk';letter-spacing:2px;margin-bottom:5px}.lift-panel div>span{font-size:11px}.lift-panel button{height:33px;width:33px;font-size:17px}.tools{display:flex;justify-content:flex-end;gap:8px;flex:1}.tools button{height:35px;padding:0 12px;font-size:10px}.tools #demo{color:#b7bfb8}.depth{position:fixed;right:43px;top:50%;display:flex;flex-direction:column;align-items:center;color:#7e8982;font:10px 'Space Grotesk';gap:10px}.depth-track{height:130px;width:1px;background:#ffffff25;position:relative}.depth-track i{position:absolute;top:0;left:-3px;width:7px;height:7px;background:var(--amber);border-radius:50%}#toast{position:fixed;top:108px;left:50%;transform:translateX(-50%);background:#1c2521eb;border:1px solid #ebae4d44;border-radius:7px;padding:12px 20px;color:#d8c3a2;opacity:0;transition:opacity .3s;pointer-events:none;font-size:11px}#toast.show{opacity:1}#elevatorMenu,#helpPanel{position:fixed;background:#111b18eb;border:1px solid #ffffff25;backdrop-filter:blur(20px);border-radius:14px;padding:26px;box-shadow:0 20px 80px #0008}#elevatorMenu{bottom:120px;left:50%;transform:translateX(-50%);width:410px}h2{font-weight:500;font-size:20px;line-height:1.6;margin:10px 0 20px}.stops{display:flex;gap:7px}.stops button{flex:1;height:66px;color:var(--amber);font:18px 'Space Grotesk'}.stops span{display:block;font:9px 'DM Sans';color:#859289;margin-top:7px}#leave{border:0;margin:20px 0 0;padding:0;background:none;color:#a2ada6;font-size:10px}#helpPanel{right:36px;top:100px;width:340px}#helpPanel p{color:#a2aca5;line-height:2;font-size:11px;margin-bottom:20px}#helpPanel small{font-size:9px;color:#708078;line-height:1.8}#closeHelp{float:right;border:0;font-size:21px}#liftPrompt{position:fixed;bottom:140px;left:50%;transform:translateX(-50%)}#board{padding:12px 22px;background:#18251de8}#loading{position:fixed;inset:0;background:#111714;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;color:#8b978e;letter-spacing:3px;font-size:10px;transition:opacity 1s}#mobile{display:none}[hidden]{display:none!important}@media(max-width:800px){header{padding:22px;height:85px}.brand{font-size:13px}.brand small{font-size:8px}.bitcoin{width:30px;height:30px;font-size:25px}.solo,.connection .divider,.connection>span:last-child{display:none}.connection{top:95px;left:22px;transform:none}.location{left:22px;top:130px}h1{font-size:23px}.location .eyebrow{font-size:8px}.chain{right:22px;top:133px;width:130px}.chain strong{font-size:29px}.bottom{left:15px;right:15px;bottom:20px;gap:10px}.controls{display:none}.lift-panel{padding:10px;gap:8px;flex:1;max-width:290px}.lift-icon{margin:0}.tools{flex:0}.tools #demo span,#quality{display:none}.tools button{padding:0 10px}#elevatorMenu{width:calc(100% - 30px);max-width:410px}.depth{right:22px}#mobile{display:block;position:fixed;left:22px;bottom:120px;text-align:center}#mobile button{width:36px;height:36px;margin:2px;background:#1e2a2388;touch-action:none}#helpPanel{right:15px;left:15px;top:90px;width:auto}.chain-sub{font-size:7px}}

.floor-actions{display:flex;gap:8px;margin-top:14px}.floor-actions button{flex:1;padding:10px;font-size:11px}#floorForm{margin-top:16px}#floorForm label{display:block;font-size:10px;color:#8f9b93;margin-bottom:8px}#floorForm>div{display:flex;gap:8px}#floorInput{width:100%;min-width:0;padding:10px 12px;background:#080e0b;border:1px solid var(--line);border-radius:6px;color:#eaece8;font:14px 'Space Grotesk',sans-serif}#floorForm button{padding:0 16px;white-space:nowrap}#blockInfo{position:fixed;right:32px;top:110px;bottom:120px;width:350px;max-height:670px;overflow:auto;border:1px solid #ffffff25;border-radius:14px;background:#111b18f2;backdrop-filter:blur(20px);padding:24px;box-shadow:0 20px 80px #0008}#blockInfo h2{font:27px 'Space Grotesk',sans-serif;margin:14px 0 22px}#closeInfo{float:right;font-size:22px;border:0;background:none;padding:0 4px}#infoContent{color:#b9c3ba;font-size:11px;line-height:1.7}#infoContent dl{margin:0}#infoContent .info-row{display:grid;grid-template-columns:94px minmax(0,1fr);padding:10px 0;border-top:1px solid var(--line);gap:10px}#infoContent dt{color:#87968c}#infoContent dd{margin:0;overflow-wrap:anywhere}#infoContent .hash{font:10px/1.8 monospace}#infoContent .genesis-note{border-left:2px solid var(--amber);padding-left:13px;margin:0 0 20px;color:#e4bd85}#explorerLink{color:var(--amber);font-size:10px;display:inline-block;text-decoration:none;margin-top:20px}#retryInfo{padding:8px 12px;margin-top:10px}.lift-panel button:disabled{cursor:default}.lift-panel #exitLift{color:var(--amber)}#elevatorMenu{max-height:calc(100dvh - 135px);overflow:auto}.tools #inspect{color:#e4bd85}@media(max-width:800px){#blockInfo{left:15px;right:15px;top:115px;bottom:110px;width:auto;max-height:none}.tools #inspect span{display:none}.lift-panel{gap:6px;padding:8px}.lift-panel small{font-size:7px}.lift-panel div>span{font-size:9px}.lift-panel button{width:28px;height:30px;flex-shrink:0}.lift-icon{display:none}.bottom{gap:6px}.tools{gap:5px}.tools button{padding:0 8px}.floor-actions{margin-top:10px}#floorForm{margin-top:12px}#elevatorMenu h2{margin:8px 0 12px}#leave{margin-top:14px}}

.color-chip{display:inline-block;width:13px;height:13px;vertical-align:-2px;margin-right:9px;border:1px solid #ffffff40;border-radius:3px}

#disembarkControls{position:fixed;left:50%;bottom:109px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:9px;z-index:20;pointer-events:none;width:300px;max-width:calc(100vw - 30px)}#exitLift{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:25px;min-width:190px;min-height:48px;padding:13px 22px;background:#e2d5b7;border:1px solid #e2d5b7;border-radius:9px;color:#19221b;font-size:14px;font-weight:700;box-shadow:0 5px 24px #0005}#exitLift:hover{background:#f0e4c9;border-color:#f0e4c9}#exitLift kbd{border-color:#19221b50;color:#334338;width:22px;height:22px;font-size:11px}#exitLift:disabled{opacity:.8;cursor:default}#exitHint{font-size:10px;color:#b9c4ba;text-align:center;text-shadow:0 1px 5px #000}#elevatorMenu{bottom:200px;max-height:calc(100dvh - 215px)}#leave{display:block;width:100%;padding:12px 18px;margin-top:18px;border:1px solid #e2d5b744;border-radius:7px;background:#e2d5b711;color:#e2d5b7;font-size:12px}.in-elevator #blockInfo{bottom:200px}@media(max-width:800px){#disembarkControls{bottom:107px}#exitLift{min-height:46px;min-width:178px;font-size:13px}#exitHint{font-size:9px}#elevatorMenu{bottom:195px;max-height:calc(100dvh - 210px)}}
/* The plaques on unvisited floors contain only blurred geometric marks. */
.reader-board .tx-scroll{max-height:340px}.reader-board .tx-card summary{min-height:72px}.reader-board .tx-card{contain-intrinsic-size:auto 73px}
.world-input{position:absolute;inset:0;z-index:0;touch-action:none;outline:none}
/* Scene-first view. Lift controls only exist on screen while boarded. */
.bottom{left:50%;right:auto;bottom:24px;transform:translateX(-50%);gap:0;width:max-content;max-width:calc(100vw - 24px)}.lift-panel{max-width:none;flex:none;gap:12px;padding:10px 13px}.lift-panel #liftState{font-size:11px;min-width:135px;color:#b7c3ba}.lift-panel button{width:33px;height:33px}.exhibit-reader#blockInfo h2{margin:0 0 14px}.exhibit-reader#blockInfo #infoContent{height:calc(100% - 82px)}#devTools{position:fixed;right:20px;bottom:24px;z-index:40;display:flex;align-items:center;gap:8px;padding:7px 9px;background:#111a14bf;border:1px solid #ffffff14;border-radius:8px}#devTools small{font:9px 'Space Grotesk';letter-spacing:1px;color:#829687;margin-right:4px}#devTools button{font-size:10px;height:29px;padding:0 11px}#loading .loading-spinner{width:22px;height:22px;border:2px solid #ffffff18;border-top-color:#b8c4b8;border-radius:50%;animation:loading-spin .8s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}#mobile{display:none}@media(pointer:coarse){#mobile{display:block}.in-elevator #mobile{display:none}}@media(max-width:800px){.bottom{left:50%;right:auto;bottom:20px;gap:0}.lift-panel{gap:8px;max-width:none;padding:9px}.lift-panel #liftState{font-size:10px;min-width:125px}.lift-panel button{width:30px;height:31px}#devTools{right:12px;bottom:76px}.exhibit-reader#blockInfo #infoContent{height:calc(100% - 76px)}}

/* A single contextual boarding action, shown only beside the elevator. */
#boardingControls{position:fixed;left:50%;bottom:34px;transform:translateX(-50%);z-index:35}
#boardLift{display:flex;align-items:center;justify-content:center;gap:28px;min-width:210px;min-height:50px;padding:12px 20px;background:#ded4bb;color:#172019;border:1px solid #ded4bb;border-radius:9px;box-shadow:0 5px 24px #0005;font-size:14px;cursor:pointer}
#boardLift:hover{background:#f0e4c9;border-color:#f0e4c9}#boardLift:focus-visible{outline:2px solid #f0e4c9;outline-offset:4px}#boardLift kbd{border-color:#19221b50;color:#334338;width:22px;height:22px;font-size:11px}
@media(max-width:800px){#boardingControls{bottom:30px}#boardLift{min-width:178px;min-height:46px;font-size:13px}}

/* Always available, quiet help action. Native popover handles outside click and Escape. */
#helpButton{position:fixed;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));z-index:45;width:38px;height:38px;border-radius:50%;background:#18201bd9;border:1px solid #a8b09e55;color:#d8dacb;font:400 19px Georgia,serif;box-shadow:0 2px 12px #0003}
#helpButton:hover{background:#303a30;border-color:#b9c2ad}
#helpPanel{position:fixed;inset:auto;margin:0;top:max(70px,calc(env(safe-area-inset-top) + 50px));right:max(20px,env(safe-area-inset-right));width:min(370px,calc(100vw - 32px));max-height:calc(100dvh - 100px);overflow:auto;padding:22px;background:#18201bf5;color:#d8dccf;border:1px solid #8b9a8055;border-radius:12px;box-shadow:0 12px 45px #0007;font-size:12px;line-height:1.65}
.help-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.help-heading h2{margin:0;font-size:16px;font-weight:500}.help-heading button{width:28px;height:28px;padding:0;font-size:20px;line-height:1}
.help-keys{margin:0}.help-keys dt{margin-top:14px;color:#ded5bc;font-size:12px}.help-keys dd{margin:3px 0 0;color:#aeb8aa;font-size:12px}.help-touch{margin:20px 0 0;color:#8f9e8c;font-size:11px}
@media(max-width:800px){#helpButton{top:max(16px,env(safe-area-inset-top));right:16px}#helpPanel{right:16px;top:max(64px,calc(env(safe-area-inset-top) + 48px));padding:18px}}
#avatarButton{position:fixed;top:max(20px,env(safe-area-inset-top));right:70px;z-index:45;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#18201bd9;border:1px solid #a8b09e55;color:#d8dacb;box-shadow:0 2px 12px #0003}
#avatarButton:hover{background:#303a30;border-color:#b9c2ad}
#avatarDialog{width:min(900px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:26px;color:#e4e4d7;background:#1b231e;border:1px solid #6c79664d;border-radius:20px;box-shadow:0 25px 100px #0008;overflow:auto}#avatarDialog::backdrop{background:#080e0bcc;backdrop-filter:blur(7px)}
.avatar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.avatar-heading small{font-size:10px;color:#8c9e8b;letter-spacing:2px}.avatar-heading h2{font-size:23px;font-weight:500;margin:6px 0 0}.avatar-heading>button{width:32px;height:32px;font-size:23px}
.avatar-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:30px}.avatar-preview-column{position:sticky;top:0;align-self:start;text-align:center;display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at 50% 35%,#69736835,transparent 72%);border-radius:16px;padding-bottom:22px}#avatarPreview{width:100%;height:340px;touch-action:none;cursor:grab}#avatarPreview:active{cursor:grabbing}#avatarPreview canvas{width:100%;height:100%;pointer-events:none}.avatar-preview-column strong{font-size:17px;font-weight:500;color:#e3d9c4;margin:6px 0 10px}.avatar-preview-column>span{font-size:12px;color:#b6c0ad}.avatar-preview-column>small{font-size:10px;color:#899a87;margin-top:20px}
#avatarForm{min-width:0}.nickname-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.nickname-label label{font-size:12px}.nickname-label button{border:0;background:none;color:#b9c8af;font-size:10px;padding:5px}#nicknameInput{box-sizing:border-box;width:100%;padding:12px 14px;border:1px solid #74816a66;background:#101812;color:#e6e7d7;border-radius:8px;font-size:15px;outline:none}#nicknameInput:focus{border-color:#c4ae88}#nicknameHint{display:block;font-size:10px;color:#8e9d86;margin-top:7px}
#avatarForm fieldset{padding:0;margin:25px 0 0;border:0}#avatarForm legend{font-size:12px;margin-bottom:13px;padding:0}#avatarForm legend small{color:#8d9c85;font-size:10px;margin-left:5px}#hoodieColors{display:flex;gap:13px}.hoodie-swatch{width:36px;height:36px;background:var(--swatch);border:3px solid transparent;border-radius:50%;box-shadow:0 0 0 1px #ffffff16}.hoodie-swatch:hover{background:var(--swatch);transform:scale(1.08)}.hoodie-swatch[aria-pressed="true"]{border-color:#1b231e;outline:2px solid #ded5bd;outline-offset:2px}
#maskChoices section{margin:0 0 17px}#maskChoices h3{font-size:10px;color:#9eae94;font-weight:400;margin:0 0 9px}.mask-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.mask-choice{padding:7px 3px 6px;min-width:0;border:1px solid #ffffff0d;background:#ffffff04;border-radius:9px;color:#b4bfae;display:flex;flex-direction:column;align-items:center;gap:6px}.mask-choice canvas{width:35px;height:44px;border-radius:48% 48% 45% 45%;object-fit:contain}.mask-choice span{font-size:9px;line-height:1.4;text-align:center;word-break:keep-all}.mask-choice:hover{background:#ffffff0b;border-color:#c4ae8877}.mask-choice[aria-pressed="true"]{background:#c4ae8815;border-color:#cfbd95;color:#efdfba}
#avatarMessage{color:#d9b27e;font-size:11px;line-height:1.6}.avatar-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid #ffffff0d}.avatar-actions button{padding:11px 22px;font-size:12px}#saveAvatar{background:#d5c7a8;color:#1a241d;border-color:#d5c7a8}#saveAvatar:hover{background:#eadfc7}
@media(max-width:700px){#avatarButton{top:max(16px,env(safe-area-inset-top));right:64px}#avatarDialog{padding:20px;max-height:calc(100dvh - 24px)}.avatar-layout{grid-template-columns:1fr;gap:15px}.avatar-preview-column{position:relative;padding-bottom:12px}#avatarPreview{height:245px}.avatar-preview-column>small{margin-top:8px}.avatar-heading{margin-bottom:4px}.mask-grid{gap:6px}.mask-choice span{font-size:9px}.avatar-preview-column strong{margin:0 0 5px}}

#maskChoices{max-height:330px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#697661 #1b231e;padding:1px 5px 2px 1px}
@media(max-width:700px){#maskChoices{max-height:340px}}

/* The focused exhibit has one clear return action. */
#focusControls{position:fixed;left:max(20px,env(safe-area-inset-left));top:max(20px,env(safe-area-inset-top));z-index:35}
#closeFocus{display:flex;align-items:center;justify-content:center;gap:12px;min-height:40px;padding:9px 12px;background:#17201980;color:#c0c8b8;border:1px solid #b9c3ab24;border-radius:8px;font-size:12px;cursor:pointer}
#closeFocus:hover{background:#253025cc;color:#e0e5d9;border-color:#b9c3ab50}#closeFocus:focus-visible{outline:2px solid #b9c3ab;outline-offset:4px}#closeFocus kbd{width:auto;height:auto;min-width:27px;line-height:1.2;padding:3px 5px;border-color:#b9c3ab30;color:#a1ae96;font-size:10px}
@media(max-width:800px){#focusControls{left:max(16px,env(safe-area-inset-left));top:max(16px,env(safe-area-inset-top))}#closeFocus{min-height:44px}}
#skinColors{display:flex;gap:13px;flex-wrap:wrap}#bodyTypes{display:flex;gap:8px}#bodyTypes button{padding:8px 16px;color:#aebba7;background:#ffffff04;border-color:#ffffff15;font-size:11px}#bodyTypes button[aria-pressed="true"]{color:#efdfba;border-color:#cfbd95;background:#c4ae8815}#randomAvatar{margin-top:18px;padding:10px 22px;font-size:12px;border-color:#aeab8a66;color:#dfd0ab;background:#c4ae880c}#randomAvatar:hover{background:#c4ae8820}#maskChoices.mask-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;max-height:250px;align-content:start}.mask-choice canvas{width:43px;height:54px}.mask-choice{min-height:87px}#avatarForm fieldset{margin-top:20px}@media(max-width:700px){#maskChoices.mask-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:300px}.mask-choice canvas{width:39px;height:49px}#skinColors,#hoodieColors{gap:11px}}
#otherBlockControls{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:34px;z-index:35}#otherBlocksButton{display:flex;align-items:center;justify-content:center;gap:22px;padding:14px 18px;min-height:50px;color:#ddd4bd;background:#1c281fe8;border:1px solid #a9b09b66;font-size:12px;border-radius:9px;box-shadow:0 5px 24px #0005}#otherBlocksButton:hover{background:#344032;border-color:#d6c8a5}
#blockReaderDialog{width:min(730px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:26px;border:1px solid #89967855;border-radius:17px;background:#1b231efc;color:#dfe3d5;box-shadow:0 25px 100px #0008;font-size:12px;line-height:1.65}#blockReaderDialog::backdrop{background:#080e0bbf;backdrop-filter:blur(5px)}.reader-modal-heading{display:flex;align-items:center;justify-content:space-between}.reader-modal-heading small{font-size:11px;color:#b5b896}.reader-modal-heading h2{font-size:22px;font-weight:500;margin:4px 0 0}.reader-modal-heading>button{width:32px;height:32px;font-size:22px}#readerFloorNote{color:#9aa991;font-size:11px;margin:12px 0 20px}
#readerChoices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}#readerChoices button{padding:9px 7px;text-align:left;background:#ffffff04;border-color:#ffffff13}#readerChoices span{display:block;color:#a7b59b;font-size:10px}#readerChoices strong{font:400 12px monospace;color:#d9cfb5}#readerForm{margin:19px 0 22px}#readerForm label{display:block;font-size:11px;color:#a4b397;margin-bottom:7px}#readerForm>div{display:flex;gap:8px}#readerHeightInput{width:100%;min-width:0;border:1px solid #74816a66;background:#101812;color:#e5e7d4;border-radius:7px;padding:10px 12px;font:14px monospace}#readerForm button{padding:9px 22px;color:#1b241b;background:#d5c7a8;border-color:#d5c7a8;white-space:nowrap}
.reader-record-heading{display:flex;align-items:center;gap:12px;border-top:1px solid #ffffff12;padding-top:18px}.reader-record-heading h3{flex:1;min-width:0;font-size:14px;font-weight:400;text-align:center;margin:0;color:#dbd0b6}.reader-record-heading button{width:30px;height:30px;flex-shrink:0}#readerStatus{font-size:11px;color:#d8b681;margin:12px 0;min-height:0}#readerStatus:empty{display:none}#readerBody{position:relative;margin-top:16px;padding:5px 3px 5px 0;overflow:auto;max-height:330px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#697661 #1b231e;outline:none}.reader-placeholder{color:#8f9f88;text-align:center;padding:30px 15px}.reader-value{font-size:34px;color:#eee2c5;margin:8px 0 12px;line-height:1.35;overflow-wrap:anywhere;white-space:pre-wrap}.reader-subtitle{font-size:15px;color:#bec9b3;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 16px}.reader-caption{font-size:13px;color:#a0b194;line-height:1.9;margin:20px 0 9px}.reader-hash{font:12px/1.8 monospace;overflow-wrap:anywhere;white-space:pre-wrap}.reader-color{display:block;width:44px;height:44px;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff20}.reader-label{display:block;font-size:10px;color:#8e9e86;margin:20px 0 5px}
.reader-transactions{list-style:none;padding:0;margin:0}.reader-tx{border-bottom:1px solid #ffffff0e;content-visibility:auto;contain-intrinsic-size:auto 85px}.reader-tx summary{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:6px 10px;cursor:pointer;padding:15px 3px;list-style:none}.reader-tx summary::-webkit-details-marker{display:none}.reader-tx-number{color:#829a7c;font:10px/2 monospace}.reader-tx code{font:11px/2 monospace;color:#b5c9aa}.reader-tx strong{font:400 12px/2 Georgia,serif;color:#ded3b8}.reader-tx small{grid-column:2/4;color:#8b9e84;font-size:10px}.reader-tx dl{padding:5px 0 17px 42px;margin:0}.reader-tx dt{font-size:10px;color:#899d80;margin-top:9px}.reader-tx dd{margin:4px 0;white-space:pre-wrap;font:10px/1.8 monospace;color:#b3c1a8;overflow-wrap:anywhere}.reader-load-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.reader-load-actions small{color:#8da080;font-size:10px}.reader-load-actions button{padding:7px 12px;font-size:11px}.reader-modal-footer{display:flex;justify-content:flex-end;border-top:1px solid #ffffff12;padding-top:16px;margin-top:20px}.reader-modal-footer button{padding:10px 18px;color:#d8d0b8;font-size:12px}
@media(max-width:700px){#otherBlockControls{right:16px;bottom:25px}#otherBlocksButton{min-height:46px;padding:12px 15px;font-size:11px}#blockReaderDialog{padding:20px;max-height:calc(100dvh - 24px)}#readerChoices{grid-template-columns:repeat(3,minmax(0,1fr))}.reader-value{font-size:27px}.reader-tx summary{grid-template-columns:22px minmax(0,1fr);gap:5px}.reader-tx strong{grid-column:2}.reader-tx small{grid-column:2}.reader-tx dl{padding-left:27px}}
#gestureHud{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:32;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:7px;width:min(560px,calc(100vw - 24px));background:#152019de;border:1px solid #a2b08d30;border-radius:13px;box-shadow:0 6px 24px #0004;backdrop-filter:blur(10px)}#gestureHud button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:58px;padding:8px 4px;background:#ffffff04;border:1px solid #ffffff0d;border-radius:8px;color:#b4c0a8}#gestureHud button kbd{display:grid;place-items:center;width:21px;height:21px;border:1px solid #b0bd9d33;border-radius:5px;color:#d6dec9;font:12px/1 monospace}#gestureHud button span{font-size:10px;white-space:nowrap}#gestureHud button:hover{background:#c4ae8812;border-color:#b7ba9a77}#gestureHud button[aria-pressed="true"]{background:#d8c8a422;border-color:#dfd0aa;color:#f0e0bc}#gestureHud button[aria-pressed="true"] kbd{background:#d8c8a4;color:#182119;border-color:#d8c8a4}.gesture-hud-visible #boardingControls{bottom:118px}@media(max-width:700px){#gestureHud{gap:4px;padding:6px}#gestureHud button{min-height:55px;gap:6px}#gestureHud button span{font-size:9px}}@media(pointer:coarse){#gestureHud{bottom:142px}.gesture-hud-visible #boardingControls{bottom:226px}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#chatControls{position:fixed;left:22px;bottom:max(24px,env(safe-area-inset-bottom));z-index:34}#chatButton{display:flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:10px 13px;background:#17231bdc;border-color:#a8b39444;color:#cdd8c0;border-radius:9px;font-size:12px}#chatButton kbd{width:auto;height:auto;padding:3px 5px;font:9px/1 monospace;color:#aebd9e;border-color:#9eac8744}#chatButton:hover{background:#2a382b;border-color:#d3c7a2}#chatComposer{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(580px,calc(100vw - 28px));z-index:46;padding:11px 12px 8px;background:#17231bf5;border:1px solid #b3bd9d66;border-radius:12px;box-shadow:0 6px 30px #0006}#chatForm{display:flex;gap:8px;align-items:center}#chatInput{flex:1;min-width:0;padding:10px 11px;border-radius:7px;background:#0d1811;border:1px solid #81956c77;outline:none;color:#e3e8d5;font-size:14px}#chatInput:focus{border-color:#d5c8a4}#sendChat{flex-shrink:0;padding:10px 13px;min-height:39px;background:#d5c7a8;color:#18231a;border-color:#d5c7a8;font-size:12px}#closeChat{flex-shrink:0;width:30px;height:36px;font-size:20px}.chat-meta{display:flex;justify-content:space-between;margin-top:6px;padding:0 3px}.chat-meta small{font-size:9px;color:#8fa17f}.chatting #mobile{display:none!important}@media(max-width:700px){#chatControls{left:auto;right:16px;bottom:101px}#chatButton{min-height:36px;padding:8px 11px;font-size:11px}#chatButton kbd{display:none}#chatInput{font-size:16px}#chatComposer{bottom:max(16px,env(safe-area-inset-bottom));padding:10px}.chat-meta small{font-size:9px}}@media(pointer:coarse){#chatControls{right:16px;left:auto;bottom:36px}}

/* Nearby exhibit action stays above the movement and gesture controls. */
#detailControls{position:fixed;left:50%;bottom:34px;transform:translateX(-50%);z-index:35}
#inspectExhibit{display:flex;align-items:center;justify-content:center;gap:28px;min-width:210px;min-height:50px;padding:12px 20px;background:#ded4bb;color:#172019;border:1px solid #ded4bb;border-radius:9px;box-shadow:0 5px 24px #0005;font-size:14px;cursor:pointer}
#inspectExhibit:hover{background:#f0e4c9;border-color:#f0e4c9}#inspectExhibit:focus-visible{outline:2px solid #f0e4c9;outline-offset:4px}#inspectExhibit kbd{border-color:#19221b50;color:#334338;width:22px;height:22px;font-size:11px}
.gesture-hud-visible #detailControls{bottom:118px}
@media(max-width:800px){#inspectExhibit{min-width:178px;min-height:46px;font-size:13px}}
@media(pointer:coarse){.gesture-hud-visible #detailControls{bottom:226px}}

#railControls{position:fixed;left:50%;bottom:34px;transform:translateX(-50%);z-index:35}
#railBlockInfo{min-width:210px;min-height:50px;padding:12px 20px;background:#ded4bb;color:#172019;border:1px solid #ded4bb;border-radius:9px;box-shadow:0 5px 24px #0005;font-size:14px;cursor:pointer}
#railBlockInfo:hover{background:#f0e4c9}#railBlockInfo:focus-visible{outline:2px solid #f0e4c9;outline-offset:4px}.gesture-hud-visible #railControls{bottom:118px}
#blockGuideDialog{width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 64px);box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;padding:28px 32px;background:#19231c;color:#ced5c5;border:1px solid #a8b39433;border-radius:16px;box-shadow:0 24px 100px #0008}
#blockGuideDialog::backdrop{background:#050b08b8;backdrop-filter:blur(5px)}.block-guide-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.block-guide-header small{font-size:11px;color:#93a38b}.block-guide-header h2{margin:9px 0 0;font-size:24px;line-height:1.4;color:#ebe6d4}#closeBlockGuide{flex-shrink:0;display:grid;place-items:center;width:34px;height:34px;padding:0;background:transparent;color:#aebba4;border:1px solid #a8b39425;border-radius:7px;font-size:22px}.block-guide-intro{color:#b2bea8}#blockGuideDialog p{font-size:14px;line-height:1.9;word-break:keep-all;overflow-wrap:anywhere;margin:12px 0}#blockGuideDialog section{border-top:1px solid #a8b39422;margin-top:24px;padding-top:20px}#blockGuideDialog h3{font-size:16px;line-height:1.6;margin:0;color:#e1d5b8}#blockGuideDialog strong{font-weight:600;color:#e3dec9}#blockGuideDialog code{font-size:13px;color:#e1d5b8}#blockGuideDialog .block-guide-example{padding:13px 16px;border-radius:8px;background:#d6c59e0c;color:#dfd3b3;font-size:13px}#blockGuideDialog footer{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border-top:1px solid #a8b39422;padding-top:22px;margin-top:26px}#blockGuideDialog footer a{color:#9eaf91;font-size:11px;text-decoration:underline;text-underline-offset:4px}#finishBlockGuide{min-height:42px;padding:10px 15px;font-size:12px;border:1px solid #a8b39455;border-radius:8px;color:#d2dcc6;background:#ffffff05}.reading-block #mobile{display:none!important}
@media(max-width:700px){#blockGuideDialog{padding:22px;max-height:calc(100dvh - 32px)}.block-guide-header h2{font-size:21px}#blockGuideDialog p{font-size:14px}#railBlockInfo{min-height:46px;min-width:178px;font-size:13px}}
@media(pointer:coarse){.gesture-hud-visible #railControls{bottom:226px}}

#genesisSourceControls{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:34px;z-index:35}#genesisSourceLink{display:flex;align-items:center;justify-content:center;min-height:48px;padding:13px 18px;border:1px solid #a9b09b66;border-radius:9px;background:#1c281fe8;color:#ddd4bd;font-size:12px;text-decoration:none}#genesisSourceLink:hover{background:#344032;border-color:#d6c8a5}#genesisSourceLink:focus-visible{outline:2px solid #d6c8a5;outline-offset:4px}@media(max-width:700px){#genesisSourceControls{right:16px;bottom:25px}#genesisSourceLink{min-height:46px;padding:12px 15px;font-size:11px}}

.reader-tx code{display:block;min-width:0;max-width:100%;white-space:nowrap;overflow-x:auto;overflow-wrap:normal;word-break:normal;scrollbar-width:thin}

#railControls{display:flex;gap:9px;align-items:center;white-space:nowrap}#railMempool{min-height:50px;padding:12px 20px;background:#1c281fee;color:#ddd4bd;border:1px solid #a9b09b77;border-radius:9px;font-size:14px}#railMempool:hover{background:#344032}
#mempoolDialog{width:min(700px,calc(100vw - 32px));max-height:calc(100dvh - 64px);overflow:auto;overscroll-behavior:contain;padding:28px 30px;background:#19231c;color:#cdd6c4;border:1px solid #a8b39433;border-radius:16px;box-shadow:0 24px 100px #0008}#mempoolDialog::backdrop{background:#050b08b8;backdrop-filter:blur(5px)}.mempool-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.mempool-heading small{font-size:11px;color:#93a38b}.mempool-heading h2{font-size:24px;margin:8px 0 0;color:#e8dfc8}#closeMempool{width:34px;height:34px;flex-shrink:0;padding:0;font-size:22px;color:#aebba4;background:transparent}.mempool-intro{font-size:13px;line-height:1.85;word-break:keep-all;color:#b0bea5;margin-top:19px}.mempool-updated,#mempoolStatus{font-size:11px;line-height:1.7;color:#93a38a}#mempoolStatus[role=alert]{color:#e1bd95}.mempool-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.mempool-stats>div:last-child{grid-column:1/-1}.mempool-stats dt,.mempool-fee-grid dt{font-size:11px;color:#96a58a}.mempool-stats dd{font:25px/1.5 monospace;margin:6px 0 0;color:#e1d4b3}.mempool-stats small{font-size:10px;color:#96a58a}#mempoolDialog section{border-top:1px solid #a8b39422;padding-top:22px;margin-top:22px}#mempoolDialog h3{font-size:15px;color:#dbd2b8;margin:0 0 17px}.mempool-fee-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mempool-fee-grid dd{font:16px/1.6 monospace;color:#d4dec8;margin:5px 0 0}.mempool-note{font-size:11px;line-height:1.9;color:#8fa184;word-break:keep-all}#mempoolCandidates{list-style:none;padding:0;margin:0}#mempoolCandidates li{padding:12px 0;border-top:1px solid #ffffff0b}#mempoolCandidates strong{display:block;font-size:12px;font-weight:500;color:#cbd6bd}#mempoolCandidates span{display:block;font-size:11px;color:#9bad91;margin-top:6px;line-height:1.7}.mempool-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px solid #a8b39422}.mempool-actions a{font-size:11px;color:#99ac8b;margin-right:auto;text-underline-offset:4px}.mempool-actions button{min-height:40px;padding:9px 12px;font-size:11px}
@media(max-width:700px){#railControls{gap:7px}#railControls button{min-width:0;min-height:46px;padding:11px 14px;font-size:12px}#mempoolDialog{max-height:calc(100dvh - 32px);padding:22px}.mempool-stats dd{font-size:22px}.mempool-actions a{width:100%;margin-bottom:9px}}
/* Instant floor travel, alongside the existing character and help controls. */
#travelButton{position:fixed;top:max(20px,env(safe-area-inset-top));right:120px;z-index:45;height:38px;padding:0 15px;border-radius:20px;background:#18201bd9;border:1px solid #a8b09e55;color:#d8dacb;box-shadow:0 2px 12px #0003}
#travelDialog{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:24px;border:1px solid #8b9a8055;border-radius:16px;background:#1b231e;color:#e4e4d7;box-shadow:0 20px 80px #0008}
#travelDialog::backdrop{background:#080e0baa;backdrop-filter:blur(5px)}.travel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.travel-heading h2{margin:0;font-size:18px}.travel-heading button{width:30px;height:30px;flex-shrink:0;font-size:22px;border:0;background:transparent;color:#aab4a4}#travelNote{color:#aeb8aa;line-height:1.8;margin:16px 0 20px}#travelChoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#travelChoices button{padding:14px 10px;text-align:left;color:#ddd6bf}#travelChoices small{display:block;margin-top:6px;color:#99a58f;font-size:11px}#travelChoices button:last-child{grid-column:1/-1}#travelChoices button:disabled{cursor:default}#travelForm{margin-top:24px}#travelForm label{display:block;margin-bottom:9px;color:#aeb8aa}#travelForm>div{display:flex;gap:8px}#travelHeight{width:100%;min-width:0;padding:12px;background:#111912;border:1px solid #ffffff25;border-radius:7px;color:#e4e4d7;font:14px monospace}#travelSubmit{flex-shrink:0;padding:0 14px;background:#ded4bb;color:#172019}.travel-footer{display:flex;justify-content:flex-end;margin-top:20px}.travel-footer button{border:0;background:transparent;color:#aeb8aa;padding:7px 10px}
@media(max-width:800px){#travelButton{top:max(16px,env(safe-area-inset-top));right:116px;padding:0 12px}#travelDialog{padding:20px}.travel-heading h2{font-size:17px}}

#characterInfoDialog{width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:24px;color:#e4e4d7;background:#1b231e;border:1px solid #8b9a8055;border-radius:16px;box-shadow:0 20px 80px #0008}#characterInfoDialog::backdrop{background:#080e0b99;backdrop-filter:blur(4px)}.character-info-heading{display:flex;align-items:center;justify-content:space-between;color:#aeb8aa}.character-info-heading button{border:0;background:transparent;font-size:22px;width:30px;height:30px}#characterInfoName{margin:12px 0 20px;overflow-wrap:anywhere}#characterInfoDialog dl{margin:0 0 24px}#characterInfoDialog dl>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #ffffff10}#characterInfoDialog dt{color:#99a58f}#characterInfoDialog dd{margin:0;text-align:right}#editCharacterInfo{width:100%;padding:12px;background:#ded4bb;color:#172019}

#speechBubbleButton{position:fixed;z-index:34;padding:0;background:transparent;border:0;border-radius:12px;cursor:pointer;box-shadow:none}#speechBubbleButton:hover{background:#ffffff0a}#speechBubbleButton:focus-visible{outline:2px solid #ded4bb;outline-offset:3px}#speechDetailsDialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:24px;color:#e4e4d7;background:#1b231e;border:1px solid #8b9a8055;border-radius:16px;box-shadow:0 20px 80px #0008}#speechDetailsDialog::backdrop{background:#080e0b99;backdrop-filter:blur(4px)}.speech-details-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.speech-details-heading h2{margin:0;font-size:18px}.speech-details-heading button{width:30px;height:30px;border:0;background:transparent;font-size:22px}#speechDetailsDialog small{display:block;color:#99a58f;margin-bottom:7px}#speechSender{display:block;font-size:14px;overflow-wrap:anywhere}#speechMessage{white-space:pre-wrap;overflow-wrap:anywhere;user-select:text;font-size:15px;line-height:1.8;padding:18px;background:#111912;border-radius:10px;margin:18px 0 20px}.speech-copy-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}#speechCopyStatus{color:#aeb8aa;font-size:11px}#copySpeech{flex-shrink:0;padding:11px 16px;background:#ded4bb;color:#172019}

#blockTravelDialog{width:min(380px,calc(100vw - 32px));padding:24px;background:#1b231e;color:#e4e4d7;border:1px solid #8b9a8055;border-radius:16px}#blockTravelDialog::backdrop{background:#080e0b99;backdrop-filter:blur(4px)}#blockTravelDialog p{color:#aeb8aa;line-height:1.8;margin:18px 0 24px}#goToSelectedBlock{width:100%;padding:13px;background:#ded4bb;color:#172019}

body.selecting-server{background:#111714}body.selecting-server> :not(#serverEntryDialog):not(#world){visibility:hidden!important}#serverEntryDialog{width:min(410px,calc(100vw - 40px));padding:30px 24px;border:0;background:transparent;color:#e4e4d7;overflow:visible}#serverEntryDialog::backdrop{background:#111714}.server-flags{display:flex;justify-content:center;gap:15px;margin-bottom:34px}.server-flags button{display:grid;place-items:center;width:94px;height:88px;padding:0;background:#1b241e;border:1px solid #ffffff15;border-radius:17px;transition:border-color .15s,background .15s,transform .15s}.server-flags span{font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;font-size:48px;line-height:1}.server-flags button[aria-checked="true"]{background:#ded4bb16;border:2px solid #ded4bb;transform:translateY(-4px)}.server-flags button:hover{background:#ded4bb0d}#enterServer{display:block;width:100%;min-height:48px;padding:13px;background:#ded4bb;color:#172019;font-size:14px;font-weight:600;border:0;border-radius:10px}#enterServer:hover{background:#eee3ca}@media(max-width:380px){.server-flags{gap:10px}.server-flags button{width:80px;height:80px}.server-flags span{font-size:42px}}
html:not([lang="ko"]) #gestureHud button{min-height:66px}html:not([lang="ko"]) #gestureHud button span{white-space:normal;line-height:1.25;min-height:24px;display:flex;align-items:center;justify-content:center;max-width:100%;overflow-wrap:normal;text-align:center}@media(pointer:coarse){html:not([lang="ko"]) .gesture-hud-visible #boardingControls,html:not([lang="ko"]) .gesture-hud-visible #detailControls,html:not([lang="ko"]) .gesture-hud-visible #railControls{bottom:242px}}

/* The live scene remains visible while the entrance controls float above it. */
#serverEntryDialog{position:fixed;inset:auto auto max(30px,env(safe-area-inset-bottom)) 50%;transform:translateX(-50%);margin:0;padding:22px 24px 20px;background:#142019d9;border:1px solid #d8dfc01f;border-radius:22px;box-shadow:0 14px 60px #0005;backdrop-filter:blur(12px)}#serverEntryDialog::backdrop{background:linear-gradient(180deg,#08100b0d 0%,#08100b08 35%,#08100b26 65%,#08100b8c 100%)}#serverEntryDialog .server-flags{margin-bottom:20px}#serverEntryDialog .server-flags button{background:#18221cbb}#serverEntryDialog #enterServer{box-shadow:0 2px 15px #0002}@media(max-width:700px){#serverEntryDialog{bottom:max(20px,env(safe-area-inset-bottom));width:min(370px,calc(100vw - 32px));padding:17px 20px 18px}.server-flags button{height:74px;width:84px}.server-flags span{font-size:43px}#serverEntryDialog .server-flags{margin-bottom:16px}}

#backToIntro{position:fixed;left:max(20px,env(safe-area-inset-left));top:max(20px,env(safe-area-inset-top));z-index:45;width:38px;height:38px;display:grid;place-items:center;padding:0;border-radius:50%;background:#18201bd9;border:1px solid #a8b09e55;color:#d8dacb;box-shadow:0 2px 12px #0003}#backToIntro:hover{background:#303a30;border-color:#b9c2ad}#focusControls{left:70px}@media(max-width:800px){#backToIntro{left:16px;top:max(16px,env(safe-area-inset-top))}#focusControls{left:66px}}

#gestureHud{width:min(390px,calc(100vw - 24px))}#gestureHud button{position:relative;min-height:56px;padding:14px 8px 10px;gap:0}#gestureHud button kbd{position:absolute;top:5px;left:5px;width:15px;height:15px;font-size:9px;opacity:.65;border:0;background:transparent}#gestureHud button svg{display:block;flex-shrink:0;width:28px;height:28px}html:not([lang="ko"]) #gestureHud button{min-height:56px}html:not([lang="ko"]) #gestureHud button span.sr-only{min-height:0}#gestureHud button:hover svg{color:#eee0bf}#gestureHud button[aria-pressed="true"] svg{color:#f0e0bc}@media(max-width:700px){#gestureHud{gap:4px;padding:6px}#gestureHud button{min-height:53px;padding:14px 6px 8px}html:not([lang="ko"]) #gestureHud button{min-height:53px}#gestureHud button svg{width:26px;height:26px}}

#travelButton{width:38px;height:38px;padding:0;display:grid;place-items:center;border-radius:50%}#chatButton{width:42px;height:42px;min-height:42px;padding:0;display:grid;place-items:center;border-radius:50%}#chatButton svg{width:20px;height:20px}@media(max-width:800px){#travelButton{padding:0}}@media(max-width:700px){#chatButton{width:40px;height:40px;min-height:40px;padding:0}}

#seatNoteDialog{width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:24px;background:#1b231e;color:#e4e4d7;border:1px solid #8b9a8055;border-radius:16px}#seatNoteDialog::backdrop{background:#080e0b99;backdrop-filter:blur(4px)}#seatNoteForm label{display:block;margin:0 0 10px;color:#aeb8aa}#seatNoteInput{width:100%;padding:13px;background:#111912;color:#e4e4d7;border:1px solid #ffffff30;border-radius:8px;font-size:16px}.seat-note-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;color:#99a58f}.seat-note-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.seat-note-actions button{padding:12px 16px}#applySeatNote{background:#ded4bb;color:#172019}#eraseSeatNote{border:0;background:transparent;color:#aeb8aa}

#seatNoteAddress{font:500 23px monospace;color:#ded4bb;margin:0 0 20px;letter-spacing:1px}

#gestureHud{grid-template-columns:repeat(10,minmax(0,1fr));width:min(620px,calc(100vw - 24px))}@media(max-width:430px){#gestureHud{gap:3px;padding:5px}#gestureHud button{padding:15px 3px 8px}#gestureHud button svg{width:23px;height:23px}#gestureHud button kbd{left:4px;top:4px}}

#gestureInfoControls{position:fixed;left:50%;bottom:118px;transform:translateX(-50%);z-index:36;max-width:calc(100vw - 32px)}#gestureInfoButton{padding:12px 20px;min-height:44px;background:#1b271fe8;border:1px solid #bbc5aa66;border-radius:24px;color:#e2dfcb;white-space:nowrap;font-size:13px;box-shadow:0 4px 18px #0004}#gestureGuideDialog{width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:26px;background:#1b231e;color:#e4e4d7;border:1px solid #8b9a8055;border-radius:16px}#gestureGuideDialog::backdrop{background:#080e0b99;backdrop-filter:blur(4px)}#gestureGuideDialog h2{font-size:22px;font-weight:500;margin:0}#gestureGuideContent h3{font-size:15px;font-weight:500;color:#e8d6ad;margin:26px 0 10px}#gestureGuideContent p{font-size:14px;line-height:1.85;color:#c1cbbd;margin:0}#gestureGuideDialog footer{margin-top:26px;padding-top:16px;border-top:1px solid #ffffff12;font-size:11px;color:#8e9d89}#gestureGuideSource{color:#b9c9a7;text-underline-offset:3px}#closeGestureGuide{flex-shrink:0;padding:6px 10px;background:transparent;border:0;color:#a3b09b;font-size:23px}@media(pointer:coarse){#gestureInfoControls{bottom:242px}}

#buttonTooltip{position:fixed;z-index:80;max-width:min(310px,calc(100vw - 20px));padding:10px 14px;border-radius:10px;background:#202b23f5;border:1px solid #b5c3a63d;box-shadow:0 5px 22px #0006;pointer-events:none;color:#eee5cf;text-align:center;line-height:1.5}#buttonTooltip strong{display:block;font-size:13px;font-weight:500}#buttonTooltip small{display:block;margin-top:3px;color:#a6b49f;font-size:11px}

#soundButton{position:fixed;top:max(20px,env(safe-area-inset-top));right:170px;z-index:45;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;padding:0;background:#18201bd9;border:1px solid #a8b09e55;color:#d8dacb;box-shadow:0 2px 12px #0003}#soundButton:hover{background:#303a30;border-color:#b9c2ad}#soundButton.sound-muted{color:#82917d}#soundPanel{position:fixed;inset:auto;margin:0;top:max(70px,calc(env(safe-area-inset-top) + 50px));right:max(20px,env(safe-area-inset-right));width:min(280px,calc(100vw - 32px));padding:22px;background:#18201bf5;color:#d8dccf;border:1px solid #8b9a8055;border-radius:12px;box-shadow:0 12px 45px #0007}#soundTitle{font-size:16px;font-weight:500;margin:0 0 22px}.sound-volume-label{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#b6c1ac}#soundVolume{width:100%;margin:16px 0 22px;accent-color:#d8c18b;cursor:pointer}#toggleMute{width:100%;padding:10px;background:#ffffff08;border-color:#a8b39444;color:#d8dccf}#toggleMute[aria-pressed="true"]{background:#c7b48520}@media(max-width:800px){#soundButton{right:164px;top:max(16px,env(safe-area-inset-top))}#soundPanel{right:16px;top:max(64px,calc(env(safe-area-inset-top) + 48px))}}

.server-entry-error{font-size:12px;line-height:1.7;color:#dcc39b;margin:0 0 18px;text-align:center}

/* Mobile controls occupy separate thumb zones, clear of the action strip. */
#mobile{display:none;position:fixed;inset:0;z-index:38;pointer-events:none;user-select:none;-webkit-user-select:none}
.mobile-controls-on #mobile:not([hidden]){display:block}
#moveJoystick{position:absolute;left:max(20px,env(safe-area-inset-left));bottom:calc(24px + env(safe-area-inset-bottom));width:120px;height:120px;border-radius:50%;background:#111c1659;border:1px solid #d1dbc02b;box-shadow:inset 0 0 22px #0002;touch-action:none;pointer-events:auto}
.joystick-ring{position:absolute;inset:13px;border-radius:50%;border:1px solid #d1dbc025}
#joystickThumb{position:absolute;left:50%;top:50%;width:48px;height:48px;border-radius:50%;transform:translate(-50%,-50%);background:#c6d0b98c;border:1px solid #e2e6d866;box-shadow:0 4px 16px #0003;pointer-events:none}
#moveJoystick.is-dashing{border-color:#dec58b88;background:#544b2929}#moveJoystick.is-dashing #joystickThumb{background:#dec58bb8}
#mobile #mobileJump{position:absolute;right:max(24px,env(safe-area-inset-right));bottom:calc(38px + env(safe-area-inset-bottom));margin:0;width:64px;height:64px;border-radius:50%;background:#1b281ec9;border:1px solid #c7d0b64d;color:#d9dfc9;display:grid;place-items:center;touch-action:none;pointer-events:auto}
.mobile-controls-on #gestureHud{display:flex;justify-content:flex-start;width:min(560px,calc(100vw - 32px));bottom:calc(166px + env(safe-area-inset-bottom));gap:5px;padding:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;touch-action:pan-x;scroll-padding:6px}
.mobile-controls-on #gestureHud button{flex:0 0 44px;min-width:44px;min-height:44px;padding:8px;display:grid;place-items:center}
.mobile-controls-on #gestureHud button kbd{display:none}.mobile-controls-on #gestureHud button svg{width:26px;height:26px}
.mobile-controls-on #chatControls{left:auto;right:max(35px,env(safe-area-inset-right));bottom:calc(114px + env(safe-area-inset-bottom))}
.mobile-controls-on #chatButton{width:44px;height:44px}
.mobile-controls-on #boardingControls,.mobile-controls-on #detailControls,.mobile-controls-on #railControls,.mobile-controls-on #gestureInfoControls{bottom:calc(238px + env(safe-area-inset-bottom));max-width:calc(100vw - 32px)}
.mobile-controls-on #railControls{flex-wrap:wrap;justify-content:center;width:max-content;gap:6px}.mobile-controls-on #railControls button{min-width:0;min-height:44px;padding:10px 14px;font-size:12px}
.mobile-controls-on #genesisSourceControls{bottom:calc(230px + env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right))}
.mobile-controls-on #genesisSourceLink{min-height:44px}
.mobile-controls-on #chatComposer{left:12px;right:12px;width:auto;transform:none;bottom:calc(16px + env(safe-area-inset-bottom));max-width:none}
.mobile-controls-on #chatInput{font-size:16px;min-width:0}.mobile-controls-on #chatForm{min-width:0}.mobile-controls-on #sendChat{min-height:44px}
.mobile-controls-on #buttonTooltip{display:none}
@media(max-width:800px){
 #helpPanel{max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}
 dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overscroll-behavior:contain}
 input,textarea,select{font-size:16px}
 #elevatorMenu{overflow-y:auto;overscroll-behavior:contain}
 #focusControls{max-width:calc(100vw - 84px)}
}
@media(max-height:500px) and (orientation:landscape){
 .mobile-controls-on #moveJoystick{width:108px;height:108px;bottom:calc(16px + env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left))}
 .mobile-controls-on #mobileJump{bottom:calc(24px + env(safe-area-inset-bottom));width:60px;height:60px}
 .mobile-controls-on #gestureHud{bottom:calc(16px + env(safe-area-inset-bottom));width:min(520px,calc(100vw - 320px))}
 .mobile-controls-on #chatControls{bottom:calc(96px + env(safe-area-inset-bottom))}
 .mobile-controls-on #boardingControls,.mobile-controls-on #detailControls,.mobile-controls-on #railControls,.mobile-controls-on #gestureInfoControls{bottom:calc(90px + env(safe-area-inset-bottom))}
 .mobile-controls-on #genesisSourceControls{bottom:calc(150px + env(safe-area-inset-bottom))}
 #elevatorMenu{bottom:116px;max-height:calc(100dvh - 130px);padding:16px}
 #disembarkControls{bottom:62px}.bottom{bottom:10px}
 #helpPanel{top:66px;max-height:calc(100dvh - 78px)}
}
.mobile-controls-on #chatComposer{bottom:calc(16px + env(safe-area-inset-bottom) + var(--keyboard-offset,0px))}
.mobile-controls-on #helpButton,.mobile-controls-on #avatarButton,.mobile-controls-on #travelButton,.mobile-controls-on #soundButton,.mobile-controls-on #backToIntro{width:44px;height:44px;top:max(12px,env(safe-area-inset-top))}
.mobile-controls-on #helpButton{right:max(12px,env(safe-area-inset-right))}.mobile-controls-on #avatarButton{right:62px}.mobile-controls-on #travelButton{right:112px}.mobile-controls-on #soundButton{right:162px}
@media(max-width:360px){.mobile-controls-on #helpButton{right:12px}.mobile-controls-on #avatarButton{right:60px}.mobile-controls-on #travelButton{right:108px}.mobile-controls-on #soundButton{right:156px}}
@media(max-height:500px) and (orientation:landscape){.mobile-controls-on #mobile #mobileJump{bottom:calc(24px + env(safe-area-inset-bottom));width:60px;height:60px}}
.mobile-controls-on #elevatorMenu{bottom:195px;max-height:calc(100dvh - 275px);overflow-y:auto}
.mobile-controls-on .stops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mobile-controls-on .stops button{min-width:0;height:54px;font-size:16px}.mobile-controls-on .stops span{font-size:10px;line-height:1.3;overflow-wrap:anywhere}
@media(max-height:500px) and (orientation:landscape){.mobile-controls-on #elevatorMenu{bottom:116px;max-height:calc(100dvh - 196px)}}
.mobile-controls-on #gestureHud{scrollbar-width:none}.mobile-controls-on #gestureHud::-webkit-scrollbar{display:none}
.mobile-controls-on #gestureHud button,html:not([lang="ko"]) .mobile-controls-on #gestureHud button{height:44px;min-height:44px;max-height:44px}

.help-privacy{font-size:11px;line-height:1.8;color:#8f9e8c;margin-top:18px}

/* A single mobile action launcher; the desktop keyboard toolbar stays in place. */
#gestureMenuButton{position:fixed;right:max(35px,env(safe-area-inset-right));bottom:calc(174px + env(safe-area-inset-bottom));z-index:38;display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;background:#1b281ed9;color:#ccd7bd;border:1px solid #c7d0b64d}
#gestureMenuButton.has-active-gesture{color:#ead6a6;border-color:#ddca9680}
#mobileGestureMenu{position:fixed;inset:auto max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) auto;margin:0;width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 96px);overflow-y:auto;overscroll-behavior:contain;padding:16px;background:#18241df5;border:1px solid #a8b3943d;border-radius:18px;box-shadow:0 14px 60px #0006;color:#dfe3d3}
#mobileGestureMenu::backdrop{background:#07100b45}
.gesture-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.gesture-menu-heading h2{font-size:16px;margin:0;line-height:1.5}.gesture-menu-heading button{width:40px;height:40px;padding:0;background:transparent;border:0;font-size:24px;color:#a9b69e}
#mobileGestureMenu #gestureHud{position:static;inset:auto;transform:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin:12px 0 0;padding:0;gap:8px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;touch-action:pan-y}
#mobileGestureMenu #gestureHud button{display:flex;flex-direction:row;flex:initial;justify-content:flex-start;align-items:center;gap:10px;width:auto;min-width:0;height:auto;min-height:56px;max-height:none;padding:12px;border-radius:10px}
#mobileGestureMenu #gestureHud button svg{width:25px;height:25px}
#mobileGestureMenu #gestureHud button .sr-only{position:static;width:auto;height:auto;min-height:0;margin:0;padding:0;overflow:visible;clip:auto;clip-path:none;white-space:normal;text-align:left;font-size:12px;line-height:1.45;display:block}
#mobileGestureMenu #gestureHud button kbd{display:none}
@media(max-height:500px) and (orientation:landscape){#gestureMenuButton{bottom:calc(156px + env(safe-area-inset-bottom))}}
/* Long hashes and addresses remain inside the mobile reader; raw IDs can scroll. */
#blockReaderDialog,#readerBody,.reader-modal-heading,.reader-input-row{min-width:0}.reader-modal-heading>div{min-width:0}.reader-modal-heading h2{overflow-wrap:anywhere}
#readerBody p,#readerBody dd{max-width:100%;overflow-wrap:anywhere;word-break:normal}.reader-hash{white-space:normal;overflow-wrap:anywhere;word-break:break-all}
@media(max-width:700px){#blockReaderDialog{padding:18px;overflow-x:hidden}#readerForm{min-width:0;flex-wrap:wrap}#readerHeightInput{min-width:0;max-width:100%}.reader-load-actions{flex-wrap:wrap}.reader-tx summary{grid-template-columns:22px minmax(0,1fr) auto}.reader-tx strong{grid-column:3;grid-row:1;white-space:nowrap;font-size:11px}.reader-tx small{grid-column:2/4}.reader-value{font-size:clamp(22px,7vw,30px)}}

@media(max-width:600px){#focusControls{left:max(16px,env(safe-area-inset-left));top:calc(70px + env(safe-area-inset-top))}#closeFocus kbd{display:none}}

.mobile-controls-on #genesisSourceControls{bottom:calc(16px + env(safe-area-inset-bottom))}

/* Focused exhibits replace the intro back button with their own close action. */
body:has(#focusControls:not([hidden])) #backToIntro{display:none}
#focusControls{left:max(20px,env(safe-area-inset-left));top:max(20px,env(safe-area-inset-top))}
@media(max-width:800px){#focusControls{left:max(16px,env(safe-area-inset-left));top:max(16px,env(safe-area-inset-top))}}

/* Japanese prose wraps at normal Japanese line boundaries, including in dialogs. */
html:lang(ja) :is(dialog,[popover]) :is(p,h2,h3,small,dt,dd,a){word-break:normal;line-break:strict;overflow-wrap:anywhere}
#mempoolDialog{overflow-wrap:anywhere}
.mempool-heading>div,.mempool-stats>div,.mempool-fee-grid>div{min-width:0}
.mempool-heading h2,.mempool-intro,.mempool-note{overflow-wrap:anywhere}
.mempool-stats,.mempool-fee-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.mempool-stats dd,.mempool-fee-grid dd{overflow-wrap:anywhere}
@media(max-width:420px){.mempool-stats{grid-template-columns:minmax(0,1fr)}.mempool-heading{gap:12px}}
@media(max-width:360px){.mempool-fee-grid{grid-template-columns:minmax(0,1fr)}}
html:lang(ja) .mask-choice span{max-width:100%;min-width:0;word-break:normal;line-break:strict;overflow-wrap:anywhere}

#multiplayerWaiting{position:fixed;z-index:44;top:max(18px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(440px,calc(100vw - 32px));display:flex;align-items:center;gap:14px;padding:13px 16px;background:#19271feb;border:1px solid #acb99a40;border-radius:12px;box-shadow:0 8px 30px #0004;color:#d5deca;overflow-wrap:anywhere}
#multiplayerWaiting>div{flex:1;min-width:0}#waitingTitle{font-size:13px;font-weight:500}#waitingDetail{margin:6px 0 0;font-size:11px;line-height:1.65;color:#a4b59a}
#enterMultiplayer{flex-shrink:0;padding:10px 13px;min-height:44px;background:#c9d1b8;color:#18221a}#enterMultiplayer:disabled{background:#26362b;color:#91a18a;opacity:.75;cursor:default}
@media(max-width:1000px){#multiplayerWaiting{top:calc(70px + env(safe-area-inset-top))}}
@media(max-width:360px){#multiplayerWaiting{gap:9px;padding:12px}#enterMultiplayer{padding:10px}}

/* Live counts stay below each flag, without introducing country-name labels. */
#serverEntryDialog .server-flags{align-items:stretch;gap:12px}
#serverEntryDialog .server-flags button{min-width:0;flex:1;width:auto;height:auto;min-height:112px;display:flex;flex-direction:column;justify-content:center;gap:9px;padding:12px 5px}
.server-flags [data-server-count]{font:12px/1.5 monospace;color:#d1d9c6;white-space:nowrap}
.server-flags [data-server-wait]{font:10px/1.5 sans-serif;color:#9daf93;overflow-wrap:anywhere;text-align:center}
#serverPopulation{position:fixed;z-index:40;top:max(20px,env(safe-area-inset-top));left:max(70px,calc(env(safe-area-inset-left) + 56px));height:38px;display:flex;align-items:center;color:#d7dece;pointer-events:auto;cursor:help}
#populationCount{font:13px/1.5 monospace;white-space:nowrap;font-variant-numeric:tabular-nums}
.mobile-controls-on #serverPopulation{top:max(12px,env(safe-area-inset-top));left:max(66px,calc(env(safe-area-inset-left) + 50px));height:44px}.mobile-controls-on #populationCount{font-size:12px}
body:has(#focusControls:not([hidden])) #serverPopulation{display:none}
@media(max-width:1100px){#multiplayerWaiting{top:calc(70px + env(safe-area-inset-top))}}

@media(max-width:360px){#serverEntryDialog .server-flags{gap:8px}#serverEntryDialog .server-flags button{min-height:106px;padding:10px 4px}.server-flags [data-server-count]{font-size:11px}}

#developerSupport{margin-top:22px;padding-top:18px;border-top:1px solid #a8b39424}
#developerSupport h3{margin:0 0 16px;font-size:13px;font-weight:500;color:#d9ddcd}
.support-address{display:flex;align-items:flex-start;gap:10px;margin-top:14px}.support-address>div{flex:1;min-width:0}.support-address span{display:block;color:#91a188;font-size:10px;margin-bottom:5px}.support-address code{display:block;font:12px/1.8 monospace;color:#d0d8c1;overflow-wrap:anywhere;word-break:break-all;user-select:all}.support-address button{flex-shrink:0;min-height:36px;padding:6px 10px;font-size:11px;background:#ffffff05;color:#b6c3a8}
#helpPanel #donationCopyStatus{font-size:11px;margin:12px 0 0;color:#aebc9e}#donationCopyStatus:empty{display:none}

#serverPopulation:focus-visible{outline:1px solid #b9c3ab;outline-offset:4px;border-radius:5px}.mobile-controls-on #buttonTooltip.population-tooltip{display:block}

/* Game controls never start text selection or iOS long-press callouts. */
html,body,body *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
/* Reading and copying remain available in dialogs and reading popovers. */
dialog[open],dialog[open] *,[popover]:popover-open,[popover]:popover-open *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
dialog[open] button,dialog[open] button *,[popover]:popover-open button,[popover]:popover-open button *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#seatNoteStatus{min-height:1.4em;color:#d6bf9b;line-height:1.5;overflow-wrap:anywhere}

.help-language{display:grid;grid-template-columns:1fr minmax(125px,1fr);gap:8px 12px;align-items:center;padding:14px 0 18px;border-bottom:1px solid #ffffff14;margin-bottom:18px}.help-language label{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;color:#cbd5bf}.help-language label svg{flex-shrink:0}.help-language select{width:100%;min-width:0;min-height:42px;padding:8px 10px;border:1px solid #ffffff28;border-radius:8px;background:#202b23;color:#e6e9df;font:inherit;cursor:pointer}.help-language select:focus-visible{outline:2px solid var(--amber);outline-offset:2px}#helpPanel #helpLanguageHint{grid-column:1/-1;margin:0;color:#96a48e;font-size:11px;line-height:1.6;overflow-wrap:anywhere}
