:root{font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#664639;background:#fff7ec;font-synthesis:none;font-weight:400;--pink:#eb7185;--ink:#654536;--muted:#a18a7c;--line:#eaded0}*{box-sizing:border-box}body{margin:0;min-width:1000px;height:100vh;min-height:650px;overflow:hidden;background:radial-gradient(ellipse at 72% 53%,#fce6dd 0,transparent 52%),linear-gradient(120deg,#fffaf0,#fff4e8 65%,#fdefe5)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit;background:none}button:focus-visible,a:focus-visible{outline:3px solid #bd8c54;outline-offset:5px}button{transition:transform .16s,background .16s,box-shadow .16s}button:hover{transform:translateY(-2px)}button:active{transform:translateY(1px)}a{color:inherit;text-decoration:none}.hidden{display:none!important}#app{height:100%;display:flex;flex-direction:column;padding:0 4.2vw;position:relative}.topbar{height:91px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8d9c985}.brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:800;letter-spacing:1px}.brand-mark{display:grid;place-items:center;width:41px;height:41px;background:#ec8390;color:#fff9e5;font-size:32px;border-radius:14px 14px 16px 16px;box-shadow:0 4px #d96c7a;transform:rotate(-8deg)}.brand small{display:block;font-size:9px;letter-spacing:3.2px;color:#aa8c74;margin-top:4px}.header-right{display:flex;align-items:center;gap:20px}.record{font-size:12px;color:#a18b78}.divider{height:17px;width:1px;background:var(--line)}.sound-button{font-size:12px;font-weight:600;opacity:.9}.sound-button[aria-pressed=false]{opacity:.38;text-decoration:line-through}.help-button{border:1px solid #cfbdaa;width:27px;height:27px;border-radius:50%;font-weight:700;color:#a78b74}.main-layout{display:grid;grid-template-columns:315px minmax(0,1fr);gap:32px;flex:1;min-height:0;position:relative}.menu-panel{align-self:center;padding:20px 0 26px}.eyebrow{font-size:11px;letter-spacing:2px;color:#9d9273;display:flex;gap:8px;align-items:center}.eyebrow>span{height:6px;width:6px;background:#90aa77;border-radius:50%}h1{font-size:65px;line-height:1.05;letter-spacing:-3px;margin:20px 0 18px;font-weight:900;text-shadow:0 3px 0 #e4ceba55}h1>span{display:block;color:#df7783;position:relative;white-space:nowrap}h1 i{font-style:normal;position:absolute;font-size:31px;color:#e8b34d;right:13px;top:8px;transform:rotate(15deg)}.intro{font-size:13px;line-height:1.95;margin:0 0 17px;color:#9c8574}.mode-label{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:600;color:#94705b;margin-bottom:27px}.tiny-dot{height:6px;width:6px;border-radius:50%;background:#e59a5f}.choice-group{border:0;padding:0;margin:0 0 24px;min-width:0}.choice-group legend{display:flex;width:100%;padding:0 0 14px;gap:9px;color:#bca990;font-size:10px;font-weight:600;align-items:center}.choice-group legend>span:first-child{font-size:12px;color:#7c6251;letter-spacing:.4px}.choice-value{margin-left:auto;font-size:10px;color:#b69b88;font-weight:400}.colors{display:flex;gap:19px;padding-left:3px}.color-button{height:40px;width:40px;border-radius:50%;position:relative;background:radial-gradient(circle at 32% 26%,#ffffffa1 0,transparent 38%),var(--c);box-shadow:inset 0 -4px 3px #0000000b,0 3px 3px #84552d0c;border:3px solid #fff5e7;outline:1px solid transparent}.color-button.selected{outline:2px solid var(--c);outline-offset:3px}.color-button>span{color:#fff;font-size:17px;opacity:0}.color-button.selected>span{opacity:1}.difficulty{display:flex;gap:8px}.difficulty button{width:99px;padding:11px 4px 10px;border:1px solid #e9dac8;border-radius:12px;font-size:12px;background:#fffaf25c}.difficulty button small{display:block;font-size:9px;margin-top:5px;color:#bca28b}.difficulty .selected{background:#f3e5cf;border-color:#dec5a1;font-weight:700;box-shadow:0 2px #e0cdb555}.difficulty .selected small{color:#a88b64}.primary-button{background:#e9818e;color:#fff9ef;border-radius:15px;padding:16px 21px;font-size:14px;font-weight:700;box-shadow:0 5px #ce6878,0 12px 20px #dc8c891b;letter-spacing:1px}.primary-button:hover{background:#e77585;box-shadow:0 7px #ce6878,0 14px 20px #dc8c8925}.start-button{width:100%;display:flex;justify-content:space-between;align-items:center}.start-button b{font-size:23px;line-height:16px;font-weight:400}.start-note{font-size:9px;letter-spacing:.4px;text-align:center;color:#b39c87;margin:16px 0 0}.stage-section{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column}.stage-top{position:absolute;top:39px;left:14px;right:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:1}.tag{font-size:9px;letter-spacing:2.8px;color:#ad8a74;padding:8px 12px;border:1px solid #ddcdbb;border-radius:30px}.showcase-sub{font-size:10px;letter-spacing:1px;color:#b29985}#stage{width:100%;flex:1;min-height:0;outline:none;position:relative}#stage canvas{display:block;width:100%;height:100%}.showcase-caption{position:absolute;bottom:68px;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:16px;font-size:11px;letter-spacing:2px;color:#a78d77;pointer-events:none}.caption-line{width:36px;height:1px;background:#d7c1a8}.controls-bar{height:80px;flex-shrink:0;display:flex;align-items:center;gap:24px;border-top:1px solid #e8d9c985;color:#ac927d}.controls-bar>div{display:flex;align-items:center;gap:12px}.control-text{font-size:11px}.control-text b{font-weight:500;color:#80644e}kbd{font:10px inherit;display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;border:1px solid #dcccb9;border-bottom-width:3px;border-radius:5px;background:#fff9ee;color:#9e826b;padding:0 5px}.key-cluster{display:flex;flex-direction:column;align-items:center;gap:2px}.key-cluster>kbd,.key-cluster>span>kbd{height:19px;min-width:20px;font-size:9px}.key-cluster>span{display:flex;gap:2px}.space-key{width:65px;height:27px;font-size:9px;letter-spacing:1px}.footer-dot{font-size:10px;color:#c7b39e}.footer-end{margin-left:auto;font-size:10px;letter-spacing:1px}.game-mode .main-layout{grid-template-columns:minmax(0,1fr);gap:0}.game-mode .menu-panel{display:none}.game-mode .controls-bar{height:65px}.game-mode .stage-section{padding-top:60px;padding-bottom:88px}.game-hud{position:absolute;z-index:2;top:16px;left:0;right:0;display:flex;justify-content:space-between;align-items:center}.hud-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.live-dot{height:7px;width:7px;border-radius:50%;background:#9cb674;box-shadow:0 0 0 4px #a9bd7b20}.timer{position:absolute;left:50%;transform:translate(-50%);font-size:27px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:2px}.timer.urgent{color:#dc6779}.small-button{font-size:11px;border:1px solid #dfcebb;border-radius:9px;background:#fff8ed;padding:8px 13px}.small-button kbd{height:18px;min-width:25px;font-size:8px;margin-left:7px}.game-bottom{position:absolute;left:0;right:0;bottom:13px;display:flex;justify-content:center;gap:35px;align-items:center}.player-cards{display:flex;gap:10px}.player-card{display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid #e8d8c4;border-radius:11px;background:#fff8eea8;font-size:10px;min-width:106px}.player-card.you{border-color:#e6a1aa;background:#fff5f2}.player-card.out{opacity:.34;filter:grayscale(1)}.player-dot{width:20px;height:23px;background:var(--c);border-radius:45% 45% 43% 43%;box-shadow:inset 2px 2px 4px #fff7;position:relative}.player-dot:before,.player-dot:after{content:"";position:absolute;background:var(--c);width:8px;height:8px;top:-2px;border-radius:50%}.player-dot:before{left:0}.player-dot:after{right:0}.player-card small{display:block;color:#b79b84;font-size:8px;margin-top:3px}.inventory{display:flex;gap:10px}.inventory>span{font-size:10px;color:#997d66;padding:7px 9px;border-radius:8px;background:#f2e4d155}.inventory b{margin-left:5px;color:#795a43;font-size:12px}.toast{position:absolute;z-index:3;left:50%;top:80px;transform:translate(-50%,-8px);opacity:0;pointer-events:none;background:#fffaf1ed;border:1px solid #e6cfb4;box-shadow:0 8px 24px #98684315;border-radius:30px;padding:10px 22px;color:#a37853;font-size:12px;transition:opacity .2s,transform .2s;white-space:nowrap}.toast.visible{opacity:1;transform:translate(-50%)}.modal-backdrop{position:fixed;inset:0;background:#78554b3b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;display:grid;place-items:center}.modal-card{position:relative;background:#fff8ed;border:1px solid #fff7f0;border-radius:28px;box-shadow:0 25px 100px #5f382c30;padding:36px 42px 32px;width:430px;text-align:center;max-height:90vh;overflow:auto}.modal-close{position:absolute;right:17px;top:13px;font-size:25px;color:#b6a08b;line-height:1}.modal-icon{font-size:42px;color:#e4ae4d;line-height:1;margin:0 0 13px}.modal-eyebrow{font-size:9px;letter-spacing:3px;color:#bf9d81;margin:0 0 11px}.modal-card h2{font-size:25px;letter-spacing:-.5px;margin:0 0 12px}.modal-card>p:not(.modal-eyebrow){font-size:12px;line-height:1.9;color:#aa8c74;margin:0}.modal-actions{display:flex;flex-direction:column;gap:11px;margin-top:25px}.modal-actions .secondary-button{border:1px solid #deccb5;border-radius:12px;font-size:12px;padding:12px;background:#fffaf2}.text-button{font-size:11px;color:#b49a81;padding:5px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 12px;text-align:left}.help-item{font-size:11px;background:#f3e8d8;border-radius:10px;padding:12px;line-height:1.7}.help-item b{display:block;font-size:12px;color:#8d684d}.help-rule{font-size:11px;text-align:left;line-height:1.9;color:#9b7e65}.fatal{position:absolute;inset:20%;display:grid;place-content:center;background:#fff8ed;border-radius:20px;padding:30px;font-size:13px;line-height:1.8;text-align:center}.desktop-notice{display:none}@media(min-width:1600px){#app{padding:0 5vw}.main-layout{grid-template-columns:355px minmax(0,1fr);gap:50px}.menu-panel{padding-right:15px}h1{font-size:76px}.intro{font-size:14px}.choice-group{margin-bottom:30px}.color-button{height:45px;width:45px}.difficulty button{width:108px;padding:13px}.primary-button{padding:19px 23px}.stage-top{top:65px}.showcase-caption{bottom:95px}.topbar{height:105px}.controls-bar{height:95px}}@media(max-height:760px){.topbar{height:74px}.menu-panel{padding:12px 0}.eyebrow{font-size:10px}h1{font-size:54px;margin:14px 0}.intro{font-size:11px;margin-bottom:12px}.mode-label{margin-bottom:18px}.choice-group{margin-bottom:17px}.choice-group legend{padding-bottom:11px}.colors{gap:19px}.color-button{height:35px;width:35px}.difficulty button{padding:8px 3px}.primary-button{padding:13px 19px}.start-note{margin-top:12px}.controls-bar{height:67px}.showcase-caption{bottom:40px}.stage-top{top:27px}.game-mode .stage-section{padding-top:45px;padding-bottom:75px}.game-hud{top:8px}.game-bottom{bottom:9px}.player-card{min-width:95px}.game-mode .controls-bar{height:53px}}@media(max-width:1050px){.header-right{gap:12px}.record{display:none}.main-layout{grid-template-columns:285px minmax(0,1fr);gap:15px}.showcase-sub{display:none}.game-bottom{gap:12px}.player-card{min-width:91px;padding:7px}.inventory{gap:4px}.controls-bar{gap:18px}.footer-end{display:none}}@media(max-width:800px){body{min-width:0}.desktop-notice{position:fixed;inset:0;display:grid;place-content:center;text-align:center;padding:35px;background:#fff5e8;z-index:50;font-size:18px;line-height:1.8}.topbar{visibility:hidden}}.game-mode .topbar{height:65px}.game-mode .stage-section{padding-top:46px;padding-bottom:60px}.game-mode .controls-bar{height:48px}.game-mode .game-bottom{bottom:7px}:root{color:#57331f;--ink:#57331f;--pink:#f05a7d;--muted:#896045;--line:#dbc19d}body{background:radial-gradient(ellipse at 72% 48%,#ffe0dd 0,transparent 55%),linear-gradient(120deg,#fff7df,#fff0e0 65%,#ffdfdb)}.intro,.control-text,.showcase-caption{color:#896047}.eyebrow,.mode-label,.choice-group legend>span:first-child{color:#775138}.choice-value,.choice-group legend,.start-note,.showcase-sub,.record{color:#9b7458}.difficulty button{border-color:#dfba8c;background:#fff5de}.difficulty button small{color:#a4774c}.difficulty .selected{background:#ffde9c;border-color:#d9a24b}.primary-button{background:#ef557a;box-shadow:0 5px #bd3458,0 12px 20px #d75c6d22}.primary-button:hover{background:#e94a71;box-shadow:0 7px #bd3458,0 14px 20px #d75c6d28}.color-button{box-shadow:inset 0 -4px 3px #0002,0 3px 3px #84552d14}.tag{color:#90603d;border-color:#cda477;background:#fff6df88}.brand-mark{background:#f15d83;box-shadow:0 4px #c6365a}.brand small{color:#9d6c46}.controls-bar{color:#8c6546}.sound-button,.help-button{color:#785236}.game-mode{background:linear-gradient(180deg,#a6eef1 0,#65cfdc 45%,#83dfe4)}.game-mode #app{padding:0 24px}.game-mode .topbar{height:58px;border-bottom:1px solid #78c1c3;background:#fff8e9db;border-radius:0 0 16px 16px;padding:0 20px}.game-mode .brand{font-size:16px}.game-mode .brand-mark{height:33px;width:33px;font-size:26px}.game-mode .brand small{font-size:8px}.game-mode .stage-section{padding-top:45px;padding-bottom:58px}.game-mode .controls-bar{height:42px;border-top:1px solid #73bfc6;padding:0 14px}.game-mode .game-hud{top:5px;padding:0 12px}.hud-title{background:#fff9e9ed;border:1px solid #ecd19f;border-radius:20px;padding:8px 14px;color:#714327}.timer{font-size:28px;color:#603b23;text-shadow:0 1px #fff9}.timer.urgent{color:#d52350}.game-mode .small-button{background:#fff6e1;border-color:#d7a563}.game-mode .game-bottom{bottom:4px;background:#fff9e3e8;max-width:1040px;margin:auto;border-radius:14px;padding:5px 12px;border:1px solid #dfbd80}.player-card{border-color:#d7bb87;background:#fff4d8}.player-card.you{border-color:#ec6c8e;background:#ffe4ea}.player-card small{color:#9c7350}.inventory>span{background:#f6dca7;color:#7f5631}.inventory b{color:#663a20}.game-mode .toast{top:51px;border-color:#d3a75e;color:#875027;background:#fff7df}.live-dot{background:#22ab62;box-shadow:0 0 0 4px #22ab621a}.game-mode .footer-end{color:#77552c}.game-mode .controls-bar .key-cluster{flex-direction:row;gap:3px}.game-mode .topbar{height:42px}.game-mode .brand-mark{height:27px;width:27px;font-size:22px}.game-mode .brand{font-size:13px}.game-mode .brand small{display:none}.game-mode .stage-section{padding-top:20px;padding-bottom:48px}.game-mode .game-hud{z-index:3;top:3px;pointer-events:none}.game-mode .game-hud button{pointer-events:auto}.game-mode .hud-title{font-size:10px;padding:5px 10px}.game-mode .small-button{padding:5px 10px}.game-mode .controls-bar{height:30px}.game-mode .game-bottom{max-width:1240px;gap:12px;padding:4px 10px;bottom:1px}.game-mode .inventory{gap:5px}.game-mode .inventory>span{padding:6px 7px;font-size:10px}.game-mode .player-card{min-width:95px;padding:6px 9px}.mount-help{grid-column:1/-1}.game-mode .toast{top:32px}@media(min-width:1600px){.game-mode .stage-section{padding-top:20px;padding-bottom:54px}.game-mode .topbar{height:46px}.game-mode .controls-bar{height:32px}.game-mode .game-bottom{max-width:1320px;padding:7px 16px}}
