:root{color-scheme:dark;--bg:#0a0a19;--surface:#151429;--surface2:#1e1934;--line:#383047;--ink:#fff8ff;--muted:#b4aabe;--pink:#ff76b6;--violet:#a78bff;--gold:#ffd48e;--teal:#72e8d5;--red:#fa759e;--safe:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html{background:#080915}body{min-height:100vh;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,"PingFang HK","Noto Sans TC","Microsoft JhengHei",sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid #ffe3fc;outline-offset:3px}h1,h2,h3,h4,p{margin-top:0}a{color:var(--pink)}.shell{min-height:100svh;max-width:540px;margin:auto;position:relative;overflow:hidden;background:radial-gradient(ellipse 76% 23% at 30% 0,rgba(135,54,170,.25),transparent 95%),radial-gradient(ellipse 65% 38% at 100% 44%,rgba(55,56,135,.14),transparent 100%),linear-gradient(170deg,#120f25 0%,#0c0e1c 65%,#0b0b19 100%);box-shadow:0 0 110px #0009}.shell::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:32px 32px;opacity:.65}.site-top,.footer,#app{position:relative}.site-top{height:78px;display:flex;align-items:center;padding:19px 23px 13px;gap:10px;border-bottom:1px solid #ffffff0e}.logomark{width:40px;height:40px;flex:none;border:1px solid #f0a0f588;border-radius:12px;display:grid;place-items:center;background:#3e294450;box-shadow:0 0 22px #bd5eda30;font-weight:900;color:#ffc2ed;letter-spacing:-.06em}.wordmark{font-size:11px;font-weight:800;line-height:1.12;letter-spacing:.17em}.wordmark strong{font-weight:900}.wordmark small{display:block;color:#b2a2d0;font-size:7px;letter-spacing:.22em;margin-top:4px}.topright{margin-left:auto;font-size:9px;font-weight:900;letter-spacing:.09em;color:#d5c3e6;white-space:nowrap}.on-dot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#89ecd9;box-shadow:0 0 8px #73fbe0}.footer{text-align:center;padding:17px 22px calc(24px + var(--safe));margin-top:15px;border-top:1px solid #ffffff0e}.footer-sign{font-size:10px;letter-spacing:.2em;color:#b9a7c8}.footer-sign b{color:#ffb1d8}.footer p{font-size:10px;line-height:1.6;color:#80768e;margin:7px 0 0}.page{padding:25px 23px 6px}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:.25em;font-weight:850}.hero{text-align:center;padding:7px 0 8px}.hero h1{font-size:clamp(39px,10.5vw,61px);font-weight:1000;line-height:.98;letter-spacing:-.065em;margin:13px 0}.gradient{background:linear-gradient(98deg,#ffedce,#ff8cbd 50%,#ae9cff);color:transparent;background-clip:text;-webkit-background-clip:text}.hero .lead{font-size:12px;color:#bfb1cc;line-height:1.8;margin:11px auto 20px;max-width:350px}.sparkles{font-size:23px;letter-spacing:15px;margin:12px auto 8px;filter:drop-shadow(0 0 12px #f98aceaa)}.label{font-size:11px;letter-spacing:.08em;color:#d4c8d9;font-weight:750;margin:18px 0 10px}.panel{border:1px solid #ffffff1c;border-radius:21px;padding:18px;background:linear-gradient(143deg,#ffffff0b,#ffffff04 75%);box-shadow:0 13px 22px #00000015}.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:10px}.game-choice{text-align:left;border:1px solid #4b394f;background:linear-gradient(155deg,#4b2b504f,#25203a9c);padding:15px 13px 13px;min-height:160px;border-radius:18px;position:relative;color:white;display:flex;flex-direction:column;align-items:flex-start}.game-choice.selected{border-color:#ff99d4;box-shadow:0 0 0 1px #ff99d4,0 0 20px #ff67ac25}.choice-emoji{font-size:35px;margin-bottom:8px;line-height:1}.game-choice strong{font-size:15px;line-height:1.2}.game-choice small{font-size:10px;line-height:1.5;color:#ccbad2;margin-top:7px}.game-choice .check{position:absolute;right:10px;top:10px;background:#fd8aba;border-radius:50%;width:21px;height:21px;display:grid;place-items:center;color:#1a1026;font-weight:800;visibility:hidden}.game-choice.selected .check{visibility:visible}.field-row{display:grid;grid-template-columns:1fr 118px;gap:11px}.field{width:100%;border:1px solid #665572;background:#160f28;color:white;border-radius:13px;padding:13px 14px;font-size:14px;outline:0;min-height:47px}.field::placeholder{color:#897c95}.field:focus{border-color:#e89dc5}.btn{min-height:48px;border:1px solid #796b87;border-radius:13px;padding:11px 17px;font-size:13px;font-weight:800;color:#fff;background:#30253e;display:inline-flex;justify-content:center;align-items:center;gap:7px;text-decoration:none;transition:filter .15s,transform .12s}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:linear-gradient(102deg,#ff75b3,#cf79db 52%,#9d85f5);color:#210d2a;border:0;box-shadow:0 5px 24px #ef69b547}.btn-outline{background:transparent;border-color:#b17ca0;color:#ffc8e4}.btn-ghost{background:#ffffff0a;border-color:#ffffff21}.btn-danger{background:#472438;border-color:#a65272;color:#ffbad4}.btn-wide{display:flex;width:100%}.btn-sm{min-height:35px;padding:8px 12px;border-radius:11px;font-size:11px}.btn:disabled{filter:grayscale(.6)}.buttons{display:flex;gap:9px;flex-wrap:wrap}.divider-label{display:flex;align-items:center;gap:10px;color:#81738d;font-size:10px;margin:19px 0}.divider-label::before,.divider-label::after{content:"";height:1px;flex:1;background:#6b536436}.subtext{color:#a89bb5;font-size:11px;line-height:1.7}.center{text-align:center}.back{color:#d8c7e2;border:0;background:transparent;padding:2px 0 18px;font-size:12px;font-weight:700}.room-code{font-size:40px;line-height:1;font-weight:1000;letter-spacing:.13em;text-align:center;color:#ffe5ba;text-shadow:0 0 25px #ffc57540;margin:9px 0 15px}.room-meta{text-align:center;color:#bca9d0;font-size:11px}.room-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0}.steps{display:flex;justify-content:center;gap:6px;margin:17px 0}.step{height:4px;width:38px;background:#3f3349;border-radius:10px}.step.current{background:linear-gradient(90deg,#ff83c2,#a78cfa)}.pill{font-size:10px;display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid #ffffff28;background:#ffffff0b;border-radius:999px;color:#e3d3ed}.pill.active{background:#9e33512a;border-color:#ff8db259;color:#ffbadd}.lobby-heading{display:flex;align-items:center;justify-content:space-between;margin:14px 0}.lobby-heading h2{margin:0;font-size:18px;letter-spacing:-.025em}.teams{display:grid;gap:9px}.team-card{border:1px solid var(--team-border,#553b55);background:linear-gradient(112deg,var(--team-bg,#261a2b),#161328dd);border-radius:15px;padding:12px 13px;position:relative;overflow:hidden}.team-card.focus{box-shadow:0 0 0 1px var(--team-border),0 0 18px #ffffff0c}.team-card-head{display:flex;gap:10px;align-items:center}.team-avatar{flex:none;width:33px;height:33px;border-radius:11px;display:grid;place-items:center;color:#171021;background:var(--team-color);font-size:16px;font-weight:1000}.team-title{font-size:12px;font-weight:900}.team-desc{font-size:10px;color:#aaa0ae;margin-top:3px}.team-players{font-size:11px;color:#e6dbe8;display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 0}.player-chip{background:#ffffff13;border:1px solid #ffffff15;border-radius:100px;padding:5px 8px}.player-chip.self{border-color:#e6a7d3;background:#74435d50}.join-teams{display:grid;gap:9px}.join-team-btn{width:100%;border-radius:15px;padding:14px;display:flex;align-items:center;gap:11px;background:#241d36;border:1px solid #59485e;text-align:left;color:white}.join-team-btn.selected{border-color:#ffc0e1;background:#6740644d}.join-team-btn strong{font-size:14px}.join-team-btn small{font-size:11px;color:#ad9db5;display:block;margin-top:3px}.game-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px}.picker-btn{padding:12px 8px;border-radius:13px;border:1px solid #5d4862;background:#221b35;color:#e4d3eb;font-size:12px;font-weight:750}.picker-btn.active{background:#6f3a675c;border-color:#f7a3dc;color:#ffe9f5}.status-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.status-top h1{margin:6px 0 0;font-size:22px;letter-spacing:-.03em}.game-code{font-size:10px;color:#edcae3;text-align:right;letter-spacing:.08em}.game-code strong{font-size:19px;display:block;letter-spacing:.12em;color:#ffe2b4}.scorebar{display:grid;grid-template-columns:repeat(var(--count),1fr);gap:6px;margin:12px 0}.score{min-width:0;border:1px solid #55425d;background:#261c37;border-radius:13px;padding:9px 5px;text-align:center}.score.current{border-color:#f9a9da;background:#58375680;box-shadow:inset 0 0 14px #f795ad1a}.score.dead{opacity:.48}.score-name{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#dbd0df;font-weight:750}.score-value{font-size:15px;font-weight:900;letter-spacing:-.02em;margin:5px 0 2px}.score-sub{font-size:9px;color:#9b91aa}.turn-banner{background:linear-gradient(100deg,#56314f70,#383057aa);border:1px solid #f4a0ce64;border-radius:15px;padding:12px 14px;margin:14px 0 12px;text-align:center}.turn-banner strong{font-size:15px;display:block;margin-bottom:4px}.turn-banner small{color:#cbb8d1;font-size:11px}.turn-banner.mine{border-color:#88e8c3;background:linear-gradient(95deg,#244b43b5,#252542)}.game-info{font-size:11px;color:#c9bad0;line-height:1.65;text-align:center}.croc-stage{background:radial-gradient(ellipse 64% 60% at 50% 38%,#3d777c37,transparent 85%),radial-gradient(ellipse 76% 48% at 50% 96%,#b12b8045,transparent),#111627;border:1px solid #4a435e;border-radius:22px;margin-top:13px;padding:23px 9px 23px;position:relative;overflow:hidden;min-height:350px}.croc-stage.bite{animation:shake .5s ease}.croc-top{width:295px;max-width:98%;height:130px;border-radius:48% 48% 36% 36%/70% 70% 25% 25%;background:linear-gradient(170deg,#60d4bb 0%,#278a87 65%,#24566c);border:3px solid #9df8e1;box-shadow:0 5px 29px #36d1b86a,inset 0 10px 19px #ffffff1c;margin:0 auto -30px;position:relative}.croc-eyes{display:flex;gap:78px;justify-content:center;position:absolute;width:100%;top:19px}.croc-eye{width:32px;height:32px;background:#fff7db;border:5px solid #153f49;border-radius:50%;position:relative}.croc-eye::after{content:"";position:absolute;width:11px;height:13px;border-radius:50%;background:#1c2532;top:6px;left:7px}.croc-nose{position:absolute;top:69px;left:50%;transform:translateX(-50%);display:flex;gap:28px}.croc-nose i{display:block;width:12px;height:9px;border-radius:50%;background:#164f5b}.croc-mouth{width:320px;max-width:100%;border:5px solid #62d9ce;border-top:10px solid #ffe4ed;border-radius:35% 35% 43% 43%/25% 25% 55% 55%;padding:28px 17px 26px;margin:auto;position:relative;background:radial-gradient(ellipse at 50% 78%,#7d255b,#31182e 65%,#26172a);box-shadow:inset 0 0 0 8px #0000001b,0 14px 30px #0008}.croc-tongue{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:#cc558d;width:110px;height:32px;border-radius:50%;opacity:.32}.teeth{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 8px;z-index:1}.tooth{height:67px;min-width:0;border:1px solid #c5b6ff;border-radius:15px 15px 19px 19px;clip-path:polygon(9% 0,91% 0,100% 60%,61% 100%,39% 100%,0 60%);color:#4f3259;background:linear-gradient(150deg,#fff,#eadcf6 60%,#c5b5ee);box-shadow:inset -4px -7px 10px #a888c659,0 1px 10px #ffffff77;font-weight:1000;font-size:12px;padding:0 0 8px}.tooth:disabled{opacity:.45}.tooth.used{background:#9e879d;color:#e6d9e0;box-shadow:none;opacity:.23}.tooth.pressable{animation:glimmer 2.5s ease infinite}.teeth.locked .tooth:not(.used){filter:saturate(.6)}.croc-label{text-align:center;color:#a5e9e4;font-size:10px;letter-spacing:.16em;margin-top:14px;font-weight:800}.last-message{margin:14px 0;background:#ffffff0c;border:1px solid #ffffff1b;border-radius:13px;padding:12px;text-align:center;font-size:12px;color:#e6d7ea;min-height:42px}.rules{margin:16px 0;border:1px solid #514253;border-radius:15px;padding:13px 16px;background:#ffffff08}.rules summary{font-size:12px;font-weight:750;cursor:pointer}.rules p{font-size:11px;line-height:1.7;color:#bfb2c6;margin:12px 0 1px}.dice-tray{margin:14px 0;border:1px solid #676077;border-radius:19px;background:linear-gradient(130deg,#383048a0,#20182f);padding:16px}.dice-tray-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px;font-size:12px}.dice-tray-head small{font-size:10px;color:#c9b9d4}.dice-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;min-height:65px;align-items:center}.die{width:56px;height:56px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:8px;background:linear-gradient(145deg,#fff,#e1dced);border-radius:12px;box-shadow:0 5px 0 #bdb3cf,0 6px 14px #0005}.die.mini{width:30px;height:30px;padding:5px;border-radius:7px;box-shadow:0 3px 0 #b1a7ba}.pip{width:9px;height:9px;background:#514471;border-radius:50%;align-self:center;justify-self:center}.die.mini .pip{width:5px;height:5px}.blind-dice{padding:13px 8px;color:#a99bb2;font-size:12px;text-align:center}.bid-board{text-align:center;margin:14px 0;border:1px dashed #84647e;border-radius:16px;padding:15px 12px;background:#6e32552d}.bid-board .bid-main{font-size:28px;font-weight:1000;color:#ffe0bb;margin:7px 0 4px}.bid-board small{font-size:10px;color:#baa8c3}.bid-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.bid-control{border:1px solid #59465d;background:#251d37;border-radius:15px;padding:11px}.bid-control>label{display:block;font-size:10px;color:#c4b4ce;text-align:center;margin-bottom:9px}.stepper{display:flex;align-items:center;justify-content:space-between;gap:5px}.stepper strong{font-size:23px;color:#fff3fb}.stepper button{border:1px solid #786586;background:#534260;color:white;width:37px;height:37px;border-radius:11px;font-size:22px}.dice-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.dice-actions .btn{font-size:12px;padding:10px}.reveal-panel{border:1px solid #df9bbe7a;background:#3f2d477d;border-radius:20px;padding:16px;margin:15px 0}.reveal-panel h3{margin:0 0 7px;font-size:18px;text-align:center}.reveal-count{font-size:12px;color:#ddcbdc;text-align:center;margin-bottom:12px}.reveal-team{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px 0;border-bottom:1px solid #ffffff1b;font-size:11px}.reveal-team .dice-row{gap:6px;min-height:35px}.winner{padding:19px 0 13px;text-align:center}.trophy{font-size:77px;filter:drop-shadow(0 0 19px #ffd88999);animation:float 3s ease-in-out infinite}.winner h1{font-size:37px;line-height:1.06;letter-spacing:-.06em;margin:9px 0}.winner .subtitle{color:#dbc8e2;font-size:13px}.leaderboard{border:1px solid #6d576c;border-radius:17px;padding:12px 15px;margin:17px 0;background:#ffffff0a}.leaderboard h3{font-size:12px;color:#fbd1e6}.board-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid #ffffff13;font-size:13px}.board-row:last-child{border:0}.board-row strong{color:#ffe3b5;font-size:16px}.winner-card{border:1px solid #ffb2d47c;background:linear-gradient(110deg,#a3478850,#41307162);padding:15px;border-radius:17px;text-align:center;margin:18px 0}.winner-card strong{font-size:17px}.challenge{font-size:12px;color:#f5d8e8;margin-top:8px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,24px);background:#fee6ef;color:#311a2f;max-width:calc(100% - 35px);border-radius:12px;padding:12px 18px;font-size:12px;font-weight:800;box-shadow:0 10px 30px #0007;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:99}.toast.show{opacity:1;transform:translate(-50%,0)}.splash{padding:130px 10px;text-align:center;font-size:11px;letter-spacing:.2em;color:#bba3d5}.spinner{width:35px;height:35px;margin:0 auto 20px;border:3px solid #ffffff15;border-top-color:#ec88b8;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(-8px)}}@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}@keyframes glimmer{50%{filter:brightness(1.08)}}
@media(max-width:380px){.page{padding-left:16px;padding-right:16px}.site-top{padding-left:16px;padding-right:16px}.teeth{gap:8px 5px}.tooth{height:59px}.croc-stage{padding:20px 6px}.croc-mouth{padding-left:12px;padding-right:12px}.topright{font-size:8px}.score-name{font-size:8px}.score-value{font-size:13px}.die{width:49px;height:49px}}
@media(min-width:541px){body{padding:0 14px}}

.dare-card{border:1px solid #dfb98884;border-radius:14px;padding:13px 15px;margin:12px 0;background:linear-gradient(112deg,#5a402c4a,#63315859);text-align:center;font-size:12px;color:#f8e2e4;line-height:1.65}.dare-card b{display:block;color:#ffe09f;margin-bottom:4px}.dare-card small{display:block;color:#bfb0c4;font-size:10px;margin-top:4px}

/* 2–6 teams, solo-team support, and host-configurable rules */
.game-settings{border:1px solid #ffffff25;background:#ffffff08;padding:3px 13px 12px;border-radius:16px;margin-top:16px}
.game-settings .label{margin-top:12px}.setting-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #ffffff15}.setting-line:first-of-type{border-top:0}.setting-line span{flex:1;min-width:0}.setting-line strong{font-size:12px;display:block;color:#f6e5f4}.setting-line small{font-size:10px;line-height:1.5;color:#b2a4bd;display:block;margin-top:3px}.setting-field{max-width:182px;min-width:112px;flex:0 0 auto;padding:9px 10px;font-size:12px;min-height:40px}.end-mode{min-width:177px}.setting-field:disabled{opacity:.75}.survivors{font-size:12px;line-height:1.75;padding:13px;margin-top:16px;border:1px solid #90daba72;border-radius:13px;background:#19564930;color:#c4f0df}.scorebar .score-value{overflow-wrap:anywhere}.scorebar .score-name{font-size:10px}
@media(max-width:380px){.setting-field{min-width:94px;max-width:154px}.end-mode{min-width:148px}.scorebar .score-name{font-size:9px}}
/* Keep five team dice in a single row on 360–390px mobile screens. */
.dice-tray .dice-row{gap:6px}
.dice-tray .die{width:52px;height:52px;padding:7px;flex:0 0 auto}
@media(max-width:380px){.dice-tray .die{width:48px;height:48px;padding:6px}}
