:root{color-scheme:light;--ink:#354b46;--muted:#75817a;--line:#d1d8cc;--paper:#f5f3e9;--green:#59766b;--vh:100dvh;--vw:100vw;--vt:0px;--vl:0px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#647d77;color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{cursor:pointer;-webkit-tap-highlight-color:transparent}button{color:inherit;border:0;background:transparent}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid #6e9d8a;outline-offset:3px}[hidden]{display:none!important}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icons{position:absolute;width:0;height:0}#world{width:100%;height:100%;display:block;image-rendering:pixelated;touch-action:none;outline:none}body[data-theme=livehouse] #world{filter:brightness(.72) saturate(.78) hue-rotate(8deg)}body[data-theme=daylight] #world{filter:brightness(1.1) saturate(.8)}.wash{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 130px #263f4133}.topbar{position:fixed;top:max(18px,env(safe-area-inset-top));left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;pointer-events:none;gap:8px}.location{color:#f6f0da;text-shadow:0 1px 6px #253a38;display:flex;align-items:center;gap:8px;letter-spacing:.05em;font-size:12px;pointer-events:none}.location i{height:5px;width:5px;border-radius:50%;background:#e7d9b7}.tools{display:flex;gap:5px;pointer-events:auto}.tools button,.zoom button,.room-strip button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #f1f2df66;border-radius:13px;background:#f5f1e4e8;box-shadow:0 3px 12px #223a3920;position:relative}.tools button:hover,.zoom button:hover{background:#fffbee;transform:translateY(-1px)}.tools button.active{color:#995f61;background:#f3ded1}#unread{position:absolute;right:0;top:-4px;padding:1px 5px;font-size:9px;border-radius:20px;background:#b27376;color:#fff}.room-strip{position:fixed;top:76px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;background:#f5f1e4ed;border-radius:12px;padding:5px 7px 5px 16px;max-width:calc(100% - 30px);white-space:nowrap}.room-strip span{max-width:45vw;overflow:hidden;text-overflow:ellipsis}.room-strip button{box-shadow:none;border:0;background:#e4e8dc;width:auto;padding:0 10px;height:33px;gap:6px}.bottom-hint{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);color:#f7efd9;text-shadow:0 1px 5px #273e38;font-size:11px;white-space:nowrap;pointer-events:none;opacity:.9}.bottom-hint span{padding:0 8px}.zoom{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));right:max(24px,env(safe-area-inset-right));display:flex;gap:4px}.zoom button{width:34px;height:34px;border-radius:10px;font-size:18px}#joystick{position:fixed;left:max(24px,env(safe-area-inset-left));bottom:max(26px,env(safe-area-inset-bottom));width:96px;height:96px;border-radius:50%;background:#f3f3da22;border:1px solid #f5f0d655;touch-action:none;display:none;box-shadow:inset 0 2px 10px #203f3917}#stick{display:block;position:absolute;left:29px;top:29px;width:36px;height:36px;border-radius:50%;background:#ece6cfbb;border:1px solid #fff4d9;pointer-events:none;box-shadow:0 4px 12px #233b392a}#interact{position:fixed;bottom:max(65px,calc(env(safe-area-inset-bottom) + 45px));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;border-radius:16px;padding:9px 14px;background:#f7f1dfef;border:1px solid #fff9e080;box-shadow:0 4px 20px #2b42432b;font-size:12px;white-space:nowrap;max-width:90vw}#interact span{overflow:hidden;text-overflow:ellipsis}kbd{border:1px solid #a0afa1;border-radius:4px;padding:0 4px;font-size:10px}#toast{position:fixed;z-index:50;bottom:calc(var(--vh) * .18);left:50%;transform:translateX(-50%);background:#263e38ed;color:#f4eedb;border:1px solid #c1cfb966;padding:10px 18px;border-radius:10px;width:max-content;max-width:90vw;white-space:pre-wrap;box-shadow:0 8px 22px #1d353522}dialog{color:var(--ink);background:var(--paper);border:1px solid #d6dcca;border-radius:20px;padding:0;box-shadow:0 20px 90px #16352e55}dialog::backdrop{background:#213c3966;backdrop-filter:blur(3px)}#panel{width:min(470px,calc(100vw - 28px));max-width:none;max-height:85dvh}#panel .panel-header{position:sticky;top:0;z-index:1;background:var(--paper);display:flex;justify-content:space-between;align-items:center;padding:20px 24px 13px;border-bottom:1px solid var(--line)}h1{font-size:19px;font-weight:550;margin:0}.panel-header button{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e6eadf}#panel-content{padding:20px 24px 26px}h2{font-size:15px;font-weight:550;margin:22px 0 10px}h2:first-child{margin-top:0}p{margin:0 0 16px}.muted{color:var(--muted);font-size:12px}.row{display:flex;gap:9px;align-items:center}.row>*{flex:1}.row.tight>*{flex:initial}label{display:block;font-size:12px;margin-bottom:14px}input,textarea,select{display:block;width:100%;background:#fffef7;border:1px solid #cbd4c6;color:var(--ink);border-radius:9px;padding:11px 12px;margin-top:6px;font-size:16px;min-height:44px}textarea{min-height:125px;resize:vertical}input[type=file]{font-size:13px}input[type=color]{padding:4px}select{padding-right:32px}input:focus,textarea:focus,select:focus{outline:2px solid #88a08d;outline-offset:1px}.primary,.secondary,.destination,.list-button{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:1px solid #607c6d;background:#607c6d;color:#fcf6e5;padding:11px 16px;border-radius:10px;width:100%;min-height:43px}.secondary{background:transparent;border-color:#bac8b5;color:var(--ink);margin-top:9px}.destination,.list-button{justify-content:space-between;text-align:left;background:#e9ecdf;border-color:#d1d9c8;color:var(--ink);margin-bottom:9px}.destination small,.list-button small{font-size:11px;color:var(--muted)}.text-button{display:block;text-align:center;margin:15px auto 0;font-size:12px;text-decoration:underline;text-underline-offset:4px}.separator{height:1px;background:var(--line);margin:23px 0}.form-error{color:#9a4d53;font-size:13px;white-space:pre-wrap;margin:8px 0}.reader{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.85 ui-monospace,monospace;background:#e9eadf;padding:15px;border-radius:8px;max-height:40vh;overflow:auto}.special-button{background:linear-gradient(120deg,#bc91a4,#9b9db8);border-color:#dcb5c1;box-shadow:0 0 22px #bc91a455;animation:glow 2s ease-in-out infinite}@keyframes glow{50%{box-shadow:0 0 28px #bc91a4aa}}#social-dialog{position:fixed;inset:auto;margin:0;max-width:none;max-height:none;overflow:hidden;padding:0}#social-dialog iframe{display:block;border:0}.quality{background:#e7e9de;border-radius:12px;padding:16px;margin-top:18px}.quality p{margin:0 0 12px}.quality small{display:block;line-height:1.6;color:var(--muted);margin:9px 0}.notice{padding:12px;background:#e7ebdd;border-radius:9px}.no-margin{margin:0}
@media(pointer:coarse){#joystick{display:block}kbd{display:none}.bottom-hint{bottom:16px;font-size:10px}#interact{bottom:max(50px,calc(env(safe-area-inset-bottom) + 30px));left:auto;right:18px;transform:none;max-width:calc(100% - 140px)}.zoom{bottom:110px;right:20px}}
@media(max-width:650px){.topbar{top:max(12px,env(safe-area-inset-top));left:12px;right:12px;align-items:flex-start}.location{position:absolute;top:51px;left:3px;font-size:11px}.tools{margin-left:auto;gap:4px}.tools button{width:37px;height:37px;border-radius:12px}.room-strip{top:86px;font-size:12px}.bottom-hint{display:none}#panel{position:fixed;left:calc(var(--vl) + 10px);top:calc(var(--vt) + 10px);margin:0;width:calc(var(--vw) - 20px);max-height:calc(var(--vh) - 20px);border-radius:17px}#panel-content{padding:18px}#panel .panel-header{padding:16px 18px 12px}.wash{box-shadow:inset 0 0 70px #263f4126}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}

/* Keep the illustration unfiltered by a vignette or upper-left title card. */
.topbar{justify-content:flex-end}.tools{margin-left:auto}html,body{background:#c6c9c6}.bottom-hint{color:#697575;text-shadow:0 1px 2px #fff}#art-loading{position:fixed;left:50%;top:48%;transform:translate(-50%,-50%);font-size:13px;color:#647571;background:#f7f6eeed;padding:9px 17px;border-radius:10px}#art-loading button{display:block;margin:8px auto 0;text-decoration:underline}
