:root{color-scheme:dark;--cream:#f6e9c8;--ink:#192119;--red:#d9573b;--safe-top:max(15px,env(safe-area-inset-top));--safe-bottom:max(13px,env(safe-area-inset-bottom))}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;margin:0;overflow:hidden;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:#996940;color:var(--cream);touch-action:none}button,a{font:inherit}button{color:inherit}#game,#canvas-wrap{position:fixed;inset:0}canvas{display:block;width:100%;height:100%;outline:none}
.loading{position:fixed;z-index:60;inset:0;display:grid;place-content:center;justify-items:center;background:#18231a;transition:opacity .35s,visibility .35s}.loading.hidden{opacity:0;visibility:hidden}.loading p{margin-top:18px;font-size:13px;font-weight:800;letter-spacing:.13em}.loader-card{display:grid;place-items:center;width:58px;height:76px;border:5px solid #efd168;border-radius:7px;background:linear-gradient(145deg,#b94435,#313e61);color:#f4dda0;font-size:30px;box-shadow:0 12px 20px #0005;animation:flip .7s ease-in-out infinite}@keyframes flip{50%{transform:rotateY(90deg) translateY(-12px)}100%{transform:rotateY(180deg)}}
.topbar{position:fixed;z-index:7;left:0;right:0;top:0;padding:var(--safe-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;pointer-events:none}.topbar>*{pointer-events:auto}.back{justify-self:start;color:inherit;text-decoration:none;font-size:13px;font-weight:800;text-shadow:0 1px 5px #0009}.match-pill{padding:9px 14px;border:1px solid #fff5;border-radius:99px;background:#283229cc;backdrop-filter:blur(8px);font-size:12px;font-weight:750}.icon-btn{justify-self:end;width:38px;height:38px;border-radius:50%;border:1px solid #fff5;background:#283229cc;cursor:pointer;font-weight:900}
.hud{position:fixed;z-index:6;top:calc(var(--safe-top) + 54px);left:50%;transform:translateX(-50%);display:flex;border:1px solid #fff3;border-radius:15px;overflow:hidden;background:#1d261fdf;box-shadow:0 8px 24px #24160d55;backdrop-filter:blur(8px);pointer-events:none}.hud div{min-width:87px;padding:8px 12px;text-align:center}.hud div+div{border-left:1px solid #fff2}.hud span{display:block;font-size:10px;opacity:.65}.hud strong{font-size:19px;font-variant-numeric:tabular-nums}.hud strong b,.hud strong em{font:inherit}.hud strong em{opacity:.55}.hud div:first-child strong{color:#69c5d3}.hud div:nth-child(3) strong{color:#eb7154}.hud div:nth-child(4) strong{color:#e7c75b}
.message{position:fixed;z-index:7;left:50%;bottom:calc(var(--safe-bottom) + 114px);transform:translateX(-50%);padding:9px 15px;border:1px solid #fff3;border-radius:99px;background:#1d271fe3;font-size:12px;font-weight:800;white-space:nowrap;pointer-events:none}.slap-ui{position:fixed;z-index:9;left:50%;bottom:var(--safe-bottom);transform:translateX(-50%);display:grid;justify-items:center;gap:7px;transition:.2s}.slap-ui.hide{opacity:0;visibility:hidden}.meters{display:flex;gap:22px;font-size:10px;padding:5px 11px;border-radius:99px;background:#1d261fcb}.meters b{font-size:13px;color:#efd063}.slap-track{position:relative;width:310px;height:91px;border:2px dashed #f2e0af66;border-radius:48px;background:#261d164d;overflow:hidden}.slap-track:after{content:"";position:absolute;left:50%;top:8px;bottom:8px;width:2px;background:linear-gradient(#fff0,#fff6);transform:translateX(-50%)}#palm-handle{position:absolute;z-index:2;left:50%;bottom:7px;transform:translateX(-50%);width:145px;height:66px;border:1px solid #fff5;border-radius:38px;background:#efe0bb;color:#293028;display:flex;align-items:center;justify-content:center;gap:9px;cursor:grab;box-shadow:0 8px 20px #21130b66}#palm-handle i{width:43px;height:46px;border-radius:50% 50% 44% 44%;background:#dfa873;box-shadow:inset -6px -5px 9px #985e4866;position:relative}#palm-handle i:before{content:"";position:absolute;left:4px;right:4px;top:-13px;height:24px;border-radius:10px;background:repeating-linear-gradient(90deg,#dfa873 0 6px,#bd805f 6px 7px)}#palm-handle b{font-size:12px}.slap-track em{position:absolute;right:13px;top:36px;font-style:normal;font-size:9px;opacity:.55}.ai-turn{position:fixed;z-index:8;left:50%;bottom:calc(var(--safe-bottom) + 33px);transform:translate(-50%,12px);padding:13px 20px;border-radius:16px;background:#f0dfb6;color:#283027;font-size:13px;font-weight:900;opacity:0;visibility:hidden;transition:.2s}.ai-turn.show{opacity:1;visibility:visible;transform:translate(-50%,0)}.feedback{position:fixed;z-index:14;left:50%;top:43%;transform:translate(-50%,-50%) scale(.7);padding:10px 20px;border-radius:99px;background:#e7c754;color:#263126;font-size:21px;font-weight:950;opacity:0;pointer-events:none}.feedback.show{animation:pop .8s ease-out}.feedback.bad{background:#d9583e;color:#fff}@keyframes pop{0%{opacity:0;transform:translate(-50%,-20%) scale(.6)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.13)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,-80%) scale(.9)}}
.panel{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:20px;background:#14201991;backdrop-filter:blur(7px);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}.panel.visible{opacity:1;visibility:visible}.panel-card{position:relative;overflow:hidden;width:min(500px,100%);padding:32px 32px 27px;border-radius:28px;background:#eee0bc;color:var(--ink);text-align:center;border:1px solid #fffa;box-shadow:0 24px 80px #151d1599,inset 0 0 80px #fff3}.panel-card:before{content:"";position:absolute;inset:0;opacity:.16;pointer-events:none;background-image:radial-gradient(#714722 .7px,transparent .8px);background-size:6px 6px}.panel-card>*{position:relative}.eyebrow{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.16em;color:#88472f}.panel h1,.panel h2{margin:0 0 12px;font-family:"Songti SC","Noto Serif SC",serif;font-size:clamp(44px,9vw,67px);line-height:1;font-weight:900;letter-spacing:-.06em}.panel h2{font-size:clamp(34px,7vw,52px)}.panel-card>p:not(.eyebrow){margin:0 auto 18px;max-width:390px;line-height:1.65;color:#4e594e;font-size:14px}.pack-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}.pack-choices button{padding:9px 5px;border:1px dashed #88785f;border-radius:12px;background:transparent;color:#374238;cursor:pointer}.pack-choices button.selected{border-style:solid;border-color:#b34e37;background:#dc604017;box-shadow:inset 0 0 0 2px #b34e3722}.pack-choices i{display:grid;place-items:center;width:43px;height:52px;margin:0 auto 7px;border-radius:5px;background:linear-gradient(145deg,#b84635,#303e63);color:#f1d379;font:900 20px "Songti SC",serif}.pack-choices button:nth-child(2) i{background:linear-gradient(145deg,#b67934,#702e29)}.pack-choices button:nth-child(3) i{background:linear-gradient(145deg,#356d85,#402d62)}.pack-choices b{font-size:12px}.primary,.secondary{width:100%;min-height:50px;border-radius:14px;border:0;cursor:pointer;font-weight:900}.primary{background:#d9573b;color:#fff;box-shadow:0 7px 0 #9c3b28,0 12px 20px #7d392f40}.primary:active{transform:translateY(4px);box-shadow:0 3px 0 #9c3b28}.secondary{margin-top:13px;background:transparent;color:#39483b;border:1px solid #6e776c}.compact{max-width:390px}.result-score{display:flex;align-items:baseline;justify-content:center;gap:11px;margin:9px 0 22px}.result-score span{font-size:12px}.result-score strong{font-size:48px;color:#c84b32}.result-score strong b,.result-score strong em{font:inherit;font-style:normal}
@media(max-width:650px){.back span{display:none}.topbar{grid-template-columns:42px 1fr 42px}.match-pill{justify-self:center}.hud{top:calc(var(--safe-top) + 49px);width:calc(100% - 24px)}.hud div{min-width:0;flex:1;padding:7px 4px}.hud strong{font-size:16px}.panel-card{padding:27px 20px 23px}.pack-choices{margin:13px 0}.pack-choices button{padding:8px 3px}.message{bottom:calc(var(--safe-bottom) + 110px)}.slap-track{width:calc(100vw - 30px)}}@media(max-height:680px){.panel-card{transform:scale(.9)}.pack-choices{margin:10px 0}.panel-card>p:not(.eyebrow){margin-bottom:10px}.hud{top:calc(var(--safe-top) + 44px)}.message{bottom:calc(var(--safe-bottom) + 95px)}.slap-track{height:78px}#palm-handle{height:57px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
