:root{--ink:#254e45;--muted:#8b9990;--paper:#f6f5ee;--line:#e2e5d9;--orange:#e38a58;--green:#3f7663;--cream:#fffef7;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #eaa76d;outline-offset:4px}a{color:inherit}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}.site-header{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:0 max(30px,calc((100vw - 1400px)/2));background:#fbfaf5}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:21px;font-weight:850;letter-spacing:1px;white-space:nowrap}.brand-mark{display:block;width:40px;height:43px;overflow:hidden;background:#f6db74;border-radius:12px 12px 15px 15px;transform:rotate(-5deg);border:1.5px solid #cdb057}.brand-mark img{width:40px;height:48px;object-fit:contain;margin-top:3px}.brand-dot{font-size:10px;margin-left:3px;vertical-align:super;font-weight:500;letter-spacing:0;color:#9caa98}.header-caption{font-size:11px;color:#8e9a8b;letter-spacing:1.8px;display:flex;align-items:center;gap:10px}.header-caption i{width:4px;height:4px;background:#b9c1ae;border-radius:50%}.header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.best-label{display:flex;align-items:center;gap:7px;font-size:12px;color:#829381;margin-right:15px}.best-label b{font-family:var(--mono);font-size:15px;color:#49735d;margin-left:4px}.best-label .icon{width:16px;height:16px}.icon-button{border:1px solid var(--line);background:transparent;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;transition:background .15s}.icon-button:hover:not(:disabled){background:#e9edde}.icon-button:disabled{opacity:.35}.icon-button.small{width:30px;height:30px;border-color:#d8e0d0}.icon-button.small .icon{width:15px;height:15px}main{max-width:1400px;margin:auto;padding:0 30px}.intro{display:flex;align-items:center;justify-content:space-between;padding:32px 0 27px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.9px;margin:0 0 10px;display:flex;gap:7px;align-items:center;color:#8c9d83}.eyebrow>span{width:5px;height:5px;border-radius:50%;background:#8d9c73}.intro h1{font-size:31px;letter-spacing:1px;margin:0;font-weight:850;line-height:1.5}.intro h1>span{color:#d67d4e}.intro-copy{font-size:12px;color:#8c9789;margin:8px 0 0;letter-spacing:.4px}.intro-sticker{display:flex;align-items:center;gap:13px;background:#eeecdb;padding:13px 18px;border-radius:5px;transform:rotate(2deg);position:relative;margin-right:6px;border:1px solid #e1e1c8}.intro-sticker:before{content:'';position:absolute;top:-6px;left:40%;width:37px;height:15px;background:#d9ddc5aa;transform:rotate(-8deg)}.intro-sticker>.icon{width:28px;height:28px;color:#9ca27b}.intro-sticker>span{font-size:10px;color:#8b927d;line-height:1.9}.intro-sticker b{font-size:13px;color:#627658;font-weight:600}.intro-sticker .sticker-star{font-size:34px;color:#b2b591;margin-left:17px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:21px;align-items:stretch}.game-panel{border:1px solid #d3ddcc;border-radius:13px;overflow:hidden;background:#fffef7;box-shadow:0 5px 0 #e9ecdf;position:relative;align-self:start}.game-topbar{height:48px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;background:#fcfcf5;border-bottom:1px solid #dce4d3}.campus-name{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.7px}.live-dot{width:6px;height:6px;border-radius:50%;background:#7d9b70;box-shadow:0 0 0 3px #e9eddf}.campus-name-en{font-family:var(--mono);color:#a0ac97;font-size:8px;font-weight:400;margin-left:2px;letter-spacing:1.4px}.game-stats{display:flex;align-items:center;gap:18px}.timer{display:flex;align-items:center;gap:6px}.timer .icon{width:15px;height:15px;color:#8e9c83}.timer b{font-size:16px;font-family:var(--mono);font-weight:600;letter-spacing:1px}.timer.urgent{color:#c76c50}.inventory{display:flex;align-items:center;gap:5px;font-size:10px;color:#9a9e87}.inventory b{color:#7d805c;font-family:var(--mono);font-size:13px}.tiny-board{color:#d6ab54;transform:rotate(-12deg);font-size:19px}.map-wrap{position:relative;aspect-ratio:1008/672;isolation:isolate;background:#dce6cb;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.map-corner{position:absolute;top:13px;left:18px;color:#7a8e6c;display:flex;align-items:center;gap:9px;font-size:8px;letter-spacing:1px;pointer-events:none}.compass{display:flex;flex-direction:column;align-items:center;line-height:1;font:8px var(--mono)}.compass>span{font-size:20px}.alert-banner{position:absolute;top:16px;left:50%;transform:translateX(-50%);background:#fff4df;border:1px solid #e4b77c;color:#b57442;border-radius:30px;font-size:11px;display:flex;align-items:center;gap:7px;padding:8px 13px;white-space:nowrap;box-shadow:0 3px 8px #5b62431a;pointer-events:none}.alert-banner.danger{color:#b65a4a;background:#fff0e9;border-color:#e9aa8f;animation:alertPulse 1.2s infinite}.alert-banner .icon{width:15px;height:15px}.grove-badge{position:absolute;bottom:20px;left:20px;background:#426b4ddf;color:#f0f2da;padding:7px 11px;font-size:10px;border-radius:5px;pointer-events:none}.grove-badge span{margin-right:5px}.stage-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#3b65451c;backdrop-filter:blur(1.5px);z-index:3}.start-card,.pause-card,.result-card{width:325px;text-align:center;border:1px solid #d2d5ba;border-radius:12px;background:#fffef5f5;padding:22px 26px 18px;position:relative;box-shadow:0 8px 0 #53634c14,0 20px 55px #2d54392b}.card-sticker{position:absolute;top:13px;right:-12px;background:#eccb74;color:#8b7147;transform:rotate(9deg);font-size:8px;padding:5px 10px;letter-spacing:1px;border:1px dashed #c6a44d}.start-dragon{height:100px;width:88px;object-fit:contain;margin:0 0 4px;filter:drop-shadow(0 4px 0 #e0d8b1)}.start-card .eyebrow,.pause-card .eyebrow,.result-card .eyebrow{justify-content:center;color:#9b9a76;font-size:8px;letter-spacing:2px;margin:7px 0}.start-card h2,.pause-card h2,.result-card h2{margin:7px 0 9px;font-size:24px;letter-spacing:.5px;font-weight:850}.start-card>p:not(.eyebrow),.pause-card>p:not(.eyebrow),.result-card>p:not(.eyebrow){font-size:11px;color:#87917d;line-height:1.9;margin:0 0 15px}.start-card p b{color:#d58952}.mode-switch{display:grid;grid-template-columns:1fr 1fr;background:#f0f0e3;border-radius:6px;padding:3px;margin:12px 0 10px;gap:3px}.mode-switch button{border:0;background:transparent;font-size:10px;padding:7px;border-radius:4px;color:#949b83}.mode-switch button.selected{background:#fffef7;box-shadow:0 1px 4px #4a634311;color:#406951;font-weight:700}.primary-button{background:#335f4e;color:#fffef1;border:0;border-radius:6px;display:flex;align-items:center;justify-content:center;gap:14px;width:100%;padding:13px;font-size:12px;font-weight:650;transition:background .15s,transform .15s}.primary-button:hover{background:#254c3e;transform:translateY(-1px)}.primary-button .icon{width:15px;height:15px}.start-note{font-size:8px;color:#a0a48e;margin-top:13px;letter-spacing:.3px}.pause-illustration{display:block;font-size:38px;padding:10px}.pause-card{padding-bottom:20px}.pause-card h2{font-size:21px}.text-button{border:0;background:transparent;font-size:10px;color:#8d9781;margin-top:12px;text-decoration:underline;text-underline-offset:4px}.result-card{width:350px}.result-dragon{height:84px;transform:rotate(7deg)}.result-card h2{font-size:22px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:10px 0 18px;margin-bottom:13px;border-bottom:1px dashed #dce0cb;gap:5px}.result-stats b{font-family:var(--mono);font-size:25px;display:block;color:#d48956}.result-stats span{display:block;font-size:9px;color:#929c84;margin-top:4px}.new-record{display:block;font-size:9px;color:#ac9656;margin-top:12px}.game-bottom{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:8px;background:#fbfcf4;border-top:1px solid #d9e2cd}.board-status{display:flex;align-items:center;gap:6px;font-size:10px;color:#7d9073;white-space:nowrap}.board-status-dot{width:5px;height:5px;border-radius:50%;background:#d7ad62}.board-status-dot.placed{background:#6f9c6a}.map-legend{display:flex;align-items:center;gap:11px;font-size:8px;color:#93a087;white-space:nowrap}.map-legend>span{display:flex;align-items:center;gap:4px}.map-legend i{width:6px;height:6px;border-radius:50%;display:block}.legend-player{background:#dc8b58}.legend-student{background:#bb9bc0}.legend-guard{background:#627b8b}.map-legend .legend-grove{background:#7e9b66;border-radius:2px}.sidebar{display:flex;flex-direction:column;gap:14px;min-width:0}.mission-card,.upgrade-card,.diary-card{border:1px solid var(--line);border-radius:10px;padding:17px 17px 15px;background:#fffef8}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-heading h2{font-size:12px;font-weight:700;margin:0;letter-spacing:.3px}.mini-label{font-size:8px;color:#a2aa92;border:1px solid #e2e5d6;padding:3px 5px;border-radius:3px}.photo-score{display:flex;align-items:baseline;gap:5px;margin:17px 0 9px;position:relative}.photo-score>.icon{width:21px;height:21px;color:#9ba98b;margin-right:1px;align-self:center}.photo-score>b{font-size:34px;font-family:var(--mono);font-weight:600;line-height:1}.photo-score>span:not(.score-stamp){color:#9a9e88;font-size:10px}.photo-score .score-stamp{margin-left:auto;color:#ad9d6e;font-size:8px;align-self:center;transform:rotate(-8deg);border-bottom:1px dashed #cfc69e;padding:3px 0}.progress-track{height:7px;background:#ecefe2;border-radius:4px;overflow:hidden}.progress-track>div{height:100%;background:#7e9e75;border-radius:4px;transition:width .3s;width:0}.heat-row{display:flex;justify-content:space-between;align-items:center;margin:18px 0 8px;font-size:10px;color:#859075}.heat-row b{font-size:9px;font-weight:500;color:#9aa28b}.heat-emoji{color:#d88b64;font-size:15px;margin-left:3px}.heat-meter{height:6px;background:#eeece0;border-radius:4px;overflow:hidden;position:relative}.heat-meter>div{height:100%;background:linear-gradient(90deg,#e3c77a,#e49164,#cb6f5d);border-radius:4px;width:0;transition:width .3s}.heat-meter>span{position:absolute;top:0;bottom:0;left:25%;width:2px;background:#fffef8}.heat-meter>span:nth-of-type(2){left:50%}.heat-meter>span:nth-of-type(3){left:75%}.heat-hint{font-size:9px;color:#a5ac96;margin:8px 0 0;line-height:1.6}.upgrade-card{padding-bottom:7px}.heart-wallet{display:flex;align-items:center;gap:5px;background:#f8e9e3;color:#bb7d70;padding:4px 7px;border-radius:4px;font-family:var(--mono);font-size:11px}.heart-wallet .icon{width:11px;height:11px;fill:#d49684;stroke:none}.section-description{font-size:9px;color:#a2a68f;margin:6px 0 11px}.upgrade-button{display:flex;align-items:center;width:100%;padding:11px 0;border:0;border-top:1px dashed #e7e8db;background:transparent;text-align:left;gap:10px;transition:opacity .15s}.upgrade-button:hover:not(:disabled) .upgrade-price{background:#dfe8d7;color:#406c50}.upgrade-icon{width:34px;height:34px;border-radius:7px;display:grid;place-items:center;flex-shrink:0}.upgrade-icon .icon{width:18px;height:18px}.cart{background:#edf0df;color:#87966b}.decor{background:#fbecd4;color:#c09952}.map{background:#e5eee8;color:#78978b}.upgrade-info{display:flex;flex-direction:column;gap:5px;min-width:0}.upgrade-info b{font-size:10px;font-weight:600}.upgrade-info small{font-size:8px;color:#a2a78f;white-space:nowrap}.level{font-size:8px;font-weight:400;color:#a3ab91;margin-left:2px}.upgrade-price{margin-left:auto;display:flex;align-items:center;justify-content:center;gap:3px;font-family:var(--mono);font-size:11px;padding:5px 7px;min-width:38px;border-radius:4px;background:#f0f1e6;color:#82926e;transition:background .15s}.upgrade-price .icon{width:9px;height:9px;fill:currentColor;stroke:none}.upgrade-button:disabled .upgrade-price{color:#b3b9a3;background:#f3f4ed}.upgrade-button.maxed .upgrade-price{font-family:inherit;font-size:8px;background:#e9efdf;color:#8b9e75}.upgrade-button.affordable{opacity:1}.diary-card{padding-bottom:0;flex:1;display:flex;flex-direction:column;min-height:170px;max-height:223px;overflow:hidden}.diary-live{display:flex;align-items:center;gap:4px;font-size:8px;color:#9ca88f}.diary-live i{width:4px;height:4px;border-radius:50%;background:#8da678}.event-feed{margin-top:11px;flex:1;overflow:auto;scrollbar-width:thin;scrollbar-color:#d4dcc8 transparent;max-height:130px}.event-item{display:flex;gap:7px;margin:0 0 12px;font-size:9px;line-height:1.7}.event-dot{width:5px;height:5px;border-radius:50%;background:#94a880;flex-shrink:0;margin-top:5px}.event-item.alert .event-dot,.event-item.loss .event-dot{background:#d99b71}.event-item.photo .event-dot{background:#d3a6a8}.event-item p{margin:0;color:#8c9981}.event-item p b{font-size:8px;color:#617d5d;font-weight:600;margin-right:7px}.event-item time{font:7px var(--mono);color:#b3b8a6;white-space:nowrap}.diary-footnote{font-size:8px;color:#b2b79e;border-top:1px solid #e8eadc;padding:11px 0;margin-top:auto;white-space:nowrap}.control-bar{margin-top:20px;border:1px solid #e0e4d6;border-radius:9px;padding:13px 17px;background:#fbfbf3;display:flex;align-items:center;justify-content:space-between;gap:20px}.keyboard-guide{display:flex;gap:10px;align-items:center;color:#84927a;font-size:10px}.keyboard-guide>span:not(.key-group){display:flex;flex-direction:column;gap:4px}.control-sub{font-size:8px;color:#adb49e}.keyboard-guide>i{height:23px;width:1px;background:#e1e6d6;margin:0 7px}.key-group{display:flex;align-items:center;flex-direction:column;gap:2px}.key-group>span{display:flex;gap:2px}kbd{display:inline-grid;place-items:center;font-family:var(--mono);font-size:8px;border:1px solid #d9dfca;border-bottom-width:2px;border-radius:3px;background:#f8f9ef;color:#8c9c7b;min-width:18px;height:17px;line-height:1}.wide-key{width:41px;height:25px;font-size:9px}.stamina-track{height:3px;width:48px;background:#e3e8d7;border-radius:2px;overflow:hidden;display:block}.stamina-track>span{display:block;height:100%;background:#a5b68c;width:100%;transition:width .1s}.action-area{display:flex;align-items:center;gap:15px}.action-hint{font-size:10px;color:#91a07c}.interact-button{background:#e7a16c;color:#fffdf1;padding:11px 17px;border:1px solid #d38e5b;box-shadow:0 3px 0 #c98c59;border-radius:6px;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:650;min-width:152px;justify-content:center;transition:background .15s,transform .1s}.interact-button:hover:not(:disabled){background:#de945c}.interact-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #c98c59}.interact-button>kbd{background:#f0b883;border-color:#e1a16c;color:#fff9e9;min-width:21px;height:20px;font-size:10px}.interact-button>.icon{width:14px;height:14px;margin-left:5px}.interact-button:disabled{opacity:.6}.touch-pad,.run-button{display:none}footer{display:flex;align-items:center;gap:24px;padding:22px 0;color:#a0ab91;font-size:9px;letter-spacing:.5px}footer>span:last-child{margin-left:auto;color:#b3baa6}footer>button{border:0;padding:0;background:none;color:#99a68d;font-size:9px}footer>button:hover{color:#507653}footer>button span{padding-left:4px}dialog{width:min(570px,calc(100vw - 32px));border:1px solid #cdd8bf;border-radius:14px;padding:25px 30px;background:#fffef7;color:var(--ink);max-height:90dvh;overflow:auto;box-shadow:0 25px 100px #244c4433}dialog::backdrop{background:#24453766;backdrop-filter:blur(4px)}.dialog-top{display:flex;align-items:center;justify-content:space-between}.dialog-top .eyebrow{font-size:8px;letter-spacing:2px}dialog>h2{font-size:25px;margin:10px 0 22px;letter-spacing:.5px}.help-steps{display:flex;flex-direction:column;gap:17px}.help-steps>div{display:flex;gap:14px;align-items:flex-start}.help-steps>div>span{font-family:var(--mono);color:#d9a577;background:#f6edda;border-radius:5px;padding:6px;font-size:12px;flex-shrink:0}.help-steps p{font-size:11px;line-height:1.9;color:#8b9980;margin:0}.help-steps b{display:block;font-size:12px;color:#54714f;font-weight:650;margin-bottom:3px}.help-note{font-size:10px;color:#97a48b;line-height:1.9;background:#f0f3e6;padding:11px 13px;border-radius:6px;margin:22px 0 18px}.credits{border-top:1px dashed #dfe4d2;padding:12px 0 14px}.credits h3{font-size:11px;margin:0 0 7px}.credits p{font-size:9px;line-height:1.9;color:#a0a990;margin:6px 0}.credits a{color:#829b73;text-underline-offset:2px}body.keyboard-input .map-wrap{outline:none}@keyframes alertPulse{50%{box-shadow:0 0 0 4px #d9795114}}@media(min-width:1550px){.intro{padding-top:38px;padding-bottom:32px}.intro h1{font-size:35px}.game-layout{grid-template-columns:minmax(0,1fr) 305px;gap:24px}.sidebar{gap:18px}.mission-card,.upgrade-card,.diary-card{padding:20px}.diary-card{padding-bottom:0;max-height:245px}.upgrade-button{padding:13px 0}.diary-footnote{padding:13px 0}.section-heading h2{font-size:13px}.intro-copy{font-size:13px}}
@media(max-width:1100px){.header-caption{display:none}main{padding:0 22px}.site-header{padding:0 22px}.game-layout{grid-template-columns:minmax(0,1fr) 255px;gap:15px}.sidebar{gap:10px}.mission-card,.upgrade-card,.diary-card{padding:13px}.diary-card{padding-bottom:0;min-height:135px;max-height:180px}.upgrade-button{gap:7px;padding:9px 0}.upgrade-icon{width:29px;height:29px}.intro h1{font-size:27px}.intro-sticker{padding:10px 13px}.intro-sticker .sticker-star{display:none}.intro-sticker b{font-size:11px}.intro-sticker>.icon{width:23px;height:23px}.event-feed{max-height:88px}.photo-score{margin-top:14px}.heat-row{margin-top:14px}.start-card{width:285px;padding:15px 23px}.start-dragon{height:75px}.start-card h2{font-size:22px}.start-card>p:not(.eyebrow){margin-bottom:10px}.start-note{margin-top:10px}.game-topbar{padding:0 12px}.game-stats{gap:11px}.campus-name-en{display:none}.map-legend{gap:7px}.board-status{font-size:9px}.map-corner{top:10px;left:12px}.game-bottom{padding:0 11px}.diary-footnote{font-size:7px;padding:9px 0}.action-hint{display:none}.control-bar{margin-top:17px}}
@media(max-width:850px){.game-layout{grid-template-columns:minmax(0,1fr)}.sidebar{display:grid;grid-template-columns:1fr 1.1fr;gap:13px}.diary-card{display:none}.mission-card{padding:18px}.upgrade-card{padding:15px 15px 5px}.photo-score{margin-top:20px}.heat-row{margin-top:22px}.intro{padding:24px 0}.intro h1{font-size:28px}.intro-sticker{margin-right:3px}.start-card{width:305px;padding:20px 26px}.start-dragon{height:90px}.stage-overlay{backdrop-filter:blur(1px)}.map-legend{font-size:9px;gap:12px}.board-status{font-size:10px}.action-hint{display:inline}.control-bar{order:1}.game-layout .game-panel{box-shadow:0 4px 0 #e9ecdf}.map-corner{top:13px;left:17px;font-size:8px}.header-actions{gap:8px}footer{padding:22px 0}}
@media(max-width:600px){main{padding:0 12px}.site-header{height:65px;padding:0 15px}.brand{font-size:17px;gap:8px}.brand-mark{width:32px;height:36px;border-radius:10px}.brand-mark img{width:33px;height:40px}.header-actions{gap:7px}.header-actions .icon-button{height:30px;width:30px}.header-actions .icon{width:16px;height:16px}.best-label{font-size:0;margin-right:0;gap:4px}.best-label .icon{width:14px;height:14px}.best-label b{font-size:12px;margin-left:0}.intro{padding:23px 3px 20px}.intro h1{font-size:23px;letter-spacing:.1px}.intro .eyebrow{font-size:8px;letter-spacing:1.3px;margin-bottom:9px}.intro-copy{font-size:10px;line-height:1.8;margin-top:5px;max-width:290px}.intro-sticker{display:none}.game-topbar{height:41px;padding:0 10px}.campus-name{font-size:10px;gap:6px}.game-stats{gap:10px}.timer b{font-size:14px}.timer .icon{width:12px;height:12px}.inventory{font-size:8px;gap:3px}.tiny-board{font-size:15px}.inventory b{font-size:11px}.game-topbar .icon-button{width:25px;height:25px}.map-wrap{aspect-ratio:1.15;overflow:hidden}.map-wrap canvas{width:100%;height:100%;object-fit:fill}.map-corner{font-size:6px;top:6px;left:9px;gap:4px}.compass{font-size:6px}.compass>span{font-size:15px}.game-bottom{height:33px;padding:0 9px}.board-status{font-size:8px}.map-legend{font-size:7px;gap:6px}.map-legend i{width:4px;height:4px}.start-card{width:250px;padding:13px 20px 14px}.start-dragon{height:60px;margin-bottom:0}.start-card .eyebrow{font-size:7px;margin:4px 0}.start-card h2{font-size:20px;margin:6px 0}.start-card>p:not(.eyebrow){font-size:10px;line-height:1.7;margin-bottom:8px}.mode-switch{margin-top:8px;margin-bottom:8px}.mode-switch button{font-size:9px;padding:5px}.primary-button{font-size:11px;padding:11px}.start-note{font-size:7px;margin-top:9px}.card-sticker{font-size:6px;top:7px;right:-8px;padding:4px 7px}.sidebar{gap:10px;grid-template-columns:.95fr 1.1fr}.mission-card{padding:12px}.upgrade-card{padding:12px 10px 4px}.section-heading h2{font-size:10px}.mini-label{font-size:6px;padding:2px 4px}.photo-score{margin-top:18px;margin-bottom:10px}.photo-score>b{font-size:29px}.photo-score>.icon{width:16px;height:16px}.photo-score>span:not(.score-stamp){font-size:8px}.score-stamp{display:none}.heat-row{margin-top:18px;font-size:8px}.heat-row b{font-size:7px}.heat-hint{font-size:8px;line-height:1.8}.progress-track{height:6px}.heart-wallet{font-size:9px;padding:3px 5px}.heart-wallet .icon{width:9px;height:9px}.section-description{font-size:7px;line-height:1.6;margin:6px 0 6px}.upgrade-button{gap:6px;padding:8px 0}.upgrade-icon{width:25px;height:25px;border-radius:5px}.upgrade-icon .icon{width:14px;height:14px}.upgrade-info b{font-size:9px}.upgrade-info small{font-size:6px;letter-spacing:-.2px}.upgrade-info{gap:4px}.level{font-size:6px;margin:0}.upgrade-price{padding:4px;min-width:27px;font-size:9px;gap:2px}.upgrade-price .icon{width:7px;height:7px}.control-bar{padding:12px 10px;gap:8px;flex-wrap:nowrap;margin:12px 0 13px}.keyboard-guide{display:none}.touch-pad{display:grid;grid-template-columns:repeat(3,29px);grid-template-rows:repeat(2,25px);gap:4px;touch-action:none}.touch-pad button{display:grid;place-items:center;border:1px solid #d5ddc6;border-bottom:3px solid #c6d1b7;border-radius:5px;background:#f3f6e9;color:#849a73;font-size:16px;line-height:1;touch-action:none;padding:0;user-select:none}.touch-pad button:active,.touch-pad button.pressed{background:#dbe5c9;border-bottom-width:1px;transform:translateY(2px)}.touch-pad [data-dir=up]{grid-column:2}.touch-pad [data-dir=left]{grid-column:1;grid-row:2}.touch-pad [data-dir=down]{grid-column:2;grid-row:2}.touch-pad [data-dir=right]{grid-column:3;grid-row:2}.action-area{gap:7px}.action-hint{display:none}.run-button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:#f1f3e5;border:1px solid #dce3cf;border-bottom:3px solid #c9d5bb;border-radius:6px;font-size:9px;height:45px;padding:5px 9px;min-width:40px}.run-button>span{font-size:11px}.run-button[aria-pressed=true]{background:#dce7c9}.interact-button{min-width:122px;padding:11px 10px;gap:6px;font-size:11px;height:45px}.interact-button>kbd{font-size:8px;min-width:17px;height:17px}.interact-button>.icon{display:none}.alert-banner{font-size:8px;top:9px;padding:6px 9px;gap:4px}.alert-banner .icon{width:12px;height:12px}.grove-badge{font-size:8px;left:10px;bottom:10px;padding:5px 8px}.result-card{width:270px;padding:14px 20px}.result-dragon{height:62px}.result-card h2{font-size:20px}.result-card>p:not(.eyebrow){font-size:9px;margin-bottom:7px}.result-stats{padding:5px 0 12px;margin-bottom:11px}.result-stats b{font-size:22px}.result-stats span{font-size:8px}.pause-card{width:270px;padding:17px 22px}.pause-illustration{font-size:30px;padding:5px}.pause-card h2{font-size:19px}.pause-card>p:not(.eyebrow){font-size:10px}.pause-card .eyebrow{font-size:7px}.text-button{font-size:9px}footer{padding:3px 2px 20px;gap:12px;font-size:7px}footer>span:last-child{display:none}footer>button{margin-left:auto;font-size:7px}dialog{padding:19px 20px}dialog>h2{font-size:22px}.help-steps p{font-size:10px}.help-steps b{font-size:11px}.help-steps>div{gap:10px}.help-steps{gap:13px}}
@media(max-width:850px){main{display:flex;flex-direction:column}.intro{order:0}.game-layout{display:contents}.game-panel{order:1;width:100%}.control-bar{order:2;margin-bottom:18px}.sidebar{order:3}footer{order:4}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
