/* Pretendard web font (index.html), then system Korean fonts. */
:root{font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#f4edda;background:#1d342e;--ink:#35483e;--gold:#d9b76e;--paper:#f5efdf}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 40% 0,#3a5547 0,transparent 70%),#1d342e;min-height:100svh}button{font:inherit;cursor:pointer}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #f3d990;outline-offset:3px}button:disabled{cursor:wait;opacity:.55}[hidden]{display:none!important}.shell{max-width:1420px;padding:26px 40px 20px;margin:auto}.masthead{display:flex;align-items:center;justify-content:space-between;margin-bottom:27px;gap:15px}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.crest{width:43px;height:48px;display:grid;place-items:center;background:#dfc68e;color:#39594b;font-size:28px;clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%)}.brand small{display:block;color:#b3c1ae;font-size:9px;letter-spacing:.18em;margin-bottom:6px}.brand strong{font-size:21px;letter-spacing:-.04em}.masthead nav{display:flex;align-items:center;gap:9px}.quiet,.legacy{border:1px solid #6d817066;background:#253d34;padding:9px 12px;border-radius:5px;color:#e2e5d7;font-size:11px;text-decoration:none}.quiet:hover,.legacy:hover{background:#3a5547}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:22px;align-items:start}.play-column{min-width:0}.location{display:flex;align-items:center;gap:10px;margin:0 2px 12px}.location-mark{color:var(--gold);font-size:28px}.location h1{font-size:18px;margin:0 0 4px;letter-spacing:-.03em}.location p{font-size:11px;color:#b7c7b6;margin:0}.day{margin-left:auto;font-size:10px;color:#d9cfad}.day>span{font-size:16px;color:#edce84;margin-right:5px}.stage{position:relative;aspect-ratio:640/400;overflow:hidden;border:5px solid #b18b56;outline:1px solid #f3dcb177;box-shadow:0 18px 45px #0b1c2170;background:#644d35;border-radius:3px;isolation:isolate}.stage::after{content:"";position:absolute;inset:0;border:2px solid #604a31;pointer-events:none;z-index:10}#world{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none;outline-offset:-5px}.interact-wrap{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);white-space:nowrap;z-index:3}.interact-wrap button{background:#f7edcfed;border:2px solid #7d6344;border-radius:5px;color:#374b3c;padding:8px 17px;font-weight:750;font-size:12px;box-shadow:0 3px 0 #513e2b77}.room-toast{position:absolute;left:50%;top:15px;transform:translate(-50%,-9px);opacity:0;transition:opacity .2s,transform .2s;background:#2c4636ee;border:1px solid #d8c98e;color:#fff1ca;font-size:12px;padding:9px 18px;border-radius:5px;z-index:5;pointer-events:none;max-width:90%;text-align:center}.room-toast.visible{opacity:1;transform:translate(-50%,0)}.controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:10px;color:#b9c8b6;padding:12px 3px}.controls kbd{font-family:inherit;font-size:9px;border:1px solid #83977855;border-radius:3px;padding:3px 4px;color:#e4e8d4}.save-status{margin-left:auto;color:#94b99e}.ambient-note{font-size:11px;color:#91aa94;margin:5px;text-align:center}.journal{padding-top:48px;color:var(--ink)}.quest-panel{background:var(--paper);border:1px solid #a59974;border-radius:7px;box-shadow:0 8px 25px #071e1b24;overflow:hidden}.quest-panel>header{display:flex;align-items:center;gap:9px;border-bottom:1px solid #d7cfb7;padding:17px 15px;background:#e9e1cb}.quest-panel small,.map-panel>small,.daily-note small{font-size:8px;letter-spacing:.17em;color:#74806a}.quest-panel h2,.map-panel h2{font-size:15px;margin:3px 0 0}.little-icon{font-size:28px;color:#a18049}#toggle-journal{margin-left:auto;background:none;border:0;font-size:22px;color:#65755c}#journal-body{padding:17px 16px}.quest-kicker{font-size:9px;color:#9a784a;margin:0 0 5px}.quest-panel h3{font-size:13px;margin:0 0 17px}#quest-steps{list-style:none;padding:0;margin:0}#quest-steps li{font-size:11px;line-height:1.5;padding:0 0 14px;display:flex;gap:9px;align-items:flex-start}#quest-steps li::before{content:"";flex-shrink:0;width:11px;height:11px;border:1px solid #a7af94;border-radius:3px;margin-top:2px}#quest-steps li.done{color:#7b8974}#quest-steps li.done::before{content:"✓";font-size:9px;line-height:11px;text-align:center;border-color:#75977c;background:#75977c;color:white}.quest-tip{border-top:1px dashed #c7c7b1;color:#7e8068;padding-top:12px;margin:0;font-size:10px;line-height:1.6}.quest-complete{background:#dde9d6;padding:11px;margin-bottom:12px;border-radius:4px;display:grid;gap:5px}.quest-complete b{font-size:11px;color:#4a7750}.quest-complete span{font-size:9px}.map-panel{padding:21px 15px 13px;color:#dbdfc8}.map-panel>small{color:#a5b89a}.map-panel h2{font-size:13px;margin:4px 0 14px}.room-map{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.room-map span{font-size:10px;padding:9px 4px;background:#2b4538;border:1px solid #6f846c;border-radius:4px;text-align:center;color:#b9cbb1;position:relative}.room-map span.active{background:#c9d1ab;color:#344d3d;border-color:#f5d899;box-shadow:0 0 0 2px #e7d6a022}.room-map span:nth-child(1){grid-column:1;grid-row:1}.room-map span:nth-child(2){grid-column:1;grid-row:2}.room-map span:nth-child(3){grid-column:2;grid-row:2}.room-map span:nth-child(4){grid-column:2;grid-row:1}.room-map span:nth-child(1)::after,.room-map span:nth-child(4)::after{content:"";position:absolute;height:12px;width:1px;background:#748769;top:100%;left:50%}.room-map span:nth-child(2)::after{content:"";position:absolute;width:16px;height:1px;background:#748769;left:100%;top:50%}.map-panel p{font-size:9px;color:#9eb195;margin-top:12px}.daily-note{position:relative;margin:2px 10px;padding:18px;background:#eee6cf;transform:rotate(-2deg);box-shadow:2px 5px 12px #0f251f66}.daily-note p{font-size:12px;line-height:1.8;margin:10px 0}.daily-note b{font-weight:600}.daily-note>span{position:absolute;bottom:15px;right:18px;color:#c1a36a;font-size:24px}.restart-tour{display:block;margin:20px auto;background:none;border:0;border-bottom:1px solid #80967c77;color:#a9bfa2;font-size:10px;padding:5px}.dialog{position:absolute;z-index:8;bottom:12px;left:12px;right:12px;display:grid;grid-template-columns:80px 1fr;gap:17px;min-height:145px;padding:17px 24px 15px 17px;background:#f7efdbf7;border:3px solid #98734d;outline:1px solid #fff0c4;border-radius:5px;box-shadow:0 4px 22px #291e2080;color:#38473a}.dialog-close{position:absolute;right:7px;top:5px;background:none;border:0;font-size:22px;color:#7c806b}.portrait-frame{align-self:start;text-align:center}.portrait-frame canvas{width:76px;height:76px;display:block;background:#dfdfc7;border:2px solid #a8ab8c;border-radius:4px;image-rendering:pixelated}.portrait-frame span{display:block;font-size:9px;margin-top:6px;color:#818269}.dialog-body>strong{font-size:13px;color:#897040;letter-spacing:.03em}.dialog-body>p{font-size:14px;line-height:1.7;margin:9px 0 12px;min-height:2.9em;white-space:pre-line}.choices{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}.choices button{font-size:11px;background:#e6dfc8;border:1px solid #b7ad8b;color:#3f5543;padding:8px 13px;border-radius:3px}.choices button:hover{background:#cedabc;border-color:#819c72}.choices button:last-child{background:#456d54;color:#f8f0d4;border-color:#395b45}.loading{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#2d4439;color:#e5ddbe;gap:14px}.loading-paw{font-size:35px;color:#e4c68e;animation:pulse 1s ease-in-out infinite alternate}.loading strong{font-size:17px}.loading p{font-size:12px;margin:0}.loading button{padding:10px;border:1px solid #d1c297;background:#4c6550;color:inherit}.modal-scrim{position:fixed;inset:0;z-index:30;display:grid;place-items:center;overflow:auto;padding:25px 15px;background:#132b26b8;backdrop-filter:blur(5px)}.character-panel,.help-panel{width:min(600px,100%);background:#f1ead8;border:3px solid #b19665;outline:1px solid #ead6a9;box-shadow:0 25px 80px #071a1c99;border-radius:9px;color:#3d5142;padding:32px 35px;text-align:center}.eyebrow{font-size:9px;letter-spacing:.15em;color:#8c956f}.character-panel h2,.help-panel h2{font-size:22px;letter-spacing:-.05em;margin:12px 0}.character-panel>p{font-size:12px;color:#7a856c}.character-options{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin:25px 0}.character-options button{border:2px solid #c7c8ad;border-radius:7px;background:radial-gradient(ellipse at 50% 38%,#f7f1de,#dedfbe);color:#40533e;padding:7px 9px 15px;transition:transform .15s,border-color .15s}.character-options button[aria-pressed=true]{border-color:#688865;box-shadow:0 0 0 3px #73986a22}.character-options button:hover{transform:translateY(-3px)}.character-options canvas{width:100%;height:165px;object-fit:contain;image-rendering:pixelated}.character-options strong{display:block;font-size:15px}.character-options span{display:block;font-size:10px;margin-top:8px;color:#7c886c}.primary{width:100%;border:1px solid #456a4a;background:#456b50;color:#fff2d1;padding:14px 18px;font-weight:700;border-radius:5px;text-align:center}.primary:hover{background:#345640}.primary span{margin-left:15px}.select-note{display:block;font-size:9px;color:#879076;margin-top:13px}.help-panel{text-align:left;max-width:450px}.help-panel p{font-size:13px;line-height:1.8;color:#6f7d65}.help-panel .primary{margin-top:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@keyframes pulse{to{opacity:.4}}
@media(max-width:1000px){.shell{padding:20px}.game-layout{grid-template-columns:minmax(0,1fr) 210px;gap:15px}.dialog{grid-template-columns:62px 1fr;padding:12px;gap:10px;bottom:7px;left:7px;right:7px;min-height:125px}.portrait-frame canvas{width:60px;height:60px}.dialog-body>p{font-size:12px;line-height:1.55;margin:7px 0}.choices button{padding:6px 10px;font-size:10px}.day{display:none}.brand strong{font-size:18px}.legacy{display:none}}
@media(max-width:760px){.shell{padding:14px 10px}.masthead{margin-bottom:19px;align-items:flex-start}.brand{gap:8px}.crest{width:32px;height:37px;font-size:21px}.brand small{font-size:6px;letter-spacing:.13em}.brand strong{font-size:16px}.masthead nav{gap:4px}.quiet{padding:7px 8px;font-size:9px}.game-layout{display:flex;flex-direction:column;gap:13px}.play-column{width:100%}.location{margin-bottom:10px}.location h1{font-size:15px}.location p{font-size:10px}.location-mark{font-size:23px}.stage{border-width:3px}.controls{font-size:9px;gap:7px;padding:10px 1px}.controls span:nth-child(2){display:none}.ambient-note{font-size:10px}.journal{padding-top:0;width:100%;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px}.quest-panel>header{padding:12px}.quest-panel h2{font-size:13px}#journal-body{padding:13px}#quest-steps li{font-size:10px;padding-bottom:10px}.map-panel{padding:10px}.daily-note{display:none}.restart-tour{grid-column:1/-1;margin:0 auto}.quest-kicker{display:none}.quest-panel h3{font-size:11px;margin-bottom:12px}.quest-tip{font-size:9px}.dialog{grid-template-columns:48px 1fr;gap:8px;min-height:118px;padding:10px 12px 10px 9px;max-height:85%;overflow:auto}.portrait-frame canvas{width:46px;height:46px}.portrait-frame span{font-size:8px}.dialog-body>strong{font-size:11px}.dialog-body>p{font-size:12px;line-height:1.6;min-height:0;margin:6px 0 8px}.choices button{font-size:10px;min-height:32px}.dialog-close{font-size:19px;right:3px;top:1px}.interact-wrap{bottom:8px}.interact-wrap button{font-size:10px;padding:6px 10px}.character-panel{padding:23px 18px}.character-panel h2{font-size:19px}.character-options{gap:10px;margin:18px 0}.character-options canvas{height:140px}.character-options span{font-size:9px;line-height:1.5}.room-toast{font-size:10px;padding:7px 12px;top:10px}.loading strong{font-size:14px}.loading p{font-size:10px}}
#quest-hud{display:none}@media(max-width:760px){#quest-hud{display:block;position:absolute;right:8px;top:8px;z-index:4;border:1px solid #d4c68a;background:#f1ead9ed;border-radius:4px;color:#476146;padding:6px 9px;font-size:10px;font-weight:700}.dialog:not([hidden])~#quest-hud{display:none}}
#loading-debug{max-width:90%;font-size:11px;background:#1d3027;padding:9px 13px;border:1px solid #9da880;border-radius:4px}#loading-debug summary{cursor:pointer}#loading-error{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:10px;line-height:1.6;margin:9px 0 0}
.secondary{display:block;width:100%;padding:12px;margin-top:10px;background:#e4ddc8;border:1px solid #b2af8c;border-radius:5px;color:#4b624a;font:inherit;font-size:12px}.confirm-actions{margin-top:18px;display:grid;gap:9px}.confirm-actions .secondary{margin:0}.confirm-actions .primary{margin:0}.consultation-rooms{display:flex;gap:4px;margin-bottom:11px}.consultation-rooms span{flex:1;padding:6px 2px;font-size:9px;text-align:center;border:1px solid #849479;background:#41543d;border-radius:3px}.consultation-rooms .unavailable{opacity:.5}.room-map span:nth-child(3){grid-column:2;grid-row:1}.room-map span:nth-child(4){grid-column:2;grid-row:2;transform:translateY(-91px)}.room-map{margin-top:45px}.room-map span:nth-child(4)::after{top:100%;height:47px}.room-map span:nth-child(1)::after{height:12px}.room-map span:nth-child(2)::after{display:none}.room-map span:nth-child(1)::before{content:"";position:absolute;width:16px;height:1px;background:#748769;left:100%;top:50%}.episode-banner{position:absolute;top:12px;left:12px;padding:8px 12px;background:#2c493ceb;color:#f8edc9;border:1px solid #d1ba78;font-size:12px;border-radius:4px;z-index:7}.recording-status{position:absolute;right:12px;top:12px;z-index:7;display:flex;gap:9px;align-items:center;padding:9px 12px;border-radius:18px;background:#faf8f0;color:#3d493d;box-shadow:0 3px 12px #16372655;font-size:11px}.recording-status>span:last-child{font-size:9px;color:#78856f}.record-dot{width:7px;height:7px;background:#c66657;border-radius:50%;animation:pulse .8s ease-in-out infinite alternate}.record-wave{color:#486d52;letter-spacing:-1px}.sneeze{animation:sneeze .28s steps(2) 1}@keyframes sneeze{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@media(max-width:760px){.episode-banner{top:7px;left:7px;font-size:10px;padding:6px 8px}.recording-status{top:7px;right:7px;font-size:9px;padding:6px 9px;gap:5px}.recording-status>span:last-child{display:none}.consultation-rooms span{font-size:8px}.room-map{margin-top:42px}}
.room-map{grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,auto);gap:12px 16px;margin-top:8px}.room-map span:nth-child(1){grid-column:1;grid-row:2}.room-map span:nth-child(2){grid-column:1;grid-row:3}.room-map span:nth-child(3){grid-column:2;grid-row:2}.room-map span:nth-child(4){grid-column:2;grid-row:1;transform:none}.room-map span:nth-child(4)::after{height:12px}.dialog{max-height:83%;overflow:auto}#restart-confirm{z-index:35}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Pixel artwork, ordinary sharp web typography. Never scale text with the map. */
:root{font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}
.map-labels{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.map-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-weight:600;line-height:1.3;letter-spacing:0;border-radius:3px;padding:2px 5px;text-shadow:none;image-rendering:auto}
.map-label--name{padding:2px 5px;border-radius:4px;font-weight:500}
.map-label--sleep{padding:0}
.map-label--wayfinding,.map-label--wayfinding-muted{padding:4px 14px;border:1px solid #c3a16c;border-radius:2px;box-shadow:0 2px 0 #2e251c88,inset 0 0 0 1px #392a20;font-weight:600;line-height:1.25}
.map-label--wayfinding-muted{opacity:.7}
.map-label--wayfinding::before,.map-label--wayfinding::after,.map-label--wayfinding-muted::before,.map-label--wayfinding-muted::after{content:'';position:absolute;top:50%;width:3px;height:3px;background:#c7a970;border-radius:50%;transform:translateY(-50%)}
.map-label--wayfinding::before,.map-label--wayfinding-muted::before{left:5px}.map-label--wayfinding::after,.map-label--wayfinding-muted::after{right:5px}
.dialog{background:#fbf5e8;grid-template-columns:80px 1fr;min-height:155px}
.dialog-body>strong{font-size:16px;color:#5d492c;letter-spacing:0}
.dialog-body>p{font-size:16px;line-height:1.75;color:#263c30;letter-spacing:0;word-break:keep-all;overflow-wrap:anywhere}
.portrait-frame span{font-size:12px;line-height:1.45;color:#53634d;word-break:keep-all;overflow-wrap:normal}
.choices button,.interact-wrap button{font-size:14px;line-height:1.5;min-height:40px}
.quiet,.legacy{font-size:12px}.help-panel p{font-size:15px;color:#485d46}.character-panel>p{font-size:14px}.character-options span{font-size:12px;line-height:1.6;color:#52624c}
.location p,#quest-steps li{font-size:12px}.quest-tip,.map-panel p,.controls,.ambient-note{font-size:12px}
@media(max-width:760px){
 .dialog{grid-template-columns:48px 1fr;padding:12px 14px 12px 10px;gap:10px;min-height:138px;max-height:85%}
 .dialog-body>strong{font-size:14px}.dialog-body>p{font-size:14px;line-height:1.65;margin:7px 0 10px}
 .portrait-frame span{font-size:10px}.choices button{font-size:13px;min-height:38px;padding:6px 12px}
 .quiet{font-size:11px}.interact-wrap button{font-size:12px;min-height:36px}.character-options span{font-size:11px}
 .controls,.ambient-note{font-size:11px}#quest-steps li{font-size:11px;line-height:1.6}.quest-tip,.map-panel p{font-size:11px}
 #quest-hud{top:auto;bottom:8px;right:8px}
}
@media(max-width:420px){.map-label--wayfinding,.map-label--wayfinding-muted{font-size:11px!important;padding:4px 10px}}
/* r10: source art is high-resolution; nearest-neighbour shrinking destroys eyes. */
#world,.portrait-frame canvas,.character-options canvas{image-rendering:auto}
.map-label--wayfinding,.map-label--wayfinding-muted{font-size:10px!important;padding:2px 5px;border:1px solid #a58e66;border-radius:2px;box-shadow:none;font-weight:500;line-height:1.2}
.map-label--wayfinding::before,.map-label--wayfinding::after,.map-label--wayfinding-muted::before,.map-label--wayfinding-muted::after{display:none}
.map-label--wayfinding,.map-label--wayfinding-muted{padding:3px 7px;border:1px solid #96754e;box-shadow:0 -4px 0 -3px #96754e}
.map-label--quest{width:25px;height:29px;display:grid;place-items:center;padding:0;border:2px solid #826446;border-radius:8px;font-weight:800;font-size:21px!important;line-height:1;box-shadow:0 2px 4px #302a2420}
.map-label--quest::after{content:'';position:absolute;bottom:-5px;left:8px;width:7px;height:7px;background:#fff4da;border-right:2px solid #826446;border-bottom:2px solid #826446;transform:rotate(45deg)}
/* r13: explicit scene layers, readable mobile dialogue and a non-obstructing ad slot. */
.brand-logo{width:52px;height:52px;object-fit:cover;border-radius:13px;flex-shrink:0;box-shadow:0 3px 12px #0a1a2333}
.character-panel{width:min(720px,100%)}.character-options{grid-template-columns:repeat(3,minmax(0,1fr))}.character-options strong{line-height:1.5;word-break:keep-all;overflow-wrap:normal}.character-options button[data-character="2"]{background:radial-gradient(ellipse at 50% 38%,#f0f6e9,#c8e1d8)}
.dialog-top{display:flex;align-items:center;gap:12px;padding-right:20px}.dialog-top strong{font-size:16px;color:#5d492c}.dialog-top>span{margin-left:auto;color:#7c816d;font-size:11px;font-variant-numeric:tabular-nums}
.dialog .dialog-action{font-size:12px;color:#697d68;border-left:2px solid #b6c7ac;padding-left:9px;margin:8px 0;min-height:0;line-height:1.6}
.choices button{min-height:44px}.choices button:not(:last-child){background:transparent;border-color:#b8bea8;color:#4c6650}
.feature-panel{position:absolute;z-index:6;left:50%;top:52px;transform:translateX(-50%);width:min(76%,660px);max-height:calc(100% - 245px);overflow:auto;overscroll-behavior:contain;padding:18px 22px;background:#fbfcf8f7;border:1px solid #aabca6;border-radius:12px;box-shadow:0 8px 30px #122d3355;color:#263e36}
.feature-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px}.feature-panel h2{font-size:18px;margin:0}.feature-panel header small{font-size:12px;color:#607466}.feature-status{font-size:12px;color:#1677a5;margin:10px 0}.feature-rows{display:grid;gap:7px}.feature-rows>div{padding:9px 12px;background:#eef3ee;border:1px solid #dce5da;border-radius:6px}.feature-rows b{font-size:12px}.feature-rows p{font-size:13px;line-height:1.6;margin:3px 0 0}.feature-rows.thread>div:nth-child(2){margin-left:22px;background:#e4f0f7}.feature-rows.waiting>div:first-child{background:#d9eef7;border-color:#81b6d0}.feature-note{font-size:11px;color:#64766d;line-height:1.6;margin:10px 0}.feature-panel>a{font-size:12px;color:#1978a2;text-underline-offset:3px}.product-preview{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:6px;margin:8px 0;background:#edf2f5;border:1px solid #ccd8df;border-radius:7px;color:#365c73;font-size:12px}.product-preview img{width:100px;height:54px;object-fit:contain;background:white;border-radius:3px}.stage.feature-open #world{filter:brightness(.7)}
.product-image-view{width:min(1200px,100%);max-height:92dvh;overflow:auto;background:#f9fcff;padding:14px;border-radius:12px;text-align:right;color:#344e62}.product-image-view img{display:block;max-width:100%;height:auto;margin:12px auto}.product-image-view p{text-align:center;font-size:13px}.product-image-view .quiet{background:#224a62;color:white}.touch-controls{display:none}
.feature-panel.has-image{display:grid;grid-template-columns:1.1fr 1fr;column-gap:15px}.feature-panel.has-image>header,.feature-panel.has-image>.feature-status{grid-column:1/-1}.feature-panel.has-image>.feature-rows,.feature-panel.has-image>.feature-note{grid-column:1}.feature-panel.has-image>.product-preview{grid-column:2;grid-row:3/5;display:flex;flex-direction:column;align-self:start;margin:0;text-align:center;line-height:1.6}.feature-panel.has-image>.product-preview img{width:100%;height:150px;object-fit:contain}.feature-panel.has-image>a{grid-column:1/-1}
.promo-slot{display:flex;position:relative;isolation:isolate;overflow:hidden;align-items:center;justify-content:space-between;gap:25px;margin-top:32px;padding:32px 38px;background:linear-gradient(110deg,#101e30,#153855 70%,#175c85);border:1px solid #5794bb66;border-radius:15px;color:#f3f8fc;min-height:190px}.promo-copy small{font-size:10px;letter-spacing:.2em;color:#87c4e9}.promo-copy h2{font-size:25px;line-height:1.45;margin:10px 0}.promo-copy p{font-size:13px;color:#b7d2e2;line-height:1.6;margin:0}.promo-actions{display:grid;gap:12px;z-index:1}.promo-actions a{color:#d3eaff;text-decoration:none;font-size:13px;padding:5px;text-align:center}.promo-actions .promo-primary{color:#12334c;background:#e9f5ff;padding:14px 20px;border-radius:7px;font-weight:700}.promo-decoration{position:absolute;right:15%;top:-65px;font-size:320px;color:#5cbcff0c;z-index:-1;line-height:1}
@media(max-width:1000px) and (min-width:761px){.feature-panel{top:45px;max-height:calc(100% - 215px);padding:12px;width:86%}.dialog-body>p{font-size:14px}.dialog-top strong{font-size:14px}.dialog{min-height:160px}}
@media(max-width:760px){
 .brand-logo{width:42px;height:42px;border-radius:10px}.brand small{font-size:7px;letter-spacing:.08em}.masthead{gap:8px;align-items:center}.masthead nav{flex-wrap:wrap;justify-content:flex-end}.quiet{min-height:40px}.brand strong{font-size:17px}.brand{min-width:0}.location p{font-size:12px}
 .stage.scene-open{aspect-ratio:auto;display:flex;flex-direction:column;overflow:visible}.stage.scene-open #world{height:auto;aspect-ratio:640/340;flex:none}.stage.scene-open .dialog{position:relative;bottom:auto;left:auto;right:auto;margin:0;border:0;border-top:2px solid #b99e73;outline:0;border-radius:0;max-height:none;min-height:220px;overflow:visible;padding:16px 13px;grid-template-columns:46px minmax(0,1fr);gap:9px}.stage.scene-open .dialog-top strong{font-size:14px}.dialog-body{min-width:0}.dialog-body>p{font-size:15px;line-height:1.75}.dialog-top>span{font-size:10px}.dialog-close{width:38px;height:38px;right:0;top:0;z-index:1}.dialog .dialog-action{font-size:12px}.choices{gap:6px;margin-top:14px}.choices button{font-size:12px;padding:8px 10px;min-height:44px}
 .stage.scene-open .feature-panel{position:relative;top:auto;left:auto;transform:none;width:100%;max-height:none;overflow:visible;border:0;border-radius:0;padding:14px;box-shadow:none}.feature-panel h2{font-size:17px}.feature-rows p{font-size:13px}.feature-note{font-size:11px}.product-preview img{width:100px}.stage.scene-open .episode-banner{font-size:11px;top:8px;left:8px;max-width:65%}.stage.scene-open .recording-status{font-size:10px;top:43px;right:8px}.stage.scene-open #quest-hud{display:none}
 .stage.scene-open.feature-open{padding-top:42px;background:#25463a}.stage.scene-open.feature-open #world{display:none}.stage.scene-open.feature-open .recording-status{top:7px}.feature-panel.has-image>.product-preview img{height:110px}.feature-panel.has-image{column-gap:9px}.feature-panel.has-image .feature-rows>div{padding:7px}.character-options canvas{height:135px}.character-options span{font-size:10px}.character-options strong{font-size:13px}
 .touch-controls{display:grid;grid-template-columns:repeat(4,48px);gap:9px;justify-content:center;margin-top:14px}.touch-controls button{width:48px;height:46px;background:#38584b;border:1px solid #87a18b;border-bottom:3px solid #172e25;border-radius:9px;color:#f3ead1;font-size:22px;touch-action:none;user-select:none}.touch-controls button:active{background:#638c6c;transform:translateY(1px)}.play-column:has(.scene-open) .touch-controls{display:none}.controls span:first-child{flex-basis:75%;line-height:1.7}.controls kbd{font-size:10px}.journal{grid-template-columns:1fr}.map-panel{display:none}.quest-panel h3{font-size:13px}#quest-steps li{font-size:12px}.quest-panel>header{padding:12px 15px}
 .promo-slot{margin-top:22px;padding:24px;display:block;min-height:0}.promo-copy h2{font-size:23px}.promo-copy p{font-size:13px}.promo-actions{margin-top:22px;gap:8px}.promo-actions .promo-primary{padding:14px}.promo-decoration{right:0;top:-25px;font-size:240px}.product-image-view{padding:8px}.product-image-view p{font-size:12px}
}
@media(max-width:390px){.brand small{display:none}.brand strong{font-size:16px}.quiet{font-size:10px;padding:6px}.masthead nav{gap:3px}.shell{padding:10px 8px}.character-panel{padding:20px 12px}.character-options{gap:8px}.character-options strong{font-size:13px}.character-options canvas{height:125px}}
/* r14: the product chart is the primary screen, with dialogue below it. */
.shell{max-width:1680px;padding:22px 24px}.game-layout{grid-template-columns:minmax(0,1fr) 210px;gap:18px}
.shell.is-wide .game-layout{grid-template-columns:minmax(0,1fr)}.shell.is-wide .journal{display:none}
.shell.is-wide .play-column{max-width:1440px;width:100%;margin:auto}.shell.is-wide .stage:not(.chart-open){margin:auto}
.shell.is-wide{max-width:none;padding:12px}.shell.is-wide .location{display:none}.shell.is-wide .masthead{margin-bottom:10px}.shell.is-wide .brand-logo{width:34px;height:34px}.shell.is-wide .brand small{display:none}.shell.is-wide .stage:not(.chart-open){max-width:calc((100dvh - 100px)*1.6)}
.stage.chart-open,.stage.scene-open.chart-open{aspect-ratio:auto;display:flex;flex-direction:column;background:#253f38;padding-top:0;overflow:hidden}
.stage.chart-open #world,.stage.chart-open #map-labels,.stage.chart-open #quest-hud{display:none}
.stage.chart-open .episode-banner{position:relative;top:auto;left:auto;border:0;border-radius:0;padding:11px 16px;background:#253f38;max-width:100%;font-size:12px}
.stage.chart-open .recording-status{top:6px;right:10px;font-size:11px}
.stage.chart-open .feature-panel,.stage.scene-open.chart-open .feature-panel.has-image{position:relative;top:auto;left:auto;transform:none;display:block;width:100%;max-height:none;overflow:visible;border:0;border-radius:0;box-shadow:none;padding:18px;background:#f7f9fa}
.stage.chart-open .feature-panel>header{padding-bottom:12px;border-bottom:1px solid #dbe3e8;align-items:flex-start}.feature-panel header small{font-size:11px}
.chart-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:12px 0}.chart-toolbar .feature-status{flex:1;min-width:150px;margin:0;line-height:1.6}
.chart-toolbar button{min-width:38px;min-height:38px;border:1px solid #bdcdd5;border-radius:5px;background:white;color:#345f73;font-size:12px;padding:6px 10px}
.chart-toolbar button:hover{background:#e6f0f6}.chart-zoom-value{font-size:12px;min-width:40px;text-align:center;font-variant-numeric:tabular-nums}
.chart-content{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:16px;align-items:start}.chart-content:not(:has(.chart-figure)){grid-template-columns:minmax(0,1fr)}
.chart-figure{margin:0;min-width:0}.chart-viewport{width:100%;max-height:440px;overflow:auto;border:1px solid #c1cfd8;border-radius:6px;background:#e8edf1;overscroll-behavior:contain;touch-action:pan-x pan-y;scrollbar-gutter:stable}
.chart-viewport img{display:block;max-width:none;height:auto;image-rendering:auto}.chart-figure figcaption{font-size:11px;line-height:1.6;color:#6d808a;margin:6px 0}
.chart-context{min-width:0}.chart-context h3{font-size:12px;margin:0 0 10px;color:#546a77}.chart-context .feature-rows{gap:8px}.chart-context .feature-rows>div{padding:10px;background:white;border-color:#d8e2e8}.chart-context .feature-rows b{font-size:12px}.chart-context .feature-rows p{font-size:13px;line-height:1.65}.chart-context .feature-note{font-size:11px}
.stage.chart-open .dialog,.stage.scene-open.chart-open .dialog{position:relative;left:auto;right:auto;bottom:auto;margin:0;border:0;border-top:2px solid #b49b70;outline:0;border-radius:0;max-height:none;min-height:155px;overflow:visible;padding:18px;grid-template-columns:68px minmax(0,1fr);gap:14px;box-shadow:none}
.stage.chart-open .portrait-frame canvas{width:64px;height:64px}.stage.chart-open .dialog-body>p{font-size:15px;line-height:1.7}.play-column:has(.chart-open) .touch-controls{display:none}
@media(max-width:1000px) and (min-width:761px){.chart-content{grid-template-columns:minmax(0,1fr) 190px;gap:10px}.stage.chart-open .feature-panel{padding:14px}.chart-context .feature-rows p{font-size:12px}}
@media(max-width:760px){
 .shell{padding:12px 10px}.game-layout{display:flex}.masthead{align-items:center}.masthead nav{max-width:47%;gap:4px}.masthead nav .quiet{min-height:40px}.brand strong{font-size:15px}.brand small{display:none}.brand-logo{width:38px;height:38px}.shell.is-wide .stage:not(.chart-open){max-width:none}.shell.is-wide .play-column{width:100%}
 .stage.chart-open .feature-panel,.stage.scene-open.chart-open .feature-panel.has-image{padding:13px}.feature-panel>header{flex-direction:column;gap:5px}.feature-panel h2{font-size:18px}.chart-toolbar{gap:5px}.chart-toolbar .feature-status{flex-basis:100%;margin-bottom:5px;font-size:12px}.chart-toolbar button{min-height:44px;padding:7px 10px}.chart-content{grid-template-columns:minmax(0,1fr);gap:13px}.chart-viewport{max-height:300px}.chart-context .feature-rows{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-context .feature-rows>div{padding:8px}.chart-context .feature-rows p{font-size:13px}.chart-context .feature-rows.thread>div:nth-child(2){margin-left:0}.chart-context h3{margin-bottom:8px}.chart-context .feature-note{margin:8px 0;font-size:11px}
 .stage.chart-open .dialog,.stage.scene-open.chart-open .dialog{padding:16px 12px;grid-template-columns:42px minmax(0,1fr);gap:9px;min-height:190px}.stage.chart-open .portrait-frame canvas{width:40px;height:40px}.stage.chart-open .episode-banner{font-size:11px;padding:12px}.stage.chart-open .recording-status{top:6px;right:6px;font-size:10px}.stage.chart-open .dialog-top strong{font-size:14px}.stage.chart-open .choices{justify-content:flex-start}
}
@media(max-width:360px){.chart-context .feature-rows{grid-template-columns:1fr}.brand strong{font-size:14px}.brand-logo{width:32px;height:32px}.masthead nav{max-width:48%}.quiet{font-size:10px}.chart-toolbar button{padding:6px 8px}.chart-zoom-value{min-width:33px}.chart-viewport{max-height:260px}}
@media(min-width:761px){
 body:has(.chart-open){overflow:hidden}
 .stage.chart-open,.stage.scene-open.chart-open{position:fixed;inset:14px;z-index:25;height:auto;min-height:0;box-shadow:0 0 0 100vmax #12241eae}
 .stage.chart-open .episode-banner{flex-shrink:0}
 .stage.chart-open .feature-panel,.stage.scene-open.chart-open .feature-panel.has-image{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;padding:13px 16px}
 .stage.chart-open .feature-panel>header{padding-bottom:9px;flex-shrink:0}.stage.chart-open .chart-toolbar{margin:9px 0;flex-shrink:0}
 .stage.chart-open .chart-content{flex:1;min-height:100px;overflow:hidden}.stage.chart-open .chart-figure{display:flex;flex-direction:column;min-height:0;height:100%}.stage.chart-open .chart-viewport{min-height:0;flex:1;max-height:none}.stage.chart-open .chart-context{max-height:100%;overflow:auto;padding-right:4px}.stage.chart-open .feature-panel>a{margin-top:6px;flex-shrink:0}
 .stage.chart-open .dialog,.stage.scene-open.chart-open .dialog{flex-shrink:0;min-height:145px;padding:12px 16px;gap:12px}.stage.chart-open .dialog-body>p{margin:7px 0 9px}.stage.chart-open .choices{margin-top:5px}
}
