:root{--content-width:760px;--bg-top:#d7e1ef;--bg-bottom:#bbc7d8;--surface:#f7f3f880;--surface-strong:#fcfaffb8;--surface-glow:#ffffff73;--ink:#2b3042;--muted:#667089;--line:#ffffff5c;--shadow:0 24px 70px #48547429;--shadow-soft:0 14px 36px #545e801f;--blue:#6f95ff;--blue-strong:#4f72dc;--red:#ff6b8e;--red-strong:#dd486b;--gold:#f4c85c}*{box-sizing:border-box}html,body{width:100%;min-height:100%;color:var(--ink);background:radial-gradient(circle at 12% 16%, #ffffff80, transparent 12%), radial-gradient(circle at 82% 18%, #8fb5ff47, transparent 11%), radial-gradient(circle at 16% 78%, #ff729729, transparent 18%), radial-gradient(circle at 86% 72%, #ffd9772e, transparent 18%), linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 100%);margin:0;font-family:Avenir Next,Segoe UI,sans-serif}body{position:relative;overflow-x:hidden}button,input,select,label{font-family:inherit}button{color:var(--ink);background:linear-gradient(#ffffffb8,#e5ebf7d1);border:1px solid #ffffff57;border-radius:999px;padding:.8rem 1.25rem;font-size:.95rem;font-weight:700;transition:transform .14s,box-shadow .14s,background .14s,border-color .14s;box-shadow:0 12px 28px #545e801f}button:hover{cursor:pointer;background:linear-gradient(#ffffffe0,#eef2fbeb);border-color:#ffffff85;transform:translateY(-1px);box-shadow:0 16px 34px #545e8029}button:active{transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.48;transform:none;box-shadow:0 10px 20px #545e8014}input,select{color:var(--ink);background:#ffffffb8;border:1px solid #8c9ab947;border-radius:16px;padding:.8rem .95rem;box-shadow:inset 0 1px #fff9}input:focus,select:focus{border-color:#6f95ff80;outline:2px solid #6f95ff33}h1,h2,p{margin:0}h2{color:var(--ink);font-size:1rem}p{color:var(--muted);line-height:1.6}.page-ornaments{pointer-events:none;position:fixed;inset:0;overflow:hidden}.ornament,.spark{filter:blur(.2px);opacity:.82;border-radius:999px;animation:10s ease-in-out infinite drift;position:absolute}.ornament{width:18px;height:8px}.ornament-red{background:linear-gradient(#ffa1b2e6,#de4a6ecc)}.ornament-blue{background:linear-gradient(#b0cdfff5,#577fdfd1)}.ornament-gold{background:linear-gradient(#ffe79af5,#edbc39d1)}.ornament-a{top:21%;left:17%;transform:rotate(52deg)}.ornament-b{top:53%;right:18%;transform:rotate(-36deg)}.ornament-c{top:68%;left:24%;transform:rotate(24deg)}.spark{background:#ffffffb8;width:10px;height:10px;box-shadow:0 0 0 3px #fff3,0 0 22px #ffffff8c}.spark-a{top:18%;left:15%}.spark-b{animation-delay:-3s;top:24%;right:18%}.spark-c{animation-delay:-6s;top:74%;right:24%}.header{text-align:center;padding:1.4rem 1rem .35rem}.header-title,.dialog-title{box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);letter-spacing:-.04em;background:#f5f2f975;border:1px solid #ffffff59;border-radius:999px;align-items:center;gap:.65rem;padding:.72rem 1.25rem;font-size:1.65rem;font-weight:700;display:inline-flex}.dialog-title{margin-bottom:1.25rem;font-size:1.5rem}.header-subtitle{color:#2b3042b8;width:min(100%,36rem);margin:.9rem auto 0;font-size:1rem;line-height:1.65}.page-shell{z-index:1;width:min(100%, calc(var(--content-width) + 2rem));margin:0 auto;padding:0 1rem 1.25rem;position:relative}.page-footer{z-index:1;width:min(100%, calc(var(--content-width) + 2rem));text-align:center;margin:.95rem auto 0;padding:0 1rem 1.8rem;position:relative}.page-footer-text{color:#2b3042a8;letter-spacing:.01em;font-size:.9rem}.page-footer-text a{color:#2b3042e6;border-bottom:1px solid #2b30422e;font-weight:700;text-decoration:none;transition:color .14s,border-bottom-color .14s}.page-footer-text a:hover{color:#2b3042;border-bottom-color:#2b30427a}.section-board{text-align:center;margin:1rem auto 0}.board-frame{width:auto;max-width:100%;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#ffffff2e,#ffffff0f);border:1px solid #ffffff47;border-radius:34px;margin:0;padding:.9rem;display:inline-block;position:relative}.board-frame:before{content:"";opacity:.72;background:linear-gradient(135deg,#ffffff42,#ffffff08);border-radius:28px;position:absolute;inset:10px}.section-message{min-height:.25rem}.section-canvas{z-index:1;background:0 0;border-radius:28px;width:auto;max-width:100%;margin:0 auto;display:block;position:relative}.board-fireworks{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.board-fireworks.is-active{opacity:1}.firework-shell{background:hsl(var(--firework-hue) 85% 72%);width:12px;height:12px;box-shadow:0 0 18px hsl(var(--firework-hue) 85% 72%);border-radius:999px;margin-left:-6px;animation:.72s ease-out forwards firework-rise;position:absolute;bottom:8%}.firework-burst{width:0;height:0;position:absolute;top:26%}.firework-particle{background:linear-gradient(180deg, hsl(var(--firework-hue) 100% 88% / .98), hsl(var(--firework-hue) 100% 68% / 0));width:8px;height:18px;transform:rotate(var(--particle-angle)) translateY(0);transform-origin:50% 4px;opacity:0;animation:.78s ease-out forwards firework-burst;animation-delay:var(--particle-delay);border-radius:999px;margin-left:-4px;position:absolute;top:0;left:0}.init-screen,.message-body,.statusbox{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:linear-gradient(#faf6fbb8,#ebf0f89e);border:1px solid #ffffff57;border-radius:30px}.init-screen,.message-body{width:min(92vw,36rem);color:var(--ink);padding:1.3rem 1.35rem 1.4rem}.init-screen::backdrop,.message-body::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#707e9b2e}.game-settings-form{grid-template-columns:1.35fr 1.9fr;gap:.9rem 1rem;margin-top:1rem;display:grid}.game-settings-form-section{background:#ffffff6b;border:1px solid #fff6;border-radius:22px;grid-column:1/span 2;padding:1rem 1.1rem}.form-section-title{color:var(--ink);margin-bottom:.8rem;font-weight:700;display:block}.game-settings-mode-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.game-settings-mode-option{background:#ffffff85;border-radius:18px;align-items:center;gap:.65rem;padding:.85rem .95rem;display:flex}.game-settings-mode-input{accent-color:var(--blue-strong)}.game-settings-submit{justify-self:start;margin-top:.25rem}.statusbox{width:min(100%, var(--content-width));margin:1.15rem auto 0;padding:1rem 1.15rem 1.1rem}.statusbox-body{text-align:center;gap:.75rem;display:grid}.statusbox-body-game{color:var(--ink);font-size:1rem;font-weight:600}.statusbox-body-player{color:var(--muted);background:#fff6;border-radius:999px;justify-self:center;padding:.45rem .85rem;font-weight:700}.scoreboard{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1rem;display:grid}.scorecard{text-align:center;background:#ffffff57;border:1px solid #ffffff6b;border-radius:22px;padding:.9rem 1rem;box-shadow:inset 0 1px #ffffff59}.scorecard-player-1{background:linear-gradient(#ff709126,#ffffff38)}.scorecard-player-2{background:linear-gradient(#6f95ff29,#ffffff38)}.scorecard-label{color:var(--muted);margin-bottom:.45rem;font-size:.88rem;display:block}.scorecard-value{letter-spacing:-.04em;color:var(--ink);font-size:1.45rem;font-weight:800}.statusbox-controls{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1rem;display:flex}.statusbox-button{min-width:9.4rem}.message-form{gap:1rem;display:grid}.message-body-content h1{margin-bottom:.6rem;font-size:1.35rem}.message-body-content p{margin-top:.4rem}.hidden{display:none!important}@keyframes drift{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translate(8px,-12px)rotate(12deg)}}@keyframes firework-rise{0%{opacity:0;transform:translateY(120px)scale(.6)}18%{opacity:1}to{opacity:0;transform:translateY(-250px)scale(1)}}@keyframes firework-burst{0%{opacity:0;transform:rotate(var(--particle-angle)) translateY(0) scaleY(.4)}22%{opacity:1}to{opacity:0;transform:rotate(var(--particle-angle)) translateY(-92px) scaleY(1.1)}}@media (width<=720px){.header{padding-top:1.1rem}.header-title,.dialog-title{font-size:1.28rem}.page-shell{padding-inline:.7rem}.board-frame{border-radius:24px;padding:.55rem}.game-settings-form{grid-template-columns:1fr}.game-settings-form-section{grid-column:auto}.scoreboard{grid-template-columns:1fr}.statusbox{padding:.95rem}}
