/* Neng's field journal: cream paper, sea-glass teal and warm orange buttons. */
:root{--ui-teal:#267e7e;--ui-teal-dark:#195859;--ui-paper:#fff6e2;--ui-shadow:0 5px 0 #163e3e40,0 10px 28px #1b39332a}
.ui-icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;flex-shrink:0}
button{user-select:none;touch-action:manipulation}button:disabled{cursor:default;opacity:.4}button:disabled:hover{transform:none}button:focus-visible{outline:3px solid #e4b665;outline-offset:4px}
.primary-button{border-radius:18px;background:#e99649;box-shadow:0 5px 0 #ab6034,0 12px 24px #18382e26;border:1px solid #ffdc9699;letter-spacing:1px}.primary-button:hover{background:#f3a357}.primary-button:active{transform:translateY(3px);box-shadow:0 2px 0 #ab6034}
.menu-content h2{font-weight:650}.menu-description{color:#f6ead7d1;letter-spacing:1.5px}.menu-secondary button:hover{color:#ffdda2}
.objective{top:24px;left:24px;gap:12px;max-width:min(570px,62vw);padding:14px 19px 15px 13px;background:linear-gradient(120deg,#233f38ed,#274d43bd);border:1px solid #e7dab33b;border-radius:20px;box-shadow:0 6px 24px #102d2426;text-shadow:none}.objective-icon{color:#f3c778;width:43px;height:48px;border:0;background:#71938135;border-radius:13px}.objective small{color:#dacfaa;font-size:10px;letter-spacing:1.8px}.objective strong{font-size:18px;letter-spacing:1px;line-height:1.5;margin-top:3px}.objective #sub-objective{font-size:11px;margin-top:3px;color:#e8e3ccaa}
.hud-right{top:26px;right:26px;gap:9px;font-weight:600}.hud-right #secret-count,.hud-right #timer{padding:10px 14px;border:1px solid #f2e2ba33;border-radius:13px;background:#29483fcc;text-shadow:none}.hud-right #timer{letter-spacing:1px;color:#fff4d7}.icon-button{border-radius:15px;background:#284c43d9;border-color:#eee2b54d;box-shadow:0 3px 0 #133d3340}.case-actions{top:84px;right:26px;gap:8px}.case-actions button{display:flex;align-items:center;gap:6px;font-weight:600;font-size:12px;background:#fff2dceF;border:1px solid #fff5d6;color:#47645a;border-radius:13px;padding:10px 12px;box-shadow:0 3px 0 #a6997666,0 5px 14px #14382818;backdrop-filter:none}.case-actions .ui-icon{width:17px;height:17px}.case-actions button:hover{background:#fffaf0}
#touch-controls{z-index:10}.touch-actions{gap:12px;right:max(25px,env(safe-area-inset-right));bottom:max(39px,env(safe-area-inset-bottom))}.touch-actions button{width:63px;height:63px;border-radius:22px;background:#fff3daed;color:#2b726f;border:2px solid #fffae9;box-shadow:var(--ui-shadow);font-size:20px;gap:4px}.touch-actions button .ui-icon{width:26px;height:26px;margin:auto}.touch-actions button small{font-weight:700;font-size:10px;letter-spacing:1px}.touch-actions button kbd{display:none}.touch-actions #touch-jump{height:78px;width:78px;border-radius:27px;background:#edaa59f5;color:#604325;border-color:#ffe5b4}.touch-actions #touch-jump .ui-icon{height:29px;width:29px}.touch-actions #touch-special{margin-bottom:35px;background:#d7efdeed}.touch-actions button.ready{background:#b8ded1;color:#205e58;border-color:#eaffd8;box-shadow:0 4px 0 #3b7765,0 0 0 4px #c0e4bc22}.touch-actions button:active{transform:translateY(3px) scale(.97);box-shadow:0 1px 0 #1d594638}
#touch-run,#touch-throw{display:flex;align-items:center;gap:7px;padding:10px 15px;background:#fff0dce6;border:1px solid #fff7e6;color:#386d63;border-radius:15px;box-shadow:0 3px 0 #52624c44;font-weight:650;min-height:44px}#touch-run .ui-icon{width:19px;height:19px}#touch-run.active{background:#286f6a;color:#fff5df;border-color:#9ed5bf}
#joystick{border:2px solid #f8edcf88;background:radial-gradient(circle,#274f3c20 45%,#f2e6c924 46%,#f2e6c915 65%);box-shadow:inset 0 0 0 7px #fff2d30f,0 5px 25px #152f2126}#joystick::before{content:'移動';position:absolute;left:0;right:0;bottom:-24px;text-align:center;font-size:10px;letter-spacing:2px;color:#fff1d7bd;text-shadow:0 1px 4px #1b392d}#joystick-knob{background:linear-gradient(145deg,#fff3d9e8,#ddc9a59c);border:2px solid #fff7e5;box-shadow:0 4px 0 #385f484a,0 6px 12px #27463825}
body:not(.touch) .touch-actions{right:26px;bottom:78px;gap:10px}body:not(.touch) .touch-actions button{width:58px;height:66px;border-radius:18px;font-size:18px;gap:3px;position:relative}body:not(.touch) .touch-actions button .ui-icon{width:24px;height:24px}body:not(.touch) .touch-actions #touch-jump{width:66px;height:74px;border-radius:21px}body:not(.touch) .touch-actions #touch-special{margin-bottom:0}body:not(.touch) .touch-actions button small{font-size:10px}body:not(.touch) .touch-actions button kbd{position:absolute;top:-8px;right:-5px;display:block;padding:0 4px;background:#2d5d53;color:#fff5dd;border:1px solid #e7e2bd;font-size:9px;line-height:1.5;margin:0;letter-spacing:0}body:not(.touch) #touch-run{right:239px;bottom:79px;padding:10px;font-size:11px;min-height:45px;border-radius:14px}body:not(.touch) #touch-throw{bottom:162px;right:29px}
#interaction-prompt{top:64%;background:#fff4deef;color:#335b50;border:1px solid #fffbe7;border-radius:14px;box-shadow:0 4px 0 #81937e44;padding:11px 17px;font-weight:650;font-size:13px}#interaction-prompt kbd{background:#32807b;color:#fff7dd;border-color:#26625c;padding:1px 7px}#toast{background:#fff4e1f2;border:1px solid #fff8e9;color:#426254;border-radius:16px;box-shadow:0 5px 24px #193b2d30;backdrop-filter:none;font-size:14px}#route-compass{bottom:25px}#checkpoint-note{font-size:10px;letter-spacing:.5px}#context-controls{font-size:10px}#crosshair{opacity:.35}
#modal{border:2px solid #fff7e7;background:#fff3df;border-radius:26px;box-shadow:0 10px 0 #5574602a,0 30px 100px #122e2670;padding:38px;max-height:calc(100dvh - 32px)}#modal h2{letter-spacing:1px;color:#315f56}#modal p{color:#697866}.close-button{border-radius:12px!important;background:#e4e4cf!important;color:#4f7060!important}.name-input{border-radius:13px;border:2px solid #d2d4b9;font-size:19px;background:#fffaf1}.name-input:focus{border-color:#6cac99;outline:none}.deduction-options button{border-radius:14px;background:#f4ebd5;border:1px solid #d3d0b7;box-shadow:0 3px 0 #b2b79744}.deduction-options button:hover{background:#dcedd4;border-color:#8db395}.quality-options button,.pause-actions button{border-radius:12px!important}.journal-tabs button{border-radius:10px;background:#e8e5ce;color:#557461}.medal{border-radius:13px;border:1px solid #d9d5bb}.medal.earned{background:#f1deb1;border-color:#ddc391}.complete-card{background:#fff3df;border:2px solid #fff8e8;border-radius:27px;box-shadow:0 8px 0 #1c42313d,0 25px 80px #183b2e66}.complete-card h2{color:#2f6c60}.completion-stamp{color:#268c84;font-weight:750}
#story-panel{display:grid;grid-template-columns:126px minmax(0,1fr);gap:0 23px;width:min(820px,92vw);padding:25px 29px 20px 20px;border:2px solid #fff8e8;border-radius:26px;background:#fff4e0f5;color:#3d574b;bottom:5%;box-shadow:0 8px 0 #1a413434,0 20px 65px #112e364a;backdrop-filter:none}#story-portrait{grid-column:1;grid-row:1/4;align-self:center;width:126px;height:140px;position:relative;border-radius:22px;background:radial-gradient(ellipse at 50% 45%,#f8e6ba,#f8e6ba00 72%);overflow:hidden}#story-portrait .portrait-sprite{position:absolute;width:128px;height:128px;left:0;top:4px;background:url('./neng-spritesheet.png') no-repeat;background-size:1536px 2288px;background-position:-30px -27px}#story-portrait img{width:126px;height:140px;object-fit:contain;display:none}#story-portrait[data-avatar=recorder] .portrait-sprite,#story-portrait[data-avatar=letter] .portrait-sprite{display:none}#story-portrait[data-avatar=recorder] img.recorder-portrait,#story-portrait[data-avatar=letter] img.letter-portrait{display:block}.story-header{grid-column:2;color:#30786e;font-size:15px;gap:10px;min-height:25px}.story-header::before{content:'';width:6px;height:6px;background:#eab15e;border-radius:50%}.story-header b{letter-spacing:1px;font-weight:750}#story-page{font-size:11px;letter-spacing:1px;color:#8b9681}#story-text{grid-column:2;font-size:17px;line-height:1.85;letter-spacing:.6px;margin:11px 0 17px;max-height:30vh}.story-footer{grid-column:2}.story-footer small{color:#97a08a;font-size:10px;letter-spacing:.5px}#story-next{border:1px solid #77b29b;background:#39877c;color:#fff8e8;padding:10px 18px;border-radius:12px;box-shadow:0 3px 0 #206057;font-weight:650;font-size:13px}#story-next:active{transform:translateY(2px);box-shadow:0 1px 0 #206057}
#achievement-toast{position:absolute;z-index:60;left:50%;top:140px;bottom:auto;transform:translate(-50%,-18px) scale(.92);opacity:0;pointer-events:none;width:max-content;max-width:90vw;display:flex;align-items:center;gap:13px;padding:14px 23px 14px 14px;border:2px solid #fff3c6;border-radius:21px;background:linear-gradient(120deg,#28685e,#204c46);color:#fff1d0;box-shadow:0 7px 0 #193e3733,0 15px 35px #17382b30;transition:opacity .35s,transform .5s cubic-bezier(.18,1.5,.35,1);white-space:normal}#achievement-toast.visible{opacity:1;transform:translate(-50%,0) scale(1)}.achievement-medallion{width:52px;height:52px;flex-shrink:0;border-radius:50%;display:grid;place-content:center;background:linear-gradient(135deg,#ffe6a1,#e6ad51);border:3px double #a36e31;color:#865323;font-size:27px;box-shadow:0 0 25px #f4cb7640}.achievement-copy{display:flex;flex-direction:column;gap:4px}.achievement-copy small{font-size:9px;letter-spacing:3px;color:#bfd4bd}.achievement-copy strong{font-size:17px;letter-spacing:1px;color:#ffe4a1}.achievement-copy span{font-size:10px;color:#d1dfc9}#achievement-toast .spark{position:absolute;width:5px;height:5px;background:#ffe1a2;border-radius:1px;left:30px;top:38px;opacity:0}#achievement-toast.visible .spark{animation:medal-spark .95s ease-out both;animation-delay:calc(var(--i)*.035s)}#achievement-toast.visible .achievement-medallion{animation:medal-bounce .7s ease-out}#achievement-toast::after{content:'';position:absolute;inset:0;border-radius:19px;background:linear-gradient(110deg,transparent 25%,#ffebb72b 40%,transparent 55%);background-size:250% 100%;opacity:0}#achievement-toast.visible::after{animation:medal-shine 1.2s .2s ease-out}
@keyframes medal-spark{0%{opacity:0;transform:translate(0,0) scale(0)}25%{opacity:1}100%{opacity:0;transform:translate(var(--sx),var(--sy)) rotate(120deg) scale(.5)}}@keyframes medal-bounce{0%{transform:scale(.3) rotate(-30deg)}55%{transform:scale(1.12) rotate(8deg)}100%{transform:scale(1) rotate(0)}}@keyframes medal-shine{0%{opacity:1;background-position:160% 0}100%{opacity:0;background-position:-50% 0}}
@media(max-width:900px){.objective{top:14px;left:15px;padding:10px 13px 10px 10px;border-radius:17px;max-width:58vw}.objective strong{font-size:15px}.objective small{font-size:9px;letter-spacing:1px}.objective #sub-objective{font-size:10px;margin-top:2px}.objective-icon{width:33px;height:41px;font-size:25px}.hud-right{top:16px;right:17px;gap:7px}.hud-right #timer,.hud-right #secret-count{padding:9px 10px;font-size:12px}.case-actions{top:68px;right:17px;gap:7px}.case-actions button{padding:8px 10px;font-size:11px}.case-actions .ui-icon{width:15px;height:15px}#story-text{font-size:16px}#achievement-toast{top:121px}}
@media(max-height:530px){.objective{padding:8px 12px 9px 9px}.objective strong{font-size:14px}.objective #sub-objective{display:none}.objective-icon{height:35px;width:30px;font-size:23px}.hud-right{top:14px}.hud-right .icon-button{height:35px;width:35px;border-radius:11px}.hud-right #timer,.hud-right #secret-count{padding:8px 10px;border-radius:10px}.case-actions{top:61px}.case-actions button{padding:7px 9px;border-radius:10px}.touch-actions{bottom:26px;right:23px;gap:11px}.touch-actions button{width:55px;height:55px;border-radius:19px}.touch-actions #touch-jump{width:67px;height:67px;border-radius:23px}.touch-actions #touch-special{margin-bottom:22px}#touch-run{min-height:36px;padding:7px 12px;bottom:151px;left:44px}#touch-run .ui-icon{width:17px;height:17px}#story-panel{bottom:5%;width:min(720px,88vw);grid-template-columns:97px minmax(0,1fr);gap:0 15px;padding:15px 21px 15px 14px;border-radius:21px}#story-portrait{width:97px;height:114px}#story-portrait .portrait-sprite{transform:scale(.77);transform-origin:top left;top:7px}#story-portrait img{width:97px;height:114px}.story-header{font-size:12px;min-height:20px}#story-text{font-size:14px;line-height:1.75;margin:8px 0 12px;max-height:29vh}#story-next{font-size:12px;padding:8px 14px}.story-footer small{font-size:9px}#achievement-toast{top:105px;padding:10px 16px 10px 10px;gap:11px;border-radius:16px}.achievement-medallion{width:40px;height:40px;font-size:22px}.achievement-copy strong{font-size:14px}.achievement-copy span{font-size:9px}.achievement-copy small{font-size:8px}#modal{padding:26px 30px}.complete-card{padding:24px}.menu-content h2{font-size:16px}}
@media(max-width:600px) and (orientation:portrait){.objective{left:12px;top:14px;max-width:calc(100vw - 24px);right:12px;padding:12px;gap:9px;min-height:74px}.objective>div{padding-right:18px}.objective strong{font-size:14px;line-height:1.5;letter-spacing:.4px}.objective small{font-size:9px;letter-spacing:.3px}.objective #sub-objective{display:none}.objective-icon{width:27px;font-size:24px}.hud-right{top:103px;left:13px;right:auto;gap:6px}.hud-right #timer{display:block;font-size:11px;padding:8px}.hud-right #secret-count{font-size:10px;padding:8px}.hud-right .icon-button{width:32px;height:32px;font-size:17px}.case-actions{top:103px;right:13px;gap:5px}.case-actions button{font-size:10px;padding:8px;border-radius:10px;gap:4px;min-height:32px}.case-actions .ui-icon{width:13px;height:13px}.case-actions #recover-button{width:32px;padding:8px;font-size:0}.case-actions #recover-button .ui-icon{width:16px;height:16px}#toast{top:170px;font-size:12px;width:90%;max-width:90%;padding:11px 14px}#event-banner{top:158px}#achievement-toast{top:160px;max-width:92vw;padding:12px 17px 12px 12px;border-radius:18px}.achievement-copy strong{font-size:15px}.achievement-medallion{height:43px;width:43px}#story-panel{grid-template-columns:68px minmax(0,1fr);gap:0 12px;padding:17px;width:calc(100vw - 26px);bottom:6%;border-radius:23px}#story-portrait{width:68px;height:83px;grid-row:1/3;align-self:start;margin-top:1px}#story-portrait .portrait-sprite{transform:scale(.55);transform-origin:top left;top:4px}#story-portrait img{width:68px;height:83px}.story-header{font-size:13px}#story-text{grid-column:1/-1;margin:14px 0 18px;font-size:16px;line-height:1.85;max-height:36vh}.story-header{align-self:center;grid-row:1/3;flex-wrap:wrap}#story-page{margin-left:0;width:100%;padding-left:16px}.story-footer{grid-column:1/-1}.story-footer small{max-width:none;font-size:10px}#story-next{padding:10px 15px;font-size:12px}#joystick{width:94px;height:94px;left:21px;bottom:76px}#joystick-knob{left:23px;top:23px}#touch-run{bottom:190px;left:22px;padding:8px 12px;min-height:39px;font-size:11px}.touch-actions{right:14px;bottom:72px;gap:9px}.touch-actions button{height:48px;width:48px;border-radius:17px}.touch-actions button .ui-icon{width:22px;height:22px}.touch-actions #touch-jump{height:59px;width:59px;border-radius:20px}.touch-actions #touch-special{margin-bottom:28px}.touch-actions button small{font-size:9px}#touch-throw{bottom:171px;right:23px;min-height:38px;font-size:11px}#route-compass{bottom:23px}#checkpoint-note{bottom:24px;font-size:9px;max-width:55%;white-space:nowrap;overflow:hidden}#modal{padding:29px 23px}#modal h2{font-size:22px}.medals{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){button,#achievement-toast{transition:opacity .15s}#achievement-toast .spark,#achievement-toast.visible .achievement-medallion,#achievement-toast.visible::after{animation:none}}

#hud{z-index:12}body[data-quality=low] #modal::backdrop{backdrop-filter:none}
.evidence-tags{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.evidence-tags span{font-size:11px;padding:6px 9px;border-radius:20px;background:#deead2;color:#4b7160}.answer-index{display:inline-grid;place-content:center;width:24px;height:24px;margin-right:10px;border-radius:8px;background:#d6dcc4;color:#54735e;font-size:11px}.puzzle-sequence{padding:13px;border:1px dashed #a7b497;border-radius:12px;min-height:54px;font-size:13px!important;line-height:1.8}.puzzle-bottom{display:flex;gap:10px;justify-content:flex-end}.puzzle-bottom button,.puzzle-submit{border:0;border-radius:11px;padding:11px 16px;background:#3c887c;color:#fff5df;font-size:13px}#puzzle-reset{background:#e8dec6;color:#677861}.clock-input{display:flex;gap:15px;align-items:center;justify-content:center;margin:23px 0}.clock-input label{display:grid;gap:5px;color:#6a7e67;font-size:12px}.clock-input input{width:100px;border:1px solid #aebc9b;border-radius:15px;background:#fff9e9;color:#356e5c;font:36px 'Segoe UI',sans-serif;text-align:center;padding:10px}.puzzle-help{border-top:1px solid #d9d8bb;padding-top:13px;font-size:12px;cursor:pointer}.evidence-card{background:#f0e8d1;border:1px solid #d6d6bc;padding:15px;border-radius:13px;margin:12px 0}.evidence-card b{font-size:14px;color:#447968}.evidence-card p{font-size:13px!important;line-height:1.8!important}.evidence-card small{font-size:10px;color:#929978}.journal-tabs{flex-wrap:wrap}.deduction-options{gap:9px;margin:18px 0}.deduction-options button{font-size:14px;padding:12px}.puzzle-help p{font-size:13px!important}
#touch-wave{position:absolute;right:25px;bottom:170px;background:#fff1dcde;border:1px solid #fff8e9;border-radius:13px;padding:9px 13px;color:#426d62;pointer-events:auto;font-size:11px}#touch-wave span{opacity:.5;margin-left:7px}body.touch #touch-wave{right:23px;bottom:164px}body.touch #touch-wave span{display:none}@media(max-height:530px){body.touch #touch-wave{right:23px;bottom:145px}}@media(max-width:600px) and (orientation:portrait){body.touch #touch-wave{right:22px;bottom:215px}}
