.blank-canvas{min-height:100%;padding:72px 28px calc(var(--mobile-safe-area-height) + 34px)}.word-game-web{background:#ebe3fa;margin:0}.word-game{--cream:#fff8e9;--ink:#260b39;--purple:#8121d2;--purple-edge:#4d1387;--lavender:#f0e1fb;--purple-soft:#e3c5f8;--lime:#bafa54;--lime-edge:#4a9a14;--gutter:17px;--screen-height:100dvh;--screen-top:max(20px, env(safe-area-inset-top));width:100%;min-width:0;min-height:var(--screen-height);color:var(--ink);background:var(--cream);font-synthesis:weight;-webkit-tap-highlight-color:transparent;font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif;line-height:1.25;position:relative}.word-game-web .word-game{max-width:440px;margin:0 auto}.word-game-preview{background:#fff8e9}.word-game-preview .word-game{--screen-height:var(--phone-height,852px);--screen-top:max(55px, var(--mobile-safe-top,55px))}.word-game *,.word-game :before,.word-game :after{box-sizing:border-box}.word-game h1,.word-game p,.word-game ul{margin:0}.word-game ul{padding:0;list-style:none}.word-game img{-webkit-user-select:none;user-select:none;max-width:100%;display:block}.word-game button,.word-game input{font:inherit;color:inherit}.word-game button{cursor:pointer}.word-game button,.game-word-surface{--press-depth:2px;--press-scale:.96;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:translate .32s cubic-bezier(.2,1.55,.42,1),scale .32s cubic-bezier(.2,1.55,.42,1),box-shadow .23s ease-out;translate:0;scale:1}.word-game button:active:not(:disabled),.game-word-surface[data-pressed]{translate:0 var(--press-depth);scale:var(--press-scale);transition-duration:65ms;transition-timing-function:ease-out}.word-game button:disabled{cursor:default}.word-game button:focus-visible,.word-game input:focus-visible{outline-offset:3px;outline:3px solid #461272}.game-screen{padding:var(--screen-top) var(--gutter) max(16px, env(safe-area-inset-bottom));flex-direction:column;gap:10px;display:flex}.game-screen h1{text-align:center;letter-spacing:.025em;-webkit-text-stroke:.025em currentColor;font-size:clamp(35px,11vw,47px);font-weight:900;line-height:1.12}.game-footer{gap:10px;margin-top:4px;padding-top:6px;display:grid}.word-game .game-primary,.word-game .game-secondary{--press-depth:6px;--press-scale:.985;color:#fff;background:var(--purple);min-height:60px;box-shadow:inset 0 -7px var(--purple-edge);border:0;border-radius:20px;padding:8px 14px 15px;font-size:27px;font-weight:900;display:block}.word-game .game-primary{width:100%;min-height:61px;font-size:clamp(23px,7vw,29px)}.word-game .game-secondary{color:#57208a;background:#e9cffb;min-width:84px;min-height:53px;padding-bottom:13px;font-size:20px;box-shadow:inset 0 -5px #c297e9}.word-game .game-primary:active:not(:disabled),.word-game .game-secondary:active:not(:disabled){box-shadow:inset 0 -2px var(--purple-edge)}.word-game .game-primary:disabled,.word-game .game-secondary:disabled{color:#5b3c6f;background:#e8d7ef;box-shadow:inset 0 -5px #d7c3e1}.game-notice{text-align:center;color:#842047;font-size:14px;font-weight:700}.game-entry{min-height:min(calc(var(--screen-height) - 48px), 700px);justify-content:center;align-items:center;gap:12px}.game-entry-art{width:min(82%,286px)}.game-entry h1{font-size:clamp(44px,13vw,65px)}.game-entry-actions{gap:12px;width:100%;margin-top:20px;display:grid}.game-join{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.game-admin-form{gap:10px;display:grid}.game-admin-form label{font-weight:900}.game-admin-form .game-input{min-height:52px}.game-admin-form .game-room-exit{justify-self:center}.word-game .game-input{width:100%;min-width:0;caret-color:var(--purple);background:#fff;border:2px solid #c9a5ea;border-radius:14px;padding:8px 12px;font-size:18px;font-weight:800;display:block}.word-game .game-input::placeholder{color:#775d85;opacity:1}.word-game .game-input:focus{border-color:var(--purple)}.game-brand{letter-spacing:.015em;-webkit-text-stroke:.018em currentColor;justify-content:center;align-items:center;gap:4px;height:62px;font-size:clamp(23px,7.3vw,34px);font-weight:900;display:flex}.game-brand img{object-fit:contain;width:35%;max-height:72px}.game-lobby h1{margin:0 0 2px}.game-room-actions{justify-content:center;align-items:center;gap:6px;display:flex}.word-game .game-room-exit{color:#694783;background:0 0;border:0;border-radius:9px;min-width:44px;min-height:44px;font-size:14px;font-weight:700}.word-game .game-room-code{background:#fffdf8;border:2px solid #e6c9f7;border-radius:13px;justify-content:center;align-self:center;align-items:center;gap:9px;min-height:42px;padding:4px 12px;font-size:14px;font-weight:800;display:flex}.game-room-code strong{letter-spacing:.12em;font-size:18px}.game-room-code svg{width:17px;height:17px}.game-copy-field{opacity:0;pointer-events:none;position:fixed;top:0;left:0}.game-setting{background:var(--lavender);border-radius:16px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px 4px 12px;font-size:clamp(15px,4.7vw,20px);font-weight:900;display:flex}.game-setting>strong{flex-shrink:0}.game-stepper,.game-segments{align-items:center;gap:7px;display:flex}.game-stepper>span{text-align:center;min-width:25px;font-size:26px;font-weight:900}.word-game .game-stepper button,.word-game .game-segments button{background:var(--purple-soft);border:0;border-radius:10px;place-items:center;min-width:44px;min-height:44px;padding:3px 6px;font-weight:900;display:grid}.game-stepper svg{width:23px;height:23px}.word-game .game-stepper button:disabled{opacity:.5}.game-segments{background:#fff;border:1px solid #ddc1f1;border-radius:12px;gap:0}.word-game .game-segments button{background:0 0;font-size:clamp(13px,4vw,17px)}.word-game .game-segments button[aria-pressed=true]{background:var(--purple);color:#fff}.word-game .game-lobby-players{--avatar-size:57px;gap:7px;padding:3px;display:grid}.game-player-row,.game-seat{grid-template-columns:59px minmax(0,1fr);align-items:center;gap:9px;min-height:59px;display:grid}.game-player-row-removable{grid-template-columns:59px minmax(0,1fr) auto}.word-game .game-player-remove{color:#842047;background:#f6e3ee;border:0;border-radius:12px;min-width:48px;min-height:44px;padding:0 7px;font-size:14px;font-weight:800}.word-game .game-player-remove:disabled{opacity:.6}.word-game .game-name{border-radius:13px;min-height:50px;padding:8px 11px;font-size:23px;font-weight:900}.game-name-static{overflow-wrap:anywhere;background:#fffdf8;border:2px solid #e6d0f2;align-items:center;display:flex}.game-seat{color:#715a80;font-weight:700}.game-seat-icon{aspect-ratio:1;color:#744496;background:#f7eafb;border:2px dashed #b88ed6;border-radius:50%;place-items:center;width:55px;display:grid}.game-seat-icon svg{width:23px;height:23px}.game-avatar{width:var(--avatar-size,57px);aspect-ratio:1;vertical-align:middle;flex:none;display:inline-block;position:relative}.game-avatar-image{background:url(/assets/game/avatars.png) 0 0/372.816% 248.544% no-repeat;position:absolute;inset:0}.word-game .game-avatar-edit{width:calc(var(--avatar-size) + 2px);height:calc(var(--avatar-size) + 2px);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid;position:relative}.game-edit-mark,.game-avatar-mark{background:#fff;border:2px solid #fff;border-radius:50%;place-items:center;width:23px;height:23px;display:grid;position:absolute;bottom:-2px;right:-2px;box-shadow:0 1px 3px #3d125d43}.game-avatar-mark{color:#fff;background:#459a13}.game-avatar-mark svg{width:16px;height:16px}.word-game .game-sound{z-index:3;top:var(--screen-top);right:max(7px, calc(var(--gutter) - 6px));background:var(--lavender);color:#60318a;border:0;border-radius:14px;place-items:center;width:44px;height:44px;padding:0;display:grid;position:absolute}.word-game .game-sound[aria-pressed=false]{color:#705b7c;background:#f1e9dd}.game-sound svg{width:20px;height:20px}.game-reaction-hint{text-align:center;color:#694783;font-size:12px;font-weight:700}.game-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-reaction-anchor{vertical-align:middle;flex:none;justify-self:start;place-items:center;display:inline-grid;position:relative}.game-player-group .game-reaction-anchor{justify-self:center}.game-reaction-anchor:is([data-open],[data-burst]){z-index:2}.game-word-card:has(.game-reaction-anchor:is([data-open],[data-burst])){z-index:2}.game-reveal-list:has(.game-reaction-anchor[data-open]){z-index:2}.word-game .game-avatar-reaction{--press-depth:2px;--press-scale:.88;background:0 0;border:0;border-radius:50%;place-items:center;min-width:44px;min-height:44px;padding:0;display:grid;position:relative}.word-game .game-avatar-reaction[aria-expanded=true]{box-shadow:0 0 0 2px #fffdf8,0 0 0 4px #aa6cda}.game-reaction-cue{color:#7135a1;background:#f1e3fb;border:1.5px solid #fff;border-radius:8px;place-items:center;width:18px;height:18px;display:grid;position:absolute;bottom:0;left:0;box-shadow:0 1px 3px #3d125d35}.game-reaction-cue svg{width:12px;height:12px}.game-reaction-totals{z-index:1;pointer-events:none;gap:1px;display:flex;position:absolute;top:-5px;left:50%;translate:-50%}.game-reaction-totals>span{border:1px solid var(--reaction-edge);color:var(--reaction-ink);font-variant-numeric:tabular-nums;background:#fffdf8;border-radius:12px;align-items:center;gap:2px;padding:2px 4px;font-size:11px;font-weight:900;line-height:1;animation:.23s cubic-bezier(.18,1.7,.42,1) both game-count-pop;display:flex}.game-reaction-totals>span[data-mine]{background:var(--reaction-bg)}.game-reaction-totals svg{width:10px;height:10px}.game-thumb-down{rotate:180deg}.game-reaction-anchor [data-kind=like]{--reaction-ink:#286426;--reaction-bg:#e7f6ca;--reaction-edge:#a9d277}.game-reaction-anchor [data-kind=dislike]{--reaction-ink:#8a3559;--reaction-bg:#fae0e9;--reaction-edge:#e4a2bd}.game-reaction-menu{z-index:2;bottom:calc(100% + 11px);left:var(--reaction-left,0px);width:174px;transform-origin:var(--reaction-tail,50%) 100%;background:#fffdf8;border:1.5px solid #e7d3f2;border-radius:16px;gap:5px;padding:6px;animation:.22s cubic-bezier(.18,1.46,.4,1) both game-reaction-open;display:grid;position:absolute;box-shadow:0 4px #dac2ec,0 8px 22px #4c1c6c26}.game-reaction-menu[data-below=true]{transform-origin:var(--reaction-tail,50%) 0;top:calc(100% + 11px);bottom:auto}.game-reaction-menu:after{top:calc(100% - 4px);left:calc(var(--reaction-tail,50%) - 5px);content:"";pointer-events:none;background:#fffdf8;border:1.5px solid #e7d3f2;border-width:0 1.5px 1.5px 0;width:10px;height:10px;position:absolute;rotate:45deg}.game-reaction-menu[data-below=true]:after{top:-6px;rotate:225deg}.game-reaction-title{color:#694783;text-align:center;text-overflow:ellipsis;white-space:nowrap;padding:2px 4px 0;font-size:12px;font-weight:800;overflow:hidden}.game-reaction-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.word-game .game-reaction-options button{--press-depth:3px;--press-scale:.92;min-height:44px;color:var(--reaction-ink);background:var(--reaction-bg);box-shadow:inset 0 -3px var(--reaction-edge);border:1.5px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:4px;padding:0 4px 3px;font-size:14px;font-weight:900;display:flex}.word-game .game-reaction-options button[aria-pressed=true]{border-color:var(--reaction-ink)}.word-game .game-reaction-options button:active{box-shadow:inset 0 -1px var(--reaction-edge)}.game-reaction-options svg{width:18px;height:18px}.game-reaction-burst{z-index:3;background:var(--reaction-bg);width:35px;height:35px;color:var(--reaction-ink);pointer-events:none;border:2px solid #fff;border-radius:50%;place-items:center;animation:.47s ease-out both game-like-pop;display:grid;position:absolute;top:5%;left:50%;translate:-50%;box-shadow:0 3px 10px #2d113427}.game-reaction-burst[data-kind=dislike]{animation-name:game-dislike-pop}.game-reaction-burst[data-undo]{animation:.24s ease-out both game-reaction-undo}.game-reaction-burst svg{width:20px;height:20px}.game-reaction-burst i{background:var(--reaction-edge);border-radius:50%;width:6px;height:6px;animation:.39s ease-out both game-reaction-spark;position:absolute;top:46%;left:46%}.game-reaction-burst i:first-of-type{--spark-x:-27px;--spark-y:-12px}.game-reaction-burst i:nth-of-type(2){--spark-x:-19px;--spark-y:16px}.game-reaction-burst i:nth-of-type(3){--spark-x:21px;--spark-y:-14px}.game-reaction-burst i:nth-of-type(4){--spark-x:27px;--spark-y:10px}.game-reaction-burst[data-kind=dislike] i{border-radius:2px}.game-reaction-burst[data-undo] i{display:none}@keyframes game-reaction-open{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes game-count-pop{0%{scale:.66}to{scale:1}}@keyframes game-like-pop{0%{transform:translateY(4px)scale(.65)rotate(-16deg)}40%{opacity:1;transform:translateY(-24px)scale(1.17)rotate(9deg)}to{opacity:0;transform:translateY(-43px)scale(.9)rotate(1deg)}}@keyframes game-dislike-pop{0%{transform:translateY(-13px)scale(.7)rotate(14deg)}40%{opacity:1;transform:translateY(8px)scale(1.12)rotate(-12deg)}to{opacity:0;transform:translateY(24px)scale(.85)rotate(5deg)}}@keyframes game-reaction-undo{0%{opacity:.85;scale:1}to{opacity:0;scale:.45}}@keyframes game-reaction-spark{0%{opacity:0;scale:.4}24%{opacity:1}to{opacity:0;translate:var(--spark-x) var(--spark-y);scale:.55}}.game-avatar-options{--avatar-size:min(8vw, 36px);background:#f5e6fd;border-radius:16px;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;margin-top:8px;padding:6px;display:grid}.word-game .game-avatar-choice{background:0 0;border:2px solid #0000;border-radius:12px;min-height:43px;padding:0}.word-game .game-avatar-choice[aria-pressed=true]{border-color:var(--purple);background:#fff}.game-round-number{background:var(--purple-soft);border-radius:30px;align-self:center;padding:5px 17px;font-size:19px;font-weight:900}.game-clock{justify-items:center;gap:6px;padding:0 5px;display:grid}.game-clock-time{letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-family:ui-rounded,system-ui,sans-serif;font-size:clamp(52px,17.5vw,76px);font-weight:950}.game-progress{appearance:none;background:var(--purple-soft);width:100%;height:17px;color:var(--purple);border:0;border-radius:20px;overflow:hidden}.game-progress::-webkit-progress-bar{background:var(--purple-soft);border-radius:20px}.game-progress::-webkit-progress-value{background:var(--purple);border-radius:20px}.game-progress::-moz-progress-bar{background:var(--purple);border-radius:20px}.game-clock-low .game-clock-time{color:#a52954}.game-clock-low .game-progress::-webkit-progress-value{background:#ca416c}.game-clock-low .game-progress::-moz-progress-bar{background:#ca416c}.game-write-word{justify-items:center;gap:10px;margin-top:clamp(7px,2vh,17px);display:grid}.game-round-controls .game-room-actions{gap:16px}.word-game .game-round-controls .game-room-exit{padding-inline:8px}.word-game .game-manage-players{background:var(--lavender);--avatar-size:37px;border-radius:15px;gap:4px;padding:8px;display:grid}.game-manage-players li{overflow-wrap:anywhere;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;font-weight:800;display:grid}.word-game .game-word-input{border-color:var(--purple);border-radius:18px;min-height:58px;padding:8px 15px;font-size:26px}.word-game .game-word-input:disabled{opacity:1;color:var(--ink);background:#f4e8ff}.game-status{text-align:center;gap:6px;font-size:18px;font-weight:900;display:grid}.game-writing .game-status{margin-top:6px}.word-game .game-player-group{flex-wrap:wrap;justify-content:center;gap:8px 12px;display:flex}.game-player-group li{justify-items:center;gap:3px;width:min(70px,20% - 9.6px);display:grid}.game-player-group{--avatar-size:48px}.game-player-label{overflow-wrap:anywhere;width:100%;font-size:14px;font-weight:900}.game-reveal h1{margin-top:6px}.word-game .game-reveal-list{perspective:800px;gap:12px;padding:0 1px;display:grid}.game-word-card{--card-bg:#e8d0fa;--card-edge:#ac60e5;--press-depth:5px;--press-scale:.985;background:var(--card-bg);min-height:85px;box-shadow:inset 0 -7px var(--card-edge);animation:game-flip .48s cubic-bezier(.2,.75,.23,1) var(--reveal-delay) both;border-radius:21px;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:stretch;gap:12px;padding:9px 12px 15px;display:grid}.game-word-card[data-pressed]{box-shadow:inset 0 -2px var(--card-edge)}.game-tone-1{--card-bg:#fff0a3;--card-edge:#e6b516}.game-tone-2{--card-bg:#c7edfe;--card-edge:#53b8e9}.game-tone-3{--card-bg:#ddf5af;--card-edge:#8ab643}.game-tone-4{--card-bg:#f9d3e4;--card-edge:#dd81af}.game-tone-5{--card-bg:#b9f2e5;--card-edge:#52c1aa}.game-tone-6{--card-bg:#ffd8af;--card-edge:#d78942}.game-tone-7{--card-bg:#d4d8ff;--card-edge:#8292e1}.game-tone-8{--card-bg:#f7d2c9;--card-edge:#d47e72}.game-tone-9{--card-bg:#eaf2b7;--card-edge:#9aa940}.game-tone-blank{--card-bg:#f0e7ed;--card-edge:#c6b2c3}.game-word-author{border-right:2px solid var(--card-edge);overflow-wrap:anywhere;--avatar-size:48px;align-items:center;gap:6px;padding-right:8px;font-size:clamp(16px,5.4vw,23px);font-weight:900;display:flex}.game-result-word{text-align:center;overflow-wrap:anywhere;animation:game-word-pop .45s ease-out calc(var(--reveal-delay) + 45ms) both;align-self:center;place-items:center;font-size:clamp(22px,8vw,36px);font-weight:900;line-height:1.11;display:grid}.game-tone-blank .game-result-word{font-size:22px}.game-history{padding:15px var(--gutter) 9px;border-top:1px solid #e6d0f2}.game-history h2{margin:0 0 10px;font-size:21px;font-weight:900}.game-history-rounds{gap:9px;margin:0;padding:0;list-style:none;display:grid}.game-history-round{background:#fffdf8;border:1px solid #e9d7f4;border-radius:16px;padding:8px 12px}.game-history-round h3{color:#694783;margin:0 0 5px;font-size:15px;font-weight:900}.game-history-entry{overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;min-height:35px;padding-block:5px;font-size:16px;display:grid}.game-history-entry+.game-history-entry{border-top:1px solid #f0e7ed}.game-history-author{--avatar-size:28px;align-items:center;gap:6px;display:flex}.game-history-entry strong{text-align:right}.game-history-missing{color:#715a80;font-size:14px}.game-credit{padding:8px var(--gutter) calc(14px + env(safe-area-inset-bottom));color:#000;text-align:center;font-size:12px}.game-victory{background:#fff8bc}.game-victory h1{font-size:clamp(44px,14.3vw,62px)}.game-victory-art{object-fit:contain;width:calc(100% + 18px);max-width:none;max-height:165px;margin-inline:-9px;animation:.53s cubic-bezier(.24,1.5,.6,1) both game-landing}.game-winning-word{--press-depth:7px;--press-scale:.965;background:var(--lime);min-height:112px;box-shadow:inset 0 -10px var(--lime-edge);text-align:center;overflow-wrap:anywhere;-webkit-text-stroke:.025em currentColor;border-radius:24px;place-items:center;margin:7px 2px 4px;padding:9px 16px 19px;font-size:clamp(57px,21vw,88px);font-weight:900;line-height:1.05;animation:.46s cubic-bezier(.24,1.5,.6,1) 95ms both game-landing;display:grid}.game-winning-word[data-pressed]{box-shadow:inset 0 -3px var(--lime-edge)}.game-winning-word,.game-result-word{word-break:break-all}@keyframes game-flip{0%{opacity:0;transform:rotateX(-74deg)translateY(12px)}68%{opacity:1;transform:rotateX(8deg)translateY(-3px)}to{opacity:1;transform:none}}@keyframes game-word-pop{0%{opacity:0;transform:translateY(9px)scale(.86)}65%{opacity:1;transform:translateY(-2px)scale(1.06)}to{opacity:1;transform:none}}@keyframes game-landing{0%{opacity:0;transform:scale(.82)translateY(8px)}to{opacity:1;transform:none}}@media (width<=350px){.word-game{--gutter:13px}.game-word-author{--avatar-size:44px}}.game-large-room .game-lobby-players{--avatar-size:49px;order:1;gap:8px}.game-large-room .game-lobby .game-footer{order:2}.game-large-room :is(.game-player-row,.game-seat){grid-template-columns:52px minmax(0,1fr);min-height:52px}.game-large-room .game-player-row-removable{grid-template-columns:52px minmax(0,1fr) auto}.game-large-room :is(.game-avatar-edit,.game-seat-icon){width:50px;height:50px}.game-large-room .game-name{min-height:45px;font-size:20px}.game-large-room .game-lobby>.game-reaction-hint{order:1}.game-large-room .game-word-card{min-height:76px}.game-large-room .game-word-author{--avatar-size:44px}.word-game-web .game-large-room :is(.game-lobby,.game-reveal) .game-footer{bottom:env(safe-area-inset-bottom);z-index:1;background:var(--cream);box-shadow:0 -8px 10px var(--cream);position:sticky}@media (prefers-reduced-motion:reduce){.word-game *,.word-game :before,.word-game :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}
