@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800&family=Roboto+Condensed:wght@500;700&display=swap");

:root { color-scheme: dark; --gold:#d39b3d; --cream:#f2d895; --ink:#100b10; --panel:#2d1e31; --green:#45d58a; }
* { box-sizing:border-box; }
html, body { min-height:100%; margin:0; }
body { background:radial-gradient(circle at 50% 15%, #382638 0, #151016 38%, #080608 78%); color:#f4dfaa; font-family:"Roboto Condensed",sans-serif; }
button, input { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
.online-loading { display:grid; min-height:100vh; place-items:center; letter-spacing:.12em; }
.online-shell { min-height:100vh; padding:26px 18px 50px; }
.online-title { text-align:center; font-family:Cinzel,serif; text-shadow:0 4px 16px #000; margin-bottom:18px; }
.online-title span { display:block; color:#e9c66e; font-size:clamp(18px,2vw,25px); letter-spacing:.55em; padding-left:.55em; }
.online-title b { display:block; color:#f0d48b; font-size:clamp(42px,6vw,76px); line-height:.9; letter-spacing:.08em; }
.online-title small { display:block; margin-top:10px; color:#a88c5b; letter-spacing:.2em; font-size:10px; }
.online-card { width:min(820px,calc(100vw - 28px)); margin:0 auto; padding:30px; position:relative; border:2px solid var(--gold); border-radius:20px; background:linear-gradient(145deg,rgba(55,36,59,.98),rgba(30,20,34,.98)); box-shadow:0 22px 70px #000b,inset 0 0 0 3px #100c12,inset 0 0 0 4px #805a2c; }
.online-card::before, .online-card::after { content:"★"; position:absolute; top:14px; color:#d6a64f; }
.online-card::before { left:16px; } .online-card::after { right:16px; }
.online-card > small { display:block; text-align:center; color:#d9b86d; letter-spacing:.18em; font-weight:700; }
.online-card h1 { margin:5px 0 8px; text-align:center; font:800 clamp(30px,5vw,48px)/1 Cinzel,serif; color:#f7dda0; }
.online-card > p { max-width:610px; margin:12px auto 24px; text-align:center; color:#c8b38e; line-height:1.45; }
.online-back { position:absolute; left:30px; top:29px; color:#d8b66a; text-decoration:none; font-weight:700; letter-spacing:.08em; }
.online-entry-grid { display:grid; grid-template-columns:1fr 58px 1fr; gap:18px; align-items:stretch; margin-top:30px; }
.online-entry-grid form { padding:22px; border:1px solid #7d6139; border-radius:14px; background:#140f16b8; }
.online-entry-grid h2 { margin:0 0 18px; text-align:center; font:700 18px Cinzel,serif; color:#e6c578; }
.online-entry-grid label { display:block; margin:11px 0; color:#bda77a; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.online-entry-grid input { display:block; width:100%; height:46px; margin-top:6px; padding:0 13px; border:1px solid #987139; border-radius:8px; background:#09070a; color:#f8e6b5; outline:none; font-size:18px; }
.online-entry-grid input:focus { border-color:#e8b951; box-shadow:0 0 0 2px #e8b95133; }
.entry-divider { display:grid; place-items:center; position:relative; color:#8f744c; font-size:11px; font-weight:700; }
.entry-divider::before { content:""; position:absolute; top:0; bottom:0; width:1px; background:#7a5b34; }
.entry-divider span { position:relative; padding:8px 0; background:#2c1d30; writing-mode:vertical-rl; }
.online-primary { display:flex; justify-content:center; align-items:center; width:100%; min-height:50px; margin-top:18px; border:1px solid #f1c266; border-radius:10px; background:linear-gradient(#d9a54b,#a86820); color:#1b1219; text-decoration:none; font-weight:900; letter-spacing:.08em; cursor:pointer; box-shadow:inset 0 1px #ffe1a2,0 5px 16px #0007; }
.online-primary:disabled { opacity:.38; cursor:not-allowed; }
.online-error { margin:18px auto 0; padding:10px 14px; max-width:610px; border:1px solid #bd5b55; border-radius:8px; color:#ffd2c8; background:#5e252866; text-align:center; }
.room-code { display:flex; width:min(480px,100%); margin:25px auto 5px; align-items:center; border:1px solid #9f763c; border-radius:12px; background:#0c090d; overflow:hidden; }
.room-code span { padding:0 14px; color:#9e8458; font-size:11px; font-weight:700; }
.room-code b { flex:1; padding:11px; text-align:center; color:#f6d98d; font:800 29px Cinzel,serif; letter-spacing:.18em; }
.room-code button { align-self:stretch; padding:0 16px; border:0; border-left:1px solid #6d512f; color:#e4bd6a; background:#241827; font-weight:700; cursor:pointer; }
.share-copy { margin-top:5px!important; margin-bottom:18px!important; font-size:13px; }
.seat-list { display:grid; gap:8px; }
.online-seat { --seat-color:#777; display:grid; grid-template-columns:8px 1fr auto auto; gap:13px; min-height:68px; align-items:center; padding:9px 12px; border:1px solid #735a37; border-radius:10px; background:#130f15; }
.online-seat:nth-child(1) { --seat-color:#31d889; }.online-seat:nth-child(2) { --seat-color:#f05d62; }.online-seat:nth-child(3) { --seat-color:#579cff; }.online-seat:nth-child(4) { --seat-color:#efb84d; }
.online-seat.own { box-shadow:inset 0 0 0 1px var(--seat-color); }
.online-seat > i { width:6px; height:42px; border-radius:5px; background:var(--seat-color); box-shadow:0 0 12px color-mix(in srgb,var(--seat-color) 55%,transparent); }
.online-seat span small, .online-seat span b { display:block; }.online-seat span small { color:#9d865b; font-size:10px; letter-spacing:.11em; }.online-seat span b { color:#f0d9a4; font:700 20px Cinzel,serif; }
.online-seat > em { color:#b69b69; font-style:normal; font-size:11px; font-weight:700; letter-spacing:.08em; text-align:right; }
.online-seat > em u { display:block; margin-top:4px; text-decoration:none; font-size:9px; }.online-seat > em u.connected { color:#60d99b; }.online-seat > em u.away { color:#8c7760; }
.seat-toggle { min-width:118px; height:36px; border:1px solid #9c733b; border-radius:7px; background:#312233; color:#e5bf70; font-size:11px; font-weight:700; cursor:pointer; }
.room-card > .online-primary { width:min(480px,100%); margin:20px auto 0; }
.room-hint { margin:8px auto 0!important; font-size:12px; }
.waiting-host { display:grid; grid-template-columns:20px 1fr; width:min(520px,100%); margin:18px auto 0; padding:14px 18px; border:1px solid #6f5736; border-radius:10px; background:#110d12; }
.waiting-host i { grid-row:1/3; width:12px; height:12px; margin-top:4px; border-radius:50%; background:#d6a34c; box-shadow:0 0 0 0 #d6a34c88; animation:pulse 1.5s infinite; }
.waiting-host b { color:#e2be70; font-size:13px; letter-spacing:.08em; }.waiting-host span { color:#a89471; font-size:12px; margin-top:4px; }
@keyframes pulse { 70% { box-shadow:0 0 0 9px transparent; } 100% { box-shadow:0 0 0 0 transparent; } }
@media (max-width:700px) { .online-card { padding:52px 18px 22px; }.online-back { top:20px; left:20px; }.online-entry-grid { grid-template-columns:1fr; }.entry-divider { height:28px; }.entry-divider::before { left:0; right:0; top:50%; bottom:auto; width:auto; height:1px; }.entry-divider span { writing-mode:initial; padding:0 8px; }.online-seat { grid-template-columns:7px 1fr auto; }.seat-toggle { grid-column:2/4; width:100%; }.room-code span { display:none; } }
