@font-face{font-family:Barlow Condensed;font-weight:700;font-display:swap;src:url(/assets/display-700-v1xN8_Wq.woff2)}@font-face{font-family:Barlow Condensed;font-weight:800 900;font-display:swap;src:url(/assets/display-800-BKzMuPgK.woff2)}@font-face{font-family:DM Mono;font-weight:400 500;font-display:swap;src:url(/assets/mono-400-4GdczIuU.woff2)}:root{font-family:Microsoft YaHei,PingFang SC,sans-serif;color:#19283c;background:#fffdf6;--ink: #19283c;--paper: #fffdf6;--acid: #e0fc53;--blue: #285bea;--mono: "DM Mono", monospace}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--blue);outline-offset:3px}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}#app{max-width:1600px;margin:auto;padding:0 5.2%}.header{height:80px;border-bottom:2px solid var(--ink);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font:800 30px Barlow Condensed,Impact,sans-serif}.brand-icon{display:grid;place-items:center;width:37px;height:38px;background:var(--blue);color:var(--acid);font:38px/1 Arial;padding-bottom:6px}.edition{font:10px var(--mono);margin-left:15px;letter-spacing:1px;color:#6c7789}nav{display:flex;align-items:center;gap:17px}.text-button{font-size:12px;font-weight:600;padding:10px}.text-button span{margin-left:12px}.nav-divider{height:18px;border-left:1px solid #c7cfd7}.icon-button{display:grid;place-items:center;width:36px;height:36px}.icon-button svg{width:19px;height:19px}.intro{display:flex;justify-content:space-between;align-items:center;padding:26px 0}.eyebrow{font:10px var(--mono);letter-spacing:1.5px;display:flex;align-items:center;gap:9px}.live-dot{display:inline-block;width:6px;height:6px;background:var(--blue);vertical-align:middle}.intro h1{font-size:52px;font-weight:900;letter-spacing:-3px;line-height:1.3;margin:9px 0 0}.title-dot{color:var(--blue)}.title-arrow{display:inline-block;transform:rotate(-8deg);font:65px/.7 Arial;margin-left:21px;color:var(--blue)}.intro>p{font-size:13px;line-height:2;color:#64738a;margin:10px 0 0}.game-layout{display:grid;grid-template-columns:222px minmax(0,1fr);border:2px solid var(--ink);box-shadow:5px 5px #dce8ee}.sidebar{border-right:2px solid var(--ink);padding:24px 23px;display:flex;flex-direction:column;background:#fffdf6}.course-eyebrow{font:10px var(--mono);display:flex;justify-content:space-between;letter-spacing:1px}.course-eyebrow>span{color:#8794a3}.level-number{display:flex;align-items:baseline;margin-top:15px;gap:12px}.level-number>span:first-child{font:700 94px/.98 Barlow Condensed,Impact,sans-serif;letter-spacing:-2px;color:var(--blue)}.number-total{font:12px var(--mono);color:#8a95a5}.sidebar h2{font-size:21px;margin:17px 0 5px;font-weight:800}.english-name{font:9px var(--mono);letter-spacing:.8px;margin:0}.level-description{font-size:11px;line-height:2;color:#64738a;margin:22px 0 25px;min-height:47px}.level-stats{display:grid;gap:15px;padding:20px 0;border-top:1px solid #d8dfe3;border-bottom:1px solid #d8dfe3}.level-stats>div{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#64738a}.level-stats strong{font:12px var(--mono);color:var(--ink)}.legend{display:flex;gap:24px;margin-top:21px;font-size:10px}.legend>span{display:flex;align-items:center;gap:7px}.legend i{width:11px;height:11px;border:1px solid var(--ink)}.legend-snake{background:#f5c518}.legend-goal{background:#fff;position:relative;overflow:hidden}.legend-goal:after{content:"";position:absolute;left:0;top:0;width:5px;height:5px;background:var(--ink);box-shadow:5px 5px 0 var(--ink)}.sidebar-bottom{position:relative;display:flex;flex-direction:column;gap:5px;margin-top:auto;padding-top:32px}.tiny-label{font:8px var(--mono);letter-spacing:.6px;color:#8794a3}.decor-arrow{position:absolute;right:0;bottom:-1px;font:36px Arial;color:var(--blue)}.play-column{min-width:0}.arena{height:clamp(480px,calc(100svh - 320px),760px);background:#5897ee;position:relative;overflow:hidden}.arena-top,.arena-bottom{position:absolute;left:22px;right:22px;display:flex;justify-content:space-between;align-items:center;z-index:2;pointer-events:none;font:9px var(--mono);letter-spacing:.7px;color:#31576b}.arena-top{top:19px}.arena-top>span:first-child{display:flex;gap:7px;align-items:center}.arena-bottom{bottom:17px;font-size:9px}#game-canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}.message-dock{height:82px;border-top:2px solid var(--ink);background:var(--paper);padding:0 23px}.message-card{height:100%;display:flex;align-items:center;justify-content:space-between;gap:18px}.message-card[hidden],.message-kicker{display:none}.message-card h3{font-size:18px;font-weight:800;margin:0 0 5px}.message-card p{font-size:11px;color:#64738a;margin:0;line-height:1.5}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:28px;white-space:nowrap;background:var(--acid);border:2px solid var(--ink);padding:10px 20px;font-size:13px;font-weight:700;transition:transform .12s,box-shadow .12s;box-shadow:3px 3px 0 var(--ink)}.primary-button:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.primary-button:active{transform:translate(2px,2px);box-shadow:none}.primary-button>span{font-size:24px}.control-bar{display:none;height:82px;background:var(--ink);color:var(--paper);border-top:2px solid var(--ink)}.play-column[data-state=playing] .message-dock{display:none}.play-column[data-state=playing] .control-bar{display:flex}.play-column[data-state=sinking] .message-dock,.play-column[data-state=sinking] .control-bar,.play-column[data-state=water-menu] .message-dock,.play-column[data-state=water-menu] .control-bar{display:none}.failure-dialog{width:min(560px,calc(100vw - 40px));max-width:560px;max-height:calc(100dvh - 30px);padding:0;border:0;overflow:visible;background:transparent;box-shadow:none}.failure-dialog::backdrop{background:#163965ad}.failure-photo{background:#fffdf6;border:2px solid var(--ink);padding:15px 15px 22px;box-shadow:7px 7px #19283c;transform:rotate(-4deg);text-align:center}.failure-photo img{display:block;width:100%;height:clamp(140px,36dvh,330px);object-fit:contain;background:#5897ee}.failure-island{display:block;margin-top:18px;font:10px var(--mono);color:var(--blue)}.failure-photo h2{font-size:clamp(25px,4vw,36px);margin:9px 0}.failure-photo p{font-size:12px;margin:0;color:#64738a}.failure-actions{display:grid;grid-template-columns:1fr 2fr;position:relative;margin-top:24px;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink)}.failure-actions button{min-height:70px;display:flex;align-items:center;justify-content:center;gap:14px;font-weight:700;font-size:14px}.failure-actions button:active{box-shadow:inset 0 0 0 3px var(--ink)}.failure-actions span{font:24px Arial}.failure-menu{background:var(--paper);border-right:2px solid var(--ink)}.failure-retry{background:var(--acid)}@media(max-width:760px){.failure-photo{padding:10px 10px 17px}.failure-photo p{font-size:10px}.failure-actions button{gap:8px;font-size:12px;min-height:62px}}.steer-button{display:flex;align-items:center;text-align:left;gap:17px;background:var(--acid);color:var(--ink);padding:0 24px;min-width:44%;border-right:2px solid var(--ink);touch-action:none;-webkit-user-select:none;user-select:none}.steer-button:hover{background:#eaff78}.steer-button.is-held{background:#ff7855;box-shadow:inset 0 0 0 3px var(--ink)}.turn-icon{font:43px Arial}.steer-button>span:nth-child(2){font-size:15px;font-weight:700}.control-bar small{display:block;font:8px var(--mono);letter-spacing:.7px;margin-top:5px}kbd{display:inline-flex;justify-content:center;align-items:center;font:9px var(--mono);border:1px solid currentColor;padding:4px 6px}.steer-button kbd{margin-left:auto;opacity:.65}.release-hint{display:flex;align-items:center;gap:15px;margin:auto 25px;color:#dce5f2}.release-hint>span{font:34px Arial}.release-hint p{font-size:12px}.release-hint small{color:#99abc3;font-size:7px}.utility-controls{margin-left:auto;display:flex;align-items:center;padding-right:13px;gap:5px}.utility-controls button{display:flex;align-items:center;gap:8px;padding:13px;font:26px Arial}.utility-controls button:hover{color:var(--acid)}.utility-controls kbd{font-size:8px;color:#99abc3;padding:3px 5px}.journey{padding:27px 0}.journey-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.journey-heading h2{font-size:12px;font-weight:600;margin:0}.journey-heading h2 span{font:8px var(--mono);letter-spacing:.8px;color:#8191a3;margin-left:17px}.journey-heading>span{font:10px var(--mono);color:#64738a}#level-toggle{display:none}.level-grid{display:grid;grid-template-columns:repeat(25,minmax(0,1fr));gap:6px}.level-cell{height:35px;border:1px solid #cdd9e2;background:#f2f7fa;font:10px var(--mono);color:#8394a5;position:relative;padding:0}.level-cell.complete{background:#285bea;border-color:var(--ink);color:#fff}.level-cell.current{color:var(--ink);border:2px solid var(--ink);background:var(--acid);box-shadow:2px 2px 0 var(--ink)}.level-cell:not(:disabled):hover{border-color:var(--ink);transform:translateY(-2px)}.level-cell:disabled:after{content:"";width:3px;height:3px;background:#b9c6d3;position:absolute;bottom:4px;left:calc(50% - 1px)}footer{border-top:1px solid #d8dfe3;display:flex;justify-content:space-between;align-items:center;padding:20px 0 24px;font:8px var(--mono);letter-spacing:.7px;color:#788ba0}.footer-cross{margin:0 11px}.footer-mark{color:var(--blue);font:22px Arial;vertical-align:middle;margin-left:16px}dialog{max-width:510px;max-height:calc(100dvh - 36px);width:calc(100% - 36px);border:2px solid var(--ink);background:var(--paper);padding:32px;box-shadow:6px 6px 0 var(--ink);color:var(--ink)}dialog::backdrop{background:#19283c99}.dialog-close{position:absolute;top:10px;right:10px;font-size:27px;width:40px;height:40px}dialog h2{font-size:34px;line-height:1.35;margin:23px 0}.help-row{display:flex;gap:20px;border-top:1px solid #d8dfe3;padding:13px 0}.help-row b{font:22px Barlow Condensed,sans-serif;color:var(--blue)}.help-row p{font-size:12px;line-height:1.9;margin:0}.help-keys{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:10px}.help-note{font-size:10px;color:#64738a;margin:22px 0}dialog>.primary-button{width:100%}.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-20px;width:9px;height:18px;background:var(--acid);animation:fall 2.5s ease-in forwards}@keyframes fall{to{transform:translateY(650px) rotate(500deg)}}.arena.is-failed{animation:shake .26s linear}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.arena.is-drowned{animation:settle .32s ease-out}@keyframes settle{30%{transform:translateY(2px)}65%{transform:translateY(-1px)}}@media(min-width:1500px){.arena{height:clamp(540px,calc(100svh - 320px),800px)}.sidebar{padding:28px}.game-layout{grid-template-columns:245px minmax(0,1fr)}}@media(max-width:1100px){#app{padding:0 4%}.game-layout{grid-template-columns:192px minmax(0,1fr)}.sidebar{padding:23px 17px}.steer-button{padding:0 16px;gap:10px;min-width:45%}.steer-button kbd{display:none}.release-hint{margin:auto 15px;gap:9px}.utility-controls button{padding:12px}.utility-controls kbd{display:none}.level-grid{gap:4px}.level-cell{font-size:9px}}@media(max-width:760px){#app{padding:0 12px;padding-bottom:env(safe-area-inset-bottom,0px)}.header{height:56px;border-bottom:0}.brand{font-size:25px;gap:8px}.brand-icon{width:28px;height:29px;font-size:30px}.edition,.nav-divider,.intro,footer{display:none}nav{gap:3px}.icon-button{width:38px;height:42px}.text-button{font-size:11px;padding:10px}.text-button span{display:none}main{padding-top:6px}.game-layout{display:flex;flex-direction:column;box-shadow:3px 3px #dce8ee}.sidebar{border-right:0;border-bottom:2px solid var(--ink);padding:10px 13px;height:56px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:0 10px;align-items:center}.course-eyebrow,.number-total,.level-description,.legend,.sidebar-bottom,.english-name{display:none}.level-number{margin:0;grid-row:auto}.level-number>span:first-child{font-size:35px;letter-spacing:-.5px}.sidebar h2{font-size:14px;margin:0}.level-stats{border:0;padding:0;gap:0;min-width:0}.level-stats>div{font-size:10px;gap:0}.level-stats>div>span,.level-stats>div:not(:first-child){display:none}.level-stats strong{font-size:12px}.arena{height:max(260px,calc(100svh - 242px - env(safe-area-inset-bottom,0px)))}.arena-top{left:13px;right:13px;top:13px;font-size:8px}.arena-bottom{left:13px;right:13px;bottom:12px;font-size:9px}.arena-bottom>span:last-child,.arena-top>span:last-child{display:none}.message-dock{height:78px;padding:0 12px}.message-card{gap:10px}.message-card>div{min-width:0;flex:1}.message-card h3{font-size:15px;margin-bottom:5px}.message-card p{font-size:10px;line-height:1.5}.message-card .primary-button{font-size:12px;padding:10px 12px;gap:12px;box-shadow:2px 2px 0 var(--ink);flex-shrink:0}.primary-button>span{font-size:21px}.control-bar{height:78px}.steer-button{padding:0 17px;gap:11px;flex:1;min-width:0}.steer-button>span:nth-child(2){font-size:16px}.turn-icon{font-size:36px}.control-bar small,.control-bar kbd{display:none}.release-hint{margin:0 11px;gap:0}.release-hint>span{display:none}.release-hint p{font-size:10px;white-space:nowrap}.utility-controls{margin:0;padding:0 7px 0 0;gap:0}.utility-controls button{font-size:26px;justify-content:center;width:42px;height:54px;padding:0}.journey{padding:10px 0 0}.journey-heading{margin:0;height:30px}.journey-heading h2{display:none}#level-toggle{display:flex;gap:12px;align-items:center;font-size:11px;font-weight:700;height:34px;padding:0 3px}#level-toggle span{color:var(--blue);font-size:19px}.journey-heading>span{font-size:10px}.level-grid{display:none}.journey.is-open .level-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:13px 0 15px}.level-cell{height:42px;font-size:12px}dialog{padding:24px}.help-keys{display:none}dialog h2{font-size:29px}.help-row{gap:15px}.help-row p{font-size:11px}}@media(max-width:360px){#app{padding-left:8px;padding-right:8px}.message-card h3{font-size:13px}.message-card p{font-size:9px}.message-card .primary-button{padding:9px;gap:6px}.steer-button{padding:0 12px;gap:7px}.release-hint{margin:0 7px}.utility-controls button{width:37px}.text-button{padding:7px}.icon-button{width:33px}}@media(max-height:500px)and (orientation:landscape){.header{height:44px}.arena{height:330px}.intro{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(min-width:761px){html,body{height:100%;overflow:hidden}#app{height:100svh;display:flex;flex-direction:column}.header{height:clamp(52px,7.5svh,72px);flex:0 0 auto}main{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.intro{padding:clamp(7px,1.6svh,18px) 0}.intro h1{font-size:clamp(36px,5svh,50px);line-height:1.05;margin-top:6px}.title-arrow{font-size:clamp(44px,6svh,60px)}.game-layout,.play-column,.sidebar{min-height:0}.play-column{display:grid;grid-template-rows:minmax(0,1fr) 72px}.play-column[data-state=sinking],.play-column[data-state=water-menu]{grid-template-rows:minmax(0,1fr) 0}.arena{height:auto;min-height:0}.message-dock,.control-bar{height:72px}.sidebar{padding-top:clamp(12px,2.2svh,24px);padding-bottom:clamp(12px,2.2svh,24px)}.level-description{margin-top:clamp(10px,1.8svh,22px);margin-bottom:clamp(10px,1.8svh,25px)}.level-stats{padding:clamp(10px,1.7svh,20px) 0;gap:clamp(7px,1.25svh,15px)}.legend{margin-top:clamp(10px,1.8svh,21px)}.sidebar-bottom{padding-top:clamp(10px,2svh,32px)}.journey{padding:clamp(7px,1.5svh,16px) 0}.journey-heading{margin-bottom:clamp(5px,.8svh,10px)}.level-cell{height:clamp(26px,3.5svh,34px)}footer{height:clamp(32px,4.7svh,46px);padding:0;flex:0 0 auto}}
