:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#fff;
  background:#0d0818;
  --bg:#0d0818;
  --panel:#171026;
  --muted:#aaa1ba;
  --line:rgba(255,255,255,.11);
  --purple:#241039;
  --purple2:#35144f;
  --accent:#ff8a1f;
  --cyan:#13bde4;
  --good:#39d98a;
  --bad:#ff5571;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;min-width:320px;min-height:100vh;background:#0d0818;color:#fff}
button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}
.app-shell{min-height:100vh;position:relative;overflow:hidden;padding:24px 18px 42px;background:
radial-gradient(circle at 15% 0%,rgba(126,54,202,.24),transparent 26%),
radial-gradient(circle at 85% 100%,rgba(0,191,228,.11),transparent 26%),
linear-gradient(180deg,#120a20 0%,#090611 100%)}
.ambient{position:fixed;border-radius:50%;filter:blur(110px);opacity:.14;pointer-events:none}.ambient-a{width:380px;height:380px;background:#8d39d6;top:-190px;left:-110px}.ambient-b{width:340px;height:340px;background:#00b9dc;right:-170px;bottom:-120px}
.brandbar{max-width:840px;margin:0 auto 24px;display:flex;align-items:center;gap:12px}.logo-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#27153a;border:1px solid rgba(255,255,255,.12);font-size:22px;color:#ff9f43;box-shadow:inset 0 0 0 2px rgba(255,138,31,.08)}.brand-name{font-weight:900;font-size:15px;letter-spacing:.12em}.brand-name span{color:#ff9f43}.brand-sub{margin-top:2px;color:var(--muted);font-size:12px}
.panel,.game-wrap{max-width:840px;margin:0 auto}.panel{background:rgba(24,15,39,.88);border:1px solid rgba(255,255,255,.11);border-radius:30px;padding:40px;box-shadow:0 24px 80px rgba(0,0,0,.38);backdrop-filter:blur(14px)}
.eyebrow{display:inline-flex;align-items:center;gap:7px;color:#ff9f43;font-size:12px;font-weight:900;letter-spacing:.14em}.lead,.handover-panel p{color:var(--muted);font-size:16px;line-height:1.65;max-width:600px}h1,h2,h3{margin:0}h1{font-size:clamp(38px,7vw,66px);line-height:.98;letter-spacing:-.045em;margin-top:16px}h1 span{color:#b7a8c8}h2{font-size:clamp(31px,6vw,49px);letter-spacing:-.035em;margin-top:10px}
.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:30px 0 20px}label>span{display:block;margin-bottom:8px;color:#ddd4e8;font-size:13px;font-weight:700}input,select{width:100%;border:1px solid rgba(255,255,255,.12);background:#120b1f;color:#fff;border-radius:14px;padding:14px 15px;outline:none;transition:.2s}select option{background:#171026;color:#fff}input:focus,select:focus{border-color:#ff9f43;box-shadow:0 0 0 4px rgba(255,159,67,.12)}
.fairness-note{display:flex;gap:13px;align-items:center;border:1px solid rgba(255,159,67,.22);background:rgba(255,159,67,.07);border-radius:16px;padding:14px 16px;margin:6px 0 24px}.note-icon{color:#ff9f43;font-size:24px}.fairness-note strong,.fairness-note span{display:block}.fairness-note strong{font-size:13px}.fairness-note span{color:var(--muted);margin-top:3px;font-size:12px}
.primary-btn,.ghost-btn{border:0;border-radius:15px;padding:15px 20px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;transition:.2s}.primary-btn{color:#1a0b05;background:linear-gradient(135deg,#ff9f43,#ff7143);box-shadow:0 12px 30px rgba(255,112,67,.18)}.primary-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.ghost-btn{background:transparent;color:#bcb2c9;margin-top:8px}.ghost-btn:hover{background:rgba(255,255,255,.04)}
.handover-panel,.results-panel{text-align:center}.handover-panel .eyebrow,.results-panel .eyebrow{margin-top:18px}.handover-panel p,.results-panel .lead{margin-left:auto;margin-right:auto}.player-orb,.trophy{width:80px;height:80px;border-radius:25px;margin:0 auto;display:grid;place-items:center;background:#27143c;border:2px solid rgba(255,159,67,.45);color:#ffae59;font-size:31px;font-weight:900}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:27px 0}.mini-stats div{border:1px solid var(--line);background:rgba(255,255,255,.03);border-radius:15px;padding:15px 8px;display:grid;place-items:center;gap:4px;color:#b5acbf}.mini-stats strong{color:#fff}.mini-stats span{font-size:11px}.mini-icon{font-size:19px!important}
.game-wrap{max-width:590px}.game-topbar,.timer-row{display:flex;justify-content:space-between;align-items:center;gap:14px}.game-topbar{margin-bottom:18px}.game-topbar>div:first-child{display:grid;gap:2px}.soft-label{color:#a99fb7;font-size:10px;letter-spacing:.16em}.score-pill{border:1px solid rgba(255,255,255,.13);background:#1a1028;border-radius:999px;padding:8px 13px;color:#b5aabe;font-size:12px}.score-pill strong{color:#fff;margin-left:5px}.timer-number{font-weight:900;font-size:22px;display:flex;align-items:center;gap:8px}.timer-number.danger{color:#ff5571}.card-count{color:#afa4ba;font-size:13px}.timer-track{height:6px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;margin:10px 0 18px}.timer-track div{height:100%;background:linear-gradient(90deg,#ff9f43,#ff6d43);border-radius:inherit;transition:width .4s linear}
.card-stage{display:flex;justify-content:center;padding:4px 0}.taboo-card{--card-accent:#ff8a1f;position:relative;isolation:isolate;width:min(100%,410px);aspect-ratio:0.69;min-height:470px;padding:30px 30px 28px;text-align:center;border:8px solid #120d18;border-radius:24px;background:linear-gradient(160deg,#351350,#1f0c34 58%,#170927);box-shadow:0 20px 0 #0c0910,0 30px 65px rgba(0,0,0,.46);display:flex;flex-direction:column;align-items:center;overflow:hidden}.taboo-card:before{content:"";position:absolute;z-index:-2;inset:10px;border:5px solid var(--card-accent);border-radius:16px;box-shadow:0 0 0 2px rgba(255,255,255,.08) inset}.taboo-card:after{content:"";position:absolute;z-index:-3;inset:0;opacity:.22;background-image:radial-gradient(circle at 18px 18px,rgba(255,255,255,.13) 0 2px,transparent 2.5px),radial-gradient(circle at 42px 38px,rgba(255,255,255,.08) 0 1.5px,transparent 2px);background-size:58px 58px,74px 74px}.taboo-card.theme-0{--card-accent:#ff931e}.taboo-card.theme-1{--card-accent:#10bfe7}.taboo-card.theme-2{--card-accent:#da4fff}.taboo-card.theme-3{--card-accent:#50d890}.taboo-card.theme-4{--card-accent:#ff5b7f}
.word-banner{position:relative;width:78%;margin:4px auto 24px;background:var(--card-accent);padding:10px 16px 9px;border-radius:18px 18px 13px 13px;box-shadow:0 5px 0 rgba(0,0,0,.18);transform:rotate(-1deg)}.word-banner:before,.word-banner:after{content:"";position:absolute;bottom:-7px;width:14px;height:14px;background:var(--card-accent);z-index:-1}.word-banner:before{left:13px;transform:rotate(38deg)}.word-banner:after{right:13px;transform:rotate(-38deg)}.target-word{font-size:clamp(26px,6.5vw,42px);font-weight:950;letter-spacing:-.03em;color:#fff;text-transform:uppercase;text-shadow:0 2px 0 rgba(0,0,0,.12);overflow-wrap:anywhere}.card-kicker{font-size:10px;font-weight:900;letter-spacing:.18em;color:#d7cbe1;margin-bottom:8px}.dont-say{font-size:11px;font-weight:900;letter-spacing:.18em;color:#d4c7df;margin-bottom:13px}.taboo-list{width:76%;display:grid;gap:4px;margin:auto 0}.taboo-list div{font-family:Georgia,"Times New Roman",serif;color:#fff;font-weight:700;font-size:clamp(19px,4vw,27px);line-height:1.22;padding:5px 0;text-shadow:0 2px 3px rgba(0,0,0,.35)}.taboo-list div+div{border-top:1px solid rgba(255,255,255,.10)}.taboo-brand{margin-top:auto;font-weight:950;font-style:italic;font-size:20px;letter-spacing:-.04em;color:#fff;text-shadow:0 0 12px var(--card-accent)}
.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.action{min-height:58px;border:1px solid var(--line);border-radius:17px;padding:12px 10px;display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;color:#fff;background:#18101f;font-weight:900;transition:.18s}.action:hover{transform:translateY(-1px)}.action b{font-size:22px}.action small{opacity:.72}.action.taboo{border-color:rgba(255,85,113,.26)}.action.taboo b{color:#ff5571}.action.skip b{color:#ffb55f}.action.correct{background:rgba(57,217,138,.10);border-color:rgba(57,217,138,.27)}.action.correct b{color:#39d98a}
.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:28px 0 22px;text-align:left}.player-result{position:relative;border:1px solid var(--line);border-radius:20px;padding:20px;background:rgba(255,255,255,.03)}.player-result.winner{border-color:rgba(255,159,67,.45);background:rgba(255,159,67,.08)}.player-result>span{color:#aca1b8;font-size:10px;letter-spacing:.15em}.player-result h3{font-size:18px;margin-top:5px}.big-score{font-weight:950;font-size:46px;margin:16px 0}.result-stats{display:grid;gap:6px;color:#b1a7ba;font-size:12px}.result-stats b{color:#fff;margin-right:4px}.enter{animation:enter .3s ease both}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:640px){.app-shell{padding:16px 12px 30px}.brandbar{margin-bottom:16px}.logo-mark{width:39px;height:39px}.brand-sub{display:none}.panel{padding:24px 16px;border-radius:24px}.setup-grid{grid-template-columns:1fr;gap:13px}.mini-stats{gap:7px}.game-wrap{width:100%;max-width:470px}.game-topbar{margin-bottom:14px}.timer-row{align-items:flex-end}.taboo-card{width:min(88vw,370px);min-height:0;aspect-ratio:.69;border-width:7px;padding:27px 24px 22px;border-radius:22px}.taboo-card:before{inset:9px;border-width:4px}.word-banner{width:82%;margin-bottom:18px;padding:9px 12px}.taboo-list{width:82%}.actions{gap:7px;margin-top:19px}.action{grid-template-columns:1fr;place-items:center;gap:1px;min-height:58px;padding:9px 5px;font-size:12px}.action small{display:block;font-size:10px}.scoreboard{grid-template-columns:1fr}}
@media(max-width:380px){.app-shell{padding-left:9px;padding-right:9px}.brandbar{padding:0 4px}.game-wrap{max-width:100%}.taboo-card{width:min(92vw,330px);padding:23px 19px 19px;border-width:6px}.target-word{font-size:25px}.taboo-list div{font-size:18px;padding:4px 0}.actions{gap:5px}.action{border-radius:14px;min-height:54px}.panel{padding:21px 14px}.mini-stats div{padding:12px 5px}}
@media(min-width:900px){.game-wrap{max-width:630px}.taboo-card{width:430px}.actions{max-width:590px;margin-left:auto;margin-right:auto}}

/* === One-screen responsive layout === */
html,body{height:100%;overflow:hidden}
body{min-height:100dvh}
.app-shell{
  height:100dvh;
  min-height:100dvh;
  overflow:hidden;
  padding:clamp(8px,1.8vh,18px) clamp(9px,2vw,18px);
  display:flex;
  flex-direction:column;
}
.brandbar{
  width:100%;
  flex:0 0 auto;
  margin:0 auto clamp(6px,1.2vh,12px);
}
#app{
  width:100%;
  flex:1 1 auto;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.game-wrap{
  width:min(100%,590px);
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:auto auto auto minmax(0,1fr) auto;
  align-content:stretch;
}
.game-topbar{margin-bottom:clamp(4px,.8vh,10px)}
.timer-track{margin:clamp(4px,.7vh,7px) 0 clamp(5px,.9vh,10px)}
.card-stage{
  min-height:0;
  height:100%;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.taboo-card{
  height:min(100%,58dvh);
  width:auto;
  max-width:min(92vw,410px);
  min-height:0;
  aspect-ratio:.69;
  padding:clamp(14px,2.3vh,25px) clamp(16px,3vw,26px) clamp(12px,2vh,22px);
  border-width:clamp(5px,.9vh,8px);
}
.word-banner{
  margin:2px auto clamp(8px,1.5vh,17px);
  padding:clamp(6px,1vh,9px) 12px;
}
.target-word{font-size:clamp(20px,4.2vh,34px)}
.card-kicker,.dont-say{font-size:clamp(8px,1.2vh,10px)}
.dont-say{margin-bottom:clamp(5px,.9vh,10px)}
.taboo-list{gap:0}
.taboo-list div{
  font-size:clamp(15px,2.7vh,23px);
  padding:clamp(2px,.45vh,4px) 0;
}
.taboo-brand{font-size:clamp(14px,2.5vh,19px)}
.actions{
  flex:0 0 auto;
  margin-top:clamp(6px,1.1vh,12px);
  gap:clamp(5px,1vw,9px);
}
.action{
  min-height:clamp(44px,7.2vh,56px);
  padding:clamp(6px,1vh,10px) 7px;
  border-radius:14px;
}
.action b{font-size:clamp(18px,3vh,22px)}
.panel{
  max-height:100%;
  overflow:hidden;
  padding:clamp(16px,3vh,30px);
}
.setup-panel h1{font-size:clamp(30px,6vh,52px)}
.setup-panel .lead{font-size:clamp(12px,2vh,15px);line-height:1.4;margin:clamp(7px,1.2vh,13px) 0}
.setup-grid{margin:clamp(10px,2vh,18px) 0 clamp(8px,1.5vh,14px);gap:clamp(7px,1.3vh,12px)}
.setup-grid label>span{margin-bottom:4px;font-size:12px}
.setup-grid input,.setup-grid select{padding:clamp(8px,1.4vh,12px) 11px}
.fairness-note{margin:4px 0 clamp(8px,1.5vh,14px);padding:clamp(8px,1.2vh,11px) 12px}
.primary-btn,.ghost-btn{padding:clamp(10px,1.7vh,14px) 16px}
.handover-panel .player-orb,.results-panel .trophy{width:clamp(58px,9vh,75px);height:clamp(58px,9vh,75px)}
.handover-panel h2,.results-panel h2{font-size:clamp(27px,5vh,42px)}
.handover-panel p,.results-panel .lead{font-size:clamp(12px,2vh,15px);line-height:1.45}
.mini-stats{margin:clamp(12px,2.2vh,22px) 0;gap:7px}
.mini-stats div{padding:clamp(8px,1.4vh,12px) 5px}
.scoreboard{margin:clamp(12px,2vh,20px) 0 clamp(9px,1.5vh,15px)}
.player-result{padding:clamp(11px,1.8vh,17px)}
.big-score{font-size:clamp(32px,6vh,44px);margin:clamp(7px,1.3vh,13px) 0}

@media(max-width:640px){
  .app-shell{padding:8px 9px}
  .brandbar{margin-bottom:6px}
  .logo-mark{width:34px;height:34px;border-radius:11px;font-size:17px}
  .brand-name{font-size:12px}.brand-sub{display:none}
  .game-wrap{max-width:440px}
  .game-topbar{margin-bottom:4px}
  .soft-label{font-size:8px}
  .score-pill{padding:5px 9px;font-size:10px}
  .timer-number{font-size:18px}
  .card-count{font-size:11px}
  .timer-track{height:5px}
  .taboo-card{height:min(100%,59dvh);max-width:min(91vw,360px);border-radius:19px}
  .taboo-card:before{inset:7px;border-width:3px;border-radius:13px}
  .word-banner{width:80%;border-radius:14px 14px 10px 10px}
  .taboo-list{width:80%}
  .actions{grid-template-columns:repeat(3,1fr)}
  .action{grid-template-columns:auto 1fr auto;min-height:43px;font-size:11px}
  .action small{font-size:9px}
  .panel{padding:15px 12px;border-radius:20px}
  .setup-grid{grid-template-columns:1fr 1fr}
  .fairness-note .note-icon{font-size:18px}
  .fairness-note strong{font-size:11px}.fairness-note span{font-size:10px}
  .scoreboard{grid-template-columns:1fr 1fr;gap:8px}
}

@media(max-width:390px){
  .brandbar{gap:8px}
  .taboo-card{height:min(100%,57dvh);max-width:88vw}
  .target-word{font-size:clamp(18px,4vh,27px)}
  .taboo-list div{font-size:clamp(14px,2.45vh,19px)}
  .action{grid-template-columns:1fr;gap:0;min-height:42px;padding:5px 3px}
  .action small{display:none}
  .setup-grid{gap:6px}
  .setup-grid label>span{font-size:10px}
  .setup-grid input,.setup-grid select{font-size:12px;padding:8px}
}

@media(max-height:720px){
  .brandbar{margin-bottom:4px}
  .logo-mark{width:32px;height:32px}.brand-name{font-size:11px}
  .taboo-card{height:min(100%,55dvh)}
  .card-kicker{margin-bottom:4px}
  .word-banner{margin-bottom:7px}
  .taboo-list div{font-size:clamp(14px,2.55vh,19px);padding:1px 0}
  .actions{margin-top:5px}
  .action{min-height:40px}
  .setup-panel h1{font-size:clamp(27px,5.2vh,40px);margin-top:7px}
  .setup-panel .lead{margin:5px 0;font-size:11px}
  .setup-grid{margin:7px 0;gap:5px}
  .fairness-note{margin:3px 0 7px;padding:7px 9px}
  .handover-panel .eyebrow,.results-panel .eyebrow{margin-top:7px}
  .mini-stats{margin:9px 0}
}

@media(max-height:620px){
  .brandbar{display:none}
  .app-shell{padding-top:5px;padding-bottom:5px}
  .taboo-card{height:min(100%,62dvh)}
  .timer-row{line-height:1}
  .game-topbar{line-height:1.05}
  .panel{padding:10px}
  .setup-panel .lead{display:none}
  .fairness-note{display:none}
  .setup-grid{margin:5px 0}
  .mini-stats{margin:6px 0}
}

/* === Word manager === */
.manager-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 12px;padding:11px 13px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.03)}
.manager-summary>div{display:flex;align-items:baseline;gap:7px}.manager-summary strong{font-size:20px}.manager-summary span{color:var(--muted);font-size:11px}.manage-btn,.tool-btn,.close-manager,.import-btn{border:1px solid rgba(255,255,255,.13);background:#211331;color:#fff;border-radius:12px;padding:9px 12px;font-weight:800;font-size:12px;cursor:pointer}.manage-btn{color:#ffae59;border-color:rgba(255,159,67,.3)}
.word-manager{width:min(100%,900px);height:100%;min-height:0;display:flex;flex-direction:column;background:rgba(24,15,39,.92);border:1px solid var(--line);border-radius:24px;padding:18px;overflow:hidden}.manager-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex:0 0 auto}.manager-head h2{font-size:clamp(25px,4vw,36px);margin-top:4px}.manager-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.close-manager{white-space:nowrap}.manager-tools{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 9px}.import-btn{display:inline-flex;align-items:center}.import-btn input{display:none}.danger-tool{color:#ff8fa3}.word-count{font-size:11px;color:var(--muted);margin-bottom:7px}.word-count strong{color:#fff}.word-list{min-height:0;overflow:auto;padding-right:3px;display:grid;gap:7px;overscroll-behavior:contain}.word-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.09);background:#130c20;border-radius:14px;padding:9px}.order-num{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(255,159,67,.1);color:#ffae59;font-size:11px;font-weight:900}.word-details{min-width:0}.word-details strong{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.word-details span{display:block;color:#afa5ba;font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-controls{display:flex;gap:5px}.order-controls button{width:30px;height:30px;border:1px solid rgba(255,255,255,.11);border-radius:9px;background:#20142d;color:#fff;font-weight:900;padding:0}.order-controls button:disabled{opacity:.25;cursor:not-allowed}.order-controls .delete-mini{color:#ff6c83}
.editor-overlay{position:fixed;inset:0;z-index:50;background:rgba(4,2,8,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:14px}.editor-modal{width:min(100%,500px);max-height:calc(100dvh - 28px);overflow:auto;background:#171026;border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:20px}.editor-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:16px}.editor-top h3{font-size:25px;margin-top:4px}.modal-x{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:#21152e;color:#fff;font-size:22px}.editor-modal>label>span,.taboo-editor-title{display:block;color:#ddd4e8;font-size:12px;font-weight:800;margin-bottom:6px}.taboo-editor-title{margin-top:15px}.taboo-inputs{display:grid;gap:7px;margin-bottom:16px}.taboo-inputs label{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:7px}.taboo-inputs label>span{margin:0;text-align:center;color:#ffae59}.taboo-inputs input{padding:10px 11px}
@media(max-width:640px){.word-manager{border-radius:18px;padding:12px}.manager-head{align-items:center}.manager-head p{display:none}.manager-tools{margin:10px 0 7px}.word-row{grid-template-columns:28px minmax(0,1fr);gap:7px;padding:8px}.order-num{width:27px;height:27px}.order-controls{grid-column:1/-1;justify-content:flex-end}.order-controls button{width:34px;height:29px}.word-details strong{font-size:13px}.word-details span{font-size:10px}.editor-modal{padding:15px;border-radius:18px}}

/* === Bigger Taboo / Forbidden Words === */
.taboo-list{width:86%}
.taboo-list div{font-size:clamp(20px,3.4vh,29px);font-weight:800;line-height:1.2;padding:4px 0}
@media(max-width:390px){.taboo-list div{font-size:clamp(18px,3vh,23px);padding:3px 0}}
@media(max-height:720px){.taboo-list div{font-size:clamp(17px,2.9vh,23px);padding:2px 0}}
@media(max-height:620px){.taboo-list div{font-size:clamp(16px,2.8vh,21px);padding:1px 0}}
