@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700;800&family=Noto+Sans+SC:wght@400;500;600;700;800;900&display=swap');
:root{font-family:'DM Sans','Noto Sans SC',sans-serif;color:#4c2c25;background:#f7eedb}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 8% 11%,#fff9e9 0,transparent 27%),#f7eedb}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}.shell{max-width:1490px;margin:auto;padding:0 46px}.topbar{height:91px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #decab0}.brand{text-decoration:none;display:flex;gap:11px;align-items:center;font-size:19px;font-weight:900;line-height:1.1;letter-spacing:.02em}.brand small{display:block;font-size:9px;letter-spacing:.25em;color:#b27d65;margin-top:5px}.brand-icon{width:45px;height:45px;border-radius:13px;background:#e66f4a;color:#fff7e9;display:grid;place-items:center;font-size:24px;box-shadow:3px 4px 0 #b85338}.top-right{display:flex;gap:26px;align-items:center}.live{font-size:12px;font-weight:700;color:#8c7c6a}.live i{display:inline-block;width:8px;height:8px;background:#b4a694;border-radius:50%;margin-right:5px}.live.connected i{background:#6ca776;box-shadow:0 0 0 4px #6ca77633}.season{font-size:12px;font-weight:700;color:#c36c4d;border:1px solid #e7bfa5;border-radius:30px;padding:9px 14px;background:#fff5e6}.intro{min-height:305px;display:flex;justify-content:space-between;align-items:center;position:relative;padding:28px 0 34px}.eyebrow,.tiny{font-weight:800;color:#c16c49;font-size:11px;letter-spacing:.23em}.spark{color:#e8a349;margin:0 4px}.intro h1{font-size:clamp(44px,5vw,76px);line-height:1.12;letter-spacing:-.075em;margin:13px 0;color:#532d23;font-weight:900}.intro h1 span{color:#e66f4a}.intro p{font-size:15px;line-height:1.8;color:#8b7263;margin:0}.steps{display:flex;gap:9px;margin-top:23px;flex-wrap:wrap}.steps span{border:1px solid #e7ccb3;border-radius:30px;padding:8px 14px;font-size:12px;color:#735144;background:#fff8ea}.steps b{color:#d9704e;margin-right:6px}.hero-stamp{width:165px;height:165px;transform:rotate(11deg);border:4px solid #e5b47e;border-radius:50%;color:#d66c4a;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-right:10%;background:#fff7e9;box-shadow:0 0 0 9px #fff7e9,0 0 0 11px #e5b47e}.hero-stamp span{font-size:52px;font-weight:900;line-height:.9;letter-spacing:.1em}.hero-stamp small{font-size:11px;font-weight:800;letter-spacing:.22em;margin-top:13px}.game-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(330px,.78fr);gap:21px;align-items:start}.kitchen-card,.welcome-card,.luck-card,.record-card{background:#fff9ef;border:1px solid #ebd9be;border-radius:23px;box-shadow:0 12px 38px #8b5c2820}.kitchen-card{padding:25px 27px 20px;overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:center}.card-head h2{font-size:25px;margin:5px 0 0;letter-spacing:-.04em}.card-head h2 span{color:#e57850}.round-chip{background:#fae4ce;color:#ae5e40;border-radius:30px;font-size:12px;font-weight:800;padding:10px 13px}.status-line{display:flex;justify-content:space-between;gap:10px;margin:21px 0 0;font-size:12px;color:#987b66}.status-line strong{color:#bc7151}.pot-scene{height:560px;position:relative;margin:12px auto 0;max-width:830px}.pot-rim{position:absolute;left:3%;right:3%;top:10%;height:76%;border-radius:50%;background:#aa4534;border:11px solid #d66c4b;box-shadow:0 13px 0 #8e3d33,0 26px 0 #e8b879,0 35px 25px #75402d40,inset 0 0 0 8px #f6d3a3;overflow:hidden;z-index:2}.broth{position:absolute;inset:15px;border-radius:50%;background:radial-gradient(circle at 50% 48%,#e8b862,#c8874b 75%);box-shadow:inset 0 0 30px #9b542f88;overflow:hidden}.broth:after{content:"";position:absolute;inset:7%;border-radius:50%;border:2px solid #fce4a35c;pointer-events:none}.broth-swirl{position:absolute;width:70%;height:28%;border:3px solid #ffdf9870;border-radius:50%;transform:rotate(-16deg);top:23%;left:13%}.broth-swirl.two{top:54%;transform:rotate(13deg)}.pot-handle{position:absolute;width:110px;height:46px;background:#a84534;border:8px solid #77342c;border-radius:28px;top:40%;z-index:1}.pot-handle.left{left:-1%}.pot-handle.right{right:-1%}.pot-base{position:absolute;bottom:6%;left:28%;right:28%;height:36px;background:#c06a47;border-radius:50%;box-shadow:0 15px 30px #8b5c2840}.steam{position:absolute;z-index:3;top:0;color:#e8b27b;font-size:50px;opacity:.45;animation:steam 3s ease-in-out infinite;pointer-events:none}.steam-a{left:28%}.steam-b{left:49%;animation-delay:1s}.steam-c{left:68%;animation-delay:2s}@keyframes steam{0%{transform:translateY(18px);opacity:0}50%{opacity:.4}100%{transform:translateY(-23px);opacity:0}}.dumplings{position:absolute;inset:10% 7%;z-index:2}.dumpling{position:absolute;left:var(--x);top:var(--y);width:8.2%;height:10%;transform:translate(-50%,-50%);padding:0;border:0;background:transparent;filter:drop-shadow(0 3px 2px #7a4a2670);animation:bob 2.7s ease-in-out infinite;animation-delay:var(--delay);transition:filter .2s,opacity .3s}.dumpling:not(:disabled):hover{filter:drop-shadow(0 4px 3px #7a4a26aa) brightness(1.08);z-index:3;scale:1.2}.dumpling svg{width:100%;height:100%}.dumpling-body{fill:#fff0c5;stroke:#d3a46d;stroke-width:2}.dumpling-shadow{fill:none;stroke:#f8d696;stroke-width:4}.dumpling-fold{fill:none;stroke:#dfba82;stroke-width:1.6;stroke-linecap:round}.dumpling.gone{opacity:.15;filter:grayscale(1);animation:none}.dumpling.own{opacity:.3}@keyframes bob{50%{transform:translate(-50%,-58%) rotate(4deg)}}.scoop-anim{position:absolute;left:48%;top:28%;width:190px;height:300px;z-index:5;pointer-events:none;opacity:0;transform:translate(65%,-100%) rotate(25deg)}.scoop-anim.active{animation:scoop 1s ease-in-out both}.spoon-handle{position:absolute;left:88px;top:0;width:16px;height:190px;border-radius:10px;background:linear-gradient(90deg,#9d9c91,#e8e5d7,#99988e);transform:rotate(25deg);transform-origin:bottom}.spoon-bowl{position:absolute;bottom:17px;left:12px;width:150px;height:80px;border:13px solid #d9dbd0;border-radius:50%;background:#dedfc588;display:grid;place-items:center;box-shadow:0 8px 15px #5b3a2b55}.spoon-bowl span{font-size:52px}@keyframes scoop{0%{opacity:0;transform:translate(65%,-100%) rotate(25deg)}35%{opacity:1;transform:translate(0,0) rotate(0)}65%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(-35%,-100%) rotate(-12deg)}}.pot-footer{display:flex;justify-content:space-between;color:#977c6d;font-size:12px;margin-top:-15px}.legend i{display:inline-block;width:10px;height:10px;background:#b7ae9c;border-radius:50%;margin-right:5px}.sidebar{display:grid;gap:18px}.welcome-card,.luck-card,.record-card{padding:25px}.welcome-card h3,.luck-card h3{font-size:27px;line-height:1.25;letter-spacing:-.05em;margin:13px 0 21px}.welcome-card label{display:block;font-size:12px;font-weight:800;margin-bottom:9px}.input-row{display:flex;background:#fff;border:1px solid #e6cdb1;border-radius:12px;overflow:hidden}.input-row input{min-width:0;flex:1;border:0;outline:none;padding:13px 11px;color:#4c2c25;font-size:13px}.input-row button{border:0;background:#de6e4c;color:#fff;font-weight:800;padding:0 14px;white-space:nowrap;font-size:12px}.input-row button:disabled{opacity:.5}.tip{font-size:11px;color:#aa907b;margin:15px 0 0;line-height:1.6}.player-card{display:flex;align-items:center;justify-content:space-between;background:#faead7;padding:13px;border-radius:12px;font-size:13px}.player-card strong{color:#d46747}.player-card em{font-style:normal;font-size:20px}.luck-card{background:#d96d4d;color:#fff6e6;position:relative;overflow:hidden}.luck-card .tiny{color:#ffe0b5}.luck-card h3{position:relative;z-index:2;margin:25px 0 10px}.luck-card h3 em{font-style:normal;color:#ffe1a3}.luck-card p{font-size:12px;line-height:1.8;opacity:.9;max-width:230px;position:relative;z-index:2}.gift-illo{position:absolute;right:-25px;top:35px;font-size:24px;color:#fbe1ad;transform:rotate(-12deg)}.gift-illo span{font-size:90px}.gift-stats{border-top:1px solid #ffffff55;display:flex;gap:40px;margin-top:23px;padding-top:18px}.gift-stats div{display:flex;flex-direction:column}.gift-stats strong{font-size:25px}.gift-stats span{font-size:11px;opacity:.85}.record-title{display:flex;justify-content:space-between;align-items:center}.record-title h3{font-size:17px;margin:0 0 14px}.record-title span{font-size:10px;color:#bc8e76;letter-spacing:.18em}.plate-empty{font-size:12px;color:#ae9480;background:#fff4e5;border-radius:10px;padding:16px}.plate-item{border-top:1px solid #eddcc7;padding:12px 0;display:flex;justify-content:space-between;gap:7px;flex-wrap:wrap;font-size:12px}.plate-item strong{color:#bd6c4b}.plate-item small{width:100%;color:#8b6d56;line-height:1.5;overflow-wrap:anywhere}footer{display:flex;justify-content:space-between;padding:33px 0;color:#af937a;font-size:10px;letter-spacing:.12em}footer a{text-decoration:none}.modal[hidden],.player-card[hidden],.redemption[hidden],#joinForm[hidden],#joinTip[hidden]{display:none!important}.modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center}.modal-backdrop{position:absolute;inset:0;background:#3d211bbd;backdrop-filter:blur(4px)}.reveal-card{position:relative;width:min(92vw,470px);background:#fff9ed;border-radius:27px;text-align:center;padding:35px 35px 30px;box-shadow:0 25px 80px #2e150d66;animation:pop .35s cubic-bezier(.17,.9,.25,1.2)}@keyframes pop{from{transform:scale(.8);opacity:0}}.close{position:absolute;right:19px;top:12px;background:none;border:0;font-size:30px;color:#a4816d}.reveal-kicker{font-size:10px;font-weight:800;letter-spacing:.2em;color:#c7805f}.split-dumpling{height:135px;display:flex;align-items:center;justify-content:center}.half{font-size:75px;display:block}.half-left{transform:rotate(-28deg) translateX(8px)}.half-right{transform:rotate(28deg) translateX(-8px)}.filling{font-size:48px;z-index:2;animation:pop .4s .15s both}.reveal-card h2{font-size:29px;color:#5d3126;margin:0 0 10px}.reveal-card p{font-size:14px;line-height:1.7;color:#876b5d}.redemption{background:#fce6cf;color:#a14f37;border:1px dashed #df9368;border-radius:12px;padding:13px;text-align:left;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.done{border:0;border-radius:11px;background:#dc704d;color:white;padding:13px 26px;font-weight:800;margin-top:22px}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);background:#4c2c25;color:#fff;padding:11px 18px;border-radius:9px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:30}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:980px){.game-grid{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr 1fr}.record-card{grid-column:1/-1}.pot-scene{height:540px}}@media(max-width:650px){.shell{padding:0 16px}.topbar{height:72px}.season,.hero-stamp{display:none}.intro{min-height:270px}.intro h1{font-size:48px}.intro p{font-size:12px}.steps span{font-size:10px;padding:7px 10px}.game-grid{gap:14px}.kitchen-card{padding:17px 12px 16px;border-radius:17px}.card-head h2{font-size:19px}.round-chip{font-size:10px}.status-line{font-size:10px;padding:0 3px}.pot-scene{height:360px;margin-top:12px}.pot-rim{left:0;right:0;top:13%;height:70%;border-width:7px}.broth{inset:9px}.pot-handle{width:40px;height:25px;top:40%;border-width:4px}.pot-handle.left{left:-3%}.pot-handle.right{right:-3%}.pot-footer{margin-top:-8px;font-size:10px}.sidebar{grid-template-columns:1fr}.record-card{grid-column:auto}.brand{font-size:16px}.brand-icon{width:39px;height:39px}.live{font-size:10px}footer{font-size:8px}}
.broth{cursor:pointer;touch-action:manipulation}.dumpling{touch-action:manipulation}.dumpling.selected{z-index:4;animation:none;transform:translate(-50%,-50%) scale(1.5);filter:drop-shadow(0 0 5px #fff7ca) drop-shadow(0 0 8px #ef6d39)}.dumpling.selected .dumpling-body{fill:#fff9e0;stroke:#e3623e;stroke-width:3}.selection-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff1da;border:2px solid #e8ab7d;border-radius:14px;padding:12px 15px;margin-top:19px;box-shadow:0 6px 18px #a35a3120}.selection-bar[hidden]{display:none!important}.selection-bar>div:first-child{display:flex;flex-direction:column;gap:2px}.selection-bar small{font-size:10px;font-weight:800;letter-spacing:.16em;color:#c06b4e}.selection-bar strong{font-size:18px;color:#773a2d}.selection-bar span{font-size:11px;color:#98745c}.selection-actions{display:flex;gap:8px;align-items:center}.selection-actions button{min-height:44px;border-radius:9px;padding:9px 13px;font-weight:800;font-size:12px;white-space:nowrap}.cancel-selection{border:1px solid #dfb693;color:#9b6146;background:#fff8eb}.confirm-scoop{border:0;color:#fff;background:#d96d4d}.confirm-scoop:disabled{opacity:.5}
@media(max-width:650px){.game-grid{display:flex;flex-direction:column}.sidebar{display:contents}.welcome-card{order:-1;width:100%}.kitchen-card{order:0;width:100%}.luck-card{order:1;width:100%}.record-card{order:2;width:100%}.selection-bar{flex-direction:column;align-items:stretch;margin-top:14px}.selection-actions{width:100%}.selection-actions button{flex:1}.pot-footer{flex-wrap:wrap;gap:6px}}
body.entry-mode{overflow:hidden;min-height:100vh;background:radial-gradient(circle at 25% 15%,#fff5dc 0,transparent 33%),radial-gradient(circle at 80% 88%,#e8ab78 0,transparent 35%),#f5e5ca}body.entry-mode::before{content:"🥟";position:fixed;right:8%;top:10%;font-size:clamp(110px,18vw,260px);opacity:.15;transform:rotate(-18deg);pointer-events:none}body.entry-mode .topbar,body.entry-mode .intro,body.entry-mode .kitchen-card,body.entry-mode .luck-card,body.entry-mode .record-card,body.entry-mode footer{visibility:hidden}body.entry-mode .welcome-card{position:fixed;z-index:50;left:50%;top:50%;transform:translate(-50%,-50%);width:min(90vw,460px);max-height:90vh;overflow:auto;padding:38px;background:#fffaf0;border:2px solid #e8ceb0;box-shadow:0 25px 80px #6d3b2940}body.entry-mode .welcome-card::before{content:"HOHO  ·  立冬开锅";display:block;color:#da704d;font-size:12px;font-weight:900;letter-spacing:.16em;margin-bottom:25px}body.entry-mode .welcome-card h3{font-size:clamp(30px,5vw,42px);margin:8px 0 26px}body.entry-mode .welcome-card .input-row{min-height:52px}body.entry-mode .welcome-card .tip{margin-top:20px;font-size:12px}body.entry-mode .welcome-card .tiny{color:#bf8665}@media(max-width:650px){body.entry-mode .welcome-card{padding:30px 22px}body.entry-mode .welcome-card::before{margin-bottom:18px}}
