:root{--night-950:#05060f;--night-900:#0a0c22;--night-850:#0e1130;--night-800:#141840;--night-700:#1d2257;--night-600:#2a3072;--gold-200:#f8e8b8;--gold-300:#f1d68f;--gold-400:#e4bd66;--gold-500:#c79d48;--gold-600:#9a7633;--ink:#efe9da;--ink-soft:#c8c2d9;--ink-muted:#8e89aa;--ink-faint:#5d5980;--line:rgb(var(--accent-rgb) / .22);--line-strong:rgb(var(--accent-rgb) / .5);--glass:rgb(var(--shade-rgb) / .62);--glass-strong:rgb(var(--shade-rgb) / .86);--accent-rgb:228 189 102;--accent-soft-rgb:241 214 143;--accent-deep-rgb:199 157 72;--shade-deep-rgb:5 6 20;--shade-rgb:12 14 40;--shade-raised-rgb:26 30 76;--ink-rgb:255 255 255;--highlight-rgb:255 240 200;--shadow-rgb:0 0 0;--shadow-k:1;--on-accent:#1a1206;--on-token:#10122e;--sky-bg:radial-gradient(ellipse 80% 55% at 85% 8%, #583ea852, transparent 60%), radial-gradient(ellipse 70% 60% at 8% 92%, #1e6c9638, transparent 62%), radial-gradient(ellipse 60% 40% at 50% 50%, #281e6440, transparent 70%), linear-gradient(180deg, var(--night-900), var(--night-950) 70%);--altar-glow:#6c52c859;--clue-color:var(--gold-200);--clue-glow:rgb(var(--accent-rgb) / .45);--clue-halo:#fff5dc80;--gold-text:linear-gradient(180deg, var(--gold-200), var(--gold-400) 55%, var(--gold-600));--art-1:#f8e8b8;--art-2:#e4bd66;--art-3:#9a7633;--iris-1:#fff6d8;--iris-3:#7a5a22;--pupil:#0a0c22;--card-back-1:#2a2f78;--card-back-2:#141840;--card-back-3:#070818;--danger:#ff8f7a;--ok:#7fe0b5;--font-display:"Cormorant Garamond", "Iowan Old Style", Georgia, serif;--font-label:"Cinzel", "Trajan Pro", Georgia, serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-sm:10px;--radius:16px;--radius-lg:24px;--card-ratio:.658;--ease-out:cubic-bezier(.22, 1, .36, 1);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--night-950);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-size:15px;line-height:1.5;overflow:hidden}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;max-width:100%;display:block}:focus-visible{outline:2px solid var(--gold-300);outline-offset:3px}::selection{background:rgb(var(--accent-rgb) / .35)}.sky{z-index:0;pointer-events:none;background:var(--sky-bg);position:fixed;inset:0;overflow:hidden}.sky canvas{width:100%;height:100%;position:absolute;inset:0}.app{z-index:1;height:100%;position:relative}body,.sky{transition:background .6s}.theme-switch{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(10px);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.theme-switch button{min-height:34px;font-family:var(--font-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:11px;font-weight:600;transition:color .3s;display:inline-flex;position:relative}.theme-switch button>:not(.theme-pill){position:relative}.theme-switch button.is-on{color:var(--on-accent)}.theme-pill{border-radius:inherit;background:linear-gradient(120deg, var(--gold-200), var(--gold-400));position:absolute;inset:0}.settings-float{top:calc(14px + var(--safe-top));z-index:20;position:fixed;right:16px}.settings{flex-direction:column;gap:22px;display:flex}.settings .label{margin:0 0 10px;display:block}.lang-list{flex-direction:column;gap:6px;display:flex}.lang-option{border-radius:var(--radius-sm);border:1px solid var(--line);background:rgb(var(--shade-raised-rgb) / .5);min-height:48px;color:var(--ink);text-align:left;justify-content:space-between;align-items:center;padding:0 16px;transition:border-color .2s,background .2s;display:flex}.lang-option.is-on{border-color:var(--line-strong);background:rgb(var(--accent-rgb) / .14)}.lang-option svg{color:var(--gold-300)}.welcome-invited{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:rgb(var(--accent-rgb) / .12);color:var(--ink);margin:0 0 6px;padding:10px 14px;font-size:14px}.display{font-family:var(--font-display);font-variant-numeric:lining-nums;letter-spacing:.01em;font-weight:500;line-height:1.1}.label{font-family:var(--font-label);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-400);font-size:11px;font-weight:600}.muted{color:var(--ink-muted)}.gold-text{background:var(--gold-text);color:#0000;-webkit-background-clip:text;background-clip:text}.btn{border:1px solid var(--line-strong);background:rgb(var(--shade-raised-rgb) / .6);min-height:48px;color:var(--ink);font-family:var(--font-label);letter-spacing:.12em;text-transform:uppercase;transition:transform .2s var(--ease-out), box-shadow .3s, background .3s, opacity .2s;-webkit-backdrop-filter:blur(8px);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:13px;font-weight:600;display:inline-flex;position:relative}.btn:hover:not(:disabled){box-shadow:0 0 24px rgb(var(--accent-rgb) / .25)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{color:var(--on-accent);background:linear-gradient(180deg, var(--gold-200), var(--gold-400) 60%, var(--gold-500));box-shadow:0 0 0 1px rgb(var(--highlight-rgb) / .4) inset, 0 6px 26px rgb(var(--accent-rgb) / .28);border-color:#0000}.btn-primary:hover:not(:disabled){box-shadow:0 0 0 1px rgb(var(--highlight-rgb) / .5) inset, 0 8px 36px rgb(var(--accent-rgb) / .45)}.btn-ghost{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000}.btn-block{width:100%}.icon-btn{border:1px solid var(--line);background:rgb(var(--shade-rgb) / .55);width:44px;height:44px;color:var(--ink-soft);border-radius:50%;place-items:center;transition:background .2s,color .2s,transform .2s;display:inline-grid}.icon-btn:hover{color:var(--gold-300);background:rgb(var(--shade-raised-rgb) / .8)}.icon-btn:active{transform:scale(.94)}.panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--glass);-webkit-backdrop-filter:blur(14px);box-shadow:0 20px 60px rgb(var(--shadow-rgb) / calc(.35 * var(--shadow-k)))}.field{border-radius:var(--radius);border:1px solid var(--line);background:rgb(var(--shade-deep-rgb) / .55);width:100%;min-height:52px;color:var(--ink);outline:none;padding:14px 18px;transition:border-color .2s,box-shadow .2s}.field::placeholder{color:var(--ink-faint)}.field:focus{border-color:var(--gold-400);box-shadow:0 0 0 4px rgb(var(--accent-rgb) / .12)}textarea.field{resize:none;font-family:var(--font-display);font-size:22px;font-style:italic;line-height:1.3}.chip{border:1px solid var(--line);color:var(--ink-soft);background:rgb(var(--shade-rgb) / .6);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.card{--glow:var(--gold-400);aspect-ratio:var(--card-ratio);perspective:1200px;-webkit-user-select:none;user-select:none;border-radius:7%/4.6%;position:relative}.card-inner{transform-style:preserve-3d;border-radius:inherit;position:absolute;inset:0}.card-face{border-radius:inherit;backface-visibility:hidden;background:var(--night-800);box-shadow:0 0 0 1px rgb(var(--accent-soft-rgb) / .55), 0 0 0 3px rgb(var(--shade-rgb) / .9), 0 0 0 4px rgb(var(--accent-deep-rgb) / .45), 0 10px 28px rgb(var(--shadow-rgb) / calc(.55 * var(--shadow-k)));transition:box-shadow .35s var(--ease-out);position:absolute;inset:0;overflow:hidden}.card-back{transform:rotateY(180deg)}.card-back svg{width:100%;height:100%;display:block}.card-front img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .5s}.card-front img.is-loaded{opacity:1}.card-front:after{content:"";pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 18px rgb(var(--shade-deep-rgb) / .55);position:absolute;inset:0}.card-shimmer{background:linear-gradient(110deg, var(--night-800) 30%, var(--night-700) 50%, var(--night-800) 70%);background-size:250% 100%;animation:1.6s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{to{background-position:-250% 0}}.card.is-selected .card-face{box-shadow:0 0 0 1.5px var(--glow), 0 0 0 4px rgb(var(--shade-rgb) / .9), 0 0 0 5px var(--glow), 0 0 34px color-mix(in srgb, var(--glow) 60%, transparent), 0 16px 40px rgb(var(--shadow-rgb) / calc(.6 * var(--shadow-k)))}.card.is-dim{filter:saturate(.4)brightness(.55);transition:filter .5s}.card-tag{z-index:2;text-overflow:ellipsis;white-space:nowrap;max-width:92%;font-family:var(--font-label);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:rgb(var(--shade-deep-rgb) / .82);border:1px solid var(--line-strong);border-radius:999px;padding:3px 8px;font-size:9px;font-weight:600;position:absolute;bottom:6%;left:50%;overflow:hidden;transform:translate(-50%)}.card-tag.is-gold{color:var(--on-accent);background:linear-gradient(180deg, var(--gold-200), var(--gold-400));border-color:#0000}.screen-wrap{position:absolute;inset:0}.screen{height:100%;padding:calc(20px + var(--safe-top)) 16px calc(32px + var(--safe-bottom));overflow:hidden auto}.small{font-size:13px}.center{text-align:center}.welcome{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.welcome-mark{place-items:center;margin-bottom:8px;display:grid;position:relative}.welcome-halo{background:radial-gradient(circle, rgb(var(--accent-rgb) / .22), transparent 65%);filter:blur(6px);border-radius:50%;width:260px;height:260px;animation:6s ease-in-out infinite halo;position:absolute}@keyframes halo{50%{opacity:.7;transform:scale(1.12)}}.welcome-title{margin:0;padding-left:.14em;font-size:clamp(56px,16vw,92px);font-weight:600}.welcome-tag{font-family:var(--font-display);color:var(--ink-soft);margin:0 0 28px;font-size:20px;font-style:italic}.welcome-form{flex-direction:column;gap:12px;width:min(100%,360px);display:flex}.welcome-input{text-align:center;font-family:var(--font-display);font-size:24px}.home{flex-direction:column;gap:24px;max-width:640px;margin:0 auto;display:flex}.home-head{align-items:center;gap:12px;display:flex}.home-hello{margin:0;font-size:30px}.home-rename{min-height:40px;color:var(--ink-muted);margin-left:auto;padding:0 12px;font-size:11px}.home-options{flex-direction:column;gap:16px;display:flex}.home-option{text-align:left;color:var(--ink);transition:transform .3s var(--ease-out), border-color .3s;grid-template-columns:96px 1fr auto;align-items:center;gap:18px;padding:18px;display:grid}.home-option:hover{border-color:var(--line-strong);transform:translateY(-3px)}.home-option h2{margin:0 0 4px;font-size:26px}.home-option p{margin:0;font-size:14px}.home-option>svg{color:var(--gold-400)}.home-option-art{height:112px;position:relative}.home-art-card{width:60px;transition:transform .5s var(--ease-out);position:absolute;top:12px;left:18px}.home-art-card.is-a{transform:rotate(-14deg)translate(-14px)}.home-art-card.is-b{transform:rotate(10deg)translate(14px)}.home-art-card.is-c{transform:translateY(-6px)}.home-option:hover .is-a{transform:rotate(-20deg)translate(-20px)}.home-option:hover .is-b{transform:rotate(16deg)translate(20px)}.home-option-art.is-seal{border:1px solid var(--line-strong);background:radial-gradient(circle, rgb(var(--accent-rgb) / .18), transparent 70%);border-radius:50%;place-items:center;width:96px;height:96px;display:grid}.seal-glyph{color:var(--gold-300);font-size:44px;animation:18s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.home-form{flex-direction:column;gap:22px;padding:20px;display:flex}.form-head{align-items:center;gap:12px;display:flex}.form-head h2{margin:0;font-size:26px}.form-row-between{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.deck-grid{grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:14px 10px;display:grid}.deck{background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;padding:0;display:flex;position:relative}.deck-cover{width:100%;transition:transform .3s var(--ease-out), filter .3s}.deck:not(.is-on) .deck-cover{filter:saturate(.3)brightness(.55)}.deck:hover .deck-cover{transform:translateY(-3px)}.deck-name{color:var(--ink-soft);font-size:12px}.deck.is-on .deck-name{color:var(--gold-300)}.deck-check{width:22px;height:22px;color:var(--on-accent);background:var(--gold-300);box-shadow:0 0 12px rgb(var(--accent-soft-rgb) / .6);border-radius:50%;place-items:center;display:grid;position:absolute;top:-6px;right:-4px}.form-steppers{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.stepper{border-radius:var(--radius);border:1px solid var(--line);background:rgb(var(--shade-deep-rgb) / .35);flex-direction:column;align-items:center;gap:8px;padding:14px 8px;display:flex}.stepper-row{align-items:center;gap:4px;display:flex}.stepper-row .icon-btn{width:36px;height:36px}.stepper-row .icon-btn:disabled{opacity:.3}.stepper-value{white-space:nowrap;text-align:center;min-width:50px;font-size:32px;font-weight:600}.stepper-value small{color:var(--ink-muted);font-size:11px;font-family:var(--font-body);margin-top:-4px;display:block}.seal-input{display:block;position:relative}.seal-input input{opacity:0;width:100%;font-size:16px;position:absolute;inset:0}.seal-slots{grid-template-columns:repeat(8,1fr);gap:6px;display:grid}.seal-slot{aspect-ratio:.78;border:1px solid var(--line);background:rgb(var(--shade-deep-rgb) / .5);font-family:var(--font-label);color:var(--gold-200);border-radius:10px;place-items:center;font-size:clamp(18px,5vw,26px);transition:border-color .2s,box-shadow .2s;display:grid}.seal-slot:nth-child(4){margin-right:6px}.seal-slot.is-filled{border-color:var(--line-strong);box-shadow:0 0 16px rgb(var(--accent-rgb) / .18) inset}.seal-input:focus-within .seal-slot.is-caret{border-color:var(--gold-300);animation:1.1s ease-in-out infinite caret}@keyframes caret{50%{box-shadow:0 0 0 3px rgb(var(--accent-soft-rgb) / .2)}}.home-option:disabled{opacity:.45;cursor:not-allowed;transform:none}.home-offline{color:var(--ink-soft);align-items:flex-start;gap:10px;margin:0;padding:14px 16px;font-size:14px;display:flex}.home-offline svg{color:var(--gold-300);flex:none;margin-top:2px}.home-demo{cursor:pointer;align-self:center}.recent ul{flex-direction:column;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.recent-item{border-radius:var(--radius);text-align:left;width:100%;color:var(--ink);grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.recent-item>svg{color:var(--gold-400)}.recent-avatars{display:flex}.recent-avatars .avatar+.avatar{margin-left:-8px}.recent-text{flex-direction:column;min-width:0;display:flex}.recent-code{letter-spacing:.1em;color:var(--gold-200);align-items:center;gap:8px;font-size:20px;display:flex}.boot{place-items:center;display:grid}.conn-pill{top:calc(10px + var(--safe-top));z-index:55;border:1px solid var(--line-strong);background:var(--glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 32px);margin-inline:auto;padding:8px 14px;font-size:13px;display:flex;position:fixed;left:0;right:0}.lobby{flex-direction:column;align-items:center;gap:18px;display:flex}.lobby-head{align-self:stretch;align-items:center;gap:12px;width:100%;max-width:640px;margin:0 auto;display:flex}.lobby-settings{margin-left:auto}.lobby-head h1{margin:0;font-size:28px}.constellation{width:min(100%,460px);margin:8px auto 0;position:relative}.constellation-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.star-slot{position:absolute;transform:translate(-50%,-50%)}.star-player{flex-direction:column;align-items:center;gap:4px;display:flex;position:relative}.star-flare{opacity:.18;filter:blur(18px);pointer-events:none;border-radius:50%;width:90px;height:90px;position:absolute;top:23px;left:50%;transform:translate(-50%,-50%)}.star-name{white-space:nowrap;color:var(--ink);text-shadow:0 1px 8px rgb(var(--shadow-rgb) / calc(.8 * var(--shadow-k)));font-size:13px}.star-name em{color:var(--ink-muted);font-style:normal}.star-host{color:var(--gold-300);position:absolute;top:-10px}.star-kick{border:1px solid var(--line);background:var(--night-850);width:22px;height:22px;color:var(--ink-muted);opacity:.85;border-radius:50%;place-items:center;display:grid;position:absolute;top:-4px;right:-8px}.star-kick:hover{color:var(--danger)}.star-empty{border:1px dashed rgb(var(--accent-soft-rgb) / .5);border-radius:50%;width:10px;height:10px;display:block}.constellation-center{pointer-events:none;opacity:.85;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.seal-panel{border-radius:var(--radius);justify-content:space-between;align-items:center;gap:10px;width:min(100%,460px);padding:12px 12px 12px 18px;display:flex}.seal-panel .label{margin:0}.seal-code{white-space:nowrap;letter-spacing:.12em;color:var(--gold-200);text-shadow:0 0 24px rgb(var(--accent-rgb) / .5);background:0 0;border:0;padding:0;font-size:clamp(24px,7vw,36px);font-weight:600}.seal-code span{color:var(--gold-500);margin:0 .15em}.seal-share{flex:none;min-height:42px;padding:0 14px;font-size:11px}.lobby-config{flex-wrap:wrap;justify-content:center;gap:8px;max-width:520px;display:flex}.lobby-foot{flex-direction:column;gap:10px;width:min(100%,420px);margin-top:auto;display:flex}.lobby-wait{color:var(--ink-soft);font-family:var(--font-display);justify-content:center;align-items:center;gap:10px;font-size:19px;font-style:italic;display:flex}.dot-pulse{background:var(--gold-300);width:8px;height:8px;box-shadow:0 0 12px var(--gold-300);border-radius:50%;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3;transform:scale(.7)}}.avatar{--c:var(--gold-300);font-family:var(--font-display);color:var(--c);background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--c) 35%, var(--night-800)), var(--night-900) 75%);box-shadow:0 0 0 1.5px color-mix(in srgb, var(--c) 70%, transparent), 0 0 18px color-mix(in srgb, var(--c) 30%, transparent);border-radius:50%;flex:none;place-items:center;font-weight:600;display:inline-grid}.avatar.is-active{box-shadow:0 0 0 2px var(--gold-300), 0 0 0 5px rgb(var(--shade-rgb) / .9), 0 0 0 6px color-mix(in srgb, var(--gold-300) 50%, transparent), 0 0 24px rgb(var(--accent-soft-rgb) / .5)}.closed{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.closed h1{margin:0;font-size:36px}.toast-wrap{top:calc(12px + var(--safe-top));z-index:60;pointer-events:none;justify-content:center;padding:0 16px;display:flex;position:fixed;left:0;right:0}.toast{border:1px solid var(--line-strong);background:var(--glass-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);box-shadow:0 10px 30px rgb(var(--shadow-rgb) / calc(.5 * var(--shadow-k)));border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;display:flex}.toast svg{color:var(--gold-300)}.sheet-backdrop{z-index:50;background:rgb(var(--shade-deep-rgb) / .6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--glass-strong);width:100%;max-width:520px;max-height:86dvh;padding-bottom:var(--safe-bottom);flex-direction:column;display:flex}.sheet-head{justify-content:space-between;align-items:center;padding:16px 16px 8px 20px;display:flex}.sheet-head h2{margin:0;font-size:26px}.sheet-body{padding:8px 20px 24px;overflow-y:auto}@media (width>=720px){.sheet-backdrop{align-items:center}.sheet{border-radius:var(--radius-lg)}}.viewer{z-index:40;background:rgb(var(--shade-deep-rgb) / .82);-webkit-backdrop-filter:blur(10px);padding:calc(12px + var(--safe-top)) 16px calc(20px + var(--safe-bottom));flex-direction:column;display:flex;position:fixed;inset:0}.viewer-top{justify-content:space-between;align-items:center;width:100%;max-width:560px;margin:0 auto;display:flex}.viewer-stage{flex:1;justify-content:center;align-items:center;gap:16px;min-height:0;display:flex;position:relative}.viewer-card{max-width:82vw;height:min(100%,640px);aspect-ratio:var(--card-ratio);touch-action:none;cursor:grab;align-items:center;display:flex}.viewer-card .card{width:100%}.viewer-nav{flex:none}@media (width<=600px){.viewer-nav{z-index:2;background:rgb(var(--shade-deep-rgb) / .6);width:38px;height:38px;position:absolute}.viewer-nav.is-prev{left:-6px}.viewer-nav.is-next{right:-6px}}.viewer-bottom{flex-direction:column;align-items:center;gap:12px;width:min(100%,420px);min-height:70px;margin:12px auto 0;display:flex}.viewer-caption{text-align:center;font-family:var(--font-display);color:var(--gold-200);text-shadow:0 0 14px rgb(var(--accent-rgb) / .4);margin:0;font-size:20px;font-style:italic;line-height:1.2}.viewer-dots{gap:6px;display:flex}.viewer-dots span{background:var(--ink-faint);border-radius:50%;width:6px;height:6px;transition:background .3s,transform .3s}.viewer-dots span.is-on{background:var(--gold-300);transform:scale(1.4)}.btn-danger{color:var(--danger);border-color:#ff8f7a59}.game{--hand-w:clamp(66px, 19vw, 108px);--table-w:150px;height:100%;padding-top:var(--safe-top);grid-template:"top""rail""stage"minmax(0,1fr)"dock"/minmax(0,1fr);display:grid}@media (width>=960px){.game{--hand-w:124px;grid-template:"top top""rail stage"minmax(0,1fr)"rail dock"/290px minmax(0,1fr)}}.topbar{grid-area:top;justify-content:space-between;align-items:center;padding:10px 16px 6px;display:flex}.topbar-left{flex-direction:column;display:flex}.topbar-round{color:var(--ink-muted);font-size:12px}.topbar-actions{gap:8px;display:flex}.stage{scrollbar-width:thin;grid-area:stage;min-height:0;padding:8px 16px 16px;overflow:hidden auto}.stage-inner{flex-direction:column;min-height:100%;display:flex}.stage-center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;width:100%;max-width:760px;margin:0 auto;display:flex}.stage-title{margin:0;font-size:clamp(28px,7vw,40px);font-weight:600}.stage-copy{max-width:420px;margin:0}.stage-lede{font-family:var(--font-display);color:var(--ink-soft);margin:0;font-size:19px;font-style:italic}.stage-status{color:var(--ink-muted);justify-content:center;align-items:center;gap:8px;margin:4px 0 0;font-size:13px;display:flex}.stage-arrow{color:var(--gold-400);margin-top:8px}.waiting-eye{place-items:center;margin-bottom:6px;display:grid;position:relative}.waiting-eye:before{content:"";background:radial-gradient(circle, rgb(var(--accent-rgb) / .2), transparent 65%);border-radius:50%;width:220px;height:220px;animation:5s ease-in-out infinite halo;position:absolute}.rail{grid-area:rail;min-width:0;padding:2px 0 6px}.rail-title{display:none}.rail-list{scrollbar-width:none;gap:6px;margin:0;padding:4px 16px 6px;list-style:none;display:flex;overflow-x:auto}.rail-list::-webkit-scrollbar{display:none}.rail-player{border-radius:14px;flex-direction:column;flex:none;align-items:center;gap:2px;width:64px;padding:6px 2px 4px;display:flex;position:relative}.rail-player.is-me{background:rgb(var(--accent-rgb) / .06)}.rail-avatar{position:relative}.rail-eye{width:20px;height:20px;color:var(--on-accent);background:var(--gold-300);box-shadow:0 0 10px rgb(var(--accent-soft-rgb) / .7);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-4px;right:-6px}.rail-gain{box-shadow:0 0 12px rgb(var(--accent-soft-rgb) / .6);color:var(--on-accent);background:var(--gold-300);white-space:nowrap;border-radius:999px;padding:0 6px;font-size:11px;font-weight:600;position:absolute;bottom:-6px;left:-8px}.rail-info{flex-direction:column;align-items:center;min-width:0;max-width:100%;display:flex}.rail-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--ink);align-items:center;gap:3px;font-size:12px;display:flex;overflow:hidden}.rail-host{color:var(--gold-400);display:inline-flex}.rail-status{color:var(--ink-faint);white-space:nowrap;align-items:center;gap:3px;font-size:10px;display:flex}.rail-status.is-done{color:var(--ok)}.rail-status.is-busy{color:var(--ink-muted);animation:2s ease-in-out infinite pulse-text}@keyframes pulse-text{50%{opacity:.45}}.rail-score{min-width:20px;color:var(--gold-200);background:rgb(var(--shade-deep-rgb) / .85);border:1px solid var(--line);text-align:center;border-radius:999px;padding:0 5px;font-size:11px;font-weight:600;position:absolute;top:2px;right:4px}@media (width>=960px){.rail{border-right:1px solid rgb(var(--accent-rgb) / .1);padding:16px 0 16px 16px;overflow-y:auto}.rail-title{margin:0 0 10px 8px;display:block}.rail-list{flex-direction:column;padding:0 12px 0 0;overflow:visible}.rail-player{flex-direction:row;gap:12px;width:auto;padding:10px 12px}.rail-info{flex:1;align-items:flex-start}.rail-name{font-size:14px}.rail-status{font-size:12px}.rail-score{font-family:var(--font-display);background:0 0;border:0;font-size:22px;position:static}}.dock{padding-top:26px;padding-bottom:var(--safe-bottom);background:linear-gradient(180deg, transparent, rgb(var(--shade-deep-rgb) / .7) 40%);pointer-events:none;grid-area:dock;margin-top:-26px;position:relative;overflow:hidden}.dock>*{pointer-events:auto}.hand{transition:margin .5s var(--ease-out);position:relative}.hand-hint{text-align:center;font-family:var(--font-display);color:var(--gold-300);margin:0 0 2px;font-size:16px;font-style:italic}.hand-fan{transition:margin .5s var(--ease-out);justify-content:center;padding:10px 16px 18px;display:flex}.hand.is-compact .hand-fan{margin-bottom:calc(var(--hand-w) * -1.15)}.hand.is-compact{opacity:.85}.hand-slot{width:var(--hand-w);transform-origin:50% 120%;background:0 0;border:0;flex:none;padding:0;position:relative}.hand-slot+.hand-slot{margin-left:calc(var(--hand-w) * var(--overlap) * -1)}.hand-slot .card{width:100%}.clue-block{max-width:640px}.clue-text{font-family:var(--font-display);color:var(--clue-color);text-shadow:0 0 18px var(--clue-glow), 0 0 2px var(--clue-halo);margin:0;font-style:italic;font-weight:500;line-height:1.15}.clue-text.is-lg{font-size:clamp(30px,8.5vw,48px)}.clue-text.is-md{font-size:clamp(22px,6vw,30px)}.clue-word{white-space:pre;display:inline-block}.clue-word span{display:inline-block}.clue-quote{color:var(--gold-500);opacity:.7}.clue-by{margin:4px 0 0;font-size:13px}.clue-compose{gap:16px}.clue-card-wrap{flex-direction:column;align-items:center;gap:10px;display:flex;position:relative}.clue-card{width:min(44vw,200px)}.clue-swap{cursor:pointer}.clue-fields{text-align:left;flex-direction:column;gap:10px;width:min(100%,420px);display:flex}@media (width>=720px){.clue-compose{flex-direction:row;gap:40px}.clue-card{width:230px}}.altar{--w:clamp(86px, 24vw, 120px);width:100%;height:calc(var(--w) * 1.52 + 40px);margin:10px 0;position:relative}.altar-glow{background:radial-gradient(ellipse, var(--altar-glow), transparent 70%);filter:blur(8px);border-radius:50%;width:300px;height:200px;animation:6s ease-in-out infinite halo-centered;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.altar-card{width:var(--w);left:calc(50% - var(--w) / 2);position:absolute;top:20px}.altar-card.is-mine .card-face{box-shadow:0 0 0 1.5px var(--gold-300), 0 0 0 4px rgb(var(--shade-rgb) / .9), 0 0 26px rgb(var(--accent-soft-rgb) / .4), 0 12px 30px rgb(var(--shadow-rgb) / calc(.55 * var(--shadow-k)))}.submit-bar{gap:10px;display:flex}.table{--cols:3;grid-template-columns:repeat(var(--cols), minmax(0, 1fr));width:100%;max-width:calc(var(--cols) * var(--table-w) + (var(--cols) - 1) * 14px);gap:18px 12px;margin:4px auto;display:grid}.table.n-4{--cols:2}.table.n-7,.table.n-8{--cols:4}@media (width>=960px){.table.n-3{--cols:3}.table.n-4{--cols:4}.table.n-5{--cols:5}.table.n-6{--cols:6}.game{--table-w:140px}}.table-slot{background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;padding:0;display:flex;position:relative}.table-slot .card{width:100%}.table-num{font-family:var(--font-label);letter-spacing:.1em;color:var(--ink-faint);font-size:11px}.vote-stack{z-index:3;flex-wrap:wrap;justify-content:center;gap:2px;padding:0 4px;display:flex;position:absolute;top:6%;left:0;right:0}.vote-token{width:24px;height:24px;font-family:var(--font-display);color:var(--on-token);box-shadow:0 0 0 2px rgb(var(--shade-deep-rgb) / .85), 0 0 12px rgb(var(--ink-rgb) / .35);border-radius:50%;place-items:center;font-size:13px;font-weight:600;display:grid}.vote-token.is-mine{z-index:3;width:18px;height:18px;position:absolute;top:6%;right:8%}.reveal-head{margin-bottom:4px}.reveal-head p{margin:4px 0 0}.reveal-points{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.reveal-points strong{color:var(--gold-200)}.reveal-foot{z-index:4;flex-direction:column;gap:8px;width:min(100%,420px);margin-top:6px;padding:10px 0 4px;display:flex;position:sticky;bottom:0}.reveal-foot:before{content:"";z-index:-1;background:linear-gradient(180deg, transparent, rgb(var(--shade-deep-rgb) / .85) 45%);pointer-events:none;position:absolute;inset:-10px -16px -16px}.reveal-mine{color:var(--gold-200);font-weight:600}.finished{gap:14px;padding-bottom:16px}.finished-title{margin:0;font-size:clamp(32px,9vw,52px);font-weight:600}.winners{flex-wrap:wrap;justify-content:center;gap:28px;margin:10px 0 2px;display:flex}.winner{flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.winner-halo{opacity:.28;filter:blur(26px);border-radius:50%;width:160px;height:160px;animation:4s ease-in-out infinite halo-centered;position:absolute;top:36px;left:50%;transform:translate(-50%,-50%)}@keyframes halo-centered{50%{opacity:.18;transform:translate(-50%,-50%)scale(1.15)}}.winner-name{font-size:32px;font-weight:600}.ranking{flex-direction:column;gap:4px;width:min(100%,460px);margin:6px 0;padding:10px;list-style:none;display:flex}.ranking li{text-align:left;border-radius:12px;grid-template-columns:22px 30px minmax(0,1fr) 80px 32px;align-items:center;gap:10px;padding:6px 8px;display:grid}.ranking li.is-winner{background:rgb(var(--accent-rgb) / .08)}.ranking-pos{color:var(--gold-400);font-size:20px}.ranking-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ranking-bar{background:rgb(var(--ink-rgb) / .06);border-radius:999px;height:4px;overflow:hidden}.ranking-bar span{border-radius:inherit;height:100%;display:block}.ranking-score{text-align:right;font-weight:600}.finished-actions{flex-direction:column;gap:10px;width:min(100%,380px);display:flex}.finished .chip{cursor:pointer}.paused{z-index:30;background:radial-gradient(ellipse at 30% 40%, rgb(var(--accent-rgb) / .12), transparent 60%), rgb(var(--shade-deep-rgb) / .72);-webkit-backdrop-filter:blur(6px)saturate(.6);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.paused-box{text-align:center;color:var(--gold-300);flex-direction:column;align-items:center;gap:8px;display:flex}.paused-box h2{color:var(--ink);margin:0;font-size:34px}.paused-box p{margin:0 0 8px}.menu-list{flex-direction:column;gap:10px;display:flex}.menu-seal{justify-content:space-between;align-items:baseline;padding:4px 4px 10px;display:flex}.menu-row{justify-content:space-between;align-items:center;padding:0 4px 8px;display:flex}.menu-seal .display{letter-spacing:.12em;color:var(--gold-200);font-size:26px}.scores .label{margin:18px 0 10px;display:block}.score-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.score-list li{grid-template-columns:30px minmax(0,90px) 1fr 30px;align-items:center;gap:10px;display:grid}.score-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.score-track{background:rgb(var(--ink-rgb) / .06);border-radius:999px;height:6px;position:relative}.score-track span{border-radius:inherit;transition:width 1s var(--ease-out);position:absolute;inset:0 auto 0 0}.score-track i{background:var(--gold-400);width:1px;position:absolute;top:-4px;bottom:-4px}.score-num{text-align:right;font-weight:600}.chronicle{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.chronicle li{grid-template-columns:52px 1fr;align-items:center;gap:14px;display:grid}.chronicle-card{width:52px}.chronicle-clue{color:var(--gold-200);margin:2px 0;font-size:20px;font-style:italic}.chronicle p{margin:0}:root[data-theme=sonho]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--night-950:#fbf6f2;--night-900:#f7f0f8;--night-850:#f3ebf7;--night-800:#eee5f6;--night-700:#e4d9f1;--night-600:#d6c9ea;--gold-200:#6a4a99;--gold-300:#8560b2;--gold-400:#c07aac;--gold-500:#e39cad;--gold-600:#f1b596;--ink:#3a2c54;--ink-soft:#594a77;--ink-muted:#887ca4;--ink-faint:#b5aaca;--accent-rgb:192 122 172;--accent-soft-rgb:176 146 222;--accent-deep-rgb:232 160 178;--shade-deep-rgb:255 251 248;--shade-rgb:255 255 255;--shade-raised-rgb:249 243 255;--ink-rgb:58 44 84;--highlight-rgb:255 255 255;--shadow-rgb:118 90 168;--shadow-k:.42;--on-accent:#fff;--on-token:#3a2c54;--line:#9676c43d;--line-strong:#9676c473;--glass:#ffffff8c;--glass-strong:#fffbf8e6;--danger:#d4627c;--ok:#3a9f80;--sky-bg:radial-gradient(ellipse 70% 50% at 88% 6%, #c8b2f5bf, transparent 62%), radial-gradient(ellipse 60% 45% at 6% 30%, #bae8dab3, transparent 60%), radial-gradient(ellipse 75% 55% at 18% 96%, #ffcdbabf, transparent 62%), radial-gradient(ellipse 55% 40% at 92% 78%, #ffc6de99, transparent 60%), radial-gradient(ellipse 50% 35% at 45% 45%, #d0e2fc8c, transparent 70%), linear-gradient(180deg, #fbf3f8, #fbf7f2 60%, #f8f1ee);--altar-glow:#ffbad699;--clue-color:var(--ink);--clue-glow:#ffa8cc8c;--clue-halo:#fffffff2;--gold-text:linear-gradient(100deg, #7357c2, #cf74a6 50%, #ec9a72);--art-1:#a98be0;--art-2:#e695b6;--art-3:#f0ad87;--iris-1:#fff;--iris-3:#9473cf;--pupil:#3a2c54;--card-back-1:#fde3ee;--card-back-2:#e7dbf8;--card-back-3:#d3e6f6;--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-label:"Quicksand", system-ui, sans-serif;--font-body:"Nunito", system-ui, -apple-system, sans-serif}:root[data-theme=sonho] .sky:before,:root[data-theme=sonho] .sky:after{content:"";filter:blur(60px);opacity:.55;pointer-events:none;border-radius:50%;width:70vmax;height:70vmax;position:absolute}:root[data-theme=sonho] .sky:before{background:radial-gradient(circle,#ffc4e0e6,#0000 65%);animation:26s ease-in-out infinite alternate bloom-a;top:-25vmax;left:-20vmax}:root[data-theme=sonho] .sky:after{background:radial-gradient(circle,#bed6ffe6,#0000 65%);animation:32s ease-in-out infinite alternate bloom-b;bottom:-30vmax;right:-25vmax}@keyframes bloom-a{to{transform:translate(18vmax,22vmax)scale(1.15)}}@keyframes bloom-b{to{transform:translate(-22vmax,-16vmax)scale(.9)}}:root[data-theme=sonho] .display{letter-spacing:-.01em;font-variation-settings:"SOFT" 100;font-weight:400}:root[data-theme=sonho] .label{letter-spacing:.16em;font-weight:700}:root[data-theme=sonho] .welcome-title{font-style:italic;font-weight:400}:root[data-theme=sonho] .clue-text,:root[data-theme=sonho] textarea.field,:root[data-theme=sonho] .viewer-caption,:root[data-theme=sonho] .chronicle-clue{font-weight:400}:root[data-theme=sonho] .btn{letter-spacing:.08em;font-weight:700}:root[data-theme=sonho] .panel{box-shadow:0 1px 0 #ffffffe6 inset, 0 18px 50px rgb(var(--shadow-rgb) / .14)}:root[data-theme=sonho] .btn-primary{background:linear-gradient(120deg,#8a6ad0,#cf7fb0 55%,#eea58a);box-shadow:inset 0 0 0 1px #ffffff80,0 8px 26px #cf7fb059}:root[data-theme=sonho] .avatar{color:color-mix(in srgb, var(--c) 35%, var(--ink));background:radial-gradient(circle at 35% 30%, #fff, color-mix(in srgb, var(--c) 45%, #fff) 80%)}:root[data-theme=sonho] .card.is-dim{filter:saturate(.35)opacity(.55)}:root[data-theme=sonho] .card-face{background:#fff}:root[data-theme=sonho] .star-name{text-shadow:0 1px 8px #ffffffe6}:root[data-theme=sonho] .seal-code,:root[data-theme=sonho] .menu-seal .display,:root[data-theme=sonho] .recent-code{text-shadow:none}:root[data-theme=sonho] .hand-hint{color:var(--gold-300)}:root[data-theme=sonho] ::selection{background:#cf7fb04d}:root:lang(ja){--font-display:"Shippori Mincho", "Cormorant Garamond", serif;--font-label:"Noto Sans JP", system-ui, sans-serif;--font-body:"Noto Sans JP", system-ui, sans-serif}:root[data-theme=sonho]:lang(ja){--font-display:"Zen Maru Gothic", "Fraunces", serif;--font-label:"Zen Maru Gothic", system-ui, sans-serif;--font-body:"Zen Maru Gothic", system-ui, sans-serif}:root:lang(ja) *{font-style:normal!important}:root:lang(ja) .label,:root:lang(ja) .btn,:root:lang(ja) .theme-switch button{letter-spacing:.06em}:root:lang(ja){line-break:strict}:root:lang(ja) h1,:root:lang(ja) h2,:root:lang(ja) .display,:root:lang(ja) .clue-text,:root:lang(ja) .stage-lede,:root:lang(ja) .muted{word-break:auto-phrase}:root:lang(ja) .home-hello{font-size:24px}:root:lang(ja) .home-option h2,:root:lang(ja) .lobby-head h1,:root:lang(ja) .form-head h2{font-size:22px}:root:lang(ja) .stage-title{font-size:clamp(22px,6vw,32px)}
