
:root{color-scheme:dark;--bg:#0b1020;--panel:#141b2d;--line:#283047;--text:#f4f6fb;--muted:#939eb6;--mint:#52edce;--purple:#a193ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 10%,#22204455,transparent 45%),var(--bg);color:var(--text);min-height:100vh}button,input,select,textarea{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,.button{border:0;border-radius:12px;padding:15px 22px;font-weight:750;font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;gap:16px;justify-content:center;align-items:center;min-height:48px;transition:transform .15s,background .15s}button:hover,.button:hover{filter:brightness(1.12);transform:translateY(-2px)}button:disabled{cursor:not-allowed;opacity:.35;transform:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--mint);outline-offset:4px}.primary{background:var(--mint);color:#092b28;box-shadow:0 6px 26px #52edce16}.secondary{background:#232b40;color:var(--text);border:1px solid #35405a}.quiet{background:transparent;color:var(--muted);padding:10px 12px;font-weight:550}.danger{background:#ff8198;color:#390d1a}.icon-button{background:#1b2236;border:1px solid var(--line);color:var(--text);padding:8px;width:42px;min-height:42px;border-radius:50%;font-size:21px}a{color:inherit}header{max-width:1392px;margin:auto;height:106px;padding:0 56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff0c}.brand{display:flex;align-items:center;text-decoration:none;font-size:22px;font-weight:900;letter-spacing:-.8px;position:relative}.brand>span:not(.brand-icon){color:var(--mint)}.brand-icon{display:grid;place-items:center;width:35px;height:38px;border:2px solid var(--mint);color:var(--mint);border-radius:9px;margin-right:12px;transform:rotate(-9deg);font-size:23px}.brand i{position:absolute;left:49px;top:32px;font-size:8px;letter-spacing:3px;color:var(--muted);font-style:normal}.header-actions{display:flex;align-items:center;gap:22px}.local-badge,.connection{color:var(--muted);font-size:12px}.local-badge:first-letter,.connection:first-letter{color:var(--mint)}.offline{color:#ffb660}.room-badge{font-size:11px;color:var(--muted);letter-spacing:1px}.room-badge b{display:block;font-size:17px;color:var(--text);letter-spacing:3px}main{max-width:1280px;padding:60px 40px;margin:auto}.landing{display:grid;grid-template-columns:1.1fr 1fr;gap:48px 30px;padding-top:74px}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:800;color:var(--mint);display:inline-flex;gap:8px;align-items:center}.eyebrow>span:not(.muted){width:6px;height:6px;border-radius:50%;background:var(--mint)}h1{font-size:clamp(36px,4.5vw,64px);line-height:1.08;letter-spacing:-2.6px;margin:24px 0}h1 em{font-style:normal;color:var(--mint)}h2{font-size:23px;letter-spacing:-.6px}h3{font-size:17px}.hero-copy{max-width:420px;line-height:1.8;color:#a7b0c5;font-size:16px}.hero-buttons{display:flex;gap:12px;margin-top:30px}.hero-meta{display:flex;gap:23px;color:var(--muted);font-size:11px;margin-top:26px}.hero-art{height:410px;position:relative;align-self:center;isolation:isolate}.orbit{position:absolute;width:340px;height:340px;border-radius:50%;border:1px solid #343a51;left:70px;top:30px;transform:rotate(-30deg)}.orbit-two{width:420px;height:220px;left:30px;top:110px;border-style:dashed;opacity:.55}.art-label{position:absolute;left:110px;top:22px;transform:rotate(-5deg);color:var(--purple);font-size:12px;letter-spacing:2px;font-weight:800}.letter-art{position:absolute;width:136px;height:178px;border:1px solid #ffffff44;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:92px;font-weight:900;border-radius:19px;box-shadow:0 18px 60px #0005}.letter-art small{font-size:9px;letter-spacing:3px;margin-top:-4px}.art-a{left:55px;top:116px;transform:rotate(-17deg);background:linear-gradient(145deg,#a89bff,#7464c1);color:#211841}.art-b{left:191px;top:63px;transform:rotate(8deg);background:linear-gradient(145deg,#85fbe1,#36bea5);color:#0d443c;z-index:2}.art-w{left:308px;top:152px;transform:rotate(22deg);background:linear-gradient(145deg,#ffc98a,#db924f);color:#563518}.art-timer{position:absolute;z-index:3;top:244px;left:192px;background:#10182a;border:1px solid #42526a;width:112px;height:112px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:48px;font-weight:850;box-shadow:0 8px 40px #0008}.art-timer span{font-size:8px;letter-spacing:2px;color:var(--muted)}.art-tag{position:absolute;bottom:5px;left:124px;padding:10px 16px;border:1px solid #394151;border-radius:22px;color:#c1c9d9;font-size:11px;transform:rotate(-4deg);background:#171e30}.star{position:absolute;color:var(--mint);font-size:32px}.star-one{right:23px;top:42px}.star-two{left:35px;bottom:35px;font-size:22px;color:var(--purple)}.panel{background:linear-gradient(120deg,#192135,#121a2a);border:1px solid var(--line);border-radius:20px;padding:28px}.join-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.7fr;gap:28px;align-items:center;margin-top:20px}.join-panel h2{margin:10px 0}.join-panel p{font-size:12px;margin:0}.join-panel form{display:grid;grid-template-columns:1fr 1.5fr .8fr .65fr;gap:12px;align-items:end}.join-panel form button{grid-column:1/-1}.muted{color:var(--muted);font-weight:400}label{display:flex;flex-direction:column;gap:9px;font-size:12px;font-weight:600;color:#bac4d6}input,select,textarea{border:1px solid #364158;background:#101729;color:var(--text);padding:13px 14px;border-radius:9px;width:100%;min-height:46px}input::placeholder{color:#69768e}.check{flex-direction:row;align-items:center;gap:10px}.check input{width:18px;height:18px;min-height:0;accent-color:var(--mint)}.how{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:10px}.how b{color:var(--mint);font-size:12px;font-weight:500}.how h3{margin:12px 0}.how p{color:var(--muted);line-height:1.7;font-size:13px;max-width:290px}footer{border-top:1px solid var(--line);padding-top:25px;grid-column:1/-1;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}footer a{text-decoration:none}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-title h2{margin:15px 0}.pill{border:1px solid #38415c;border-radius:30px;padding:10px 15px;font-size:11px;white-space:nowrap;color:#c0cae0}.lobby-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:45px;margin-top:28px}.players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.player{background:#161e30;border:1px solid var(--line);border-radius:13px;padding:18px 16px 23px;position:relative;display:flex;align-items:center;gap:12px;overflow:hidden;animation:arrive .35s ease-out}.avatar{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--player);background:color-mix(in srgb,var(--player) 13%,transparent);font-size:24px}.player strong{font-size:15px;overflow-wrap:anywhere}.player small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.remaining{margin-left:auto;font-size:23px;text-align:center;color:var(--player)}.remaining small{font-weight:400}.progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff08}.progress span{display:block;height:100%;background:var(--player);transition:width .3s}.remove{position:absolute;right:0;top:0;padding:0 6px;min-height:22px}.empty-player{border-style:dashed;background:transparent;color:var(--muted);font-size:24px}.empty-player span{font-size:12px;line-height:1.6}.lobby-actions{display:flex;gap:12px;margin-top:28px}.lobby-grid>section>p{font-size:12px}.qr-panel{display:flex;align-items:center;flex-direction:column;gap:20px}.qr-panel img{border-radius:14px;max-width:100%;height:auto}.room-code{font-size:38px;letter-spacing:8px;margin-left:8px}.qr-panel .muted{font-size:12px}.tip{display:flex;gap:18px;padding:25px;background:#151c2b;border-radius:14px;margin-top:40px;font-size:13px;line-height:1.7;color:var(--muted)}.tip strong{color:var(--text);display:block}.settings{margin-top:30px}.settings form{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.settings p,.settings h3{grid-column:1/-1}.settings #custom-category{border-top:1px solid var(--line);margin-top:25px;padding-top:18px}.audio-panel{max-width:600px;margin:20px auto}.audio-panel label{margin:14px 0}.audio-panel p{font-size:12px}.game-topline{display:flex;align-items:center;justify-content:space-between;gap:16px}.game-topline .eyebrow{gap:18px}.game-main{padding-top:32px}.stage{text-align:center;padding:38px 20px 26px}.category-label{font-size:10px;letter-spacing:3px;color:var(--purple);text-transform:uppercase;font-weight:800}.stage h1{font-size:clamp(30px,4.5vw,64px);max-width:960px;margin:20px auto 12px;letter-spacing:-1.5px}.category-rule{font-size:12px;color:var(--muted);margin:10px auto}.timer{font-variant-numeric:tabular-nums;font-size:clamp(54px,11vw,140px);font-weight:900;line-height:1.15;letter-spacing:-5px;margin-top:18px}.timer.active{color:var(--mint);text-shadow:0 0 70px #52edce35}.timer-caption{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-top:10px}.timer-track{max-width:420px;margin:24px auto;height:4px;border-radius:5px;background:#202b40;overflow:hidden}.timer-track span{display:block;height:100%;background:var(--mint);width:0}.cards{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;min-height:110px}.played-card{background:linear-gradient(145deg,color-mix(in srgb,var(--player) 10%,#141b2d),#151c2c);border:1px solid color-mix(in srgb,var(--player) 40%,#283047);border-radius:14px;padding:14px 12px;min-width:108px;max-width:165px;display:flex;flex-direction:column;align-items:center;gap:6px;animation:card-in .3s ease-out}.card-name{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--player);max-width:130px;overflow-wrap:anywhere}.played-card>b{font-size:45px;line-height:1.15}.card-status{font-size:10px;color:var(--muted)}.played-card small{font-size:12px;overflow-wrap:anywhere;max-width:135px}.played-card.returned{border-color:#ff8198;background:#3d203033}.played-card.returned b{color:#ff8198}.played-card.accepted{border-color:#52edce88}.played-card.challenged{border-color:#ffb660;animation:flip .4s ease-out}.played-card .quiet{font-size:10px;min-height:40px;padding:4px}.challenge-button{background:#ffb660;color:#3a2714;font-size:11px;padding:8px;min-height:44px;margin-top:4px}.empty-cards{border:1px dashed var(--line);border-radius:14px;width:100%;display:grid;place-items:center;color:var(--muted);font-size:13px}.round-cards{padding:12px 0 32px}.round-cards h2{font-size:16px}.scoreboard{border-top:1px solid var(--line);padding-top:15px;margin-top:20px}.scoreboard h2{font-size:16px}.scoreboard .players{grid-template-columns:repeat(4,minmax(0,1fr))}.scoreboard .player{padding:12px 12px 16px}.scoreboard .avatar{width:34px;height:34px;font-size:20px;flex-shrink:0}.host-controls{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.game-log{border-top:1px solid var(--line);margin-top:30px;padding-top:20px;color:var(--muted);font-size:12px}.game-log summary{cursor:pointer;min-height:40px}.game-log time{color:#63708a;margin-right:10px}.vote-panel{text-align:center;max-width:760px;margin:0 auto 30px;border-color:#8a6b47}.vote-letter{font-size:85px;font-weight:900;color:#ffb660;margin:15px}.vote-panel p{line-height:1.6}.vote-buttons{display:flex;justify-content:center;gap:12px;margin:24px 0}.vote-panel>small{color:var(--muted);display:block;margin-top:20px}.success{color:var(--mint)}.alphabet{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.letter{font-size:28px;height:62px;background:#25314a;color:var(--text);border:1px solid #465671;position:relative;padding:8px;touch-action:manipulation}.letter:not(:disabled):active{background:var(--mint);color:#12352f;transform:scale(.92)}.letter.used{background:#132c2c;color:var(--mint);border-color:#28514a;opacity:.5}.letter small{position:absolute;right:6px;bottom:3px;font-size:10px}.alphabet-panel{max-width:540px;margin:auto}.alphabet-panel h2{font-size:16px}.alphabet-panel .section-title>strong{font-size:12px;color:var(--mint)}.center{text-align:center;font-size:12px}.joker-bar{display:flex;gap:8px;margin-top:15px}.joker-bar button{flex:1;padding:8px;font-size:12px}.phone-screen .stage{padding:22px 0}.phone-screen .stage h1{font-size:29px;letter-spacing:-.6px}.phone-screen .timer{font-size:50px;letter-spacing:-2px;margin:10px}.phone-screen .timer-track{margin:12px auto}.phone-screen .category-rule{display:none}.phone-screen .timer-caption{font-size:10px}.winner{text-align:center;position:relative;padding:50px 0}.winner h1{color:var(--mint)}.trophy{font-size:100px;color:#ffca7c;margin-top:20px}.winner>p{color:var(--muted)}.winner>button{margin:10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:30px 0}.stats>div{display:flex;flex-direction:column;gap:8px;padding:24px;background:#182033;border:1px solid var(--line);border-radius:14px}.stats b{font-size:30px;color:var(--mint)}.stats span{font-size:11px;color:var(--muted)}.results-list p{display:flex;justify-content:space-between;gap:20px;text-align:left;font-size:12px;padding:10px;border-bottom:1px solid var(--line)}.results-list span{color:var(--muted)}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;left:calc(var(--i)*3.3%);top:-15px;width:7px;height:13px;background:var(--c);animation:confetti 3.5s linear infinite;animation-delay:calc(var(--i)*-.17s)}.pause-label{color:#ffb660;font-size:12px}.loading{text-align:center;padding:100px 20px}.spinner{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--mint);border-radius:50%;animation:spin 1s linear infinite;margin:auto}.admin .panel{margin:25px 0}.admin form{display:grid;gap:16px}.admin #admin-category{grid-template-columns:repeat(3,1fr);padding-bottom:25px}.admin #admin-login{max-width:450px}.admin-room{display:flex;justify-content:space-between;align-items:center;font-size:13px}.category-list{max-height:540px;overflow:auto}.category-list>div{display:flex;align-items:center;gap:12px;padding:12px;border-top:1px solid var(--line)}.category-list>div>span{flex:1;font-size:13px}.category-list small{display:block;color:var(--muted);margin-top:4px}.admin textarea{font-family:monospace}.family{font-size:18px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);padding:16px 24px;background:#e5fff7;color:#133c35;border-radius:12px;box-shadow:0 8px 40px #0008;opacity:0;pointer-events:none;transition:.2s;z-index:100;max-width:90vw;font-size:14px}#toast.visible{opacity:1;transform:translate(-50%,0)}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes card-in{from{opacity:0;transform:translate(-45px,25px) rotate(-12deg) scale(.8)}to{opacity:1;transform:none}}@keyframes flip{50%{transform:rotateY(90deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes confetti{to{transform:translateY(700px) rotate(650deg)}}@media(min-width:1500px){.host-screen .stage h1{font-size:76px}.host-screen .timer{font-size:170px}}@media(max-width:1050px){header{padding:0 30px}.landing{padding-top:45px;grid-template-columns:1fr 1fr}.hero-art{transform:scale(.85);transform-origin:center;min-width:440px;margin-left:-40px}.hero-meta{gap:12px}.join-panel{grid-template-columns:1fr 1.5fr}.scoreboard .players{grid-template-columns:repeat(3,1fr)}.lobby-grid{gap:24px}.player{padding:14px 10px 20px;gap:8px}.settings form{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){header{height:82px;padding:0 20px}.brand{font-size:18px}.brand-icon{width:30px;height:33px;font-size:20px;margin-right:8px}.brand i{left:40px;top:29px;font-size:6px}.header-actions{gap:12px}.local-badge{display:none}.connection{font-size:9px;max-width:90px}.room-badge{font-size:8px}.room-badge b{font-size:13px;letter-spacing:2px}main{padding:32px 20px}.landing{grid-template-columns:1fr;gap:25px;padding-top:40px}.hero h1{font-size:49px}.hero-copy{font-size:14px}.hero-art{width:480px;justify-self:center;transform:scale(.78);height:340px;margin:-20px 0 -40px;min-width:0;transform-origin:center top}.join-panel{grid-template-columns:1fr;padding:22px;gap:20px}.join-panel form{grid-template-columns:1fr 1fr}.join-panel form button{grid-column:1/-1}.how{grid-template-columns:1fr;gap:14px}.how>div{position:relative;padding-left:38px}.how b{position:absolute;left:0;top:16px}.how p{max-width:100%}footer{font-size:9px;gap:20px;line-height:1.6}.lobby-grid{grid-template-columns:1fr}.qr-panel{max-width:400px;width:100%;justify-self:center}.room-main h1{font-size:40px}.room-main>.section-title{align-items:flex-start}.room-main>.section-title>.pill{font-size:9px;padding:8px;margin-top:10px}.players{grid-template-columns:1fr 1fr}.player strong{font-size:13px}.avatar{width:34px;height:34px;font-size:20px}.remaining{font-size:20px}.lobby-actions{flex-wrap:wrap}.settings form{grid-template-columns:1fr}.game-topline{align-items:flex-start}.game-topline .eyebrow{font-size:8px;letter-spacing:1px;display:flex;flex-direction:column;align-items:flex-start;gap:5px}.game-topline .pill{font-size:9px;padding:8px}.game-main{padding:22px 15px}.stage{padding:30px 0 15px}.stage h1{font-size:35px;letter-spacing:-1px}.timer{font-size:85px;letter-spacing:-3px}.timer-caption{font-size:10px}.scoreboard .players{grid-template-columns:repeat(2,minmax(0,1fr))}.scoreboard .avatar{display:none}.played-card{min-width:88px;max-width:145px;padding:12px 8px}.played-card>b{font-size:36px}.cards{gap:8px}.round-cards h2{font-size:15px}.vote-buttons{flex-wrap:wrap}.vote-buttons button{padding:12px;flex:1}.vote-panel{padding:20px 15px}.vote-panel h2{font-size:21px}.vote-letter{font-size:60px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats>div{padding:17px}.stats b{font-size:25px}.winner{padding:30px 0}.winner h1{font-size:44px}.results-list p{flex-direction:column;gap:8px}.admin #admin-category{grid-template-columns:1fr}.admin .section-title{flex-wrap:wrap}.category-list>div{flex-wrap:wrap}.category-list>div>span{flex-basis:100%}.category-list button{padding:8px}.admin h1{font-size:36px}.audio-panel{margin:15px}.phone-screen .round-cards{margin-top:15px}.phone-screen .stage{padding:16px 0 12px}.phone-screen .stage h1{font-size:25px;margin:12px 0 6px}.phone-screen .timer{font-size:42px;margin:5px}.phone-screen .timer-track{margin:8px auto}.phone-screen .alphabet-panel h2{font-size:13px}.phone-screen .letter{height:54px;font-size:25px}.phone-screen .alphabet{gap:7px}.phone-screen .category-label{font-size:9px}.phone-screen .round-cards .empty-cards{display:none}.phone-screen .round-cards:has(.empty-cards){display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.confetti{display:none}}
@media(max-width:760px){.landing{grid-template-columns:minmax(0,1fr);overflow:hidden}.hero-art{margin-inline:-80px}.hero h1{font-size:clamp(37px,12vw,49px)}.header-actions{gap:8px}.phone-screen .game-topline .pill{white-space:normal;text-align:right;max-width:185px}}
@keyframes arrive{from{transform:translateY(8px)}to{transform:none}}@keyframes card-in{from{transform:translate(-12px,8px) rotate(-4deg)}to{transform:none}}

.quick-join{max-width:560px;padding:24px 16px}.quick-join h1{font-size:36px;letter-spacing:-1px;margin:16px 0 10px}.quick-join p{font-size:14px}.quick-join form{display:grid;gap:20px;margin-top:22px}.quick-join input[name=name]{font-size:20px}.quick-join fieldset{border:0;padding:0;margin:0;min-width:0}.quick-join legend{color:#bac4d6;font-size:12px;font-weight:600;margin-bottom:12px}.avatar-picker,.color-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.pick-avatar,.pick-color{position:relative;cursor:pointer}.pick-avatar input,.pick-color input{position:absolute;width:1px;height:1px;min-height:0;opacity:0;padding:0}.pick-avatar span,.pick-color span{min-height:46px;display:grid;place-items:center;border:2px solid transparent;border-radius:12px;background:#222d43;font-size:28px}.pick-avatar input:checked+span{border-color:var(--mint);background:#25423f}.pick-color span{background:var(--choice);min-height:40px}.pick-color input:checked+span:after{content:"✓";font-size:24px;font-weight:900;color:#101729}.pick-avatar input:focus-visible+span,.pick-color input:focus-visible+span{outline:3px solid white;outline-offset:2px}.back-link{display:block;text-align:center;color:var(--muted);font-size:12px;margin-top:20px}.quick-join .primary{width:100%;font-size:17px}.quick-join .panel{padding:22px}@media(max-width:380px){.avatar-picker,.color-picker{gap:6px}.pick-avatar span{font-size:25px}.quick-join .panel{padding:18px}}


body.modal-open{overflow:hidden}.settings-modal{padding:0;border:1px solid #3a4660;border-radius:22px;background:var(--panel);color:var(--text);width:min(880px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 30px 100px #0009}.settings-modal::backdrop{background:#050916b8;backdrop-filter:blur(7px)}.settings-modal[data-kind=audio]{width:min(560px,calc(100vw - 32px))}.settings-modal .panel{border:0;border-radius:0;margin:0;max-width:none}.settings-modal .section-title{position:sticky;top:-28px;background:#192135;z-index:2;padding:10px 0;margin-top:-10px}.settings-modal .section-title h2{margin:10px 0}.settings-modal .section-title button{flex-shrink:0}.settings-modal .settings form{margin-top:18px}.settings-modal .audio-panel label{margin:18px 0}@media(max-width:760px){.settings-modal{max-height:calc(100dvh - 24px);width:calc(100vw - 24px)}.settings-modal .panel{padding:20px}.settings-modal .section-title{top:-20px}.settings-modal h2{font-size:21px}}


.celebration-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:40;pointer-events:none}.winner{isolation:isolate}.winner::before{content:"";position:absolute;z-index:-1;inset:-30px -10px 35%;background:radial-gradient(ellipse at 50% 25%,#52edce16,transparent 65%);pointer-events:none}.winner-emblem{width:138px;height:138px;margin:28px auto 22px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#ffce7b24,transparent 70%);border:1px solid #ffce7b35;box-shadow:0 0 65px #ffce7b14,inset 0 0 30px #ffce7b09;position:relative}.winner-emblem::after{content:"";position:absolute;inset:10px;border:1px dashed #ffce7b45;border-radius:50%}.winner-emblem>span{font-size:66px;filter:drop-shadow(0 8px 12px #0005)}.winner-avatars{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:24px auto}.winner-avatars>span{display:grid;place-items:center;width:62px;height:62px;font-size:34px;border-radius:20px;background:color-mix(in srgb,var(--player) 15%,#141b2d);border:2px solid var(--player);box-shadow:0 6px 25px #0003}.winner h1{text-wrap:balance;line-height:1.18}.winner>p{font-size:17px}@media(max-width:760px){.winner-emblem{width:108px;height:108px}.winner-emblem>span{font-size:52px}.winner-avatars>span{width:52px;height:52px;font-size:29px}.winner h1{font-size:36px}.winner>p{font-size:14px}}@media(prefers-reduced-motion:reduce){.celebration-canvas{display:none}}


/* Copyright © 8ecker.de — original WORTDUELL interface */
#app{min-height:calc(100dvh - 52px)}.site-copyright{max-width:1280px;margin:0 auto;padding:12px 24px;border-top:1px solid #ffffff0d;display:flex;justify-content:center;align-items:center;min-height:52px;color:#a4aec3;font-size:12px}.site-copyright a{padding:6px 14px;text-decoration:none}.modal-copyright{text-align:center;padding:10px 20px 16px;color:var(--muted);font-size:11px}.tablet-home{text-align:center;max-width:1000px;padding:40px 32px 20px}.tablet-home h1{font-size:clamp(38px,5vw,60px);margin:20px 0;line-height:1.12}.tablet-home>p{color:#b6bfd2;font-size:17px;line-height:1.6}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:32px auto 24px;max-width:850px}.home-action{display:flex;flex-direction:column;gap:12px;min-height:195px;border-radius:24px;padding:25px;touch-action:manipulation}.home-action strong{font-size:27px}.home-action small{font-size:14px;font-weight:500}.action-symbol{font-size:38px;line-height:1}.home-facts{display:flex;justify-content:center;gap:26px;color:var(--muted);font-size:14px}.home-help{max-width:650px;margin:24px auto 0;color:var(--muted)}.home-help summary{cursor:pointer;min-height:52px;display:list-item;list-style-position:inside;padding:16px;font-size:15px}.home-help p{line-height:1.8;text-align:left;font-size:15px}.admin-link{display:inline-block;padding:14px 22px;font-size:12px;color:var(--muted)}.manual-join form{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.manual-join form>label:first-child,.manual-join form>label:nth-child(2),.manual-join form>button{grid-column:1/-1}.manual-join input,.manual-join select{font-size:18px;min-height:54px}.room-menu{display:flex;flex-direction:column;gap:18px}.room-menu>button{min-height:58px}.tablet-lobby{padding-top:24px}.tablet-lobby>.section-title h1{font-size:38px;margin:12px 0}.tablet-lobby .lobby-grid{margin-top:14px;gap:28px;grid-template-columns:1.6fr 1fr}.tablet-lobby .lobby-grid h2{font-size:21px}.tablet-lobby .qr-panel{gap:12px;padding:22px}.tablet-lobby .qr-panel img{width:210px;height:210px}.tablet-lobby .room-code{font-size:36px}.tablet-lobby .lobby-actions{margin-top:20px;position:sticky;bottom:10px;z-index:3;background:#101729e8;padding:12px;border:1px solid var(--line);border-radius:16px;backdrop-filter:blur(8px)}.tablet-lobby .lobby-actions>.primary{flex:1;font-size:21px;min-height:64px}.tablet-lobby .lobby-actions>.secondary{min-height:64px;font-size:16px}.tablet-lobby .tip{margin-top:20px;padding:14px 20px;font-size:12px}.player .remove{min-width:44px;min-height:44px;right:0;top:0}.tablet-lobby .player:has(.remove){padding-right:42px}.header-actions .icon-button{width:52px;min-height:52px}.host-screen .host-controls{position:sticky;bottom:12px;z-index:3;background:#101729ed;padding:12px;border:1px solid var(--line);border-radius:16px;backdrop-filter:blur(8px)}.host-screen .host-controls button{min-height:56px;font-size:16px;flex:1}.host-screen .stage{padding-top:24px}.host-screen .stage .category-rule{display:none}.host-screen .scoreboard .players{gap:10px}.host-screen .scoreboard .player{padding:10px}.host-screen .game-log summary{min-height:52px;padding:16px 0}.settings-modal button,.settings-modal select{min-height:50px}@media(pointer:coarse){button,.button{min-height:52px}input,select{min-height:52px;font-size:16px}button:hover,.button:hover{transform:none}.settings-modal .check{min-height:48px}.settings-modal .check input{width:24px;height:24px;min-height:24px}.settings-modal input[type=range]{min-height:44px}}@media(max-width:760px){.tablet-home{padding:28px 20px 16px}.home-actions{grid-template-columns:1fr;gap:14px;margin-top:24px}.home-action{min-height:150px;padding:20px;gap:8px}.home-action strong{font-size:24px}.home-action small{font-size:13px}.home-facts{gap:14px;font-size:11px}.tablet-home>p{font-size:15px}.tablet-lobby .lobby-grid{grid-template-columns:1fr}.tablet-lobby .lobby-actions{bottom:8px}.tablet-lobby .lobby-actions>.primary{font-size:18px}.tablet-lobby .tip{display:none}.tablet-lobby .players{grid-template-columns:1fr 1fr}.tablet-lobby .player .remaining{display:none}.tablet-lobby .player:has(.remove){padding-right:32px}.tablet-lobby .player .remove{min-width:32px}.header-actions .icon-button{width:48px;min-height:48px}.host-screen .host-controls{flex-wrap:wrap}.host-screen .host-controls button{font-size:14px}.site-copyright{font-size:11px}}




.admin-history .stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.admin-history .section-title p{font-size:12px;margin:0 0 10px}.history-list{display:grid;gap:14px}.history-game{border:1px solid var(--line);background:#10182a;border-radius:14px;padding:20px}.history-game .section-title strong{font-size:17px}.history-game p{font-size:13px;line-height:1.6;color:#b8c3d7}.history-game .history-names{color:var(--text);font-size:15px;overflow-wrap:anywhere}.history-metrics{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:12px}.history-game .history-winners{color:var(--mint);font-weight:700}.history-game>small{display:block;margin-top:12px;line-height:1.6}.history-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px}.history-pagination>span,.history-note{font-size:12px}.history-note{line-height:1.7}.admin-history .stats>div{padding:16px}@media(max-width:760px){.admin-history .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.history-game .section-title{align-items:flex-start}.history-game .pill{white-space:normal}.history-pagination button{padding:10px;font-size:12px}.history-pagination>span{font-size:10px}.history-game{padding:15px}}


/* Startseite: kleine Wortparty, große Touch-Ziele. © 8ecker.de */
.party-home{position:relative;isolation:isolate;max-width:1080px;padding-top:36px;overflow:hidden}
.party-glow{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 25% 35%,#52edce16,transparent 48%),radial-gradient(ellipse at 80% 48%,#a193ff22,transparent 45%)}
.party-home h1{font-size:clamp(35px,5.5vw,66px);margin:18px 0;letter-spacing:-2.5px}
.party-home h1 em{background:linear-gradient(100deg,#52edce 15%,#b3fff0 48%,#a193ff 85%);background-size:180% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:party-shine 9s ease-in-out infinite alternate}
.party-home .party-intro{font-size:16px;line-height:1.7;margin:0;color:#aab7cd}.party-intro strong{color:#e0e7f6;font-weight:500}
.word-stage{position:relative;width:min(420px,100%);height:178px;margin:18px auto 14px;pointer-events:none}.demo-category{font-size:9px;letter-spacing:2px;color:#bdb2ff;font-weight:850}.demo-tiles{height:116px;display:flex;justify-content:center;align-items:center;gap:12px;position:relative}.demo-tile{width:68px;height:85px;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:13px;font-size:44px;font-weight:900;border:1px solid #ffffff60;box-shadow:0 12px 25px #0004;animation:tile-bob 5s ease-in-out infinite;--tilt:-12deg;transform:rotate(var(--tilt))}.demo-tile small{font-size:8px;letter-spacing:1px;font-weight:850}.tile-one{background:linear-gradient(140deg,#b5a6ff,#8070d7);color:#241c45}.tile-two{background:linear-gradient(140deg,#a2ffe9,#44dbbb);color:#123a32;--tilt:5deg;animation-delay:-1.6s;margin-top:-12px}.tile-three{background:linear-gradient(140deg,#ffda9d,#f4a572);color:#4a2c1a;--tilt:15deg;animation-delay:-3.2s}.demo-clock{position:absolute;right:55px;bottom:-2px;width:55px;height:55px;display:flex;flex-direction:column;justify-content:center;border-radius:50%;background:#111d2b;border:2px solid #52edce;font-size:26px;font-weight:850;box-shadow:0 0 25px #52edce25;transform:rotate(10deg)}.demo-clock small{font-size:6px;letter-spacing:.5px}.demo-caption{font-size:11px;color:#aab7cd;display:block;margin-top:12px}.stage-spark{position:absolute;font-size:27px;color:#a193ff;animation:spark-turn 7s ease-in-out infinite}.spark-left{left:38px;top:55px}.spark-right{right:28px;top:23px;color:#52edce;animation-delay:-3s}
.party-home .home-actions{margin-top:18px;gap:18px}.party-home .home-action{position:relative;overflow:hidden;min-height:148px;padding:22px 34px;align-items:flex-start;text-align:left;gap:8px;border-radius:22px;transition:transform .2s,box-shadow .2s}.party-home .home-action strong{font-size:25px}.party-home .home-action small{font-size:12px;max-width:90%;line-height:1.5}.party-home .action-symbol{font-size:26px;line-height:1}.action-arrow{position:absolute;right:26px;top:28px;font-size:25px;opacity:.65}.party-home .home-action.primary{background:linear-gradient(115deg,#52edce,#77f4c6);box-shadow:0 10px 38px #52edce20}.party-home .home-action.primary:before{content:'';position:absolute;inset:-80% -40%;background:linear-gradient(115deg,transparent 44%,#ffffff35 50%,transparent 56%);transform:translateX(-80%);animation:button-gleam 9s ease-in-out infinite;pointer-events:none}.party-home .home-action.secondary{background:linear-gradient(125deg,#2a2949,#20283d);border-color:#69618c88}.party-home .home-action:active{transform:scale(.97)}.party-home .home-facts{margin-top:22px;flex-wrap:wrap;gap:12px 24px;font-size:12px}.party-home .home-help{margin-top:26px}.party-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:left;margin-top:20px}.party-steps p{font-size:13px;line-height:1.7;color:#aab7cd}.party-steps b{display:block;color:#52edce;margin-bottom:6px}.party-home .admin-link{margin-top:22px}
@keyframes tile-bob{0%,100%{transform:translateY(0) rotate(var(--tilt))}50%{transform:translateY(-8px) rotate(calc(var(--tilt) + 5deg))}}
@keyframes spark-turn{0%,100%{transform:rotate(0) scale(.85);opacity:.5}50%{transform:rotate(50deg) scale(1.1);opacity:1}}
@keyframes party-shine{to{background-position:100% 50%}}
@keyframes button-gleam{0%,65%{transform:translateX(-80%)}95%,100%{transform:translateX(80%)}}
@media(hover:hover){.party-home .home-action:hover{transform:translateY(-4px);box-shadow:0 14px 38px #52edce28}.party-home .home-action.secondary:hover{box-shadow:0 14px 38px #a193ff25}}
@media(max-width:600px){.party-home{padding:26px 20px}.party-home h1{letter-spacing:-1.6px}.party-home .party-intro{font-size:14px}.word-stage{margin:12px auto 6px;height:162px}.party-home .home-action{min-height:116px;padding:18px 24px}.party-home .home-action strong{font-size:22px}.party-home .home-actions{gap:12px}.party-home .home-facts{font-size:10px;gap:10px 16px}.party-steps{grid-template-columns:1fr;gap:0}.demo-clock{right:25px}.spark-left{left:14px}.spark-right{right:12px}}
@media(prefers-reduced-motion:reduce){.party-home *,.party-home *:before{animation:none!important;transition:none!important}}
