@font-face{font-family:system-rounded;src:local("Arial Rounded MT Bold");font-display:swap}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap!important;border:0!important}:root{font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#35443d;background:#e4e7dc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 10%,#f0eee2,#dfe5d8 90%)}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid #718d77;outline-offset:4px}button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}#app{position:relative;width:100%;max-width:420px;height:100dvh;max-height:1000px;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#f3eee4;box-shadow:0 0 80px #58634d18}.topbar{position:relative;display:flex;align-items:center;gap:16px;flex:0 0 auto;padding:calc(22px + env(safe-area-inset-top,0px)) 24px 18px;z-index:2;background:#f3eee4}.brand{flex:1;white-space:nowrap}.eyebrow{font-size:10px;letter-spacing:1.8px;margin:0 0 9px;color:#879080;font-weight:500}h1{font-size:29px;line-height:1.1;letter-spacing:1px;margin:0;font-weight:850}.score-wrap{display:flex;flex-direction:column;align-items:center;min-width:40px;align-self:center}.score-label{font-size:10px;letter-spacing:1px;color:#879080}#score{font-family:system-rounded,system-ui,sans-serif;font-size:35px;font-weight:800;line-height:1.1;transition:transform .18s,color .18s;font-variant-numeric:tabular-nums}.score-pop{transform:scale(1.14);color:#68875e}.icon-button{border:1px solid #d4d8c8;background:transparent;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;color:#61715f;padding:0}#playfield{position:relative;flex:1;min-height:0;overflow:hidden;border-top:1px solid #dedfd2}#game{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline:none}.scene-meta{position:absolute;top:15px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;font-size:10px;letter-spacing:1px;color:#8c9685}.stage-tag{border:1px solid #d6d9cc;border-radius:4px;padding:5px 8px;line-height:1}.stage-tag i{font-style:normal;margin-left:5px;color:#a4ad99}#toast{position:absolute;bottom:-14px;left:0;right:0;text-align:center;font-size:12px;font-weight:750;line-height:1;color:#5e8850;pointer-events:none}.score-wrap{position:relative}.bottom-bar{flex:0 0 auto;padding:15px 24px calc(16px + env(safe-area-inset-bottom,0px));background:#edf0e4;border-top:1px solid #d8decf;z-index:2;user-select:none}.status-row{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:11px}.status-row strong{font-weight:600}#current-name{margin-left:auto;border:1px solid #d0d8c8;padding:2px 7px;border-radius:4px;color:#73836a;font-size:10px}.status-dot{width:6px;height:6px;border-radius:50%;background:#8a9e77}.status-dot[data-phase=falling],.status-dot[data-phase=holding]{background:#c29760}.status-dot[data-phase=failing],.status-dot[data-phase=over]{background:#ba7769}.instructions{display:flex;align-items:center;justify-content:center;gap:17px;font-size:16px;letter-spacing:1px;font-weight:650}.instructions b{font-size:12px;color:#aeb7a0;font-weight:400}.footer-note{text-align:center;font-size:10px;letter-spacing:.4px;color:#8d9685;margin:7px 0 0}.overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#eeece154;backdrop-filter:blur(3px);padding:22px}.modal{width:min(100%,322px);background:#fbf6eafb;border:1px solid #d5d5c5;border-radius:19px;padding:27px 24px 23px;text-align:center;box-shadow:0 14px 40px #4b594522}.modal .eyebrow{font-size:10px;letter-spacing:3px;margin-bottom:11px}.modal h2{font-size:23px;letter-spacing:.5px;margin:0 0 11px}.modal>p:not(.eyebrow){font-size:12px;line-height:1.9;color:#89917e;margin:0 0 19px}#result{display:flex;flex-direction:column;margin:8px 0 23px}#result strong{font-size:67px;line-height:1.15;font-family:system-rounded,system-ui,sans-serif;font-weight:800}#result span{font-size:11px;color:#8a9580;letter-spacing:1px}.primary-button{display:block;border:0;border-radius:10px;background:#576e55;color:#fbf7e9;width:100%;min-height:48px;font-size:15px;font-weight:600;letter-spacing:2px;box-shadow:0 3px #41533f;transition:transform .1s}.primary-button:active{transform:translateY(2px);box-shadow:0 1px #41533f}.text-button{color:#8b957f;background:none;border:0;padding:17px 12px 0;font-size:12px}@media(min-width:650px){#app{height:calc(100dvh - 36px);border:1px solid #cdd4c1;border-radius:22px}.topbar{padding-top:25px}}@media(max-height:670px){.topbar{padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:11px}.eyebrow{font-size:9px;margin-bottom:7px}h1{font-size:25px}.bottom-bar{padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}.status-row{margin-bottom:8px}.instructions{font-size:14px}.footer-note{font-size:9px}.scene-meta{top:10px}.modal{padding:18px 20px}#result{margin-bottom:15px}#result strong{font-size:48px}}@media(max-width:350px){.topbar{padding-left:18px;padding-right:18px;gap:11px}.eyebrow{font-size:9px;letter-spacing:1px}h1{font-size:25px}.instructions{gap:13px}.bottom-bar{padding-left:18px;padding-right:18px}}@media(prefers-reduced-motion:reduce){#score,.primary-button{transition:none}}.sound-button{position:absolute;right:24px;bottom:-36px;z-index:3;display:flex;align-items:center;gap:4px;border:1px solid #d6d9cc;border-radius:6px;padding:5px 8px;background:#f3eee4ed;color:#74856b;font-size:10px;min-height:28px;touch-action:manipulation}.sound-button>span:first-child{font-size:16px;line-height:1}.sound-button[aria-pressed=true]{color:#a09b8d}.scene-meta{right:95px}.score-pop{transform:scale(1.25);color:#5e8850}.mode-bar{flex:0 0 auto;padding:0 24px 9px;background:#f3eee4}.mode-switch{display:flex;gap:4px;padding:3px;border-radius:9px;background:#e5e8da;width:100%}.mode-switch button{flex:1;border:0;border-radius:6px;background:transparent;color:#839079;font-size:12px;letter-spacing:1px;min-height:30px}.mode-switch button[aria-pressed=true]{background:#fbf7ec;color:#4e6750;box-shadow:0 1px 4px #48563e15;font-weight:700}#mode-hint{margin:7px 0 0;text-align:center;font-size:10px;letter-spacing:.4px;color:#88957c}.score-number{display:flex;align-items:baseline;gap:3px}#score-unit{font-size:10px;color:#859477}#app[data-mode=cantilever] #score{font-size:30px}.sound-button{bottom:auto;top:calc(100% + 78px)}.topbar{z-index:6}#app[data-mode=mixed] #score{font-size:30px}#round-duration{margin-top:8px;color:#73836a;letter-spacing:.4px}.errand-panel{display:flex;align-items:center;gap:7px;min-height:53px;margin-top:7px;padding:4px 8px 4px 10px;border:1px solid #d8ddcc;border-radius:8px;background:#edf0e3}.errand-copy{flex:1;min-width:0}.errand-copy>div{display:flex;align-items:baseline;gap:7px}.errand-label{font-size:9px;white-space:nowrap;color:#89957e}.errand-copy strong{font-size:12px;color:#596e51;white-space:nowrap}.errand-copy p{font-size:10px;line-height:1.5;margin:4px 0 0;color:#78876d}.errand-action{flex:0 0 44px;text-align:center;font-size:10px;color:#819074}.errand-action button{border:0;border-radius:6px;background:#dfe6d2;color:#607554;font-size:10px;padding:0;min-width:44px;min-height:40px}.errand-done{background:#e4edd9;border-color:#b7cca2}.errand-done .errand-action{color:#527a40;font-weight:700}.errand-pop{animation:errand-glow .65s ease-out}#result #result-errand{font-size:10px;letter-spacing:0;margin-top:9px;color:#668652}.photo-versions{display:flex;gap:4px;padding:3px;margin-bottom:10px;background:#e5e8da;border-radius:8px}.photo-versions button{flex:1;border:0;border-radius:5px;min-height:34px;background:transparent;color:#78856e;font-size:12px}.photo-versions button[aria-pressed=true]{background:#fcf7eb;color:#4d6945;font-weight:700}.photo-dialog:has(.photo-versions:not([hidden])) img{max-height:calc(94dvh - 215px)}@keyframes errand-glow{0%{box-shadow:0 0 #92b07988}to{box-shadow:0 0 0 6px #92b07900}}@media(prefers-reduced-motion:reduce){.errand-pop{animation:none}}@media(max-height:670px){.errand-panel{min-height:48px;margin-top:5px}.errand-copy p{margin-top:2px}.mode-bar{padding-left:18px;padding-right:18px}.modal .eyebrow,.modal h2{margin-bottom:7px}.modal>p:not(.eyebrow){margin-bottom:9px}.modal #result{margin-top:5px;margin-bottom:12px}.modal #round-duration,.modal #result #result-errand{margin-top:5px}}.result-actions{display:flex;gap:8px}.result-actions>*{flex:1;min-width:0;letter-spacing:1px;font-size:14px}.outline-button{border:1px solid #b4bea6;border-radius:10px;background:#f1f0e3;color:#61715a;min-height:48px;padding:9px 12px;font-weight:600}.modal{max-height:100%;overflow-y:auto;overscroll-behavior:contain}.photo-dialog{width:min(94vw,460px);max-height:94dvh;border:1px solid #cdd4c1;border-radius:16px;background:#f8f3e8;color:#35443d;padding:16px;margin:auto;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 16px 60px #35443d40}.photo-dialog::backdrop{background:#35443d99;backdrop-filter:blur(4px)}.photo-dialog h2{font-size:17px;text-align:center;margin:0 0 12px}.photo-dialog img{display:block;width:100%;height:auto;max-height:calc(94dvh - 170px);object-fit:contain;user-select:auto;-webkit-user-select:auto;-webkit-touch-callout:default;border-radius:8px}.photo-dialog p{font-size:12px;color:#74816c;text-align:center;line-height:1.5;margin:12px 0}.photo-actions{display:flex;gap:10px}.photo-actions>*{flex:1;min-width:0;font-size:14px;letter-spacing:1px}.photo-actions a{display:flex;align-items:center;justify-content:center;text-decoration:none}.photo-actions a:focus-visible{outline:3px solid #718d77;outline-offset:3px}@media(max-height:670px){.mode-bar{padding-bottom:7px}.mode-switch button{min-height:27px}#mode-hint{margin-top:5px}.sound-button{top:calc(100% + 71px)}}#playfield>.sound-button{top:11px;bottom:auto;right:24px}.errand-action{line-height:1.5;overflow-wrap:anywhere}.photo-dialog{--photo-controls:275px;max-height:94dvh;padding:14px 16px}.photo-dialog:has(.photo-versions:not([hidden])){--photo-controls:321px}.photo-name-field{margin-bottom:10px}.photo-name-field>div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:6px}.photo-name-field label{font-weight:600}.photo-name-field label span,#photo-name-count{font-weight:400;color:#839078;font-size:11px}.photo-name-field input{display:block;width:100%;min-height:42px;border:1px solid #c5cdb7;border-radius:8px;padding:9px 10px;background:#fcf8ee;color:#35443d;font:inherit;font-size:16px;line-height:1.4;user-select:text;-webkit-user-select:text;touch-action:manipulation}.photo-name-field input:focus{outline:2px solid #7b956b;outline-offset:1px}.photo-name-field input::placeholder{color:#97a08b;font-size:14px}.photo-dialog .photo-name-field p{font-size:10px;line-height:1.5;text-align:left;margin:5px 0 0}.photo-frame{height:clamp(120px,calc(94dvh - var(--photo-controls)),510px);display:flex;justify-content:center;align-items:center;border-radius:8px;background:#eeede2}.photo-dialog .photo-frame img{width:100%;height:100%;max-height:100%;object-fit:contain}.photo-frame[aria-busy=true]{background:#e9eddf}.photo-actions a[aria-disabled=true]{opacity:.45;cursor:wait}.photo-dialog #photo-note{font-size:11px;margin:10px 0}@media(max-height:670px){.modal:has(#result:not([hidden])){padding:12px 16px}.modal:has(#result:not([hidden])) .eyebrow{display:none}.modal h2{font-size:21px;margin-bottom:6px}.modal>p:not(.eyebrow){font-size:11px;line-height:1.6;margin-bottom:8px}.modal #result strong{font-size:40px}}
