:root {
  color-scheme: dark;
  --bg:#140f1d; --paper:#20172b; --paper2:#2a1d34; --ink:#fff8ec; --muted:#b9aebf;
  --pink:#fa8cad; --rose:#d4547d; --gold:#f2c66d; --line:rgba(255,255,255,.1); --green:#9fe0be;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,"Noto Sans SC",system-ui,sans-serif}
body{background:radial-gradient(circle at 92% 2%,rgba(212,84,125,.28),transparent 30rem),radial-gradient(circle at 0 44%,rgba(82,55,122,.3),transparent 26rem),var(--bg)}
button,input,select{font:inherit} button{cursor:pointer}.hidden{display:none!important}.app{min-height:100vh;padding:92px 18px max(92px,calc(env(safe-area-inset-bottom) + 72px));overflow-x:hidden}
.setup,.game{width:min(720px,100%);margin:auto}.hero{padding:20px 4px 34px;position:relative}.eyebrow{margin:0 0 12px;color:var(--pink);font-size:10px;letter-spacing:.22em;font-weight:800}
.hero h1,.game-head h1{font-family:"Noto Serif SC",Georgia,serif;font-weight:300;line-height:1.18;margin:0}.hero h1{font-size:clamp(34px,9vw,58px);letter-spacing:-.04em}.hero h1 em{color:var(--pink);font-style:italic}.lede{max-width:34rem;color:var(--muted);line-height:1.75;font-size:14px;margin:20px 0 0}
.game-cover{display:block;width:100%;aspect-ratio:1.905/1;object-fit:cover;margin:24px 0 0;border-radius:20px;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 55px rgba(0,0,0,.32)}
.hero-dice{position:absolute;right:2px;top:16px;width:72px;height:72px;border:1px solid rgba(250,140,173,.35);border-radius:20px;transform:rotate(12deg);box-shadow:0 18px 50px rgba(0,0,0,.28)}.hero-dice i{position:absolute;width:7px;height:7px;background:var(--pink);border-radius:50%}.hero-dice i:nth-child(1){top:15px;left:15px}.hero-dice i:nth-child(2){top:15px;right:15px}.hero-dice i:nth-child(3){inset:0;margin:auto}.hero-dice i:nth-child(4){bottom:15px;left:15px}.hero-dice i:nth-child(5){bottom:15px;right:15px}
.setup-card{background:linear-gradient(150deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:1px solid var(--line);border-radius:26px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.25);backdrop-filter:blur(18px)}
.section-title{display:flex;align-items:center;gap:10px;margin:4px 0 15px}.section-title:not(:first-child){margin-top:28px}.section-title span{color:var(--pink);font-size:10px;letter-spacing:.18em}.section-title b{font-size:13px;letter-spacing:.08em}.players-form,.compact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.players-form label,.compact-grid label,.wide-label{font-size:10px;color:var(--muted);letter-spacing:.08em}
input,select{display:block;width:100%;margin-top:7px;padding:12px 12px;color:var(--ink);background:rgba(8,5,12,.4);border:1px solid var(--line);border-radius:12px;outline:0}input:focus,select:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(250,140,173,.1)}
.choice-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.choice-row input{display:none}.choice-row span{display:flex;flex-direction:column;gap:3px;padding:13px 9px;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.18)}.choice-row b{font-size:14px}.choice-row small{color:var(--muted);font-size:9px}.choice-row input:checked+span{border-color:var(--pink);background:rgba(250,140,173,.14);box-shadow:inset 0 0 0 1px rgba(250,140,173,.2)}
details{margin-top:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}summary{display:flex;justify-content:space-between;font-size:12px;cursor:pointer}summary::marker{display:none}summary span{color:var(--pink);font-size:10px}.wide-label{display:block;margin-top:16px}.safety-note{font-size:11px;line-height:1.65;color:var(--muted)}.consent{display:flex;gap:10px;align-items:flex-start;margin:18px 0;color:var(--muted);font-size:11px;line-height:1.55}.consent input{width:16px;margin:1px 0 0;accent-color:var(--pink)}
.primary{width:100%;border:0;border-radius:16px;padding:15px 17px;background:linear-gradient(100deg,var(--rose),var(--pink));color:#fff;display:flex;align-items:center;justify-content:space-between;font-weight:800;box-shadow:0 15px 34px rgba(212,84,125,.24)}.primary i{font-style:normal;font-size:20px}.form-status,#gameStatus{min-height:16px;color:var(--pink);font-size:11px;text-align:center}
.join-card{margin-top:12px;padding:16px 18px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.035)}.join-card>div:first-child{display:flex;flex-direction:column;gap:4px}.join-card b{font-size:12px}.join-card span{color:var(--muted);font-size:10px;line-height:1.5}.join-controls{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.join-controls button{height:42px;padding:0 15px;border:1px solid rgba(250,140,173,.35);border-radius:12px;background:rgba(250,140,173,.1);color:var(--ink);font-size:11px}.join-card .form-status{margin:7px 0 -7px}
.game-head{display:flex;justify-content:space-between;align-items:flex-end;margin:6px 0 18px}.game-head h1{font-size:30px}.head-actions{display:flex;gap:8px}.icon-btn,.text-btn{border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--ink);border-radius:12px;padding:9px 12px}.text-btn{font-size:10px;letter-spacing:.1em}.round-line{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;color:var(--muted);font-size:9px;letter-spacing:.08em}.round-line>div{height:3px;background:rgba(255,255,255,.08);border-radius:9px;overflow:hidden}.round-line i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--rose),var(--gold));transition:width .4s}
.players{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0}.player{position:relative;padding:14px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.045);overflow:hidden}.player.active{border-color:rgba(250,140,173,.55);background:rgba(250,140,173,.09)}.player-color{position:absolute;inset:0 auto 0 0;width:3px;background:var(--player)}.player-top{display:flex;justify-content:space-between;gap:6px;align-items:center}.player h3{margin:0;font-size:13px}.player .coin{color:var(--gold);font-size:12px}.player p{margin:7px 0 0;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.board-wrap{margin:12px -8px 18px;padding:8px}.board{position:relative;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);aspect-ratio:1;border-radius:27px;padding:2px;background:linear-gradient(145deg,#352440,#170f20);border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 70px rgba(0,0,0,.35)}.tile{position:relative;margin:2px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.045);display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.tile.special{background:rgba(250,140,173,.08)}.tile.owner{box-shadow:inset 0 0 0 1px var(--owner)}.tile .n{position:absolute;top:3px;left:4px;color:rgba(255,255,255,.34);font-size:6px}.tile .e{font-size:clamp(12px,4vw,20px)}.tile .markers{position:absolute;bottom:2px;display:flex;gap:1px}.marker{display:block;width:9px;height:9px;border:2px solid rgba(255,255,255,.85);border-radius:50%;background:var(--marker);box-shadow:0 2px 8px rgba(0,0,0,.4)}.board-center{grid-area:2/2/6/6;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.center-mark{width:54px;height:54px;border:1px solid rgba(250,140,173,.5);border-radius:50%;display:grid;place-items:center;color:var(--pink);font-family:Georgia,serif;font-size:28px;font-style:italic}.board-center p{font-size:9px;line-height:1.55;letter-spacing:.22em;color:var(--muted)}.board-center b{color:var(--ink)}.board-center small{font-size:7px;color:rgba(255,255,255,.35);letter-spacing:.1em}
.moment{padding:19px;border-radius:21px;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.035));border:1px solid var(--line)}.moment-top{display:flex;justify-content:space-between;align-items:center}.moment-top span{color:var(--pink);font-weight:800;font-size:9px;letter-spacing:.16em}.moment-top small{color:var(--muted);font-size:9px}.moment h2{font-family:"Noto Serif SC",Georgia,serif;font-weight:400;font-size:20px;margin:12px 0 8px}.moment>p{color:#e8dfe8;font-size:13px;line-height:1.8;margin:0;white-space:pre-line}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.tags span{padding:5px 8px;border-radius:99px;background:rgba(250,140,173,.1);color:#ffc1d4;font-size:8px}.context-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.context-actions button,.final-btn{border:1px solid rgba(250,140,173,.35);background:rgba(250,140,173,.09);color:var(--ink);padding:9px 11px;border-radius:11px;font-size:10px}.context-actions button.danger{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:var(--muted)}
.dice-panel{margin:13px 0}.roll-btn{display:flex;align-items:center;gap:13px;width:100%;padding:13px;border:0;border-radius:17px;background:var(--ink);color:#211525;text-align:left}.roll-btn:disabled{opacity:.5}.roll-btn .die{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:#291b31;color:var(--pink);font-size:29px;line-height:1}.roll-btn b{display:block;font-size:14px}.roll-btn small{display:block;color:#746977;font-size:9px;margin-top:3px}.final-btn{width:100%;margin-top:8px;background:rgba(242,198,109,.12);border-color:rgba(242,198,109,.4);color:var(--gold)}
.ai-sync-btn{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;width:100%;margin-top:8px;padding:11px 13px;border:1px solid rgba(250,140,173,.28);border-radius:15px;background:linear-gradient(110deg,rgba(212,84,125,.16),rgba(255,255,255,.035));color:var(--ink);text-align:left}.ai-sync-btn>span:first-child{width:33px;height:33px;display:grid;place-items:center;border-radius:10px;background:rgba(250,140,173,.12);color:var(--pink)}.ai-sync-btn b,.ai-sync-btn small{display:block}.ai-sync-btn b{font-size:11px}.ai-sync-btn small{margin-top:3px;color:var(--muted);font-size:8px}.ai-sync-btn i{color:var(--pink);font-style:normal}.ai-sync-btn:disabled{opacity:.55}
.identity-panel{border-top:1px solid var(--line);margin-top:20px}.identity-panel button{width:100%;display:flex;justify-content:space-between;padding:16px 0;border:0;background:transparent;color:var(--muted);font-size:10px;letter-spacing:.1em}.identity-panel pre{display:none;white-space:pre-wrap;font-family:inherit;color:var(--muted);font-size:10px;line-height:1.7;margin:0 0 12px}.identity-panel.open pre{display:block}.identity-panel.open button span{transform:rotate(45deg)}footer{text-align:center;color:rgba(255,255,255,.28);font-size:8px;margin-top:24px}
@media(max-width:390px){.app{padding-left:12px;padding-right:12px}.setup-card{padding:17px}.players-form{gap:9px}.tile{margin:1px;border-radius:7px}.tile .e{font-size:12px}.board{border-radius:22px}.hero-dice{opacity:.55}.hero h1{max-width:310px}}
@media(min-width:700px){.app{padding-top:108px}.board-wrap{width:600px;margin-left:auto;margin-right:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
