:root{color-scheme:light;--ink:#1a1713;--paper:#fffdf6;--grain:#f6edd9;--red:#f1512f;--teal:#17806f;--yellow:#ffc93c;--yellow-soft:#ffe08a;--blue:#3a6ea5;--purple:#7a5af8;--green:#2dbf63;--muted:rgba(26,23,19,0.6);--line:rgba(26,23,19,0.14);--hard:5px 5px 0 rgba(26,23,19,0.92);--hard-sm:3px 3px 0 rgba(26,23,19,0.92);--pop:cubic-bezier(0.34,1.56,0.64,1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{min-height:100%;margin:0}body{background:radial-gradient(1100px 520px at 108% -6%,rgba(241,81,47,.09),transparent 62%),radial-gradient(900px 480px at -8% 108%,rgba(23,128,111,.1),transparent 60%),radial-gradient(rgba(26,23,19,.055) 1.4px,transparent 1.4px),var(--grain);background-size:auto,auto,22px 22px,auto;color:var(--ink);font-family:ui-rounded,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}::selection{background:var(--yellow)}button,input{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,p{margin:0}h1{font-size:clamp(40px,10vw,76px);line-height:.95;letter-spacing:1px}h1,h2{font-weight:900}h2{font-size:clamp(24px,6vw,38px);line-height:1.08}.home-shell,.room-shell{width:min(1180px,100%);min-height:100dvh;margin:0 auto;padding:24px}.home-shell{display:grid;grid-template-columns:minmax(0,1fr);place-items:center}.home-panel,.join-panel,.loading-card{position:relative;width:min(560px,100%);border:2.5px solid var(--ink);border-radius:20px;background:var(--paper);box-shadow:var(--hard),0 24px 60px rgba(26,23,18,.12);padding:30px}.home-panel{transform:rotate(-.4deg)}.home-panel:after{content:"🃏";position:absolute;right:-14px;top:-20px;font-size:46px;transform:rotate(14deg);filter:drop-shadow(3px 3px 0 rgba(26,23,19,.25))}.home-hub{position:relative;width:100%;max-width:640px;min-width:0;overflow:hidden;padding-bottom:82px;transform:none}.home-hub:after{content:none}.home-brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.home-brand-row>div{min-width:0}.home-brand-row h1{max-width:460px;font-size:clamp(42px,9vw,66px);text-shadow:4px 4px 0 var(--yellow)}.home-icon-button{display:grid;place-items:center;flex:0 0 auto;width:46px;height:46px;margin:0;border:2.5px solid var(--ink);border-radius:50%;background:var(--paper);box-shadow:var(--hard-sm);color:var(--ink);font-size:23px;font-weight:950;line-height:1;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.rules-icon-button{grid-template-columns:auto auto;gap:6px;width:auto;min-width:78px;padding:0 11px;border-radius:999px}.home-icon-button small{font-size:12px;font-weight:900;white-space:nowrap}.home-icon-button:hover{transform:translate(-1px,-1px);background:#fff;box-shadow:4px 4px 0 var(--ink)}.home-icon-button.active,.home-icon-button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.home-profile{display:grid;grid-template-columns:58px minmax(0,1fr) 44px;grid-gap:10px;gap:10px;align-items:center;margin-top:18px;padding:10px;border:2.5px solid var(--ink);border-radius:16px;background:rgba(255,255,255,.55)}.home-nickname-field{display:grid;grid-gap:4px;gap:4px;min-width:0;color:var(--muted);font-size:11px;font-weight:900}.home-profile input{min-width:0;min-height:50px;padding:8px 12px;color:var(--ink);font-size:17px;font-weight:850}.home-avatar{position:relative;display:grid;place-items:center;width:54px;height:54px;border:2.5px solid var(--ink);border-radius:13px;background:var(--yellow);font-size:27px}.home-avatar span{position:absolute;right:3px;bottom:3px;display:grid;place-items:center;width:19px;height:19px;border:2px solid var(--ink);border-radius:50%;background:var(--paper);font-size:8px;font-weight:900}.profile-refresh{display:grid;place-items:center;width:42px;height:42px;margin:0;border:0;background:transparent;color:var(--ink);font-size:34px;line-height:1}.home-avatar-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:10px;padding:12px;border:2px dashed rgba(26,23,19,.32);border-radius:14px;background:rgba(255,255,255,.5)}.home-avatar-grid .avatar-choice{font-size:20px}.home-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:22px}.home-mode-tab{display:grid;grid-gap:4px;gap:4px;min-height:76px;border:2.5px solid transparent;border-radius:14px 14px 0 0;background:transparent;color:var(--muted);padding:13px 16px;text-align:left;min-width:0}.home-mode-tab strong{color:inherit;font-size:20px}.home-mode-tab span{font-size:12px;font-weight:750;line-height:1.35}.home-mode-tab.selected{border-color:var(--ink);border-bottom-color:var(--paper);background:var(--paper);color:var(--ink)}.home-mode-preview{position:relative;aspect-ratio:3/2;margin-top:-2.5px;overflow:hidden;border:2.5px solid var(--ink);border-radius:0 18px 18px 18px;background:#f1d69e;isolation:isolate}.home-mode-cover{width:100%;height:100%;object-fit:cover}.preview-copy{position:absolute;right:16px;bottom:16px;left:16px;z-index:1;display:grid;grid-template-columns:auto 1fr;grid-gap:10px;gap:10px;align-items:center;border:2px solid var(--ink);border-radius:13px;background:rgba(255,253,246,.94);padding:12px 14px}.preview-copy>span{color:var(--red);font-size:13px;font-weight:900}.preview-copy strong{min-width:0;font-size:16px}.home-main-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;margin-top:20px}.home-main-actions>button{width:100%;min-height:56px}.home-join-row{margin-top:12px}.home-upload-popover{display:grid;grid-template-columns:minmax(0,1fr) 190px;grid-gap:14px;gap:14px;align-items:center;margin-top:16px;padding:14px;border:2px dashed rgba(26,23,19,.38);border-radius:14px;background:rgba(255,255,255,.52)}.home-upload-popover>div{display:grid;grid-gap:4px;gap:4px;min-width:0}.home-upload-popover>div span{color:var(--muted);font-size:12px;font-weight:750}.upload-icon-button{position:absolute;right:22px;bottom:22px;grid-template-columns:auto auto;gap:7px;width:auto;min-width:132px;height:48px;padding:0 15px;border-radius:999px;background:var(--teal);color:#fff}.upload-icon-button>span{font-size:24px}.brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.brand-row h1{transform:rotate(-1deg);text-shadow:4px 4px 0 var(--yellow)}.lede{margin-top:18px;color:var(--muted);font-size:17px;font-weight:600}.loading-card{margin:40vh auto 0;text-align:center;font-weight:900;animation:breathe 1.4s ease-in-out infinite}.eyebrow,.stamp{display:inline-flex;width:-moz-fit-content;width:fit-content;align-items:center;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);box-shadow:var(--hard-sm);padding:6px 12px;font-size:13px;font-weight:900;letter-spacing:1px;transform:rotate(-3deg)}.eyebrow{background:var(--paper);transform:rotate(-1.5deg)}.player-card{display:grid;grid-gap:16px;gap:16px;margin-top:26px}label{display:grid;grid-gap:8px;gap:8px;font-weight:800}input{width:100%;border:2.5px solid var(--ink);border-radius:14px;background:#fff;color:var(--ink);padding:14px 16px;outline:none;transition:border-color .18s ease,box-shadow .18s ease}input::placeholder{color:rgba(26,23,19,.34)}input:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(255,201,60,.5)}.avatar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.avatar-choice{aspect-ratio:1;border:2.5px solid var(--ink);border-radius:14px;background:#fff;font-size:26px;transition:transform .16s var(--pop),background .16s ease,box-shadow .16s ease}.avatar-choice:hover{transform:translateY(-3px) rotate(-3deg);box-shadow:var(--hard-sm)}.avatar-choice.selected{background:var(--teal);box-shadow:var(--hard-sm);transform:translateY(-3px) scale(1.06) rotate(2deg)}.clue-row button,.join-row button,.primary-action{border:2.5px solid var(--ink);border-radius:14px;background:var(--red);color:#fffdf5;min-height:54px;padding:0 20px;font-weight:900;font-size:17px;letter-spacing:2px;box-shadow:var(--hard);transition:transform .13s ease,box-shadow .13s ease,filter .2s ease}.clue-row button:not(:disabled):hover,.join-row button:not(:disabled):hover,.primary-action:not(:disabled):hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 rgba(26,23,19,.92)}.clue-row button:not(:disabled):active,.join-row button:not(:disabled):active,.primary-action:not(:disabled):active{transform:translate(4px,4px);box-shadow:1px 1px 0 rgba(26,23,19,.92)}.clue-row button:disabled,.join-row button:disabled,.primary-action:disabled,.submission-card:disabled{cursor:not-allowed;filter:grayscale(1);opacity:.55;box-shadow:none}.ghost-button,.report-button{border:2px solid var(--ink);border-radius:12px;background:var(--paper);min-height:44px;padding:0 14px;font-weight:900;box-shadow:var(--hard-sm);transition:transform .13s ease,box-shadow .13s ease,background .2s ease}.ghost-button:hover,.report-button:hover{background:#fff;transform:translate(-1px,-1px);box-shadow:4px 4px 0 rgba(26,23,19,.92)}.ghost-button:active,.report-button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 rgba(26,23,19,.92)}.like-button{width:calc(100% - 20px);min-height:40px;margin:8px 10px 0;border:2px solid var(--ink);border-radius:10px;background:#fffdf5;box-shadow:3px 3px 0 var(--ink);color:var(--ink);font-size:13px;font-weight:900}.like-button span{margin-right:5px;color:var(--red)}.like-button.selected{background:var(--yellow)}.like-button:disabled{cursor:default;opacity:.62}.join-row{display:grid;grid-template-columns:1fr 112px;grid-gap:10px;gap:10px;margin-top:18px}.error-line,.toast-line{border-left-color:var(--ink);border-left-width:2.5px;border:2.5px solid var(--ink);border-left:12px solid var(--red);border-radius:14px;background:#fff;color:var(--ink);margin-top:18px;padding:12px 14px;font-weight:800}.toast-line{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;margin:0 auto;max-width:680px;box-shadow:var(--hard),0 18px 40px rgba(26,23,18,.18);animation:rise .28s var(--pop)}.room-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.room-header h1{margin-top:12px;font-size:clamp(30px,7vw,54px);text-shadow:3px 3px 0 var(--yellow-soft)}.room-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.room-actions .ghost-button{white-space:nowrap}.leave-button{color:var(--red)}.status-strip{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:16px}.status-strip div{border:2px solid var(--ink);border-radius:16px;background:var(--paper);box-shadow:var(--hard-sm);padding:12px 14px}.status-strip div:first-child strong{color:var(--red)}.status-strip div:nth-child(2) strong{color:var(--teal)}.status-strip div:nth-child(3) strong{color:var(--blue)}.status-strip span,.status-strip strong{display:block}.status-strip strong{font-size:26px;line-height:1.1}.muted-line,.status-strip span{color:var(--muted);font-size:13px;font-weight:700}.muted-line{font-size:15px}.phase-state{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;align-items:stretch;margin-bottom:16px}.phase-state div{border:2px solid var(--ink);border-radius:16px;background:rgba(255,253,246,.86);box-shadow:var(--hard-sm);padding:10px 12px}.phase-state span{display:block;color:var(--muted);font-size:12px;font-weight:800}.phase-state strong{display:block;margin-top:2px;font-size:20px;line-height:1.15}.phase-state p{grid-column:1/-1;border-left:6px solid var(--yellow);border-radius:12px;background:#fffef7;padding:10px 12px;font-weight:900;line-height:1.35}.table-grid{display:grid;grid-template-columns:320px 1fr;grid-gap:16px;gap:16px;align-items:start}.play-panel,.score-panel{border:2.5px solid var(--ink);border-radius:20px;background:var(--paper);box-shadow:var(--hard),0 20px 48px rgba(26,23,18,.1);padding:20px}.score-panel h2{margin-bottom:14px;font-size:22px}.player-list{display:grid;grid-gap:8px;gap:8px}.player-row{display:grid;grid-template-columns:12px 34px minmax(0,1fr) auto auto;align-items:center;grid-gap:9px;gap:9px;border-radius:12px;padding:8px 10px}.player-row:first-child{border:2px solid var(--ink);background:var(--yellow-soft);box-shadow:var(--hard-sm);transform:rotate(-.6deg)}.player-row:first-child .player-name:after{content:" 👑"}.player-row strong{font-size:18px}.kick-player-button{border:2px solid var(--ink);border-radius:10px;background:#fffdf5;color:var(--red);min-height:32px;padding:0 10px;font-size:13px;font-weight:900;box-shadow:2px 2px 0 rgba(26,23,19,.8)}.kick-player-button:disabled{cursor:not-allowed;filter:grayscale(1);opacity:.55;box-shadow:none}.online-dot{width:10px;height:10px;border-radius:50%;background:#b9b2a4}.online-dot.on{background:var(--green);animation:ping 2s ease-out infinite}.avatar-mini{font-size:24px}.player-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.phase-stack{display:grid;grid-gap:20px;gap:20px}.phase-copy,.reveal-head,.rules-card{display:grid;grid-gap:12px;gap:12px}.rules-card{border:2.5px solid var(--ink);border-radius:18px;background:#fffef7;padding:16px;box-shadow:var(--hard-sm)}.rules-heading{display:grid;grid-gap:8px;gap:8px}.rules-heading h3{font-size:clamp(20px,3.2vw,30px);line-height:1.12}.rules-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;padding:6px;border-radius:14px;background:#eee8da}.rules-mode-tab{min-height:44px;border:2px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font-weight:900}.rules-mode-tab.selected{border-color:var(--ink);background:var(--yellow);box-shadow:var(--hard-sm);color:var(--ink)}.rules-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.rule-step{position:relative;display:grid;align-content:start;grid-gap:6px;gap:6px;min-height:126px;border:2px solid var(--ink);border-radius:14px;background:#fff;padding:12px}.rule-step span{display:grid;place-items:center;width:28px;height:28px;border:2px solid var(--ink);border-radius:50%;background:var(--yellow);font-size:14px;font-weight:900;box-shadow:2px 2px 0 rgba(26,23,19,.72)}.rule-step strong{font-size:18px}.rule-step p,.score-chip p{color:var(--muted);font-size:12px;font-weight:800;line-height:1.38}.scoring-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.score-chip{display:grid;grid-template-columns:auto 1fr;align-items:start;grid-gap:10px;gap:10px;border:2px solid var(--ink);border-radius:14px;background:#f2fffb;padding:10px 12px}.score-chip b{color:var(--red);font-size:21px;line-height:1}.score-chip strong{display:block;margin-bottom:3px;font-size:15px}.rules-dialog-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:16px;background:rgba(26,23,19,.46);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.rules-dialog{position:relative;width:min(820px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:4px}.rules-dialog .rules-card{padding:22px;box-shadow:var(--hard),0 24px 70px rgba(26,23,18,.28)}.dialog-close{position:absolute;right:18px;top:18px;z-index:1;display:grid;place-items:center;width:42px;height:42px;border:2.5px solid var(--ink);border-radius:12px;background:var(--red);color:#fffdf5;font-size:24px;font-weight:900;line-height:1;box-shadow:var(--hard-sm)}.upload-disclosure{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:14px;gap:14px;border:2.5px solid var(--ink);border-radius:16px;background:#fffef7;padding:16px;box-shadow:var(--hard-sm)}.upload-disclosure-copy{display:grid;min-width:0;grid-gap:5px;gap:5px}.upload-disclosure-copy strong{font-size:18px;line-height:1.2}.upload-disclosure-copy span{color:var(--muted);font-size:14px;font-weight:800;line-height:1.35}.upload-toggle{min-width:150px}.upload-drop{display:grid;place-items:center;grid-gap:4px;gap:4px;min-height:190px;border:3px dashed rgba(26,23,19,.55);border-radius:18px;background:rgba(255,255,255,.75);text-align:center;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .16s var(--pop)}.upload-drop:before{content:"🖼️";font-size:44px;filter:drop-shadow(2px 3px 0 rgba(26,23,19,.18))}.upload-drop:hover{border-color:var(--teal);background:#f2fffb;transform:translateY(-2px)}.upload-drop input{display:none}.upload-drop strong{color:var(--teal);font-size:24px}.upload-drop span{color:var(--muted);font-weight:600}.lobby-actions{display:flex;justify-content:flex-end}.result-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center}.restart-button{min-height:54px;color:var(--red)}.card-picker,.submission-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));grid-gap:14px;gap:14px}.hand-card,.picker-card,.submission-card{position:relative;overflow:hidden;border:2.5px solid var(--ink);border-radius:16px;background:#fff;padding:5px;box-shadow:var(--hard-sm);transition:transform .18s var(--pop),box-shadow .18s ease,outline-color .18s ease}.picker-card,.submission-card{aspect-ratio:1}.picker-card:nth-child(3n){transform:rotate(1.3deg)}.picker-card:nth-child(3n+1){transform:rotate(-1.2deg)}.picker-card:nth-child(3n+2){transform:rotate(.5deg)}.picker-card:hover,.submission-card:not(:disabled):hover{transform:translateY(-4px) rotate(0deg);box-shadow:5px 7px 0 rgba(26,23,19,.92);z-index:1}.hand-card img,.picker-card img,.submission-card img{width:100%;height:100%;object-fit:contain;border-radius:10px;background:#fff}.hand-card.selected,.picker-card.selected,.submission-card.selected,.submission-card.voted{outline:4px solid var(--yellow);outline-offset:0;animation:wiggle .4s var(--pop);transform:translateY(-4px) scale(1.03);z-index:2}.submission-card.voted:after{content:"已投 ✓";position:absolute;right:8px;top:8px;z-index:1;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);padding:3px 9px;font-size:12px;font-weight:900}.clue-row{display:grid;grid-template-columns:1fr 112px;grid-gap:10px;gap:10px}.clue-banner{position:relative;border:2.5px solid var(--ink);border-radius:18px;background:var(--blue);color:#fff;padding:22px 20px;font-size:clamp(24px,6vw,40px);font-weight:900;line-height:1.15;box-shadow:var(--hard);transform:rotate(-.8deg)}.clue-banner:after,.clue-banner:before{content:"";position:absolute;top:-13px;width:92px;height:26px;background:rgba(255,224,138,.92);border:1px solid rgba(26,23,19,.18);border-radius:3px}.clue-banner:before{left:22px;transform:rotate(-6deg)}.clue-banner:after{right:22px;transform:rotate(5deg)}.vote-context{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.vote-context p{font-size:18px;font-weight:900}.waiting-card{display:grid;justify-items:center;grid-gap:16px;gap:16px;min-height:320px;align-content:center;text-align:center}.spinner{width:52px;height:52px;border-left:6px solid rgba(26,23,19,.12);border-bottom:6px solid rgba(26,23,19,.12);border-top:6px solid rgba(26,23,19,.12);border-top-color:var(--red);border-right:6px solid rgba(26,23,19,.12);border-right-color:var(--yellow);border-radius:50%;animation:spin .9s linear infinite}.own-badge,.slot-badge{position:absolute;z-index:1;border:2px solid var(--ink);background:var(--yellow);padding:4px 9px;font-weight:900;font-size:13px}.slot-badge{left:9px;top:9px;border-radius:999px;box-shadow:2px 2px 0 rgba(26,23,19,.6)}.own-badge{right:9px;bottom:9px;border-radius:10px;background:var(--purple);color:#fff}.reveal-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center;border:2.5px solid var(--ink);border-radius:18px;background:#fff;padding:16px;box-shadow:var(--hard-sm)}.reveal-summary.good{background:#f2fffb}.reveal-summary.bad{background:#fff3ee}.reveal-summary.neutral{background:#fffef7}.reveal-summary-copy{display:grid;grid-gap:8px;gap:8px;min-width:0}.reveal-summary h3{margin:0;font-size:clamp(22px,4.5vw,34px);line-height:1.08}.reveal-summary p{color:var(--muted);font-size:15px;font-weight:800;line-height:1.45}.points-pill{display:grid;place-items:center;min-width:96px;min-height:64px;border:2.5px solid var(--ink);border-radius:16px;background:var(--yellow);box-shadow:var(--hard-sm);color:var(--ink);font-size:24px;white-space:nowrap;transform:rotate(1deg)}.summary-stats{display:grid;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.summary-stats div{border:2px solid var(--ink);border-radius:14px;background:rgba(255,255,255,.72);padding:10px 12px}.summary-stats span,.summary-stats strong{display:block}.summary-stats span{color:var(--muted);font-size:12px;font-weight:800}.summary-stats strong{margin-top:3px;font-size:18px}.submission-grid.reveal{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}article.submission-card{aspect-ratio:auto;padding-bottom:12px}article.submission-card img{aspect-ratio:1;height:auto}.submission-card.story{background:var(--red);color:#fffdf5;animation:reveal-pulse 1.6s ease-out infinite;transform:rotate(-1deg) scale(1.02)}.submission-card.story.funniest-story{background:var(--yellow-soft);color:var(--ink);animation:none;transform:none}.reveal-card-meta{margin:10px 10px 0;overflow:hidden;border:2px solid var(--ink);border-radius:12px;background:#fffdf5;color:var(--ink)}.reveal-meta-section{display:grid;grid-gap:6px;gap:6px;padding:10px}.reveal-meta-section.voters{border-top:2px dashed rgba(26,23,19,.32);background:#fff5c7}.reveal-meta-label{color:var(--muted);font-size:11px;font-weight:900;line-height:1}.reveal-owner{display:flex;align-items:center;min-width:0;gap:6px;font-size:15px}.reveal-owner strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reveal-truth-tag{flex:0 0 auto;margin-left:auto;border:1.5px solid var(--ink);border-radius:999px;background:var(--red);padding:2px 7px;color:#fffdf5;font-size:11px;font-weight:900}.vote-line{flex-wrap:wrap;min-height:34px;gap:6px;font-size:15px;letter-spacing:0}.vote-chip,.vote-line{display:flex;align-items:center;color:var(--ink)}.vote-chip{min-width:0;max-width:100%;gap:5px;border:1.5px solid var(--ink);border-radius:999px;background:#fff;padding:4px 8px;font-weight:900}.vote-avatar{flex:0 0 auto}.vote-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vote-empty{color:var(--muted);font-size:14px;font-weight:800}.report-button{min-height:34px;margin:10px 10px 0;padding:0 6px;border:0;border-radius:6px;font-size:13px;color:var(--muted);opacity:.62}.report-button,.report-button:hover{box-shadow:none;background:transparent}.report-button:hover{color:var(--ink);opacity:.9;transform:none}.report-button:active{opacity:1;transform:none;box-shadow:none}.result-highlight{display:grid;grid-template-columns:minmax(160px,240px) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:center;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);padding:18px 0}.result-highlight img{width:100%;aspect-ratio:1;border:2.5px solid var(--ink);border-radius:14px;background:#fff;object-fit:contain}.result-highlight div{display:grid;grid-gap:10px;gap:10px;min-width:0}.result-highlight h3,.result-highlight p{margin:0}.result-highlight h3{font-size:clamp(24px,4vw,38px);line-height:1.16}.result-highlight p{color:var(--muted);font-weight:800;line-height:1.5}.podium{grid-gap:12px}.podium,.podium-card{display:grid;gap:12px}.podium-card{grid-template-columns:80px 1fr auto;align-items:center;grid-gap:12px;border:2.5px solid var(--ink);border-radius:16px;background:#fff;padding:16px;box-shadow:var(--hard-sm)}.podium-card.rank-1{background:var(--yellow);transform:rotate(-1deg) scale(1.02);box-shadow:var(--hard)}.podium-card.rank-2{background:#ece7db}.podium-card.rank-3{background:#f2d4b2}.podium-card b{font-size:20px}.report-preview{display:grid;grid-gap:10px;gap:10px;color:var(--ink);font-weight:900;text-decoration:none}.report-preview img{width:min(360px,100%);border:2.5px solid var(--ink);border-radius:16px;box-shadow:var(--hard)}.hand-strip{position:-webkit-sticky;position:sticky;bottom:10px;display:flex;gap:10px;margin-top:18px;padding:12px 12px calc(12px + env(safe-area-inset-bottom) / 2);overflow-x:auto;z-index:10;border:2.5px solid var(--ink);border-radius:20px;background:rgba(255,253,246,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--hard),0 -12px 32px rgba(26,23,18,.08);scrollbar-width:thin}.hand-card{flex:0 0 92px;width:92px;height:92px}.hand-card:nth-child(2n){transform:rotate(1.6deg)}.hand-card:nth-child(odd){transform:rotate(-1.4deg)}.hand-card.selected{transform:translateY(-8px) rotate(-2deg) scale(1.05)}.hand-card.readonly,.hand-card:disabled{cursor:default}@keyframes spin{to{transform:rotate(1turn)}}@keyframes rise{0%{transform:translateY(18px);opacity:0}}@keyframes wiggle{0%{transform:translateY(-4px) rotate(-2.5deg) scale(1.02)}50%{transform:translateY(-4px) rotate(2.5deg) scale(1.05)}to{transform:translateY(-4px) rotate(0deg) scale(1.03)}}@keyframes ping{0%{box-shadow:0 0 0 0 rgba(45,191,99,.55)}70%{box-shadow:0 0 0 7px rgba(45,191,99,0)}to{box-shadow:0 0 0 0 rgba(45,191,99,0)}}@keyframes reveal-pulse{0%,to{box-shadow:var(--hard-sm),0 0 0 0 rgba(241,81,47,.45)}50%{box-shadow:var(--hard-sm),0 0 0 14px rgba(241,81,47,0)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width:820px){.home-shell,.room-shell{padding:14px}.home-panel,.join-panel{padding:22px 18px}.home-panel:after{right:-6px;top:-16px;font-size:38px}.home-hub{padding:18px 14px 74px}.home-brand-row h1{font-size:34px;line-height:1.04;white-space:nowrap}.home-brand-row{gap:8px}.rules-icon-button{width:auto;min-width:72px;height:40px}.home-profile{grid-template-columns:52px minmax(0,1fr) 40px;gap:8px;padding:8px}.home-avatar{width:48px;height:48px;font-size:24px}.profile-refresh{width:38px;height:38px;font-size:31px}.home-avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.home-mode-tab{min-height:72px;padding:9px 10px}.home-mode-preview{aspect-ratio:1.22}.preview-copy{right:10px;bottom:10px;left:10px;padding:10px}.home-main-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.home-main-actions>button{min-width:0;padding-inline:8px;font-size:15px;letter-spacing:0}.home-upload-popover{grid-template-columns:1fr}.upload-icon-button{right:16px;bottom:16px}.room-header{display:grid;grid-gap:10px;gap:10px}.room-actions{justify-content:flex-start}.table-grid{grid-template-columns:1fr}.score-panel{order:2}.play-panel{order:1;padding:16px}.status-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.phase-state{grid-template-columns:1fr}.phase-state p{grid-column:auto}.status-strip strong{font-size:19px}.rules-flow,.scoring-strip,.upload-disclosure{grid-template-columns:1fr}.upload-toggle{width:100%}.result-actions,.result-highlight{grid-template-columns:1fr}.result-highlight img{max-width:260px}.rule-step{min-height:0}.reveal-summary{grid-template-columns:1fr}.points-pill{justify-self:start;min-width:88px;min-height:52px;font-size:20px}.clue-row,.join-row,.summary-stats{grid-template-columns:1fr}.card-picker,.submission-grid{gap:10px}.card-picker,.submission-grid,.submission-grid.reveal{grid-template-columns:repeat(2,minmax(0,1fr))}.hand-card{flex:0 0 84px;width:84px;height:84px}.hand-strip{bottom:8px}}.prompt-dice{width:-moz-fit-content;width:fit-content;justify-self:start;min-height:38px;margin-top:-6px;font-size:14px;color:var(--teal)}.public-upload-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:18px;border-top:2px dashed var(--line)}.public-upload-entry>div{display:grid;grid-gap:4px;gap:4px}.admin-sticker-meta>span:last-child,.public-upload-entry span,.public-upload-picker span{color:var(--muted);font-size:13px;font-weight:750}.public-upload-picker{display:grid;place-items:center;grid-gap:6px;gap:6px;min-height:116px;margin-top:12px;border:2px dashed rgba(26,23,19,.42);border-radius:12px;background:rgba(255,255,255,.55);cursor:pointer}.public-upload-picker input{position:absolute;width:1px;height:1px;opacity:0}.upload-message{margin:10px 0 0;color:var(--teal);font-weight:850}.admin-shell{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:36px 0 64px}.admin-login{display:grid;grid-gap:18px;gap:18px;width:min(520px,100%);margin:12vh auto 0;padding:30px;border:3px solid var(--ink);border-radius:8px;background:var(--paper);box-shadow:var(--hard)}.admin-header h1,.admin-login h1{margin:8px 0 0;font-size:clamp(32px,5vw,58px);line-height:1}.admin-login label{display:grid;grid-gap:8px;gap:8px;color:var(--muted);font-weight:900}.admin-login input{min-width:0;height:52px;border:2px solid var(--ink);border-radius:8px;padding:0 14px;background:#fff;color:var(--ink);font:inherit}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.admin-header-actions{display:flex;align-items:center;gap:10px}.admin-upload-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.admin-upload-button input{position:absolute;width:1px;height:1px;opacity:0}.admin-filters{display:flex;gap:8px;margin:28px 0 20px;overflow-x:auto}.admin-filters button{flex:0 0 auto;min-height:40px;padding:0 14px;border:2px solid var(--ink);border-radius:8px;background:var(--paper);font-weight:900}.admin-filters button.selected{background:var(--yellow);box-shadow:var(--hard-sm)}.admin-sticker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px}.admin-sticker-card{display:grid;grid-template-rows:220px auto auto;min-width:0;overflow:hidden;border:3px solid var(--ink);border-radius:8px;background:var(--paper);box-shadow:var(--hard-sm)}.admin-sticker-card img{width:100%;height:100%;padding:8px;object-fit:contain;background:#fff}.admin-sticker-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:8px;gap:8px;padding:12px;border-top:2px solid var(--ink)}.admin-sticker-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-pill{padding:4px 7px;border-radius:6px;color:var(--ink)!important;font-size:12px!important}.status-pill.pending{background:var(--yellow-soft)}.status-pill.approved{background:#c9f2df}.status-pill.rejected{background:#eadfd8}.admin-review-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;padding:0 12px 12px}.admin-approved-actions{padding:0 12px 12px}.delete-sticker-button{min-height:34px;border:0;background:transparent;color:var(--muted);font-weight:850;cursor:pointer}.delete-sticker-button:hover{color:var(--red);text-decoration:underline}.admin-review-actions button{min-height:40px;border:2px solid var(--ink);border-radius:8px;font-weight:900}.approve-button{background:#c9f2df}.reject-button{background:#fff;color:var(--red)}.admin-empty{padding:48px 0;color:var(--muted);text-align:center;font-weight:850}@media (max-width:900px){.admin-sticker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.public-upload-entry{align-items:flex-start}.admin-shell{width:min(100% - 20px,1240px);padding-top:20px}.admin-sticker-grid{grid-template-columns:1fr}.admin-sticker-card{grid-template-rows:260px auto auto}.admin-header{align-items:stretch;flex-direction:column}.admin-header-actions{display:grid;grid-template-columns:1fr 1fr}}