:root{--ink:#213e49;--muted:#6c8085;--sky:#a9dcdf;--paper:#fffef5;--blue:#2584ac;--green:#318b78;--orange:#f19c55;--coral:#df6851;--line:#dee7df;--shadow:0 5px 0 #244a5a12,0 8px 24px #386b7820}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{font:14px "Hiragino Maru Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:#d7eded}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;transition:transform .12s,background .12s;user-select:none}button:active:not(:disabled){transform:translateY(2px)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,canvas:focus-visible{outline:3px solid var(--orange);outline-offset:2px}button:hover:not(:disabled){filter:brightness(1.035)}.shell{height:100dvh;display:grid;grid-template-rows:62px 70px minmax(0,1fr) 116px 26px;max-width:1800px;margin:auto;overflow:hidden;background:#f6f8ef}.topbar{display:flex;align-items:center;padding:0 26px;gap:20px;background:var(--paper);z-index:3;border-bottom:1px solid #e1e8df}.brand{display:flex;gap:10px;align-items:center;font-weight:900;font-size:17px;letter-spacing:.03em}.brand-symbol{color:#e1a84e;font-size:29px}.brand small{display:block;font-size:10px;letter-spacing:.14em;color:var(--muted);font-weight:500;margin-top:2px}.timebox{margin-left:auto;display:flex;align-items:center;gap:9px}.timebox strong{font-size:29px;font-family:ui-rounded,"Arial Rounded MT Bold",monospace;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.timebox>span{font-size:11px;border-radius:5px;background:#f7e9bc;padding:5px 8px}#wallet{display:flex;flex-direction:column;background:transparent;text-align:right;border-left:1px solid var(--line);padding:0 0 0 22px}#wallet span{font-size:10px;color:var(--muted)}#wallet b{font-size:21px}.round-button{background:#eaf0e7;border-radius:12px;width:38px;height:38px;font-size:20px}.missionbar{display:flex;align-items:center;padding:10px 28px;gap:24px;background:#fffdf1;z-index:2}.mission-copy{display:grid;grid-template-columns:auto 1fr;gap:3px 9px;align-items:center}.mission-tag{font-size:10px;letter-spacing:.06em;background:var(--green);color:white;border-radius:4px;padding:4px 7px}.mission-copy>strong{font-size:14px;letter-spacing:.02em}.mission-copy>span:last-child{grid-column:2;font-size:12px;color:#668b85}.dayline{display:flex;align-items:center;gap:7px;margin-left:auto;width:min(19vw,270px);font-size:10px;color:var(--muted)}.dayline>div{height:6px;background:#dce6da;flex:1;border-radius:9px;overflow:hidden}.dayline i{display:block;height:100%;background:#e4a449;width:0;border-radius:9px}.memory-book{display:grid;grid-template-columns:auto auto;gap:0 8px;padding:7px 13px;background:#f7edd0;border:1px solid #eddbab;border-radius:10px;transform:rotate(2deg)}.memory-book>span{grid-row:1/3;font-size:24px;color:#c99439;align-self:center}.memory-book b{font-size:15px}.memory-book small{font-size:9px}.world{min-height:0;position:relative;overflow:hidden;background:linear-gradient(#acdde0,#d7eddc)}canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.where{position:absolute;top:16px;left:22px;display:flex;gap:8px;pointer-events:none}.where>span{display:flex;align-items:center;gap:7px;padding:9px 13px;background:#fffdf4ee;border:1px solid #ffffffa8;border-radius:10px;box-shadow:var(--shadow);font-size:11px}.where b{font-size:13px}.where .official{background:#e9f5e7e8;color:#4a7b61}.where i{font-style:normal;color:#33885f}#location-dot{height:6px;width:6px;background:#4ca18c;border-radius:50%}.where.outside #location-dot{background:var(--coral);box-shadow:0 0 0 4px #df685125}.where.outside>span:first-child{color:#a2543f}.view-tools{position:absolute;right:18px;top:15px;display:flex;gap:7px}.view-tools button{height:35px;width:35px;border-radius:10px;background:#fffff2e0;box-shadow:0 3px 0 #477e7918;font-size:21px}.view-tools button.active{background:#f3c780}.danger-alert{position:absolute;top:65px;left:22px;display:flex;align-items:center;gap:10px;background:#fff5e9;color:#963e2d;border:2px solid #ec9a7e;border-radius:13px;padding:9px 13px;z-index:4;box-shadow:0 5px 20px #a5471f20;animation:warning-pulse 2s infinite;max-width:calc(100% - 44px)}#danger-icon{font-size:23px;font-weight:900}.danger-alert b{display:block;font-size:13px}.danger-alert small{display:block;font-size:10px;margin-top:2px}.danger-alert button{background:#d86f4d;color:white;padding:8px 10px;border-radius:8px;font-size:11px;white-space:nowrap;margin-left:8px}.world.critical{box-shadow:inset 0 0 40px #e76f4355}.toast{position:absolute;left:50%;top:65px;transform:translateX(-50%);background:#284855ef;color:white;padding:11px 18px;border-radius:11px;font-size:13px;z-index:5;max-width:85%;text-align:center;box-shadow:var(--shadow);pointer-events:none}.world-bottom{position:absolute;bottom:16px;left:22px;right:20px;display:flex;align-items:flex-end;gap:10px;pointer-events:none}.chatter{display:flex;align-items:center;gap:10px;background:#fffef4eb;border-radius:4px 13px 13px 13px;padding:10px 15px;box-shadow:var(--shadow);max-width:min(60%,630px);position:relative}.chatter:before{content:"";position:absolute;left:0;top:-7px;border-bottom:9px solid #fffef4eb;border-right:12px solid transparent}.chatter span{font-size:10px;background:#e5ead7;color:#4a7967;padding:4px 7px;border-radius:5px;white-space:nowrap}.chatter p{margin:0;font-size:12px;line-height:1.5}.sneak{margin-left:auto;background:#fffdf0e8;border-radius:12px;padding:8px 13px;font-size:9px;pointer-events:auto;box-shadow:var(--shadow)}.sneak b{font-size:12px}.sneak[aria-pressed=true]{background:#355969;color:white}.control-deck{padding:10px 26px 12px;display:grid;grid-template-columns:1fr minmax(440px,1fr);align-items:center;gap:24px;background:var(--paper);box-shadow:0 -4px 24px #386b7809;z-index:2}.needs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.need{border:1px solid #e4e8de;background:#f8f8ed;padding:10px 13px;border-radius:12px;display:grid;grid-template-columns:25px 1fr;gap:5px 7px}.need-icon{grid-row:1/3;align-self:center;font-size:22px;color:var(--accent)}.need-top{display:flex;justify-content:space-between;font-size:11px;gap:3px}.need-top b{font-size:13px;font-variant-numeric:tabular-nums}.need .meter{height:5px;border-radius:6px;background:#e2e9dd;overflow:hidden}.need .meter i{height:100%;display:block;background:var(--accent);width:var(--value);border-radius:6px;transition:width .3s}.need.warn{border-color:#eab795;background:#fff0dd}.need.danger{border-color:#df8269;background:#fff0e9;animation:warning-pulse 1.8s infinite}.controls{display:flex;gap:9px;align-items:stretch}.primary{border-radius:13px;background:#267f84;color:white;box-shadow:0 4px 0 #175961;padding:12px 17px;font-weight:700;min-height:51px}.secondary{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#edf1e6;border-radius:12px;min-width:66px;gap:4px;padding:8px 9px;font-size:11px}.secondary>span{font-size:21px;color:#668675}.secondary>b{font-weight:600;white-space:nowrap}#interact{flex:1;min-width:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:14px}#interact small{font-size:10px;font-weight:400;opacity:.8}.explain-button{position:relative}#explain-badge{position:absolute;top:5px;right:7px;background:#df7450;color:#fff;font-style:normal;font-size:9px;border-radius:8px;padding:1px 4px}.debug-strip{display:flex;align-items:center;padding:0 18px;gap:9px;background:#263e46;color:#b8d9d2;font:10px ui-monospace,monospace;white-space:nowrap;overflow:hidden}.debug-strip button{font:inherit;background:#45616a;border-radius:3px;padding:3px 6px;color:#e2f0da}.debug-strip .keys-hint{margin-left:auto;color:#8eb0b0}#debug-values{font-variant-numeric:tabular-nums}.debug-strip.collapsed #debug-values{display:none}.joystick{display:none}.intro{position:absolute;inset:0;z-index:7;display:flex;align-items:center;padding:28px 6%;background:linear-gradient(90deg,#dcf0e3e8,#dcf0e355 57%,transparent 75%)}.intro-card{max-width:490px}.summer-label{font-size:10px;letter-spacing:.24em;color:#5b887d;display:inline-block;border-bottom:1px solid #779c8566;padding-bottom:8px}h1{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(38px,4.4vw,68px);line-height:1.4;letter-spacing:.06em;margin:17px 0;color:#234c4b;text-shadow:1px 3px 0 #f1f5df99}.tagline{font-size:14px;line-height:1.85;color:#3d6c62;margin:0 0 18px}.pitch{font-size:13px;line-height:1.8;margin:0 0 19px;color:#59766c}.start-button{display:flex;width:100%;justify-content:space-between;background:#e78e4e;box-shadow:0 4px 0 #b86b36;padding:15px 19px;min-width:270px;color:#fffdf0}.intro-card>small{display:block;margin-top:14px;color:#57776c;font-size:10px}.intro-note{position:absolute;bottom:25px;right:28px;font-family:"Yu Mincho",serif;font-size:16px;writing-mode:vertical-rl;letter-spacing:.15em;color:#456e68}.hidden{display:none!important}.paused-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:#cce3d885;font-family:"Yu Mincho",serif;font-size:30px;pointer-events:none}.paused-label small{font:12px sans-serif}.map-label{position:absolute;transform:translate(-50%,-50%);background:#fffff2ef;border:1px solid #fff;border-radius:8px;padding:5px 9px;box-shadow:0 3px 0 #3d6f6217;font-size:11px;white-space:nowrap;pointer-events:auto;line-height:1.2}.map-label.target{background:#fff4c5;border-color:#f5c46d;box-shadow:0 0 0 4px #fbdc6940}.map-label.done:after{content:' ✓';color:#468664}.map-label.outside{background:#fff0de;color:#975838}.map-label.player-label{background:#244954;color:white;pointer-events:none;font-size:9px;padding:3px 7px;box-shadow:none}.map-label small{font-size:8px;color:#779083}#floating-labels{position:absolute;inset:0;pointer-events:none}dialog{margin:auto;width:min(540px,94vw);max-width:94vw;height:min(570px,94dvh);max-height:94dvh;overflow:hidden;background:#fffef5;border:2px solid #fff;border-radius:22px;padding:20px 24px;box-shadow:0 20px 100px #24485540;color:var(--ink);display:none;grid-template-rows:26px auto minmax(65px,1fr) auto 32px;gap:12px}dialog[open]{display:grid}dialog::backdrop{background:#2147516b;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head>span{font-size:11px;letter-spacing:.09em;color:#649080}.dialog-head button{background:#eef0e6;border-radius:50%;font-size:22px;width:28px;height:28px;line-height:1}h2{font-size:24px;line-height:1.5;margin:0;letter-spacing:.02em}#dialog-copy{font-size:14px;line-height:1.8;display:flex;flex-direction:column;justify-content:center;min-height:0}#dialog-copy p{margin:0 0 6px}.speech-card{background:#edf2e2;border-radius:3px 14px 14px 14px;padding:13px 16px;position:relative;margin-top:7px}.speech-card:before{content:"";position:absolute;top:-8px;left:0;border-bottom:10px solid #edf2e2;border-right:15px solid transparent}.speaker-tag{font-size:10px;color:#5d8872;display:block;margin-bottom:5px}.effect-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.effect-chips span{padding:4px 7px;font-size:11px;border-radius:5px;background:#f6eddb;color:#997040}#dialog-actions{display:grid;gap:8px;min-height:0}#dialog-actions button{text-align:left;min-height:55px;display:flex;flex-direction:column;justify-content:center;padding:9px 13px;border-radius:11px;background:#f0f3e9;border:1px solid #e0e7d7;gap:3px;font-size:14px;line-height:1.4}#dialog-actions button.primary{background:#2c8587;color:white;border:0;box-shadow:0 3px 0 #206468}#dialog-actions button>small{font-size:11px;color:#6f857c;line-height:1.4}#dialog-actions button.primary>small{color:#d5ebe1}#dialog-pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:var(--muted)}#dialog-pagination button{border-radius:8px;background:#e7ecdf;height:28px;width:40px;font-size:17px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.result-grid>div{background:#f0f2e6;border-radius:9px;padding:10px}.result-grid small{display:block;font-size:10px;color:var(--muted);line-height:1.4}.result-grid b{display:block;font-size:18px;margin-top:4px}.result-grid .wide{grid-column:1/-1}.end-stamp{color:#c37f3e;font-size:12px;letter-spacing:.15em}.record-line{font-size:12px;line-height:1.8;border-bottom:1px solid #e3e9dc;padding:5px 0}.record-line b{display:block}.help-step{font-size:24px;color:#df9b47}.empty-state{color:#83958b;font-size:14px}.memory-pips{display:flex;gap:7px;margin:9px 0}.memory-pips span{height:28px;width:28px;border:1px dashed #c9d7bc;border-radius:50%;display:grid;place-items:center;color:#c8d3bc}.memory-pips span.earned{background:#f8d987;border-color:#e4b354;color:#947039}@keyframes warning-pulse{0%,100%{box-shadow:0 0 0 0 #e18a5c30}50%{box-shadow:0 0 0 4px #e18a5c0a}}@media(max-width:1000px){.brand{font-size:14px}.topbar{padding:0 18px;gap:13px}.control-deck{gap:15px;padding:10px 18px;grid-template-columns:1fr 1.3fr}.secondary{min-width:56px}.needs{gap:6px}.need{padding:9px 8px;grid-template-columns:18px 1fr}.need-icon{font-size:19px}.controls{gap:6px}#interact{min-width:125px;font-size:13px}.dayline{width:120px}.keys-hint{display:none}.missionbar{padding:10px 18px;gap:12px}.mission-copy{grid-template-columns:1fr}.mission-copy>span:last-child{grid-column:1}.mission-tag{display:none}.where{left:14px;top:12px}.where>span{padding:7px 10px;font-size:10px}.where b{font-size:12px}.view-tools{right:12px;top:12px}.chatter{max-width:70%}.intro{padding-left:5%}.tagline{font-size:12px}.pitch{font-size:12px}}
@media(max-width:680px){.shell{grid-template-rows:53px 65px minmax(0,1fr) 128px 30px}.topbar{padding:0 12px;gap:10px}.brand{font-size:12px;letter-spacing:0;gap:4px}.brand-symbol{font-size:23px}.brand small{display:none}.timebox{gap:4px}.timebox strong{font-size:24px}.timebox>span{display:none}#wallet{padding-left:10px}#wallet span{font-size:8px}#wallet b{font-size:17px}.round-button{height:31px;width:31px;font-size:17px;border-radius:9px}.missionbar{padding:7px 13px;gap:9px}.mission-copy>strong{font-size:12px;letter-spacing:0}.mission-copy>span:last-child{font-size:10px;line-height:1.4}.dayline{display:none}.memory-book{margin-left:auto;gap:0 5px;padding:5px 8px;border-radius:8px}.memory-book>span{font-size:18px}.memory-book b{font-size:12px}.memory-book small{font-size:8px}.where{top:10px;left:10px;flex-direction:column;gap:4px}.where>span{padding:5px 8px;border-radius:7px;font-size:9px;gap:5px;max-width:210px}.where b{font-size:11px}.where .official{align-self:flex-start}.view-tools{top:10px;right:10px;gap:5px}.view-tools button{width:30px;height:30px;border-radius:8px;font-size:18px}.control-deck{grid-template-columns:1fr;grid-template-rows:42px 56px;gap:9px;padding:9px 12px 12px}.needs{gap:7px}.need{padding:6px 8px;border-radius:9px;grid-template-columns:20px 1fr;gap:2px 6px}.need-top{font-size:10px;align-items:center}.need-top b{font-size:12px}.need-icon{font-size:19px}.need .meter{height:4px}.controls{gap:7px}.secondary{min-width:53px;padding:5px 8px;border-radius:10px;font-size:9px;gap:3px}.secondary>span{font-size:18px}#interact{font-size:12px;min-height:50px;padding:7px 10px;min-width:120px;border-radius:11px}#interact small{font-size:9px}.debug-strip{padding:0 9px;gap:6px;font-size:9px;white-space:normal;line-height:1.4}.debug-strip button{white-space:nowrap;font-size:9px}.world-bottom{left:12px;right:12px;bottom:11px;align-items:flex-end}.chatter{max-width:calc(100% - 69px);padding:7px 10px;gap:6px;border-radius:3px 10px 10px 10px;min-height:34px}.chatter span{font-size:8px;padding:3px 5px}.chatter p{font-size:10px;line-height:1.4}.sneak{padding:6px 9px;font-size:8px;border-radius:10px}.sneak b{font-size:10px}.joystick{display:grid;position:absolute;bottom:64px;left:12px;grid-template-columns:29px 29px 29px;grid-template-rows:29px 29px;gap:3px;opacity:.85}.joystick button{background:#fffff3ce;border:1px solid #fff9;border-radius:9px;box-shadow:0 2px 0 #4a7c7822;font-size:18px;touch-action:none;padding:0}.joystick button[data-dir=up]{grid-column:2}.joystick button[data-dir=left]{grid-column:1;grid-row:2}.joystick button[data-dir=down]{grid-column:2;grid-row:2}.joystick button[data-dir=right]{grid-column:3;grid-row:2}.danger-alert{top:72px;left:10px;max-width:calc(100% - 20px);padding:7px 9px;gap:6px;border-radius:10px}.danger-alert b{font-size:11px}.danger-alert small{font-size:9px}.danger-alert button{font-size:10px;padding:7px;margin-left:3px}#danger-icon{font-size:18px}.toast{top:auto;bottom:55px;font-size:11px;padding:8px 11px;max-width:90%;width:max-content}.map-label{font-size:10px;padding:5px 7px}.intro{padding:20px 8%;align-items:center;background:linear-gradient(90deg,#dff2e4ef,#dff2e482 64%,#dff2e425)}h1{font-size:clamp(32px,9vw,43px);margin:10px 0;line-height:1.32}.intro-card{max-width:280px}.summer-label{font-size:8px;padding-bottom:6px;letter-spacing:.17em}.tagline{font-size:11px;line-height:1.65;margin-bottom:10px}.pitch{font-size:11px;line-height:1.6;margin-bottom:12px}.start-button{min-width:230px;min-height:43px;font-size:12px;padding:11px 15px}.intro-card>small{font-size:9px;margin-top:11px}.intro-note{font-size:11px;bottom:18px;right:14px}.paused-label{font-size:25px}dialog{width:94vw;height:min(520px,93dvh);padding:16px 18px;border-radius:18px;gap:9px;grid-template-rows:24px auto minmax(50px,1fr) auto 29px}h2{font-size:21px}#dialog-copy{font-size:13px;line-height:1.7}#dialog-actions button{font-size:13px;min-height:58px;padding:9px 11px}#dialog-actions button>small{font-size:10px}.speech-card{padding:10px 13px}.result-grid{gap:6px}.result-grid>div{padding:9px}.result-grid b{font-size:16px}}
@media(max-height:700px) and (max-width:680px){.shell{grid-template-rows:45px 48px minmax(0,1fr) 110px 27px}.control-deck{grid-template-rows:35px 48px;padding:7px 10px;gap:7px}.need{padding:4px 7px}.mission-copy>strong{font-size:11px}.mission-copy>span:last-child{font-size:9px}.world-bottom{bottom:9px}.joystick{bottom:53px;grid-template-columns:26px 26px 26px;grid-template-rows:26px 26px}.intro{padding:9px 7%}h1{font-size:28px;margin:7px 0}.pitch{display:none}.intro-card>small{margin-top:8px;font-size:8px}.tagline{margin-bottom:9px;font-size:10px}.summer-label{font-size:7px}.start-button{min-width:210px;padding:9px 12px;min-height:36px}.intro-note{display:none}.chatter p{font-size:9px}.where .official{display:flex}.danger-alert{top:65px}.toast{bottom:48px}}
@media(max-height:480px){.shell{grid-template-rows:40px 0 minmax(0,1fr) 64px 20px}.missionbar{display:none}.topbar{padding:0 14px}.brand small{display:none}.timebox strong{font-size:24px}.control-deck{grid-template-columns:1fr 1.2fr;grid-template-rows:1fr;padding:6px 12px;gap:12px}.needs{gap:5px}.need{padding:7px}.need-top{font-size:9px}.secondary{min-width:43px;font-size:8px;padding:4px}.secondary>span{font-size:16px}#interact{min-width:120px;min-height:40px;padding:5px;font-size:11px}#interact small{font-size:9px}.brand{font-size:13px}.world-bottom{bottom:8px}.chatter{padding:6px 10px}.intro{padding:8px 6%;align-items:center}.intro-card{max-width:300px}h1{font-size:29px;margin:5px 0;line-height:1.2}.summer-label,.pitch,.intro-card>small,.intro-note{display:none}.tagline{font-size:10px;line-height:1.4;margin:6px 0 10px}.start-button{min-height:34px;padding:7px 12px;font-size:11px;min-width:220px}.joystick{bottom:50px}.where{top:8px;flex-direction:row}.view-tools{top:8px}.debug-strip{font-size:9px}dialog{height:95dvh;width:min(600px,96vw);padding:10px 17px;border-radius:14px;grid-template-rows:20px auto minmax(28px,1fr) auto 25px;gap:5px}h2{font-size:18px}#dialog-copy{font-size:12px;line-height:1.5}.speech-card{padding:6px 10px}.speaker-tag{margin-bottom:2px}.effect-chips{margin-top:3px}.effect-chips span{padding:2px 5px;font-size:9px}#dialog-actions{gap:5px}#dialog-actions button{min-height:40px;padding:5px 10px;font-size:12px;gap:1px}#dialog-actions button>small{font-size:9px}#dialog-pagination{font-size:10px}#dialog-pagination button{height:23px}.result-grid>div{padding:5px}.result-grid b{font-size:14px}.result-grid small{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}
@media(max-width:360px){.topbar{gap:7px;padding:0 10px}.brand{font-size:10px}.brand-symbol{font-size:18px}.timebox strong{font-size:22px}#wallet b{font-size:15px}#wallet{padding-left:7px}.round-button{width:28px;height:28px}.controls{gap:5px}.secondary{min-width:45px;padding:5px 6px}#interact{min-width:110px;font-size:11px}.control-deck{padding-left:10px;padding-right:10px}.mission-copy>strong{font-size:10px}.memory-book{padding:4px 6px}.debug-strip{font-size:8px;gap:4px}#dialog-actions button{font-size:12px}}
@media(max-height:480px){.timebox>span{display:inline;font-size:9px;padding:3px 5px}}
@media(min-width:681px) and (max-width:900px){.need{grid-template-columns:1fr}.need-icon{display:none}.need-top{white-space:nowrap}.need .meter{grid-column:1}}

/* Windows scroll internally; the game itself stays within the viewport. */
dialog{grid-template-rows:26px auto minmax(0,1fr) auto}#dialog-scroll{overflow-y:auto;min-height:0;overscroll-behavior:contain;touch-action:pan-y;scrollbar-gutter:stable;padding:2px 5px 9px 0}#dialog-copy{justify-content:flex-start;white-space:pre-line;margin-bottom:15px}#dialog-actions{padding-bottom:5px}#dialog-pagination[hidden]{display:none}.map-label{width:30px;height:30px;border-radius:50%;padding:0;font-size:14px;background:#fffef3c9;box-shadow:0 2px 0 #456a5730;border:1px solid #ffffffe0}.map-label.done:after{content:'';position:absolute;right:-1px;bottom:0;width:7px;height:7px;border-radius:50%;background:#438568;border:1px solid white}#map-caption{position:absolute;right:14px;top:58px;max-width:190px;padding:5px 10px;font-size:11px;border-radius:8px;background:#fffef2e8;color:#41685e;pointer-events:none}#dialog-scroll:focus-visible{outline:2px solid #438e85;outline-offset:2px}@media(max-height:480px){dialog{grid-template-rows:20px auto minmax(0,1fr) auto;gap:5px}#map-caption{top:46px;font-size:10px}}@media(max-width:680px){#map-caption{top:47px;right:10px;font-size:9px;max-width:145px}.map-label{width:28px;height:28px;font-size:12px}}
/* A child's already-written summer diary. No bitmap or font downloads. */
.intro{position:fixed;inset:0;z-index:10;padding:20px;display:grid;place-items:center;background:radial-gradient(ellipse at 25% 25%,#aac6aa55,transparent 65%),repeating-linear-gradient(4deg,#567d75 0 3px,#52796f 4px 7px,#547c72 8px 34px);overflow:hidden}.diary-page{position:relative;width:min(950px,95vw);height:min(730px,94dvh);padding:25px 40px 29px 55px;display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:28px minmax(0,1fr) auto 18px;gap:16px 30px;background:repeating-linear-gradient(0deg,#fffdf2 0 3px,#fcf9ed 4px 5px);border-radius:3px 8px 6px 3px;box-shadow:5px 8px 0 #e8e3cc,9px 13px 0 #c2bea780,0 25px 80px #183a4a70;transform:rotate(-.7deg);color:#585b55;font-family:'Hiragino Maru Gothic ProN','YuKyokasho','Yu Gothic',sans-serif}.diary-page:before{content:'';position:absolute;left:27px;top:0;bottom:0;border-left:1px solid #dc9e9460;border-right:1px solid #dc9e9430;width:3px}.diary-heading{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #899c8c77;padding-bottom:9px;font-size:13px;letter-spacing:.16em}.diary-drawing{grid-column:1/-1;min-height:0;position:relative;display:flex;justify-content:center;align-items:center;background:#f8f5e7;border:1px solid #a5aea277}.diary-drawing svg{width:100%;height:100%;max-height:300px}.drawing-note{position:absolute;bottom:8px;right:20px;font-size:12px;color:#68785b;transform:rotate(-4deg);background:#fff9dfb8;padding:2px 7px}.diary-writing{align-self:center;padding:8px 0;background:repeating-linear-gradient(transparent 0 33px,#a6b9ac55 34px,transparent 35px)}.diary-subject{font-size:11px;letter-spacing:.15em;color:#80907b}.diary-page h1{font-family:inherit;font-size:clamp(27px,3.6vw,45px);line-height:1.5;font-weight:800;letter-spacing:.03em;margin:5px 0 14px;color:#505952;text-shadow:1px 1px 0 #a8afa24a;transform:rotate(.5deg)}.diary-break{display:none}.diary-page .tagline{font-size:17px;color:#61665c;line-height:2.05;margin:0;letter-spacing:.06em}.diary-confession{align-self:center;padding:10px 0}.pencil-note{display:block;font-size:20px;line-height:1.65;transform:rotate(-3deg);color:#b57957}.diary-confession p{font-size:13px;line-height:1.8;margin:16px 0;color:#6e7567}.diary-page .start-button{min-width:0;font-size:14px;background:#628878;box-shadow:0 4px 0 #45695c;border-radius:7px 12px 9px 6px;padding:13px 16px}.diary-confession small{display:block;text-align:center;font-size:10px;margin-top:12px;color:#879082}.diary-page-number{grid-column:1/-1;text-align:center;font-size:10px;letter-spacing:.15em;align-self:end;color:#939b8a}
@media(max-width:680px) and (min-height:481px){.intro{padding:12px}.diary-page{width:94vw;height:94dvh;padding:18px 20px 17px 30px;grid-template-columns:1fr;grid-template-rows:23px minmax(95px,1fr) auto auto 12px;gap:12px;transform:rotate(-.5deg)}.diary-page:before{left:14px}.diary-heading{font-size:9px;letter-spacing:.06em}.diary-drawing{grid-column:1}.drawing-note{font-size:9px;bottom:4px;right:6px}.diary-writing{padding:0}.diary-page h1{font-size:clamp(25px,7.2vw,38px);margin:3px 0 9px;white-space:nowrap}.diary-page .tagline{font-size:14px;line-height:1.9}.diary-subject{font-size:9px}.diary-confession{padding:0;display:grid;grid-template-columns:1fr;gap:6px}.pencil-note{font-size:16px;line-height:1.5}.pencil-note br{display:none}.diary-confession p{font-size:12px;margin:4px 0 7px;line-height:1.65}.diary-confession p br{display:none}.diary-confession small{font-size:9px;margin-top:5px}.diary-page .start-button{font-size:13px;padding:12px 14px;min-height:42px}.diary-page-number{font-size:8px}.diary-confession .pitch{display:block}}
@media(max-height:650px) and (max-width:680px) and (min-height:481px){.diary-page{gap:7px;padding-top:12px;padding-bottom:10px}.diary-page h1{font-size:25px;margin:0 0 3px}.diary-page .tagline{font-size:12px;line-height:1.8}.pencil-note{font-size:13px}.diary-confession p{font-size:11px;margin:2px 0 5px}.diary-page .start-button{padding:9px 12px;min-height:36px}.diary-drawing svg{max-height:150px}}
@media(max-height:480px){.intro{padding:10px}.diary-page{width:95vw;height:93dvh;padding:12px 22px 14px 33px;grid-template-columns:1.35fr 1fr;grid-template-rows:20px minmax(0,1fr) auto 10px;gap:8px 25px}.diary-page:before{left:16px}.diary-heading{font-size:10px;padding-bottom:4px}.diary-drawing{grid-column:1;grid-row:2}.diary-writing{grid-column:1;grid-row:3;padding:0}.diary-confession{grid-column:2;grid-row:2/4}.diary-page h1{font-size:24px;margin:0;line-height:1.4}.diary-page .tagline{font-size:11px;line-height:1.7}.diary-subject{display:none}.pencil-note{font-size:17px}.diary-confession p{font-size:12px;margin:12px 0}.diary-page .start-button{font-size:12px;padding:10px 12px}.diary-page-number{font-size:8px}.drawing-note{font-size:9px;bottom:3px}.diary-confession small{font-size:9px;margin-top:9px}}
@media(min-width:681px) and (max-width:850px) and (min-height:481px){.pencil-note{font-size:17px}.diary-page{column-gap:22px}.diary-page h1{font-size:27px}}
/* Original handwritten stroke lettering, identical on PC and phones. */
.pencil-writing{display:block;overflow:visible;width:100%;height:auto;color:#555e55;filter:drop-shadow(.35px .45px .2px #74746438)}.diary-page h1{width:100%;margin:8px 0 19px;transform:rotate(-.6deg)}.diary-page .pencil-title{width:100%}.diary-page .pencil-body{width:85%;margin:5px 0 9px}.diary-page .pencil-body:last-child{width:77.3%;transform:rotate(.5deg)}.diary-writing{padding:12px 0}.diary-page .tagline{margin:0}@media(max-width:680px) and (min-height:481px){.diary-page h1{margin:3px 0 12px}.diary-page .pencil-body{width:82%;margin:3px 0 7px}.diary-page .pencil-body:last-child{width:74.5%}.diary-writing{padding:4px 0}}@media(max-height:480px){.diary-page h1{margin:0 0 4px}.diary-page .pencil-title{width:90%}.diary-page .pencil-body{width:66%;margin:2px 0 4px}.diary-page .pencil-body:last-child{width:60%}.diary-writing{padding:0}}

/* The illustration and writing share one ruled diary sheet. */
.diary-page{grid-template-rows:28px minmax(0,1fr) auto;padding-bottom:35px;background:linear-gradient(90deg,transparent 29px,#d69b8d55 30px,transparent 31px),repeating-linear-gradient(0deg,transparent 0 33px,#8ea99b38 34px,transparent 35px),repeating-linear-gradient(0deg,#fffdf2 0 3px,#fcf9ed 4px 5px)}
.diary-heading{background:#fffdf2c9}.diary-drawing{background:#fffdf2b8;border:1px solid #97ab9877;border-radius:2px 4px 3px 2px;box-shadow:none}.diary-writing{background:none}.diary-confession{background:#fffdf2df;padding:14px 12px;border-radius:3px;transform:rotate(.7deg)}
@media(max-width:680px) and (min-height:481px){.diary-page{grid-template-rows:23px minmax(95px,1fr) auto auto;padding-bottom:20px;background:linear-gradient(90deg,transparent 15px,#d69b8d55 16px,transparent 17px),repeating-linear-gradient(0deg,transparent 0 28px,#8ea99b38 29px,transparent 30px),repeating-linear-gradient(0deg,#fffdf2 0 3px,#fcf9ed 4px 5px)}.diary-confession{padding:9px 8px}.diary-writing{background:none}}
@media(max-height:650px) and (max-width:680px) and (min-height:481px){.diary-page{padding-bottom:13px}.diary-confession{padding:5px 7px}}
@media(max-height:480px){.diary-page{grid-template-rows:20px minmax(0,1fr) auto;padding-bottom:18px}.diary-confession{padding:8px}.diary-writing{background:none}}

/* In-place conversation: keep the yard visible behind the answer sheet. */
dialog.question-panel{margin:auto 18px 18px auto;width:min(530px,94vw);height:min(620px,86dvh);border-top:4px solid #dca461;box-shadow:0 12px 45px #284c4938;animation:question-arrive .18s ease-out}dialog.question-panel::backdrop{background:#244f481c;backdrop-filter:none}.question-panel h2{font-size:21px}.question-panel .speech-card{font-size:12px}.question-panel #dialog-copy{margin-bottom:12px}@keyframes question-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(max-width:680px){dialog.question-panel{margin:auto auto 8px;width:96vw;height:min(600px,83dvh);padding:13px 16px;border-radius:18px 18px 10px 10px}.question-panel h2{font-size:18px}}@media(max-height:480px){dialog.question-panel{height:94dvh;margin:auto 8px auto auto}.question-panel h2{font-size:17px}}
/* Keep the schoolyard visible while choosing everyday actions. */
dialog.place-panel{margin:auto auto 14px;width:min(570px,94vw);height:auto;max-height:68dvh;grid-template-rows:24px auto minmax(0,1fr) auto;padding:14px 18px;gap:8px;box-shadow:0 12px 35px #254b4933}dialog.place-panel::backdrop{background:#20453910;backdrop-filter:none}.place-panel h2{font-size:19px}.place-panel #dialog-copy{font-size:12px;margin-bottom:10px}.place-panel #dialog-scroll{max-height:47dvh}.place-panel #dialog-actions button{min-height:48px}.speech-card:before{display:none}.speech-card{border-radius:12px;margin-top:2px}.dialog-head{gap:8px;min-height:24px}.dialog-head>span{min-width:0;letter-spacing:0;line-height:1.4}.dialog-head button{flex-shrink:0}#dialog-actions button{box-shadow:none;overflow-wrap:anywhere}#dialog-actions button.primary{box-shadow:none;border:1px solid #267679}#dialog-scroll{padding:3px 5px 6px 0;scroll-padding:8px}.chatter{max-width:80%;border-radius:12px}.chatter:before{display:none}.diary-memories{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:repeating-linear-gradient(#fff9e9 0 27px,#9bac8b30 28px,#fff9e9 29px);padding:12px;border-radius:8px;margin:10px 0}.memory-sketch{display:flex;flex-direction:column;align-items:center;padding:5px;opacity:.5;gap:5px}.memory-sketch.collected{opacity:1;transform:rotate(-3deg)}.memory-sketch:nth-child(even){transform:rotate(3deg)}.memory-sketch span{font-size:28px;color:#71977b}.memory-sketch small{font-size:10px;text-align:center}.diary-entry{font-size:12px;line-height:1.8}.result-grid{margin-top:8px}.question-panel #dialog-copy{font-size:12px}.question-panel .speech-card{white-space:pre-line}.question-panel #dialog-actions{gap:10px}
@media(max-width:680px){dialog.place-panel{max-height:64dvh;margin:auto auto 8px;padding:12px 14px}.place-panel #dialog-scroll{max-height:44dvh}.place-panel h2{font-size:17px}.dialog-head>span{font-size:10px}#dialog-actions button{line-height:1.5;padding:10px 12px}#dialog-actions button>small{line-height:1.6}.world-bottom{bottom:8px;left:10px;right:10px}.chatter{max-width:100%;width:100%;padding:7px 10px}.chatter p{max-height:3em;overflow:hidden}.joystick{bottom:65px}.danger-alert{z-index:6;top:76px}.toast{bottom:110px;z-index:7;max-width:90%}.diary-memories{gap:4px;padding:8px}.memory-sketch small{font-size:9px}#wallet span{max-width:80px;font-size:8px}.question-panel #dialog-title{font-size:16px;line-height:1.5}.where{max-width:65%}.where>span{max-width:100%;flex-wrap:wrap}.map-label{width:26px;height:26px}.memory-pips{display:none}}
@media(max-height:480px){dialog.place-panel{max-height:91dvh;margin:auto 8px auto auto;width:min(490px,65vw)}.place-panel #dialog-scroll{max-height:63dvh}.place-panel h2{font-size:16px}.place-panel #dialog-actions button{min-height:40px}.toast{bottom:56px}.question-panel .speech-card{font-size:11px}}
dialog.place-panel[open]{display:flex;flex-direction:column;height:fit-content}.place-panel #dialog-scroll{flex:0 1 auto;min-height:0}.place-panel .dialog-head,.place-panel h2{flex:0 0 auto}.place-panel #dialog-pagination{flex:0 0 auto}

.scroll-section{padding:0 0 14px;margin:0 0 12px;border-bottom:1px solid #cad7c455}.scroll-section:last-child{border:0;margin-bottom:0}.scroll-section h3{margin:3px 0 10px;font-size:15px;color:#55766a}#dialog-pagination{display:none!important}#map-caption:empty{display:none}.question-panel #dialog-actions button{background:#f0f3e9;color:var(--ink);border:1px solid #e0e7d7;box-shadow:none}

#result-footer{padding:12px 0 0;background:#fffef5;border-top:1px solid #d9e3d2;box-shadow:0 -8px 14px #fffef5;z-index:2}#result-footer[hidden]{display:none}#restart-day{display:block;width:100%;box-shadow:none;min-height:48px}dialog{grid-template-rows:26px auto minmax(0,1fr) auto}dialog.question-panel{grid-template-rows:26px auto minmax(0,1fr) auto}

/* Characters and dialogue have a clear speaker / reply hierarchy. */
.npc-question{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;background:#e8eff7;border-left:4px solid #668caf;padding:15px;border-radius:12px;color:#28475e}.npc-speaker{display:block;font-weight:800;font-size:14px}.npc-question small{display:block;color:#668297;font-size:10px;margin-top:3px}.npc-question p{font-size:16px;font-weight:600;margin:10px 0 0!important;line-height:1.75}.question-clue{padding:10px 3px;color:#8a6b44;font-size:11px;border-bottom:1px dashed #d8c9af}.answer-label{font-size:12px;color:#718073;margin:12px 0 0!important}.question-panel #dialog-copy{margin-bottom:5px}.question-panel #dialog-actions button{background:#fffaf0;border:1px solid #e6d5b8;padding:12px 14px;border-radius:10px}.question-panel #dialog-actions button:hover:not(:disabled){background:#f9edd4;border-color:#c6a372}.question-panel #dialog-actions button>small{color:#8c7b62}.question-panel #dialog-title{font-size:18px;color:#617565}.npc-portrait{width:56px;height:66px;position:relative;background:#d8e4e8;border-radius:13px;overflow:hidden;align-self:start}.npc-portrait i{position:absolute;width:36px;height:34px;left:10px;top:12px;background:#efcaa4;border-radius:45% 45% 42% 42%;border-top:10px solid var(--hair)}.npc-portrait i:before,.npc-portrait i:after{content:'';position:absolute;top:9px;width:3px;height:4px;border-radius:50%;background:#40505a}.npc-portrait i:before{left:9px}.npc-portrait i:after{right:9px}.npc-portrait b{position:absolute;left:8px;bottom:-5px;width:40px;height:25px;border-radius:14px 14px 0 0;background:var(--shirt)}.look-glasses i:before,.look-notebook i:before{width:26px;height:9px;left:3px;top:5px;border:2px solid #54646d;border-radius:4px;background:transparent}.look-cap i,.look-baseball i{border-top-color:var(--shirt);border-top-width:13px}.look-bob i{border-left:5px solid var(--hair);border-right:5px solid var(--hair)}.look-curls i{border-top-style:dotted;border-top-width:13px}.look-camera b:after{content:'◉';position:absolute;left:12px;top:1px;background:#465d64;color:#c1e5df;font:15px monospace}.look-mic b:after{content:'●';position:absolute;right:0;top:-7px;color:#465d64}.look-towel b:after{content:'';position:absolute;left:8px;top:0;width:20px;height:15px;border-left:4px solid #fff8df;border-right:4px solid #fff8df}.look-vest b{border-left:8px solid #e0debf;border-right:8px solid #e0debf}.collection-link{background:transparent;color:#64806d;text-decoration:underline;text-underline-offset:4px;font-size:11px;margin-top:11px;padding:5px;width:100%}.collection-stamps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:13px}.collection-stamps span{border:1px dashed #c5cebd;border-radius:7px;padding:9px 5px;color:#94a28e;text-align:center;font-size:9px}.collection-stamps .found{background:#f6e2b1;color:#9a6c41;border:1px solid #e3c17b}.replay-goal{padding:11px;background:#f7eccf;border-radius:8px;white-space:normal}.replay-goal b{display:block;font-size:13px}.replay-goal small{display:block;margin-top:5px;font-size:11px;color:#947956}.end-scene{background:#f9f1dd;animation:ending-open .7s ease-out}.end-scene::backdrop{background:#254440aa;backdrop-filter:blur(3px)}.ending-moment{padding:25px 8px;text-align:center;white-space:normal}.ending-moment>span{font-size:11px;letter-spacing:.15em;color:#968469}.ending-moment p{font-family:'Yu Mincho',serif;font-size:24px;line-height:1.9;margin:25px 0!important;animation:ending-words 1.5s ease both}.ending-moment small{display:block;color:#89745c;line-height:1.8;animation:ending-words 2s ease both}@keyframes ending-open{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ending-words{0%,20%{opacity:0}100%{opacity:1}}@media(max-width:680px){.npc-question{grid-template-columns:44px minmax(0,1fr);padding:11px;gap:9px}.npc-portrait{transform:scale(.78);transform-origin:top left;width:56px;margin-right:-12px;height:66px;margin-bottom:-14px}.npc-speaker{font-size:12px}.npc-question p{font-size:13px;line-height:1.7}.question-panel #dialog-title{font-size:16px}.question-panel #dialog-actions button{font-size:12px;line-height:1.6}.question-panel #dialog-actions button>small{font-size:10px}.ending-moment p{font-size:19px}.collection-link{font-size:10px;margin-top:4px}.replay-goal small{font-size:10px}}@media(max-height:480px){.ending-moment{padding:8px}.ending-moment p{font-size:17px;margin:10px 0!important}.npc-question p{font-size:12px}.npc-question{padding:8px}.collection-link{margin-top:1px;padding:2px}}
/* The unfinished diary: a quiet, staged ending. */
.end-scene::backdrop{background:rgba(21,36,42,.76);backdrop-filter:blur(5px);transition:background 1s}
.end-scene .ending-moment{text-align:center;padding:12px 4px 20px;animation:diary-arrive .8s ease both}
.ending-diary{margin:22px auto;padding:20px 16px;max-width:430px;text-align:left;color:#54716b;background:repeating-linear-gradient(#faf4df 0 29px,#cbd7c5 30px,#faf4df 31px);border-left:4px solid #c99480;box-shadow:3px 7px 0 #0000000b;transform:rotate(-2deg);font-size:12px}
.ending-diary p{font-family:serif;font-size:clamp(19px,4vw,28px);color:#334f4e;line-height:1.7;margin:12px 0}
.ending-proof{list-style:none;padding:0;text-align:left;margin:20px auto;max-width:440px;font-size:13px}
.ending-proof li{padding:9px 0;border-bottom:1px dashed #bdb6a5;animation:diary-arrive .7s .45s both}
.ending-proof time{font-variant-numeric:tabular-nums;margin-right:12px;color:#97664e}
.ending-verdict{animation:diary-arrive .8s 1s both;margin:24px 0}
.ending-verdict b{display:block;color:#934e43;font-size:clamp(19px,4vw,27px);line-height:1.6}
.ending-verdict p{font-size:15px!important;line-height:1.8!important;margin:12px 0!important}
.ending-clear .ending-verdict b{color:#4c786b}
.ending-moment small{display:block;font-size:12px;line-height:1.7;color:#6c7770}
@keyframes diary-arrive{from{opacity:0;translate:0 9px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.end-scene *{animation:none!important}}
/* A quiet progress strip; the yard gets the space back. */
.shell{grid-template-rows:62px 40px minmax(0,1fr) 116px 26px}
.missionbar{padding:4px 24px;gap:16px;justify-content:flex-end}
.dayline{display:flex;width:min(32vw,300px);margin-left:auto}
.memory-book{display:flex;align-items:center;gap:7px;padding:4px 9px;transform:none;border:0;background:transparent}
.memory-book>span{font-size:17px}.memory-book b{font-size:13px}.memory-book small{font-size:10px}
@media(max-width:680px){.shell{grid-template-rows:53px 34px minmax(0,1fr) 128px 30px}.missionbar{padding:3px 13px}.dayline{width:auto;flex:1;max-width:250px}.memory-book{margin-left:0}}
@media(max-height:700px) and (max-width:680px){.shell{grid-template-rows:45px 32px minmax(0,1fr) 110px 27px}}
@media(max-height:480px){.shell{grid-template-rows:40px 0 minmax(0,1fr) 64px 20px}.missionbar{display:none}}

/* Shared primary action color, including the diary cover. */
:root{--primary-action:#2c8587;--primary-shadow:#206468}
.primary,#dialog-actions button.primary,.diary-page .start-button{background:var(--primary-action);color:white;box-shadow:0 3px 0 var(--primary-shadow)}

/* Kyoko: swept centre part and a small ivory neck ribbon. */
.npc-portrait.look-ribbon{background:#dddccd}
.look-ribbon i{border-top:0;top:13px;height:34px;box-shadow:-5px -4px 0 -1px var(--hair),5px -4px 0 -1px var(--hair)}
.look-ribbon{background-image:linear-gradient(90deg,transparent 49%,#8a8877 50%,transparent 52%)}
.look-ribbon b{height:25px;border-radius:11px 11px 0 0;border-top:3px solid #e9dfbf}
.look-ribbon b:before{content:'';position:absolute;left:11px;top:-2px;width:18px;height:10px;background:#e9dfbf;clip-path:polygon(0 0,50% 30%,100% 0,90% 85%,58% 50%,70% 100%,45% 80%,28% 100%,40% 50%,10% 85%)}
.look-ribbon b:after{content:'';position:absolute;left:20px;top:12px;width:2px;height:2px;background:#d4ccb0;box-shadow:0 5px #d4ccb0}


.danger-alert{border:2px solid #d97b40;border-left:6px solid #d46a32;background:#fff2d9;box-shadow:0 5px 22px #84452240;animation:alert-arrive .35s ease-out}
.danger-alert b{color:#9c4027}.danger-alert button{background:#a94430;color:#fff;border-radius:9px;font-weight:700}
.danger-alert.urgent{border-color:#bc4439;background:#fff0e8;box-shadow:0 0 0 4px #d5644330,0 6px 24px #793b3440}
.danger-alert #danger-icon{display:grid;place-items:center;min-width:30px;min-height:30px;border-radius:50%;background:#dd7544;color:white;animation:alert-pulse 1.8s ease-in-out infinite}
.danger-alert.urgent #danger-icon{background:#b94338}
@keyframes alert-arrive{from{opacity:0;translate:0 -9px}to{opacity:1;translate:0 0}}
@keyframes alert-pulse{50%{box-shadow:0 0 0 6px #db754423;transform:scale(1.08)}}
@media(prefers-reduced-motion:reduce){.danger-alert,.danger-alert #danger-icon{animation:none}}

.farm-feed{position:absolute;right:14px;top:80px;width:225px;z-index:5;padding:10px 12px;border:1px solid #c8d8cd;border-radius:13px;background:#fcfff3ef;box-shadow:0 4px 18px #30524a24;pointer-events:none;font-size:12px}
.farm-feed strong,.farm-feed small,.farm-feed span,.farm-feed b{display:block}.farm-feed strong{color:#497861;font-size:11px}.farm-feed small{font-size:10px;line-height:1.5;max-height:3em;overflow:hidden;margin-top:4px}.farm-feed div{padding-top:7px;animation:alert-arrive .3s ease-out}.farm-feed span{font-size:9px;color:#7c8982}.farm-feed b{color:#a45638;margin-top:8px}
@media(max-width:680px){.farm-feed{top:auto;bottom:112px;right:9px;width:170px;padding:8px;font-size:10px}.farm-feed div{padding-top:4px}}
@media(prefers-reduced-motion:reduce){.farm-feed div{animation:none}}
.story-diary{padding:18px 20px;margin:12px 0 22px;background:repeating-linear-gradient(#fff9e9 0 31px,#b8c8b34d 32px,#fff9e9 33px);border-left:3px solid #cc9e8d;box-shadow:2px 4px 0 #36574312;transform:rotate(-.5deg)}
.story-diary p{font-size:14px;line-height:1.9;margin:6px 0;font-family:'Hiragino Maru Gothic ProN',serif}.story-diary>small{display:block;color:#70816e;font-size:11px;line-height:1.7}.day-sketch{min-height:45px;font-size:32px;letter-spacing:9px;margin:12px 0;color:#b69454}
@media(max-width:680px){.story-diary{padding:12px}.story-diary p{font-size:12px}.day-sketch{font-size:26px;letter-spacing:5px}}

/* Keep both rows inside the mobile control deck, including button borders. */
@media(max-width:680px) and (min-height:481px){
.control-deck{grid-template-rows:minmax(0,42px) minmax(0,56px);align-content:center;align-items:stretch;gap:10px;padding:8px 12px}
.needs,.controls{min-height:0;align-items:stretch}
.need{min-height:0;height:100%;padding:5px 8px;align-content:center}
.controls>button,#interact{min-height:0;height:100%;padding-top:5px;padding-bottom:5px;box-shadow:none}
}
@media(max-width:680px) and (min-height:481px) and (max-height:700px){
.control-deck{grid-template-rows:minmax(0,36px) minmax(0,48px);padding:7px 10px;gap:10px}
.need{padding:3px 7px}.controls>button{gap:2px}
}

/* Keep the gate-side phone lights visible on the right. */
.farm-feed{left:14px;right:auto;top:auto;bottom:112px}
.farm-feed .sns-critical{border-top:1px dashed #cbbcad;margin-top:6px;color:#8c573f}
@media(max-width:680px){.farm-feed{left:10px;right:auto;top:auto;bottom:112px;width:170px}}
@media(max-height:480px){.farm-feed{left:10px;bottom:50px;width:205px;font-size:10px}.farm-feed small{max-height:1.5em}.farm-feed div{padding-top:2px}}

.where .official{pointer-events:auto;display:grid;grid-template-columns:auto auto auto;align-items:center;gap:3px 7px;padding:8px 12px;border:1px solid #c4dbbd;border-radius:10px;box-shadow:0 3px 12px #365a4820;text-align:left;max-width:100%;font-size:11px}
.official b{font-size:13px;overflow-wrap:anywhere}.official i{font-style:normal}.official small{grid-column:2/4;font-size:9px;opacity:.7}
.where .official[data-stage="2"]{background:#f6f0dc;color:#726541;border-color:#d3c9a8}
.where .official[data-stage="3"],.where .official[data-stage="4"]{background:#f5ecd9;color:#6a5943;border-color:#c9b697;border-style:dashed}
.official-document{background:#fff9e9;padding:16px;border:1px solid #daceb1}.official-footnote{font-size:12px;line-height:1.8;border-top:1px dotted #c9bfa7;padding-top:9px}.official-footnote small{color:#93784c}
@media(max-width:680px){.where .official{padding:6px 8px;font-size:9px;gap:2px 5px}.official b{font-size:11px}.official small{font-size:8px}}

.diary-page .pencil-title{width:106%;max-width:none;margin-left:-3%}.diary-page .pencil-body{width:72%}.diary-page .pencil-body:last-child{width:65.5%}
.farm-feed>small{font-size:12px;line-height:1.6;max-height:none;margin:7px 0 9px;font-weight:600}.farm-feed div{font-size:11px;line-height:1.5}.farm-feed span{font-size:9px}.farm-feed strong{font-size:10px}
@media(max-width:680px){.diary-page .pencil-body{width:70%}.diary-page .pencil-body:last-child{width:63.6%}.farm-feed>small{font-size:11px}.farm-feed div{font-size:10px}}
@media(max-height:480px){.diary-page .pencil-title{width:100%;margin-left:0}.diary-page .pencil-body{width:60%}.diary-page .pencil-body:last-child{width:54.5%}.farm-feed>small{font-size:10px;max-height:3.2em;overflow:hidden}.farm-feed div{font-size:9px}}

.need .meter i{transition:width .85s cubic-bezier(.22,.61,.36,1);will-change:width}
@media(prefers-reduced-motion:reduce){.need .meter i{transition:none}}
/* Narrative is text, actions are surfaces: shared across all dialogs. */
dialog .speech-card{background:transparent;border:0;border-radius:0;box-shadow:none;padding:2px 0 8px;margin:0;color:#52656a;line-height:1.85}
dialog .speech-card:before,dialog .speech-card:after{display:none}
dialog .speaker-tag{font-size:11px;font-weight:700;color:#4f7778;margin:0 0 5px}
dialog #dialog-copy{margin-bottom:12px}
dialog #dialog-actions:not(:empty){border-top:1px solid #dce3da;padding-top:12px;gap:9px}
dialog .npc-question{background:transparent;border:0;border-left:3px solid #86a2b2;border-radius:0;box-shadow:none;padding:4px 0 8px 12px}
dialog .npc-question p{color:#28475e}
@media(max-width:680px){dialog .speech-card{padding:1px 0 6px;line-height:1.8}dialog #dialog-copy{margin-bottom:9px}dialog #dialog-actions:not(:empty){padding-top:10px;gap:8px}dialog .npc-question{padding:3px 0 6px 9px}}
@media(max-height:480px){dialog #dialog-copy{margin-bottom:6px}dialog #dialog-actions:not(:empty){padding-top:8px;gap:6px}}
/* Persistent meters have no icon column at any viewport width. */
.needs{min-width:0}
.needs .need{min-width:0;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;row-gap:5px;align-content:center}
.needs .need-top{grid-column:1;grid-row:1;min-width:0;width:100%;align-items:center;white-space:nowrap}
.needs .need-top>span,.needs .need-top>b{flex-shrink:0;white-space:nowrap;word-break:keep-all}
.needs .need .meter{grid-column:1;grid-row:2;min-width:0;width:100%}
@media(max-width:680px){.needs .need{row-gap:3px}}

/* A persistent, compact sound switch alongside the menu. */
.sound-toggle{flex:0 0 42px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;background:#eaf0e7;border-radius:12px;line-height:1.1}.sound-toggle span{font-size:19px}.sound-toggle small{font-size:9px;font-weight:700}.sound-toggle[aria-pressed="true"]{background:#318b78;color:#fff}.topbar>.round-button{flex-shrink:0}
@media(max-width:680px){.topbar{gap:7px}.topbar .brand{min-width:0;flex:1}.topbar .brand>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .brand small{display:none}.sound-toggle{flex-basis:34px;height:36px}.topbar #wallet{flex-shrink:0}.topbar .timebox{flex-shrink:0}.topbar #wallet span{display:none}}

#dialog-actions .action-section-title{margin:18px 0 5px;padding:12px 2px 0;border-top:1px solid #d9e3dc;font-size:12px;font-weight:700;color:#526e74;letter-spacing:.05em}#dialog-actions .action-section-title:first-child{margin-top:0;padding-top:0;border-top:0}

/* Secondary choices share the primary palette with a softer, readable tint. */
dialog #dialog-actions button:not(.primary){background:#cbded5;border-color:#aec8bc;color:#213e49}
dialog #dialog-actions button:not(.primary)>small{color:#49665c}
dialog #dialog-actions button:not(.primary):hover:not(:disabled){background:#bdd4c9;border-color:#94b5a5}

#blackout{position:fixed;inset:0;background:#080b10;opacity:0;z-index:50;pointer-events:all}#blackout[hidden]{display:none}

/* Dialogue belongs to the character bubble, rather than a duplicate bottom strip. */
.world-bottom{display:none}
@media(max-width:680px){.danger-alert{padding:7px 9px;gap:7px}.danger-alert small{display:none}.danger-alert b{font-size:11px}.danger-alert button{padding:8px;font-size:10px}.danger-alert #danger-icon{min-width:25px;min-height:25px}}

/* Keep action feedback close to the needs meters. */
.toast{top:auto;bottom:12px}

/* Warnings and transient feedback share one flow, including wrapped mobile text. */
.status-notices{position:absolute;left:12px;right:12px;bottom:12px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;z-index:7;pointer-events:none}
.status-notices .danger-alert,.status-notices .toast{position:relative;inset:auto;transform:none;margin:0;max-width:100%;width:fit-content}
.status-notices .danger-alert{pointer-events:auto}
.status-notices .toast{align-self:center}
.npc-question{grid-template-columns:76px minmax(0,1fr)}
.npc-question .character-portrait{display:block;width:76px;height:76px;object-fit:cover;transform:none;margin:0;border-radius:18px;align-self:start}
@media(max-width:680px){.npc-question{grid-template-columns:64px minmax(0,1fr)}.npc-question .character-portrait{width:64px;height:64px;border-radius:15px}}

.status-notices .toast{order:0}.status-notices .danger-alert{order:1}

/* Equal side gutters for the conversation content and choices. */
dialog.question-panel #dialog-scroll{padding:4px 10px 10px;scrollbar-gutter:stable both-edges}
dialog.question-panel #dialog-actions{width:100%;margin-inline:auto;padding-inline:4px;box-sizing:border-box}
dialog.question-panel #dialog-actions button{width:100%;min-width:0}
@media(max-width:680px){dialog.question-panel #dialog-scroll{padding-inline:6px}dialog.question-panel #dialog-actions{padding-inline:3px}}

dialog.tutorial-panel{position:fixed;inset:auto 0 25dvh;margin:0 auto;width:min(480px,92vw);height:auto;max-height:55dvh;padding:20px;border:2px solid #91b6a7}
dialog.tutorial-panel::backdrop{background:#244f4838;backdrop-filter:none}
.tutorial-arrows{position:fixed;display:flex;justify-content:space-around;color:#b4582f;font-size:30px;font-weight:900;line-height:32px;pointer-events:none;text-shadow:0 2px 0 #fff}
@media(max-height:480px){dialog.tutorial-panel{padding:10px;max-height:60dvh}.tutorial-panel h2{font-size:16px}}

/* Compact tutorial navigation and a top-layer spotlight over the real meters. */
dialog.tutorial-panel{border:0}
dialog.tutorial-panel #dialog-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;border-top:0;padding:12px 0 3px}
dialog.tutorial-panel #dialog-actions button{width:auto;flex:0 1 auto;min-width:88px;min-height:42px;padding:10px 22px;text-align:center;align-items:center}
.tutorial-arrows{color:#d58b3f;z-index:2;line-height:1;filter:drop-shadow(0 2px 0 #fff5db)}
.tutorial-arrows svg{width:40px;height:40px;animation:tutorial-point 1.4s ease-in-out infinite}
.tutorial-meter-spotlight{position:fixed;z-index:1;margin:0!important;padding:0!important;pointer-events:none;border-radius:16px;background:#fffdf0;box-shadow:0 0 0 5px #fff5cc,0 0 28px 9px #ffedaa90;filter:brightness(1.07)}
@keyframes tutorial-point{0%,100%{transform:translateY(-4px)}50%{transform:translateY(3px)}}
@media(prefers-reduced-motion:reduce){.tutorial-arrows svg{animation:none}}

/* Every tutorial step keeps the same centred frame and navigation baseline. */
dialog.tutorial-panel{inset:0;margin:auto;width:min(480px,92vw);height:min(340px,82dvh);max-height:82dvh;border:0;grid-template-rows:24px 36px minmax(0,1fr) auto;gap:10px;animation:none}
dialog.tutorial-panel #dialog-scroll{display:flex;flex-direction:column;padding:4px 8px 8px;border:0;outline:none;scrollbar-gutter:stable both-edges}
dialog.tutorial-panel #dialog-scroll:focus-visible{outline:none}
dialog.tutorial-panel #dialog-copy{flex:1;margin:0}
dialog.tutorial-panel #dialog-actions{flex:none;margin-top:auto}
dialog.tutorial-panel .speech-card{border:0;box-shadow:none}
@media(max-height:480px){dialog.tutorial-panel{height:82dvh;grid-template-rows:20px 24px minmax(0,1fr) auto;gap:5px}}

/* Keep all guide steps centred and compact, with copy close to navigation. */
dialog.tutorial-panel{height:min(300px,82dvh);grid-template-rows:24px 48px minmax(0,1fr) auto;gap:6px}
dialog.tutorial-panel #dialog-title{font-size:19px;line-height:1.35;margin:0;align-self:center}
dialog.tutorial-panel #dialog-scroll{justify-content:center}
dialog.tutorial-panel #dialog-copy{flex:0 0 auto}
dialog.tutorial-panel #dialog-actions{margin-top:0;padding-top:10px}
dialog.tutorial-panel::backdrop{background:#183b355c}
@media(max-width:680px){dialog.tutorial-panel #dialog-title{font-size:17px}}
@media(max-height:480px){dialog.tutorial-panel{height:82dvh;grid-template-rows:20px 32px minmax(0,1fr) auto;gap:4px}dialog.tutorial-panel #dialog-scroll{justify-content:flex-start}}

/* Align guide copy from the top; reserve a separate, evenly spaced navigation row. */
dialog.tutorial-panel{grid-template-rows:24px 44px minmax(0,1fr);gap:10px}
dialog.tutorial-panel #dialog-title{align-self:start}
dialog.tutorial-panel #dialog-scroll{display:grid;grid-template-rows:minmax(min-content,1fr) auto;align-content:start;gap:18px;justify-content:normal;padding:0 8px 4px}
dialog.tutorial-panel #dialog-copy{align-self:start}
dialog.tutorial-panel .speech-card{padding:0}
dialog.tutorial-panel #dialog-actions{margin:0;padding:0;align-self:end}
@media(max-height:480px){dialog.tutorial-panel{grid-template-rows:20px 32px minmax(0,1fr);gap:7px}dialog.tutorial-panel #dialog-scroll{gap:14px}}

/* A shorter guide frame keeps navigation close to the explanation. */
dialog.tutorial-panel{height:min(272px,82dvh)}
dialog.tutorial-panel #dialog-scroll{grid-template-rows:min-content auto;gap:14px;align-content:start}
@media(max-height:480px){dialog.tutorial-panel{height:82dvh}}

/* A single illustrated diary page; only two meaningful numbers remain. */
dialog.result-panel{width:min(620px,95vw);height:min(850px,94dvh);padding:18px 20px;gap:8px;background:#fffdf2}
.result-panel #dialog-title{font-size:clamp(14px,3.5vw,20px);letter-spacing:.03em;margin:0}
.result-panel #dialog-scroll{padding:0 4px 12px;outline:none}
.result-diary{padding:12px;border:1px solid #d7d5bc;background:repeating-linear-gradient(0deg,#fffcef 0px,#fffcef 29px,#e7e3cf 30px);border-radius:3px}
.result-illustration{display:block;width:100%;height:auto;aspect-ratio:600/245;margin-bottom:12px}
.result-handwriting{padding:2px 10px 12px;font-family:'Hiragino Maru Gothic ProN','Yu Kyokasho',serif;font-size:clamp(13px,2.9vw,17px);line-height:1.9;letter-spacing:.04em;color:#4f6258}
.result-panel .result-handwriting p{margin:0 0 4px}
.result-rates{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 4px;background:#fffcef;border-top:1px dashed #bebfa8;border-bottom:1px dashed #bebfa8;text-align:center}
.result-rates small{display:block;font-size:11px;color:#788272}.result-rates strong{display:block;font-size:30px;font-weight:600;color:#335e58}.result-rates strong span{font-size:14px;margin-left:3px}
.result-footnote,.share-note{font-size:10px!important;line-height:1.6!important;color:#859083;margin:10px 2px 0!important}
.result-share{display:flex;gap:10px;margin-top:16px}.result-share a{flex:1;text-align:center;background:#315e59;color:#fff;text-decoration:none;border-radius:10px;padding:13px 6px;font-size:12px;font-weight:700}.result-share a:last-child{background:#43678a}.result-share a:focus-visible{outline:3px solid #e6ae50;outline-offset:3px}
.result-panel #dialog-actions button{min-height:38px;text-align:center;align-items:center;font-size:12px}
@media(max-width:680px){dialog.result-panel{padding:13px 12px}.result-diary{padding:8px}.result-handwriting{padding-inline:5px}.result-share{gap:6px}}

.site-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 16px;min-width:0;background:#243e43;color:#8b9c83;font:11px 'DM Sans',Arial,'Hiragino Kaku Gothic ProN',sans-serif;letter-spacing:.2px}
.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{text-decoration:underline}.site-footer .playground-link{font:680 13px Fraunces,Georgia,serif;letter-spacing:.78px;background:linear-gradient(120deg,#fff 0%,#efe4c9 45%,#e9c654 100%);background-clip:text;-webkit-background-clip:text;color:transparent;white-space:nowrap}.site-footer a:focus-visible{outline:2px solid #e9c654;outline-offset:2px}
@media(max-width:380px){.site-footer{padding-inline:10px;font-size:10px}.site-footer .playground-link{font-size:12px}}

/* A small, readable introduction; expanded content stays within the title sheet. */
.game-about{font-family:"Hiragino Maru Gothic ProN","Yu Gothic",sans-serif;font-size:11px;text-align:center;margin-top:5px}.game-about summary{cursor:pointer;color:#557665;padding:6px;list-style:none;text-decoration:underline;text-underline-offset:4px}.game-about summary::-webkit-details-marker{display:none}.game-about summary:focus-visible{outline:2px solid #d99d4d;outline-offset:2px}.game-about[open] summary{position:absolute;right:24px;top:20px;z-index:22;background:#fffbed;border-radius:8px;padding:10px 14px}.game-about[open] summary::after{content:" ×"}.game-about-copy{position:absolute;inset:64px 24px 24px;z-index:21;background:#fffbed;border:1px solid #d9decc;border-radius:12px;padding:24px clamp(18px,4vw,45px);overflow:auto;text-align:left;box-shadow:0 8px 35px #284d4933;overscroll-behavior:contain}.game-about-copy h2{font-size:clamp(18px,3vw,25px);margin:0 0 20px}.game-about-copy p{font-size:clamp(12px,1.5vw,15px);line-height:1.9;margin:0 0 17px}.game-about-copy p:last-child{margin-bottom:0}@media(max-height:600px){.game-about{margin-top:0}.game-about summary{padding:3px}.game-about-copy{inset:48px 16px 16px;padding:16px}.game-about[open] summary{top:10px;right:16px;padding:6px 10px}}

.diary-page > .game-about > summary{position:absolute;right:20px;bottom:3px;padding:3px 7px;font-size:10px}.diary-page > .game-about[open] > summary{bottom:auto;top:16px;right:24px;padding:10px 14px}@media(max-height:600px){.diary-page > .game-about[open] > summary{top:8px;right:16px;padding:6px 10px}}
