.runtime-open{min-height:44px;padding:8px 11px;font-size:12px}.runtime-panel{z-index:100;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));touch-action:pan-y;background:#101a13dd;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.runtime-card{color:#eee8d4;background:#243021;border:1px solid #8d9b62;border-radius:16px;width:min(520px,100%);max-height:100%;padding:20px;overflow:auto;box-shadow:0 16px 50px #0009}.runtime-card header{justify-content:space-between;align-items:center;gap:12px;display:flex}.runtime-card h2{margin:0;font-size:21px}.runtime-card p{overflow-wrap:anywhere;font-size:13px;line-height:1.7}.runtime-card small{color:#b4bda6}.runtime-actions{flex-wrap:wrap;gap:8px;display:flex}.runtime-actions button{flex:140px;font-size:13px}.runtime-card label{justify-content:space-between;align-items:center;gap:10px;margin:16px 0;display:flex}.runtime-card select{font:inherit;color:#f1e3b3;background:#172516;border:1px solid #849062;border-radius:8px;max-width:65%;min-height:44px}.runtime-card progress{accent-color:#d9c477;width:100%}.header-actions{flex-wrap:wrap}.runtime-card a{color:#e2cc8d}@media (max-width:450px){.header{flex-wrap:wrap}.header-actions{gap:5px}.runtime-open{padding:8px}.runtime-card{padding:14px}}*{box-sizing:border-box}html{color:#eee8d4;background:#182118;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif}body{min-height:100vh;background:radial-gradient(at 15% 0,#35462a 0,#0000 55%),#182118;min-height:100dvh;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:#2e2a15;background:#e5d290;border:1px solid #6b7049;border-radius:10px;min-height:44px;padding:11px 15px;font-weight:650;transition:background .15s,transform .15s}button:hover{background:#f1dfa6}button:active{transform:translateY(1px)}button:focus-visible{outline-offset:3px;outline:3px solid #efffd7}a:focus-visible{outline-offset:3px;outline:3px solid #efffd7}button:disabled{opacity:.45;cursor:default}.subtle{color:#d9dfc3;background:#2b3828;border-color:#526246}.subtle:hover{background:#3b4b33}.app{max-width:1320px;padding:27px max(20px,env(safe-area-inset-right)) 25px max(20px,env(safe-area-inset-left));margin:auto}.header{justify-content:space-between;align-items:center;gap:12px;padding-bottom:22px;display:flex}.eyebrow{letter-spacing:2px;color:#ddc27e;margin:0 0 6px;font-size:11px}h1{letter-spacing:-.5px;margin:0;font-size:27px}h1 span{color:#acb59b;margin-left:20px;font-size:13px;font-weight:400;display:inline-block}.foods{grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin-bottom:22px;display:grid}.food-tab{color:#b9c5a8;text-align:left;background:#253122;border-color:#41543a;justify-content:center;align-items:center;gap:8px;padding:9px 6px;display:flex}.food-tab img{object-fit:contain;filter:drop-shadow(1px 3px 3px #0005);width:38px;height:48px}.food-tab strong{font-size:15px;display:block}.food-tab small{white-space:nowrap;font-size:10px;font-weight:400;display:block}.food-tab[aria-pressed=true]{color:#302c18;background:#e1d094;border-color:#e1d094}.food-tab.done:after{content:"✓";color:#75a65c;align-self:flex-start;font-size:11px}.workshop{grid-template-columns:minmax(0,1fr) 310px;align-items:stretch;gap:25px;display:grid}.workshop-main{background:#3a2c1d;border:1px solid #896e44;border-radius:18px;min-width:0;overflow:hidden;box-shadow:0 20px 50px #0004}.status{background:linear-gradient(#75532f,#45341e);border-bottom:1px solid #ba9452;justify-content:space-between;align-items:center;gap:12px;padding:13px 20px;display:flex}.status b{color:#f1daa0;margin-right:14px;font-size:19px}.status small,.mastery{color:#d0be90;font-size:12px}.stage{height:max(380px,min(58vh,610px));touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:max(380px,min(58dvh,610px));position:relative;overflow:hidden}.stage canvas{touch-action:none;width:100%;height:100%;display:block}.controls{background:#362b1d;flex-wrap:wrap;gap:8px;padding:12px;display:flex}.controls button{font-size:13px}.lesson{background:linear-gradient(145deg,#2c3b27,#212e20);border:1px solid #4a5e3c;border-radius:18px;flex-direction:column;padding:24px 23px;display:flex}.lesson h2{margin:12px 0;font-size:23px;line-height:1.55}.detail{color:#b5c2a4;margin:0 0 18px;font-size:14px;line-height:1.8}.tip{color:#e5d395;background:#182519;border:1px solid #465c39;border-radius:10px;min-height:64px;padding:13px 15px;font-size:14px;line-height:1.7}.tools{grid-template-columns:1fr 1fr;gap:8px;margin:18px 0;display:grid}.tools button{padding:10px 6px;font-size:12px}.progress{gap:7px;margin:8px 0;display:flex}.progress span{background:#495b3d;border-radius:8px;flex:1;height:6px}.progress span.on{background:#e2ca7b}.practice-note{color:#97a689;margin-top:auto;padding-top:25px;font-size:12px;line-height:1.8}footer{color:#94a186;justify-content:space-between;gap:15px;padding-top:19px;font-size:12px;display:flex}footer a{color:#c6b679;text-decoration:none}.loading,.pause-overlay{z-index:5;color:#efdcad;text-align:center;background:#302716ee;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:22px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.pause-overlay strong{font-size:25px}.pause-overlay p{color:#c6b78f;font-size:14px}.loading-spinner{border:3px solid #98834c;border-top-color:#ead097;border-radius:50%;width:30px;height:30px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}[hidden]{display:none!important}.result{z-index:3;text-align:center;background:#252819f2;border:1px solid #c4a965;border-radius:15px;flex-direction:column;align-items:center;gap:8px;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:calc(100% - 30px);padding:16px 24px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 5px 30px #0004}.result b{color:#efd488;letter-spacing:2px;font-size:34px}.result[data-grade=bad] b{color:#e99b83}.result span{color:#d4d6b6;font-size:12px;line-height:1.7}.result button{min-height:38px;padding:7px 13px;font-size:12px}.stage.is-demo:after{content:"动作示范 · 不计练习进度";color:#fff0bb;white-space:nowrap;pointer-events:none;background:#342919de;border:1px solid #927747;border-radius:30px;padding:6px 13px;font-size:12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}@media (max-width:1050px){.workshop{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.food-tab{gap:4px}.food-tab small{display:none}.lesson{padding:20px 18px}.lesson h2{font-size:20px}}@media (max-width:720px){.app{padding:16px max(12px,env(safe-area-inset-right)) 20px max(12px,env(safe-area-inset-left))}.header{padding-bottom:15px}h1{font-size:21px}h1 span{margin:6px 0 0;font-size:11px;display:block}.header button{padding:10px;font-size:12px}.foods{scrollbar-width:thin;scrollbar-color:#60714c transparent;gap:7px;margin-bottom:11px;padding-bottom:7px;display:flex;overflow-x:auto}.food-tab{border-radius:12px;flex-direction:column;flex:0 0 82px;gap:3px;padding:8px 4px;position:relative}.food-tab strong{font-size:13px}.food-tab img{width:34px;height:40px}.food-tab.done:after{position:absolute;top:4px;right:6px}.workshop{display:block}.stage{height:max(360px,min(56vh,500px));height:max(360px,min(56dvh,500px))}.status{padding:11px 13px}.status b{margin-right:8px;font-size:17px}.status small,.mastery{font-size:11px}.controls{gap:6px;padding:9px}.controls button{white-space:nowrap;flex:1;padding:10px 8px;font-size:11px}.lesson{margin-top:16px;padding:18px}.lesson h2{margin:8px 0;font-size:20px}.detail{margin-bottom:13px;font-size:13px}.tools{margin:12px 0}.tools button{font-size:13px}.practice-note{margin-bottom:0;padding-top:14px}.result{padding:12px 17px;bottom:12px}.result b{font-size:27px}footer{font-size:10px}}@media (max-height:540px) and (min-width:721px){.app{padding-top:10px}.header{padding-bottom:9px}h1{font-size:20px}.foods{margin-bottom:10px}.food-tab img{height:32px}.stage{height:330px}.lesson{padding:15px}.practice-note{padding-top:12px}.lesson h2{font-size:19px}}.header .profile-links{background:0 0;flex:1;gap:5px;max-width:290px;padding:0;position:static}.practice-app .header-actions{align-items:center;gap:8px;display:flex}.practice-app .practice-link{color:#ddcf9e;align-items:center;min-height:44px;font-size:13px;text-decoration:none;display:inline-flex}html[data-layout=portrait] .normal-app .header{flex-wrap:wrap}html[data-layout=portrait] .normal-app .header .profile-links{flex-basis:100%;order:3;max-width:none}html[data-layout=landscape] .app.normal-app,html[data-layout=landscape] .app.practice-app{max-width:1600px;height:100vh;height:100dvh;padding:max(4px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));flex-direction:column;gap:4px;display:flex;overflow:hidden}html[data-layout=landscape] .app.normal-app .header,html[data-layout=landscape] .app.practice-app .header{flex:none;gap:8px;min-height:44px;padding:0}html[data-layout=landscape] .normal-app .header h1,html[data-layout=landscape] .practice-app .header h1{font-size:19px}html[data-layout=landscape] .normal-app .header h1 span,html[data-layout=landscape] .practice-app .header h1 span,html[data-layout=landscape] .normal-app .header .eyebrow,html[data-layout=landscape] .practice-app .header .eyebrow{display:none}html[data-layout=landscape] .header-actions{flex-wrap:nowrap;gap:6px}html[data-layout=landscape] .header-actions button{white-space:nowrap;min-height:44px;padding:7px 10px;font-size:12px}html[data-layout=landscape] .normal-app>.live-tip,html[data-layout=landscape] .normal-app>footer,html[data-layout=landscape] .practice-app>footer{display:none}html[data-layout=landscape] .normal-app>.save-status{flex:none;margin:0}html[data-layout=landscape] .normal-app .run-board{border-radius:12px;flex:1;grid-template-columns:108px minmax(0,1fr) 88px;min-height:0;display:grid;position:relative}html[data-layout=landscape] .normal-app .run-hud{text-align:center;border:0;border-right:1px solid #a78247;flex-direction:column;grid-area:1/1;justify-content:space-around;gap:6px;padding:12px 5px}html[data-layout=landscape] .normal-app .run-hud small{font-size:10px}html[data-layout=landscape] .normal-app .score-block b{font-size:28px}html[data-layout=landscape] .normal-app .combo-block{gap:4px;max-width:96px}html[data-layout=landscape] .normal-app .combo-block b{font-size:23px}html[data-layout=landscape] .normal-app .combo-block span{padding:3px;font-size:9px}html[data-layout=landscape] .normal-app .life-block{text-align:center}html[data-layout=landscape] .normal-app #lives{justify-content:center;gap:6px;font-size:22px}html[data-layout=landscape] .normal-app .run-stage{flex:auto;grid-area:1/2;min-width:0;height:100%;min-height:0}html[data-layout=landscape] .normal-app .run-controls{border-left:1px solid #816b40;flex-direction:column;grid-area:1/3;justify-content:center;gap:6px;padding:6px}html[data-layout=landscape] .normal-app .run-controls>span{text-align:center;flex:none;font-size:10px}html[data-layout=landscape] .normal-app .run-controls #run-status{flex:none}html[data-layout=landscape] .normal-app .run-controls button{width:100%;min-height:44px;padding:6px;font-size:12px}html[data-layout=landscape] .normal-app .run-overlay{gap:8px;padding:12px}html[data-layout=landscape] .normal-app .menu-overlay{grid-template-columns:1fr 1fr;align-content:safe center;justify-items:center;gap:8px 14px;display:grid}html[data-layout=landscape] .normal-app .menu-overlay>:first-child,html[data-layout=landscape] .normal-app .menu-overlay>:last-child{margin:0}html[data-layout=landscape] .normal-app .menu-overlay .eyebrow{grid-area:1/1}html[data-layout=landscape] .normal-app .menu-overlay h2{grid-area:2/1;font-size:27px}html[data-layout=landscape] .normal-app .menu-overlay h2 br,html[data-layout=landscape] .normal-app .menu-overlay>p:not(.eyebrow):not(#theme-description){display:none}html[data-layout=landscape] .normal-app .menu-overlay #theme-description{grid-area:3/1;min-height:0;font-size:11px;line-height:1.5;display:block}html[data-layout=landscape] .normal-app .menu-overlay .theme-picker{grid-area:1/2/4;gap:6px;width:100%}html[data-layout=landscape] .normal-app .theme-picker button{min-height:44px;padding:6px;font-size:12px}html[data-layout=landscape] .normal-app .menu-overlay .menu-foods{grid-area:4/1;gap:4px;height:34px;padding:0}html[data-layout=landscape] .normal-app .menu-foods img{width:24px;height:32px}html[data-layout=landscape] .normal-app .menu-overlay .primary-action{grid-area:4/2;width:100%;min-width:0;min-height:44px;padding:8px;font-size:15px}html[data-layout=landscape] .normal-app .menu-overlay .best-record{grid-area:5/1/auto/-1;font-size:10px!important}html[data-layout=landscape] .normal-app .result-overlay{grid-template-columns:1fr 1fr;align-content:safe center;justify-items:center;gap:6px 12px;display:grid}html[data-layout=landscape] .normal-app .result-overlay>:first-child,html[data-layout=landscape] .normal-app .result-overlay>:last-child{margin:0}html[data-layout=landscape] .normal-app .result-overlay .eyebrow,html[data-layout=landscape] .normal-app .result-overlay h2,html[data-layout=landscape] .normal-app .result-total,html[data-layout=landscape] .normal-app #end-reason,html[data-layout=landscape] .normal-app #record-message{grid-column:1}html[data-layout=landscape] .normal-app .result-overlay h2{font-size:21px}html[data-layout=landscape] .normal-app .result-total{font-size:42px}html[data-layout=landscape] .normal-app .result-overlay .run-summary{grid-area:1/2/6;gap:8px;padding:10px}html[data-layout=landscape] .normal-app .result-buttons{grid-column:1/-1;gap:8px}html[data-layout=landscape] .normal-app .result-buttons button{min-width:0;min-height:44px;padding:7px 12px}html[data-layout=landscape] .normal-app .guide-overlay{justify-content:flex-start}html[data-layout=landscape] .normal-app .guide-overlay h2{font-size:20px}html[data-layout=landscape] .normal-app .guide-overlay #guide-foods{flex-shrink:1;grid-template-columns:1fr 1fr;width:100%;max-width:none;min-height:0;display:grid;overflow:auto}html[data-layout=landscape] .normal-app .guide-overlay>p{display:none}html[data-layout=landscape] .normal-app .guide-overlay>:last-child{margin-bottom:0}html[data-layout=landscape] .app.practice-app{grid-template-rows:44px minmax(0,1fr);grid-template-columns:74px minmax(0,1fr);gap:6px;display:grid}html[data-layout=landscape] .practice-app .header{grid-column:1/-1}html[data-layout=landscape] .practice-app .foods{overscroll-behavior:contain;flex-direction:column;grid-area:2/1;gap:5px;min-height:0;margin:0;padding:0 2px 0 0;display:flex;overflow:auto}html[data-layout=landscape] .practice-app .food-tab{border-radius:8px;flex-direction:row;flex:0 0 52px;gap:3px;min-height:52px;padding:3px}html[data-layout=landscape] .practice-app .food-tab img{width:23px;height:38px}html[data-layout=landscape] .practice-app .food-tab strong{font-size:11px}html[data-layout=landscape] .practice-app .food-tab small{display:none}html[data-layout=landscape] .practice-app .workshop{grid-area:2/2;grid-template-columns:minmax(0,1fr) max(170px,min(25vw,270px));gap:8px;min-height:0;display:grid}html[data-layout=landscape] .practice-app .workshop-main{border-radius:12px;flex-direction:column;min-height:0;display:flex}html[data-layout=landscape] .practice-app .status{flex:none;gap:4px;min-height:30px;padding:5px 10px}html[data-layout=landscape] .practice-app .status b{margin-right:6px;font-size:15px}html[data-layout=landscape] .practice-app .status small,html[data-layout=landscape] .practice-app .mastery{font-size:10px}html[data-layout=landscape] .practice-app .stage{flex:1;height:auto;min-height:0}html[data-layout=landscape] .practice-app .controls{flex:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;display:grid}html[data-layout=landscape] .practice-app .controls button{white-space:normal;min-height:44px;padding:5px 2px;font-size:11px}html[data-layout=landscape] .practice-app .lesson{overscroll-behavior:contain;border-radius:12px;min-height:0;margin:0;padding:10px;overflow:auto}html[data-layout=landscape] .practice-app .lesson .eyebrow{font-size:9px}html[data-layout=landscape] .practice-app .lesson h2{margin:4px 0 8px;font-size:16px;line-height:1.5}html[data-layout=landscape] .practice-app .detail{margin-bottom:10px;font-size:12px;line-height:1.6}html[data-layout=landscape] .practice-app .tip{min-height:0;padding:8px;font-size:12px;line-height:1.5}html[data-layout=landscape] .practice-app .tools{gap:5px;margin:10px 0}html[data-layout=landscape] .practice-app .tools button{min-height:44px;padding:5px;font-size:11px}html[data-layout=landscape] .practice-app .practice-note{padding-top:8px;font-size:10px}html[data-layout=landscape] .practice-app .result{gap:4px;padding:8px 12px;bottom:8px}html[data-layout=landscape] .practice-app .result b{font-size:24px}html[data-layout=landscape] .practice-app .result button{min-height:44px}@media (max-width:850px){html[data-layout=landscape] .normal-app .header>div:first-child{display:none}html[data-layout=landscape] .normal-app .header .profile-links{max-width:none;margin-right:auto}html[data-layout=landscape] .normal-app .header .profile-links button{min-height:44px;padding:6px;font-size:11px}html[data-layout=landscape] .normal-app .header-actions{margin-left:auto}html[data-layout=landscape] .normal-app .run-board{grid-template-columns:83px minmax(0,1fr) 76px}html[data-layout=landscape] .normal-app .score-block b{font-size:24px}html[data-layout=landscape] .normal-app .combo-block{max-width:78px}html[data-layout=landscape] .normal-app .run-hud{padding:8px 3px}html[data-layout=landscape] .normal-app .menu-overlay{gap:5px 8px;padding:8px}html[data-layout=landscape] .normal-app .menu-overlay h2{font-size:22px}html[data-layout=landscape] .normal-app .menu-overlay .eyebrow{letter-spacing:0;font-size:9px}html[data-layout=landscape] .normal-app .menu-overlay #theme-description{font-size:10px}html[data-layout=landscape] .normal-app .theme-picker button small{font-size:8px}html[data-layout=landscape] .normal-app .menu-foods img{width:21px;height:28px}html[data-layout=landscape] .normal-app .menu-overlay .menu-foods{gap:2px}html[data-layout=landscape] .normal-app .result-overlay h2{font-size:17px}html[data-layout=landscape] .normal-app .run-summary{gap:6px!important}html[data-layout=landscape] .normal-app .run-summary span{font-size:10px}}@media (max-width:680px){html[data-layout=landscape] .practice-app .header h1{font-size:15px}html[data-layout=landscape] .app.practice-app{grid-template-columns:64px minmax(0,1fr)}html[data-layout=landscape] .practice-app .workshop{grid-template-columns:minmax(0,1fr) 160px;gap:5px}html[data-layout=landscape] .practice-app .status small{display:none}html[data-layout=landscape] .practice-app .controls button{font-size:10px}html[data-layout=landscape] .normal-app .menu-overlay .best-record,html[data-layout=landscape] .normal-app .menu-overlay .menu-foods{display:none}html[data-layout=landscape] .normal-app .menu-overlay .primary-action{grid-area:4/1/auto/-1;max-width:240px}html[data-layout=landscape] .normal-app .menu-overlay h2{font-size:19px}html[data-layout=landscape] .normal-app .result-overlay .eyebrow{display:none}}html[data-layout=portrait] .app.normal-app{max-width:540px;height:100vh;height:100dvh;padding:max(5px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));flex-direction:column;gap:5px;display:flex;overflow:hidden}html[data-layout=portrait] .normal-app .header{flex-wrap:wrap;flex:none;gap:5px;min-height:44px;padding:0}html[data-layout=portrait] .normal-app .header>div:first-child{display:none}html[data-layout=portrait] .normal-app .header .profile-links{flex:100%;order:2;gap:5px;max-width:none}html[data-layout=portrait] .normal-app .header-actions{flex-wrap:nowrap;flex:1;justify-content:space-between;gap:5px;display:flex}#layout-toggle{white-space:nowrap;min-height:44px;padding:8px 10px;font-size:12px}html[data-layout=portrait] .header-actions button,html[data-layout=portrait] .practice-link{min-height:44px;padding:8px;font-size:12px}html[data-layout=portrait] .normal-app .run-board{border-radius:12px;flex-direction:column;flex:1;min-height:0;display:flex}html[data-layout=portrait] .normal-app .run-hud{border-bottom:1px solid #a78247;flex-direction:row;flex:none;padding:8px 12px;display:flex}html[data-layout=portrait] .normal-app .score-block b{font-size:28px}html[data-layout=portrait] .normal-app .run-stage{flex:1;height:auto;min-height:0}html[data-layout=portrait] .normal-app .run-controls{flex-direction:row;flex:none;gap:5px;padding:5px 8px}html[data-layout=portrait] .normal-app .run-controls button{min-height:44px;padding:6px 8px;font-size:11px}html[data-layout=portrait] .normal-app .run-controls>span{font-size:10px}html[data-layout=portrait] .normal-app .run-controls #speed,html[data-layout=portrait] .normal-app>.live-tip,html[data-layout=portrait] .normal-app>footer{display:none}html[data-layout=portrait] .normal-app>.save-status{margin:0}html[data-layout=portrait] .normal-app .run-overlay{flex-direction:column;justify-content:flex-start;gap:9px;padding:14px;display:flex;overflow:auto}html[data-layout=portrait] .normal-app .menu-overlay>:first-child,html[data-layout=portrait] .normal-app .result-overlay>:first-child{margin-top:auto}html[data-layout=portrait] .normal-app .menu-overlay>:last-child,html[data-layout=portrait] .normal-app .result-overlay>:last-child{margin-bottom:auto}html[data-layout=portrait] .normal-app .menu-overlay h2{font-size:28px}html[data-layout=portrait] .normal-app .menu-overlay .menu-foods{gap:6px;height:42px;display:flex}html[data-layout=portrait] .normal-app .menu-overlay .menu-foods img{width:29px;height:39px}html[data-layout=portrait] .normal-app .menu-overlay>p:not(.eyebrow):not(#theme-description):not(.menu-rules){display:none}html[data-layout=portrait] .normal-app .menu-overlay #theme-description{min-height:0;font-size:11px;display:block}html[data-layout=portrait] .normal-app .theme-picker{width:min(330px,100%)}html[data-layout=portrait] .normal-app .menu-overlay .primary-action{min-height:44px;padding:10px 20px}html[data-layout=portrait] .normal-app .run-summary{gap:7px 20px;padding:12px}html[data-layout=portrait] .normal-app .guide-overlay #guide-foods{flex-direction:column;flex-shrink:1;min-height:0;display:flex;overflow:auto}html[data-layout=portrait] .normal-app .guide-overlay>p{font-size:11px;display:block}html[data-layout=portrait] .normal-app .guide-overlay>:first-child{margin-top:0}html[data-layout=portrait] .normal-app .result-buttons button{min-height:44px}.profile-content select{color:#e9ddb6;width:100%;max-width:330px;min-height:44px;font:inherit;background:#182519;border:1px solid #63784a;border-radius:8px;margin-top:8px;padding:8px;display:block}.flow-guide{z-index:1;pointer-events:none;color:#f5dfaa;font-size:10px;position:absolute;top:0;bottom:0;left:0;right:0}.flow-guide span{background:#241d11c9;border:1px solid #bb9d5a66;border-radius:8px;padding:3px 7px;position:absolute}html[data-layout=landscape] .flow-guide .inlet{top:5px;left:6px}html[data-layout=landscape] .flow-guide .inlet:after{content:" →"}html[data-layout=landscape] .flow-guide .outlet{bottom:5px;right:6px}html[data-layout=landscape] .flow-guide .outlet:before{content:"→ "}html[data-layout=portrait] .flow-guide .inlet{top:5px;left:50%;transform:translate(-50%)}html[data-layout=portrait] .flow-guide .inlet:after{content:" ↓"}html[data-layout=portrait] .flow-guide .outlet{bottom:5px;left:50%;transform:translate(-50%)}html[data-layout=portrait] .flow-guide .outlet:before{content:"↓ "}@media (max-width:500px){html[data-layout=landscape] .normal-app .header{flex-wrap:wrap}html[data-layout=landscape] .normal-app .header .profile-links{flex:100%;order:2}html[data-layout=landscape] .normal-app .header-actions{justify-content:space-between;width:100%}html[data-layout=landscape] .normal-app .run-board{grid-template-columns:64px minmax(0,1fr) 60px}html[data-layout=landscape] .normal-app .combo-block span{padding:2px;font-size:8px}html[data-layout=landscape] .normal-app .run-controls{padding:4px}html[data-layout=landscape] .normal-app .menu-overlay{flex-direction:column;display:flex}html[data-layout=landscape] .normal-app .theme-picker{max-width:260px}html[data-layout=landscape] .normal-app .menu-overlay .primary-action{width:100%;max-width:240px}html[data-layout=landscape] .normal-app .run-summary{grid-template-columns:1fr;gap:4px!important}html[data-layout=landscape] .normal-app .result-overlay{flex-direction:column;display:flex}}@media (min-height:541px){html[data-layout=portrait] .app.practice-app{height:100vh;max-width:760px;height:100dvh;padding:6px max(8px,env(safe-area-inset-right)) 6px max(8px,env(safe-area-inset-left));flex-direction:column;gap:6px;display:flex;overflow:hidden}html[data-layout=portrait] .practice-app .header{flex:none;gap:4px;min-height:44px;padding:0}html[data-layout=portrait] .practice-app .header>div:first-child{display:none}html[data-layout=portrait] .practice-app .header-actions{flex:1;justify-content:space-between;gap:5px}html[data-layout=portrait] .practice-app .foods{flex:0 0 63px;gap:5px;margin:0;padding:0;display:flex;overflow:auto}html[data-layout=portrait] .practice-app .food-tab{flex-direction:column;flex:0 0 67px;gap:1px;min-height:58px;padding:3px}html[data-layout=portrait] .practice-app .food-tab img{width:25px;height:33px}html[data-layout=portrait] .practice-app .food-tab strong{font-size:11px}html[data-layout=portrait] .practice-app .food-tab small{display:none}html[data-layout=portrait] .practice-app .workshop{flex:1;grid-template-rows:minmax(0,1fr) minmax(120px,23dvh);grid-template-columns:1fr;gap:7px;min-height:0;display:grid}html[data-layout=portrait] .practice-app .workshop-main{flex-direction:column;min-height:0;display:flex}html[data-layout=portrait] .practice-app .status{flex:none;min-height:30px;padding:5px 10px}html[data-layout=portrait] .practice-app .status b{font-size:16px}html[data-layout=portrait] .practice-app .stage{flex:1;height:auto;min-height:0}html[data-layout=portrait] .practice-app .controls{flex:none;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;display:grid}html[data-layout=portrait] .practice-app .controls button{min-height:44px;padding:4px;font-size:11px}html[data-layout=portrait] .practice-app .lesson{min-height:0;margin:0;padding:10px 14px;overflow:auto}html[data-layout=portrait] .practice-app .lesson h2{margin:2px 0 6px;font-size:18px}html[data-layout=portrait] .practice-app .detail{margin-bottom:7px;font-size:12px;line-height:1.5}html[data-layout=portrait] .practice-app .tools{gap:5px;margin:8px 0}html[data-layout=portrait] .practice-app .tip{min-height:0;padding:8px;font-size:12px}html[data-layout=portrait] .practice-app .practice-note{padding-top:5px;font-size:10px}html[data-layout=portrait] .practice-app>footer{display:none}}@media (max-width:680px) and (min-height:541px){html[data-layout=landscape] .app.practice-app{height:100vh;max-width:760px;height:100dvh;padding:6px max(8px,env(safe-area-inset-right)) 6px max(8px,env(safe-area-inset-left));flex-direction:column;gap:6px;display:flex;overflow:hidden}html[data-layout=landscape] .practice-app .header{flex:none;gap:4px;min-height:44px;padding:0}html[data-layout=landscape] .practice-app .header>div:first-child{display:none}html[data-layout=landscape] .practice-app .header-actions{flex:1;justify-content:space-between;gap:5px}html[data-layout=landscape] .practice-app .foods{flex:0 0 63px;gap:5px;margin:0;padding:0;display:flex;overflow:auto}html[data-layout=landscape] .practice-app .food-tab{flex-direction:column;flex:0 0 67px;gap:1px;min-height:58px;padding:3px}html[data-layout=landscape] .practice-app .food-tab img{width:25px;height:33px}html[data-layout=landscape] .practice-app .food-tab strong{font-size:11px}html[data-layout=landscape] .practice-app .food-tab small{display:none}html[data-layout=landscape] .practice-app .workshop{flex:1;grid-template-rows:minmax(0,1fr) minmax(120px,23dvh);grid-template-columns:1fr;gap:7px;min-height:0;display:grid}html[data-layout=landscape] .practice-app .workshop-main{flex-direction:column;min-height:0;display:flex}html[data-layout=landscape] .practice-app .status{flex:none;min-height:30px;padding:5px 10px}html[data-layout=landscape] .practice-app .status b{font-size:16px}html[data-layout=landscape] .practice-app .stage{flex:1;height:auto;min-height:0}html[data-layout=landscape] .practice-app .controls{flex:none;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;display:grid}html[data-layout=landscape] .practice-app .controls button{min-height:44px;padding:4px;font-size:11px}html[data-layout=landscape] .practice-app .lesson{min-height:0;margin:0;padding:10px 14px;overflow:auto}html[data-layout=landscape] .practice-app .lesson h2{margin:2px 0 6px;font-size:18px}html[data-layout=landscape] .practice-app .detail{margin-bottom:7px;font-size:12px;line-height:1.5}html[data-layout=landscape] .practice-app .tools{gap:5px;margin:8px 0}html[data-layout=landscape] .practice-app .tip{min-height:0;padding:8px;font-size:12px}html[data-layout=landscape] .practice-app .practice-note{padding-top:5px;font-size:10px}html[data-layout=landscape] .practice-app>footer{display:none}}@media (max-height:540px){html[data-layout=portrait] .app.practice-app{height:100vh;grid-template-rows:44px minmax(0,1fr);grid-template-columns:64px minmax(0,1fr);gap:6px;max-width:1320px;height:100dvh;padding:5px 8px;display:grid;overflow:hidden}html[data-layout=portrait] .practice-app .header{grid-column:1/-1;min-height:44px;padding:0}html[data-layout=portrait] .practice-app .header>div:first-child{display:none}html[data-layout=portrait] .practice-app .header-actions{justify-content:space-between;gap:5px;width:100%}html[data-layout=portrait] .practice-app .foods{flex-direction:column;grid-area:2/1;gap:5px;min-height:0;margin:0;padding:0;display:flex;overflow:auto}html[data-layout=portrait] .practice-app .food-tab{flex-direction:row;flex:0 0 52px;gap:2px;min-height:52px;padding:3px}html[data-layout=portrait] .practice-app .food-tab img{width:24px;height:34px}html[data-layout=portrait] .practice-app .food-tab strong{font-size:11px}html[data-layout=portrait] .practice-app .food-tab small{display:none}html[data-layout=portrait] .practice-app .workshop{grid-area:2/2;grid-template-columns:minmax(0,1fr) max(150px,min(25vw,240px));gap:6px;min-height:0;display:grid}html[data-layout=portrait] .practice-app .workshop-main{flex-direction:column;min-height:0;display:flex}html[data-layout=portrait] .practice-app .stage{flex:1;height:auto;min-height:0}html[data-layout=portrait] .practice-app .status{flex:none;min-height:30px;padding:5px 10px}html[data-layout=portrait] .practice-app .status b{font-size:15px}html[data-layout=portrait] .practice-app .status small{display:none}html[data-layout=portrait] .practice-app .controls{flex:none;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;display:grid}html[data-layout=portrait] .practice-app .controls button{min-height:44px;padding:4px;font-size:10px}html[data-layout=portrait] .practice-app .lesson{min-height:0;margin:0;padding:10px;overflow:auto}html[data-layout=portrait] .practice-app .lesson h2{font-size:16px}html[data-layout=portrait] .practice-app .detail,html[data-layout=portrait] .practice-app .tip{font-size:12px;line-height:1.5}html[data-layout=portrait] .practice-app .tip{min-height:0;padding:8px}html[data-layout=portrait] .practice-app .tools{margin:8px 0}html[data-layout=portrait] .practice-app .practice-note{padding-top:6px;font-size:10px}html[data-layout=portrait] .practice-app>footer{display:none}}@media (max-height:540px) and (min-width:541px){html[data-layout=portrait] .normal-app .header{flex-wrap:nowrap}html[data-layout=portrait] .normal-app .header .profile-links{flex:auto;order:0;gap:2px}html[data-layout=portrait] .normal-app .header .profile-links button{min-height:44px;padding:5px;font-size:10px}html[data-layout=portrait] .normal-app .header-actions{flex:none;gap:3px}html[data-layout=portrait] .normal-app .run-hud{padding:4px 10px}html[data-layout=portrait] .normal-app .score-block b{font-size:23px}html[data-layout=portrait] .normal-app .combo-block{gap:3px}}
