:root { color-scheme:dark; --bg:#121127; --panel:#1d1b3b; --panel2:#282450; --ink:#fbf8ee; --muted:#aaa6ca; --line:rgba(255,255,255,.1); --moon:#ffd75e; --pink:#ff6eb7; --cyan:#6de7ef; --red:#ff6477; }
* { box-sizing:border-box; }
html { background:var(--bg); }
body { margin:0; min-width:320px; min-height:100svh; overflow-x:hidden; color:var(--ink); font-family:Inter,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; background:radial-gradient(circle at 50% -20%,#30286a 0,transparent 45rem),linear-gradient(145deg,#0c0b1c,#181532 60%,#0d0c20); }
button,input,select { font:inherit; }
button:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #fff3a6; outline-offset:3px; }
.glow { position:fixed; z-index:-1; width:25rem; aspect-ratio:1; border-radius:50%; filter:blur(100px); opacity:.1; pointer-events:none; }.glow-a{left:-12rem;top:20%;background:var(--pink)}.glow-b{right:-12rem;bottom:0;background:var(--cyan)}
.app-shell { width:min(920px,calc(100% - 24px)); margin:auto; padding:12px 0 24px; }
.topbar { min-height:65px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.brand { display:flex; align-items:center; gap:10px; }.brand>div{display:grid}.brand b{font-family:serif;font-size:1.15rem;letter-spacing:.08em}.brand small{color:var(--muted);font-size:.48rem;letter-spacing:.2em}
.wolf-mark { display:grid; place-items:center; width:40px; height:44px; clip-path:polygon(50% 0,95% 25%,84% 100%,16% 100%,5% 25%); color:#392904; background:linear-gradient(145deg,#ffed9e,#e9b929); font-family:serif;font-weight:900; }
.top-actions { display:flex; gap:7px; align-items:center; }.icon-btn{width:39px;height:39px;border:1px solid var(--line);border-radius:12px;color:white;background:rgba(255,255,255,.05);cursor:pointer}.stat-pill{display:flex;align-items:center;gap:8px;height:39px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.04)}.stat-pill span{color:var(--muted);font-size:.48rem;font-weight:900}.stat-pill b{color:var(--moon)}
.game-card { position:relative; min-height:650px; overflow:hidden; border:1px solid var(--line); border-radius:26px; background:linear-gradient(145deg,rgba(35,32,75,.92),rgba(19,18,47,.96)); box-shadow:0 28px 80px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.06); }
.screen { display:none; min-height:650px; padding:clamp(24px,5vw,48px); animation:fade .22s ease; }.screen.active{display:block}.hidden{display:none!important}.eyebrow{color:var(--moon);font-size:.58rem;font-weight:950;letter-spacing:.2em}
.hero{text-align:center}.moon{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 12px;border-radius:50%;color:#3b2a02;background:var(--moon);box-shadow:0 0 42px rgba(255,215,94,.25);font:900 2rem serif}.hero h1{margin:5px 0;font-size:clamp(2.4rem,7vw,4.5rem);line-height:1;letter-spacing:.02em}.hero p{margin:12px 0 25px;color:var(--muted);font-size:.78rem;line-height:1.8}
.settings-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}.setting-box{padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.035)}.player-setting{grid-row:span 2}.reverse-setting{grid-column:2/4;display:flex;align-items:center;justify-content:space-between;gap:15px}.setting-title{display:flex;gap:9px;align-items:center}.setting-title>span{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:8px;color:#332605;background:var(--moon);font-size:.6rem;font-weight:950}.setting-title>div{display:grid}.setting-title b{font-size:.75rem}.setting-title small{margin-top:2px;color:var(--muted);font-size:.5rem}.counter{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 10px}.counter button{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;color:white;background:rgba(255,255,255,.07);cursor:pointer}.counter strong{font-size:1.7rem}.counter span{color:var(--muted);font-size:.65rem}.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:5px;max-height:125px;overflow-y:auto}.name-fields label{position:relative}.name-fields span{position:absolute;left:8px;top:50%;color:var(--muted);font-size:.5rem;transform:translateY(-50%)}.name-fields input{width:100%;height:34px;padding:0 7px 0 27px;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:white;background:rgba(0,0,0,.16);font-size:.62rem}.switch-toggle{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:92px;height:42px;padding:5px 10px 5px 6px;border:1px solid var(--line);border-radius:99px;color:var(--muted);background:rgba(255,255,255,.06);cursor:pointer}.switch-toggle i{display:block;width:29px;height:29px;border-radius:50%;background:#777394;box-shadow:0 2px 5px rgba(0,0,0,.3)}.switch-toggle strong{min-width:27px;font-size:.65rem}.switch-toggle.on{color:#352806;border-color:var(--moon);background:var(--moon)}.switch-toggle.on i{background:white}
.choice-row{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:17px}.choice-row button{min-height:42px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:rgba(255,255,255,.035);cursor:pointer}.choice-row button.selected{color:#342500;border-color:var(--moon);background:var(--moon);font-weight:900}.setting-box select{width:100%;height:44px;margin-top:17px;padding:0 10px;border:1px solid var(--line);border-radius:10px;color:white;background:#211e45}.topic-meter{height:5px;margin-top:14px;border-radius:99px;background:rgba(255,255,255,.07)}.topic-meter i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--pink),var(--moon))}.topic-meter span{display:block;margin-top:5px;color:var(--muted);font-size:.5rem;text-align:right}
.primary-btn,.danger-btn,.sub-btn{border-radius:13px;font-weight:900;cursor:pointer}.primary-btn{display:block;width:min(420px,100%);min-height:59px;margin:24px auto 0;border:0;color:#2b2108;background:linear-gradient(135deg,#ffea91,var(--moon));box-shadow:0 7px 0 #9b7312,0 13px 28px rgba(255,215,94,.13)}.primary-btn:active{transform:translateY(4px);box-shadow:0 3px 0 #9b7312}.primary-btn small,.primary-btn strong{display:block}.primary-btn small{font-size:.48rem;letter-spacing:.18em}.primary-btn strong{font-size:.95rem}.offline-note{text-align:center;color:#77739b;font-size:.52rem}
.screen-head{display:flex;align-items:center;justify-content:space-between}.progress-dots{display:flex;gap:4px}.progress-dots i{width:22px;height:5px;border-radius:99px;background:#3d3964}.progress-dots i.done{background:var(--moon)}
.pass-stage,.word-stage,.talk-screen,.vote-choice,.guess-screen,.result-screen{text-align:center}.pass-stage{padding-top:70px}.pass-icon,.vote-icon{display:grid;place-items:center;width:70px;height:70px;margin:auto;border-radius:50%;color:#352806;background:var(--moon);font-size:2rem;font-weight:900;box-shadow:0 0 35px rgba(255,215,94,.2)}.pass-stage h2,.talk-screen h2,.vote-choice h2,.guess-screen h2,.result-screen h2{margin:16px 0 8px;font-size:clamp(1.7rem,5vw,3rem)}.pass-stage h2 span,.guess-screen h2 span{color:var(--moon)}.pass-stage p,.talk-screen>p,.vote-choice>p,.guess-screen>p,.result-screen>p{color:var(--muted);font-size:.75rem;line-height:1.7}
.word-stage{padding-top:28px}.word-stage>p{color:var(--muted);font-size:.68rem}.word-stage>p span{color:white;font-weight:900}.secret-card{position:relative;display:grid;place-items:center;width:min(480px,100%);min-height:255px;margin:20px auto;padding:30px;border:1px solid rgba(255,215,94,.28);border-radius:24px;background:radial-gradient(circle at 50% 20%,rgba(255,215,94,.1),transparent 55%),#16142e;box-shadow:0 25px 60px rgba(0,0,0,.32)}.card-label{position:absolute;top:20px;color:var(--moon);font-size:.5rem;font-weight:900;letter-spacing:.2em}.secret-card ruby{font-family:serif;font-size:clamp(2.5rem,10vw,5rem);font-weight:900}.secret-card rt{color:var(--muted);font-family:sans-serif;font-size:.24em}.secret-card small{position:absolute;bottom:20px;padding:5px 10px;border-radius:99px;color:#2d2140;background:#c9bcef;font-size:.55rem;font-weight:900}.memory-note{color:#8681a7!important}
.talk-screen{padding-top:45px!important}.timer-ring{display:grid;place-items:center;width:220px;aspect-ratio:1;margin:22px auto;border-radius:50%;background:conic-gradient(var(--moon) var(--progress,100%),rgba(255,255,255,.08) 0);box-shadow:0 0 40px rgba(255,215,94,.08)}.timer-ring::before{content:"";position:absolute}.timer-ring>div{display:grid;place-items:center;width:186px;aspect-ratio:1;border-radius:50%;background:#17152f}.timer-ring strong{font-size:2.8rem;font-variant-numeric:tabular-nums}.timer-ring span{color:var(--moon);font-size:.55rem;font-weight:950;letter-spacing:.18em}.prompt-card{width:min(470px,100%);margin:0 auto;padding:13px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.035)}.prompt-card span,.prompt-card b{display:block}.prompt-card span{color:var(--muted);font-size:.5rem}.prompt-card b{margin:5px 0;font-size:.9rem}.prompt-card button{border:0;color:var(--cyan);background:none;font-size:.55rem;cursor:pointer}.talk-actions{display:flex;justify-content:center;gap:7px;margin-top:12px}.sub-btn{min-height:43px;padding:0 18px;border:1px solid var(--line);color:white;background:rgba(255,255,255,.045)}.danger-btn{display:block;width:min(420px,100%);min-height:54px;margin:17px auto 0;border:1px solid rgba(255,100,119,.5);color:white;background:linear-gradient(135deg,#a92c50,#d9425b)}
.vote-screen{padding-top:35px}.vote-pass-stage{padding-top:50px}.vote-choice{padding-top:40px}.candidate-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:min(520px,100%);margin:24px auto}.candidate-list button{min-height:59px;border:1px solid var(--line);border-radius:12px;color:white;background:rgba(255,255,255,.055);font-weight:900;cursor:pointer}.candidate-list button:hover{border-color:var(--moon);background:rgba(255,215,94,.1)}
.guess-screen{padding-top:45px!important}.caught-wolf{display:grid;place-items:center;width:78px;height:84px;margin:14px auto;clip-path:polygon(50% 0,95% 25%,84% 100%,16% 100%,5% 25%);color:white;background:linear-gradient(145deg,#e2426b,#7f214b);font:900 2rem serif}.guess-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;width:min(560px,100%);margin:25px auto}.guess-choices button{min-height:80px;padding:10px;border:1px solid var(--line);border-radius:13px;color:white;background:rgba(255,255,255,.05);cursor:pointer}.guess-choices ruby{font-family:serif;font-size:1.25rem;font-weight:900}.guess-choices rt{color:var(--muted);font:500 .45em sans-serif}
.result-screen{padding-top:40px!important}.result-mark{display:grid;place-items:center;width:82px;height:88px;margin:13px auto;clip-path:polygon(50% 0,95% 25%,84% 100%,16% 100%,5% 25%);color:#342500;background:var(--moon);font:900 2rem serif}.result-mark.wolf-win{color:white;background:linear-gradient(145deg,#ef4c77,#7b2047)}.word-results{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:min(580px,100%);margin:22px auto}.word-results>div{display:grid;gap:7px;padding:18px;border:1px solid rgba(255,215,94,.25);border-radius:14px;background:rgba(255,215,94,.06)}.word-results .wolf-word{border-color:rgba(255,110,183,.25);background:rgba(255,110,183,.055)}.word-results span{color:var(--muted);font-size:.52rem}.word-results ruby{font-family:serif;font-size:1.55rem;font-weight:900}.word-results rt{font:500 .4em sans-serif;color:var(--muted)}.wolf-reveal{display:flex;justify-content:center;gap:12px}.wolf-reveal span{color:var(--muted);font-size:.65rem}.wolf-reveal strong{color:var(--pink)}.vote-result{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin:15px auto}.vote-result span{padding:5px 8px;border-radius:7px;color:var(--muted);background:rgba(255,255,255,.05);font-size:.55rem}.result-actions{width:min(420px,100%);margin:auto}.result-actions .sub-btn{width:100%;margin-top:12px}
footer{display:flex;justify-content:space-between;padding:12px 5px;color:#6f6a91;font-size:.5rem}footer button{border:0;color:#6f6a91;background:none;font-size:inherit;cursor:pointer}
.modal{position:fixed;z-index:30;inset:0;display:none;place-items:center;padding:14px;background:rgba(6,5,15,.82);backdrop-filter:blur(9px)}.modal.open{display:grid}.modal-card{position:relative;width:min(580px,100%);max-height:calc(100svh - 28px);overflow-y:auto;padding:30px;border:1px solid var(--line);border-radius:22px;text-align:center;background:linear-gradient(145deg,#28244f,#17152e);box-shadow:0 30px 90px #000}.modal-card h2{margin:7px 0;font-size:2rem}.close-btn{position:absolute;right:12px;top:12px;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;color:white;background:rgba(255,255,255,.05)}.steps{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:20px 0;text-align:left}.steps>div{display:flex;gap:9px;padding:11px;border-radius:11px;background:rgba(255,255,255,.04)}.steps>div>b{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;color:#312400;background:var(--moon)}.steps p{margin:0;color:var(--muted);font-size:.61rem;line-height:1.55}.steps strong{color:white}.help-note,.confirm-card p{color:var(--muted);font-size:.62rem;line-height:1.7}.confirm-card>div{display:flex;gap:8px;margin-top:20px}.confirm-card>div>*{flex:1;margin:0}.toast{position:fixed;z-index:50;left:50%;bottom:20px;max-width:calc(100% - 28px);padding:11px 18px;border:1px solid var(--line);border-radius:99px;color:white;background:#29264e;box-shadow:0 15px 40px #000;font-size:.65rem;font-weight:900;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s}.toast.show{transform:translate(-50%,0);opacity:1}
@keyframes fade{from{opacity:0;transform:translateY(5px)}}
@media(max-width:760px){.app-shell{width:calc(100% - 12px);padding-top:5px}.topbar{min-height:58px}.stat-pill{display:none}.game-card{min-height:calc(100svh - 78px);border-radius:19px}.screen{min-height:calc(100svh - 78px);padding:22px 14px}.setup-screen{padding-top:20px}.hero .moon{width:56px;height:56px;font-size:1.4rem}.hero h1{font-size:2.6rem}.hero p{margin:8px 0 15px}.settings-grid{grid-template-columns:1fr}.player-setting,.reverse-setting{grid-row:auto;grid-column:auto}.setting-box{padding:12px}.name-fields{max-height:100px}.setting-title small{font-size:.47rem}.choice-row{grid-template-columns:repeat(4,1fr);margin-top:12px}.setting-box select{margin-top:12px}.primary-btn{margin-top:18px}.pass-stage{padding-top:14vh}.word-stage{padding-top:12px}.secret-card{min-height:230px}.talk-screen,.guess-screen,.result-screen{padding-top:25px!important}.timer-ring{width:190px;margin:17px auto}.timer-ring>div{width:160px}.timer-ring strong{font-size:2.35rem}.vote-choice{padding-top:20px}.steps{grid-template-columns:1fr}.modal-card{padding:25px 16px}}
@media(max-width:390px){.name-fields{grid-template-columns:1fr 1fr}.hero h1{font-size:2.25rem}.screen{padding-left:10px;padding-right:10px}.word-results{grid-template-columns:1fr}.guess-choices{gap:6px}.candidate-list{gap:6px}.candidate-list button{min-height:52px}.timer-ring{width:175px}.timer-ring>div{width:147px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
