@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800;900&display=swap');
:root{color-scheme:dark;--bg:#10131f;--panel:#191d2d;--muted:#9da4bc;--text:#f8f7ff;--purple:#9473ff;--pink:#ee7bac;--line:#292e42}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% -10%,#272044 0,transparent 55%),var(--bg);color:var(--text);font-family:Vazirmatn,Tahoma,sans-serif;min-height:100vh}.app{width:min(100%,520px);min-height:100dvh;margin:auto;padding:env(safe-area-inset-top) 22px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column}header{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff0d}.brand{display:flex;align-items:center;gap:11px}.brand b,.brand small{display:block}.brand b{font-size:17px}.brand small{color:var(--muted);font-size:11px}.logo{width:40px;height:40px;border-radius:14px;background:linear-gradient(145deg,var(--purple),#7352dd);display:grid;place-items:center;font-weight:900;font-size:22px;box-shadow:0 7px 22px #805ee844}.online{font-size:11px;color:#9eabc0}.online i{display:inline-block;background:#5fe2b0;width:7px;height:7px;border-radius:50%;margin-left:5px;box-shadow:0 0 10px #5fe2b0}.screen{display:none;flex:1;animation:in .35s ease}.screen.active{display:block}@keyframes in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}.hero{text-align:center;padding:32px 4px 24px}.hero-art{position:relative;margin:0 auto 19px;width:90px;height:90px;border-radius:30px;background:linear-gradient(145deg,#392b64,#22233c);display:grid;place-items:center;font-size:43px;box-shadow:0 12px 38px #0004}.hero-art span{position:absolute;right:9px;top:8px;color:#ffd578;font-size:17px}.eyebrow{color:#b6a5ff;font-size:12px;font-weight:700;letter-spacing:.3px;margin:0 0 8px}.hero h1{font-size:30px;line-height:1.55;margin:4px 0 9px;font-weight:900}.hero h1 em{font-style:normal;color:#bd9dff}.sub{color:var(--muted);font-size:13px;line-height:1.9;margin:0}.card{background:linear-gradient(150deg,#1b2031,#171a29);border:1px solid #ffffff0d;border-radius:23px;padding:21px;box-shadow:0 18px 45px #0002}label{font-size:12px;color:#c1c4d3;display:block;margin-bottom:9px}input{font:inherit;color:var(--text);background:#10131f;border:1px solid var(--line);border-radius:13px;padding:13px 14px;outline:none;width:100%;font-size:14px}input:focus{border-color:#9174f5;box-shadow:0 0 0 3px #9473ff20}input::placeholder{color:#737b94}button{font:inherit;cursor:pointer;color:inherit;border:0}.primary{width:100%;background:linear-gradient(100deg,#9572ff,#7957e5);border-radius:14px;padding:14px;font-weight:800;margin-top:14px;box-shadow:0 9px 22px #7957e533;transition:transform .15s}.primary:active,.secondary:active{transform:scale(.98)}.primary span{margin-right:7px}.or{display:flex;align-items:center;gap:11px;color:#778097;font-size:11px;margin:17px 0}.or span{height:1px;background:var(--line);flex:1}.join-row{display:flex;gap:9px}.join-row input{text-align:center;letter-spacing:5px;text-transform:uppercase;font-weight:700}.secondary{background:#292442;border:1px solid #413965;border-radius:13px;padding:0 20px;font-weight:700;color:#d5caff}.footnote{text-align:center;font-size:11px;color:#767e94;margin:17px}.room-head{text-align:center;padding:52px 0 24px}.room-code{background:#242039;color:#d2c3ff;border:1px dashed #775fc0;padding:12px 22px;border-radius:14px;font-size:26px;font-weight:900;letter-spacing:7px;margin:6px 0 12px}.room-code span{font-size:16px;letter-spacing:0;margin-right:7px}.back{background:transparent;color:#abb1c4;padding:15px 0}.players-card{margin-top:8px}.section-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:14px}.section-title span{color:var(--muted);font-size:11px}.players{display:grid;gap:8px;margin:8px 0 16px}.player{display:flex;align-items:center;gap:10px;background:#111522;padding:10px 12px;border-radius:12px}.avatar{width:34px;height:34px;border-radius:11px;background:#352a52;display:grid;place-items:center}.player .name{flex:1;font-size:13px}.host-tag{font-size:10px;color:#c7b8ff;background:#342c50;padding:4px 8px;border-radius:20px}.hint{text-align:center;color:#777f95;font-size:10px;margin:10px 0 0}.game-top{display:flex;align-items:center;justify-content:space-between;padding:20px 0}.pill{font-size:12px;color:#c1c4d3;background:#202436;padding:8px 12px;border-radius:20px}.timer{font-weight:900;font-size:20px;color:#ffc66d}.icon-btn{background:#272b3c;border-radius:50%;width:34px;height:34px;font-size:21px;color:#afb5c7}.turn-banner{text-align:center;border-radius:12px;background:#27223e;color:#c9baff;padding:10px;font-size:12px;margin-bottom:13px}.word-card{background:linear-gradient(135deg,#392d5e,#242442);border:1px solid #ffffff10;border-radius:19px;padding:20px;text-align:center;display:flex;flex-direction:column;gap:7px}.word-card strong{font-size:28px;letter-spacing:3px;color:#fff}.word-card small{color:#c0bad4;font-size:10px}.guess-list{height:150px;overflow:auto;display:flex;flex-direction:column;gap:7px;padding:13px 2px}.guess-item{font-size:12px;color:#c8ccda;background:#191d2c;padding:8px 11px;border-radius:10px;align-self:flex-start;max-width:95%}.guess-item b{color:#bdaaff;margin-left:5px}.guess-box{display:flex;gap:8px}.guess-box button{background:#5fe2b0;color:#10251d;border-radius:12px;padding:0 16px;font-weight:800}.pass{background:transparent;color:#949bb1;font-size:11px;display:block;margin:10px auto 15px}.score-card{background:#191d2c;border-radius:17px;padding:14px}.score-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding:6px 2px;color:#d9dbea}.score-row b{color:#ffce78}.score-row .place{color:#8c94aa;width:24px}.score-name{flex:1}.score-card .section-title{margin-bottom:5px}#toast{position:fixed;bottom:82px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#f5f0ff;color:#211b32;border-radius:12px;padding:10px 16px;font-size:12px;box-shadow:0 8px 30px #0006;transition:.2s;white-space:nowrap;z-index:2}#toast.show{opacity:1;transform:translate(-50%,0)}footer{text-align:center;color:#687087;font-size:10px;padding-top:18px}footer span{color:#e981ad}#final-scores{margin:4px 0 12px}@media(min-height:850px){.hero{padding-top:54px}}
.clues{display:grid;gap:8px;margin:5px 0 9px;text-align:right}.clue{background:#17192e;border:1px solid #ffffff10;border-radius:12px;padding:10px 12px;color:#eeeaff;font-size:13px;line-height:1.8;animation:in .25s ease}.clue:before{content:"✦";color:#b8a3ff;margin-left:8px}.clue.new{border-color:#8b6cff66;background:#2a2345}

/* Responsive polish for compact phones and iOS safe areas */
html{min-width:320px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;min-height:100dvh}.app{width:min(100%,560px);padding-left:clamp(14px,4vw,24px);padding-right:clamp(14px,4vw,24px)}input{font-size:16px;min-height:46px}.primary,.secondary,.guess-box button,.icon-btn{min-height:44px}.join-row{align-items:stretch}.join-row input{min-width:0;letter-spacing:clamp(3px,1vw,5px);text-transform:lowercase;font-size:20px}.secondary{flex:0 0 auto;padding:0 clamp(14px,4vw,20px)}.hero h1{font-size:clamp(25px,7vw,32px)}.hero{padding-top:clamp(22px,7vh,54px)}.game-top{gap:8px}.pill{min-width:0;flex:1;padding:8px clamp(7px,2.5vw,12px);font-size:clamp(9px,2.8vw,12px);white-space:nowrap;text-align:center}.timer{flex:0 0 28px;text-align:center}.icon-btn{flex:0 0 40px;width:40px;height:40px}@media(max-width:360px){.app{padding-left:12px;padding-right:12px}.card{padding:16px}.hero-art{width:76px;height:76px;font-size:38px}.turn-banner{font-size:11px;padding:9px 7px}.pill{font-size:9px}}@media(min-width:700px){.app{margin-top:2vh;margin-bottom:2vh;min-height:96vh}.card{padding:24px}.hero-art{width:96px;height:96px}}

/* Visual refinement */
body{overflow-x:hidden;background:radial-gradient(ellipse at 12% 12%,#29204a 0,transparent 36%),radial-gradient(ellipse at 92% 68%,#182d38 0,transparent 30%),var(--bg)}
.app{position:relative}
header{border-bottom-color:#ffffff12}
.logo,.hero-art{border:1px solid #ffffff16}
.hero-art{background:radial-gradient(circle at 32% 25%,#58428b,#25233f 72%);box-shadow:0 16px 42px #0005,0 0 34px #9473ff20}
.card,.score-card{border-color:#ffffff14;box-shadow:0 20px 55px #0003,inset 0 1px #ffffff08}
.primary{box-shadow:0 10px 26px #7957e544,inset 0 1px #ffffff30}
.primary:hover{filter:brightness(1.08)}
.secondary{transition:background .18s,border-color .18s}
.secondary:hover{background:#342c51;border-color:#69529e}
#code{text-transform:lowercase;letter-spacing:clamp(3px,1vw,5px)}
input:focus-visible,button:focus-visible{outline:2px solid #c1aaff;outline-offset:2px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
