/* The first production panorama keeps the story engine and browser saves in game.js. */
body:has(main.live-panorama){background:#e9e2d5}
body:has(main.live-panorama) .window{width:min(100%,1180px);height:100dvh;min-height:0}
body:has(main.live-panorama) .window>header,body:has(main.live-panorama) .window>footer{display:none}
main.live-panorama{position:relative;display:block;width:100%;height:100%;min-height:0;margin:0;padding:0;overflow:hidden;color:#292721;font-family:"Noto Serif CJK SC","Songti SC",serif}
.lp-app{position:relative;width:100%;height:100%;overflow:hidden;background:#aa9e89;box-shadow:0 0 60px #241b1030}
.lp-app *{box-sizing:border-box}
.lp-app button{cursor:pointer}
.lp-app button:focus-visible,.lp-window:focus-visible{outline:3px solid #a56c4e;outline-offset:3px}
.lp-window{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;user-select:none}
.lp-window.dragging{cursor:grabbing}
.lp-image{position:absolute;left:0;top:0;height:100%;max-width:none;will-change:transform;pointer-events:none}
.lp-points{position:absolute;left:0;top:0;height:100%;width:100%;will-change:transform;pointer-events:none}
.lp-hotspot{position:absolute;width:42px;height:42px;border:0;border-radius:50%;background:transparent;color:#fffdf3;filter:drop-shadow(0 1px 2px #342b25) drop-shadow(0 0 5px #342b25a8);display:grid;place-items:center;font:31px/1 sans-serif;pointer-events:auto;transform:translate(-50%,-50%);transition:transform .15s,filter .15s}
.lp-hotspot:hover,.lp-hotspot:focus-visible{transform:translate(-50%,-50%) scale(1.17);filter:drop-shadow(0 1px 2px #342b25) drop-shadow(0 0 9px #fff4d3)}
.lp-scene-room .lp-kitchen-only,.lp-scene-room .lp-bedroom-only,.lp-scene-kitchen .lp-room-only,.lp-scene-kitchen .lp-bedroom-only,.lp-scene-bedroom .lp-room-only,.lp-scene-bedroom .lp-kitchen-only{display:none}
.lp-scene-room .lp-intern-only,.lp-scene-room .lp-front-only,.lp-scene-kitchen .lp-intern-only,.lp-scene-kitchen .lp-front-only,.lp-scene-bedroom .lp-intern-only,.lp-scene-bedroom .lp-front-only{display:none}
.lp-scene-intern .lp-room-only,.lp-scene-intern .lp-kitchen-only,.lp-scene-intern .lp-bedroom-only,.lp-scene-intern .lp-front-only,.lp-scene-front .lp-room-only,.lp-scene-front .lp-kitchen-only,.lp-scene-front .lp-bedroom-only,.lp-scene-front .lp-intern-only{display:none}
.lp-scene-single .lp-back{display:none}
.lp-topbar{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;justify-content:space-between;gap:14px;padding:calc(17px + env(safe-area-inset-top)) 22px 22px;background:linear-gradient(#211b16ad,#211b1600);color:#fffaf0;font:13px/1.6 system-ui,sans-serif;pointer-events:none}
.lp-topbar>span:first-child{font-weight:700;letter-spacing:.08em}.lp-topbar>span:last-child{text-align:right;letter-spacing:.06em}
.lp-menu{position:absolute;z-index:4;top:calc(71px + env(safe-area-inset-top));right:22px;padding:7px 10px;border:1px solid #fff9ed80;background:#30281fb5;color:#fff6e9;font:13px/1.3 system-ui,sans-serif}
.lp-sound{position:absolute;z-index:4;top:calc(71px + env(safe-area-inset-top));right:82px;display:grid;place-items:center;width:36px;height:36px;padding:6px;border:1px solid #fff9ed80;border-radius:50%;background:#30281fb5;color:#fff6e9}
.lp-sound .speaker-icon{width:21px;height:21px}
.lp-edges{position:absolute;z-index:3;left:0;right:0;top:50%;display:flex;justify-content:space-between;pointer-events:none;transform:translateY(-50%)}
.lp-edges button{pointer-events:auto;margin:0 10px;width:37px;height:58px;border:1px solid #fff9ed80;border-radius:3px;background:#28231db0;color:#fff9ed;font:23px/1 sans-serif;box-shadow:0 3px 15px #21180e40}
.lp-edges button:hover{background:#634632db}
.lp-marker{position:absolute;z-index:3;left:50%;top:52%;transform:translate(-50%,-50%);width:70px;height:70px;border:0;border-radius:50%;background:radial-gradient(circle,#fff4d8ab 0 6px,#fff4d830 7px 17px,transparent 18px);box-shadow:0 0 0 1px #fff5dfb5 inset,0 0 0 8px #fff4df24;transition:transform .18s,background .18s}
.lp-marker::after{content:'+';color:#fffdf7;font:18px/1 sans-serif;text-shadow:0 1px 5px #2d231a;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.lp-marker:hover{transform:translate(-50%,-50%) scale(1.1)}
.lp-back{position:absolute;z-index:4;top:calc(72px + env(safe-area-inset-top));left:22px;padding:8px 12px;border:1px solid #f7eddfaa;background:#30281fc9;color:#fff6e9;font:13px/1.3 system-ui,sans-serif}
.lp-scene-room .lp-back,.lp-scene-kitchen .lp-marker,.lp-scene-bedroom .lp-marker{display:none}
.lp-hint{position:absolute;z-index:2;left:50%;bottom:44px;transform:translateX(-50%);padding:8px 13px;white-space:nowrap;border:1px solid #fff7ed80;border-radius:30px;background:#2f291f9c;color:#fffaf0;font:12px/1.4 system-ui,sans-serif;pointer-events:none}
.lp-cash{position:absolute;z-index:4;left:20px;bottom:calc(18px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:5px}
.lp-cash button{border:1px solid #f4e7d265;background:#fbf3e5ae;color:#30271f;box-shadow:0 3px 12px #20180e4a;backdrop-filter:blur(4px)}
.lp-cash button:first-child{padding:8px 11px 7px;font:600 17px/1.2 "Songti SC",serif;letter-spacing:.03em}
.lp-cash button:last-child{width:30px;height:34px;border-radius:50%;font:600 15px/1 system-ui,sans-serif}
.lp-cash button:hover{background:#fff9eddd}
.lp-object{position:absolute;z-index:5;left:50%;top:58%;transform:translate(-50%,-50%);width:min(360px,calc(100% - 38px));padding:20px 22px;background:#fcf8ecde;border:1px solid #d8c8b29c;box-shadow:0 14px 35px #21170e55;backdrop-filter:blur(6px)}
.lp-object[hidden]{display:none}.lp-object h2{font-size:20px;margin:0 0 8px;font-weight:500}.lp-object p{font-size:15px;line-height:1.8;margin:0}
.lp-object button{position:absolute;right:8px;top:7px;border:0;background:none;color:#6c5c4d;font:22px/1 sans-serif;padding:5px}
.lp-veil{position:absolute;z-index:5;inset:0;background:#211b1760;opacity:0;pointer-events:none;transition:opacity .25s}
.lp-app.reading .lp-veil{opacity:1;pointer-events:auto}
.lp-sheet{position:absolute;z-index:6;left:0;right:0;bottom:0;height:min(78dvh,720px);padding:0 0 env(safe-area-inset-bottom);background:rgba(249,245,235,.9);backdrop-filter:blur(7px);border-radius:18px 18px 0 0;box-shadow:0 -12px 34px #1b130f52;transform:translateY(105%);transition:transform .22s ease;display:flex;flex-direction:column}
.lp-app.reading .lp-sheet{transform:translateY(0)}
.lp-sheet header{flex:none;margin:0;padding:24px 22px 15px;border-bottom:1px solid #cec2ae;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;color:#292721}
.lp-sheet header small{display:block;color:#8c6959;font:12px/1.5 system-ui,sans-serif;letter-spacing:.1em}.lp-sheet header h1{font:500 24px/1.3 "Songti SC",serif;margin:2px 0 0;letter-spacing:0}
.lp-sheet header button{border:0;background:none;color:#6c5a4b;padding:8px 0;font:14px/1.4 system-ui,sans-serif;white-space:nowrap}
.lp-story-scroll{overflow-y:auto;overscroll-behavior:contain;padding:24px clamp(22px,7vw,74px) 36px;scrollbar-color:#b7a48b transparent}
.lp-story-scroll p{margin:0 0 17px;font-size:clamp(17px,3.6vw,20px);line-height:1.85;letter-spacing:.025em;white-space:pre-line}
.lp-diary{display:block;margin:16px 0 23px;padding:8px 13px;background:#eee5d7;border:1px solid #cdbba9;color:#654739;font-size:14px;transform:rotate(-.5deg)}
.lp-diary[hidden],.lp-diary-text[hidden]{display:none}.lp-diary-text{padding:12px 15px;border-left:3px solid #8b5143;background:#f3eadc;font:18px/1.85 "Kaiti SC","STKaiti",serif}
.lp-choice{display:block;width:100%;margin-top:26px;padding:14px 17px;border:1px solid #b9a48e;background:#ede1ce;text-align:left;color:#372d26;font-size:16px;line-height:1.6}
.lp-choice:hover{background:#e5d3b9}
.lp-ledger-veil{position:absolute;z-index:7;inset:0;background:#1f1b16a1;opacity:0;pointer-events:none;transition:opacity .22s}
.lp-app.ledger-open .lp-ledger-veil{opacity:1;pointer-events:auto}
.lp-ledger{position:absolute;z-index:8;left:50%;top:50%;transform:translate(-50%,-45%) rotate(-.25deg);width:min(530px,calc(100% - 30px));max-height:min(82dvh,720px);overflow:auto;padding:29px clamp(22px,5vw,43px) 37px;background:repeating-linear-gradient(#fbf5e8 0 35px,#ece1d0 36px 37px);border:1px solid #bba990;box-shadow:0 15px 55px #130d0780;opacity:0;pointer-events:none;transition:opacity .22s,transform .22s}
.lp-app.ledger-open .lp-ledger{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) rotate(-.25deg)}
.lp-ledger header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border:0;border-bottom:2px solid #ad8d73;margin:0;padding:0 0 12px;color:#544034}
.lp-ledger header small{font:13px/1.5 system-ui,sans-serif;color:#7b6b5a;letter-spacing:.1em}
.lp-ledger header h2{display:flex;align-items:center;gap:12px;font:400 30px/1.2 "Kaiti SC","STKaiti",serif;margin:5px 0 0}
.lp-ledger header svg{width:38px;height:35px;fill:none;stroke:#5b4c40;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;transform:rotate(9deg)}
.lp-ledger header button{border:0;background:none;padding:2px 6px;color:#6a5749;font:25px/1 system-ui,sans-serif}
.lp-balance{display:flex;align-items:baseline;gap:8px;margin:28px 0 26px;color:#554538;font:18px/1.5 "Kaiti SC","STKaiti",serif}
.lp-balance strong{color:#412e27;font:600 35px/1 "Songti SC",serif}
.lp-ledger table{width:100%;border-collapse:collapse;color:#403a30;font:15px/1.6 "Songti SC",serif;table-layout:fixed;background:#fcf8efb8}
.lp-ledger th,.lp-ledger td{padding:10px 6px;border-bottom:1px solid #d9cbbb;text-align:left;vertical-align:top}
.lp-ledger th{font:13px/1.5 "Kaiti SC","STKaiti",serif;color:#746153;border-bottom:1px solid #9e8770}
.lp-ledger th:nth-child(1){width:19%}.lp-ledger th:nth-child(2){width:39%}.lp-ledger th:nth-child(3){width:18%}.lp-ledger th:nth-child(4){width:24%}
.lp-ledger td:nth-child(3),.lp-ledger td:nth-child(4){text-align:right;white-space:pre-line;font-variant-numeric:tabular-nums}
.lp-ledger-tail{margin:24px 0 0;color:#785d4b;font:16px/1.75 "Kaiti SC","STKaiti",serif;transform:rotate(-.4deg)}
.lp-ledger-debt{margin:18px 0 2px;border-top:1px dashed #b29d87;padding-top:13px;color:#634938;font:16px/1.7 "Kaiti SC","STKaiti",serif}
.lp-pages{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:24px;color:#745e4c;font:15px/1.3 "Kaiti SC","STKaiti",serif}
.lp-pages button{display:grid;place-items:center;width:40px;height:38px;border:0;background:transparent;color:#785b45;font:29px/1 "Songti SC",serif;transform:rotate(-8deg)}
.lp-pages button:disabled{opacity:.28;cursor:default}
@media(max-width:500px){.lp-edges button{margin:0 5px;width:32px;height:48px}.lp-marker{width:62px;height:62px}.lp-hotspot{width:31px;height:31px}}
@media(min-width:700px){.lp-sheet{left:auto;width:min(510px,48%);height:100%;max-height:none;border-radius:0;transform:translateX(105%)}.lp-app.reading .lp-sheet{transform:translateX(0)}.lp-story-scroll{padding:30px 35px}}
@media(prefers-reduced-motion:reduce){.lp-sheet,.lp-veil,.lp-ledger,.lp-ledger-veil{transition:none}}
