[hidden]{display:none!important}
:root{
  color-scheme:dark;
  --void:#01040b;--ink:#030b18;--ink-2:#071528;--panel:rgba(5,18,35,.9);
  --cyan:#5ce7ff;--cyan-2:#1ba8d4;--magenta:#ff3cb8;--amber:#ffc857;
  --text:#eafaff;--muted:#7f9fb5;--danger:#ff5277;--success:#53f6b0;
  --line:rgba(92,231,255,.34);--line-hot:rgba(92,231,255,.82);
  --shadow:0 0 0 1px rgba(92,231,255,.07),0 18px 55px rgba(0,0,0,.48);
  --mono:"JetBrains Mono","Noto Sans Mono",monospace;
}
*{box-sizing:border-box}
html{background:var(--void);scrollbar-color:var(--cyan-2) var(--ink)}
body{
  margin:0;min-height:100vh;overflow-x:hidden;color:var(--text);
  font-family:Inter,"Noto Sans TC",system-ui,sans-serif;
  background:
    radial-gradient(circle at 50% -8%,rgba(20,117,180,.35),transparent 38%),
    radial-gradient(circle at 95% 60%,rgba(255,60,184,.08),transparent 30%),
    linear-gradient(160deg,#020815 0,#040d1c 46%,#01040a 100%) fixed;
}
body::before{
  content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(66,204,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(66,204,255,.045) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,#000,transparent 86%);
}
body::after{
  content:"";position:fixed;z-index:100;inset:0;pointer-events:none;opacity:.1;
  background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(155,237,255,.12) 4px);
}
button,input,select{font:inherit}
button{
  position:relative;cursor:pointer;padding:.72rem 1rem;color:var(--text);
  border:1px solid var(--line);border-radius:2px;background:linear-gradient(180deg,#102b47,#071426);
  clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);
  transition:border-color .18s,box-shadow .18s,transform .18s,filter .18s;
}
button::after{content:"";position:absolute;right:5px;bottom:4px;width:13px;height:2px;background:var(--cyan);opacity:.55}
button:hover:not(:disabled){border-color:var(--cyan);box-shadow:0 0 18px rgba(92,231,255,.2);filter:brightness(1.12)}
button:active:not(:disabled){transform:translateY(1px)}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
button:disabled{cursor:not-allowed;opacity:.36;filter:saturate(.35)}
input,select{
  width:100%;padding:.78rem;color:var(--text);border:1px solid var(--line);border-radius:2px;
  background:rgba(1,8,19,.9);box-shadow:inset 3px 0 0 rgba(92,231,255,.18);
}
input:focus,select:focus{border-color:var(--cyan);box-shadow:inset 3px 0 0 var(--cyan),0 0 18px rgba(92,231,255,.12)}
label{display:block;margin:.68rem 0 .36rem;color:var(--muted);font:.7rem var(--mono);letter-spacing:.1em;text-transform:uppercase}
.primary{color:#00111b;border-color:var(--cyan);background:linear-gradient(105deg,var(--cyan),#3d8dff 72%,#7064ff);font-weight:850;letter-spacing:.04em}
.primary::after{background:#00111b}
.danger{border-color:rgba(255,82,119,.58);background:linear-gradient(120deg,#52152a,#241020)}
.ghost{background:rgba(4,15,29,.58)}
.temporary-host-button{min-width:8.2rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.04em}
.temporary-host-button.is-active{color:#d9fff0;border-color:rgba(83,246,176,.78);background:linear-gradient(120deg,rgba(16,91,68,.88),rgba(4,31,34,.9));box-shadow:0 0 16px rgba(83,246,176,.14)}
.temporary-host-button.is-suspended{color:#ffd9a0;border-color:rgba(255,200,87,.58);background:linear-gradient(120deg,rgba(92,62,15,.72),rgba(35,24,11,.9))}
.full{width:100%}
.topbar{
  position:sticky;z-index:30;top:0;display:flex;min-height:70px;align-items:center;justify-content:space-between;gap:1rem;
  padding:.72rem clamp(1rem,3vw,3rem);border-bottom:1px solid var(--line);
  background:linear-gradient(90deg,rgba(1,7,17,.97),rgba(4,19,36,.88),rgba(1,7,17,.97));backdrop-filter:blur(18px);
}
.topbar::before{content:"SYSTEM // STELLAR-LINK";position:absolute;left:50%;bottom:4px;translate:-50% 0;color:rgba(92,231,255,.32);font:.48rem var(--mono);letter-spacing:.26em}
.brand,.top-actions{display:flex;align-items:center;gap:.72rem}.brand strong,.brand small{display:block}
.brand strong{letter-spacing:.03em}.brand small{font:.6rem var(--mono);letter-spacing:.18em;color:var(--muted)}
.brand-mark{
  position:relative;display:grid;width:42px;aspect-ratio:1;place-items:center;color:var(--cyan);
  border:1px solid var(--cyan);border-radius:50%;font:.8rem var(--mono);box-shadow:0 0 20px rgba(92,231,255,.18),inset 0 0 14px rgba(92,231,255,.09);
}
.brand-mark::after{content:"";position:absolute;inset:-5px;border:1px dashed rgba(92,231,255,.35);border-radius:50%;animation:spin 18s linear infinite}
main{position:relative;padding:clamp(.65rem,1.35vw,1.35rem) clamp(1rem,2.5vw,2.5rem) .55rem}
.login-view{position:relative;display:grid;min-height:calc(100vh - 120px);isolation:isolate;place-items:center;overflow:hidden}
.login-magic{position:absolute;z-index:-1;left:50%;top:50%;width:min(128vmin,820px);aspect-ratio:1;translate:-50% -50%;pointer-events:none;filter:drop-shadow(0 0 22px rgba(84,211,255,.24))}
.login-magic::before,.login-magic::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.login-magic::before{inset:2%;border:2px solid rgba(116,226,255,.52);box-shadow:inset 0 0 65px rgba(56,190,255,.08),0 0 72px rgba(64,202,255,.12)}
.login-magic::after{inset:17%;border:2px dashed rgba(255,184,94,.42);animation:login-magic-breathe 5.6s ease-in-out infinite}
.login-magic>span{position:absolute;display:block;pointer-events:none}
.login-magic__orbit{inset:0;border-radius:50%}
.login-magic__orbit--outer{
  opacity:.72;
  background:repeating-conic-gradient(from 2deg,rgba(106,223,255,.82) 0 .8deg,transparent .8deg 11.25deg);
  mask:radial-gradient(circle,transparent 0 76.5%,#000 77% 79%,transparent 79.5% 87.5%,#000 88% 90%,transparent 90.5%);
  animation:login-magic-spin 52s linear infinite;
}
.login-magic__orbit--inner{
  inset:11%;opacity:.58;
  background:
    repeating-conic-gradient(from 22.5deg,rgba(255,193,110,.68) 0 1.1deg,transparent 1.1deg 45deg),
    radial-gradient(circle,transparent 0 56.5%,rgba(105,222,255,.58) 57% 58.2%,transparent 58.7% 71.5%,rgba(105,222,255,.42) 72% 73.2%,transparent 73.7%);
  mask:radial-gradient(circle,transparent 0 52%,#000 52.5% 82%,transparent 82.5%);
  animation:login-magic-spin-reverse 37s linear infinite;
}
.login-magic__sigil{
  inset:23%;opacity:.62;border:2px solid rgba(105,222,255,.68);
  background:
    linear-gradient(45deg,transparent 49.3%,rgba(105,222,255,.5) 49.6% 50.4%,transparent 50.7%),
    linear-gradient(-45deg,transparent 49.3%,rgba(105,222,255,.5) 49.6% 50.4%,transparent 50.7%);
  transform:rotate(22.5deg);
  box-shadow:0 0 0 1px rgba(255,193,110,.12),inset 0 0 40px rgba(71,203,255,.04);
  animation:login-sigil-drift 18s ease-in-out infinite alternate;
}
.login-magic__sigil::before,.login-magic__sigil::after{content:"";position:absolute;inset:12%;border:2px solid rgba(255,193,110,.52)}
.login-magic__sigil::before{rotate:45deg}.login-magic__sigil::after{inset:27%;rotate:22.5deg;border-color:rgba(105,222,255,.52)}
.login-magic__core{
  inset:38%;border:2px solid rgba(255,207,137,.68);border-radius:50%;
  background:radial-gradient(circle,rgba(105,222,255,.2) 0 8%,transparent 9% 38%,rgba(105,222,255,.18) 39% 41%,transparent 42%);
  box-shadow:0 0 32px rgba(80,209,255,.14);
  animation:login-core-pulse 4.2s ease-in-out infinite;
}
.login-card,.panel{
  position:relative;border:1px solid var(--line);border-radius:2px;background:linear-gradient(145deg,rgba(8,28,52,.94),rgba(2,9,20,.96));
  box-shadow:var(--shadow);backdrop-filter:blur(16px);
  clip-path:polygon(15px 0,100% 0,100% calc(100% - 15px),calc(100% - 15px) 100%,0 100%,0 15px);
}
.login-card::before,.panel::before{
  content:"";position:absolute;z-index:2;top:0;left:15px;width:44%;height:2px;background:linear-gradient(90deg,var(--cyan),transparent);
}
.login-card{z-index:1;width:min(420px,100%);padding:2rem;border-color:rgba(105,222,255,.52);background:linear-gradient(145deg,rgba(4,24,44,.58),rgba(1,8,19,.68));box-shadow:inset 0 0 34px rgba(72,207,255,.055),0 18px 48px rgba(0,0,0,.34);backdrop-filter:blur(3px) saturate(1.08)}.login-card::after{content:"AUTH NODE // 01";position:absolute;top:12px;right:14px;color:var(--cyan);font:.5rem var(--mono);letter-spacing:.16em}
.login-card h1{margin:.55rem 0;font-size:clamp(1.8rem,5vw,2.5rem);text-shadow:0 0 28px rgba(92,231,255,.2)}
.login-card p{color:var(--muted);line-height:1.65}.login-card button{width:100%;margin-top:1rem}
.eyebrow{color:var(--cyan);font:.64rem var(--mono);letter-spacing:.22em;text-transform:uppercase}
.error{min-height:1.3em;color:#ff8da6}
.table-heading{
  position:relative;display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:.65rem;padding:.2rem 0 .65rem;
  border-bottom:2px solid rgba(92,231,255,.18);
}
.table-heading::after{content:"LIVE TACTICAL SESSION";position:absolute;right:0;bottom:-1px;padding:2px 8px;color:var(--void);background:var(--cyan);font:.48rem var(--mono);letter-spacing:.14em}
.table-heading h1{margin:.32rem 0;font-size:clamp(1.5rem,2.6vw,2.6rem);letter-spacing:.02em}.table-heading p{margin:0;color:var(--muted);font:.72rem var(--mono)}
.badge,.my-status{padding:.5rem .78rem;color:var(--cyan);border:1px solid var(--line);border-radius:2px;background:rgba(2,13,27,.74);font:.68rem var(--mono);letter-spacing:.06em}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:.8rem}
.table-stage{
  position:relative;min-height:clamp(760px,calc(100dvh - 157px),900px);overflow:hidden;border:2px solid var(--line);border-radius:2px;
  background:
    linear-gradient(90deg,transparent 49.9%,rgba(92,231,255,.06) 50%,transparent 50.1%),
    linear-gradient(transparent 49.9%,rgba(92,231,255,.06) 50%,transparent 50.1%),
    radial-gradient(circle at 50% 44%,rgba(26,127,184,.22),transparent 36%),
    linear-gradient(155deg,rgba(5,22,43,.95),rgba(1,7,17,.96));
  box-shadow:inset 0 0 90px rgba(0,0,0,.4),var(--shadow);
  clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px);
}
.table-stage::before{
  content:"";position:absolute;inset:3%;pointer-events:none;border:1px solid rgba(92,231,255,.09);
  clip-path:polygon(8% 0,92% 0,100% 10%,100% 90%,92% 100%,8% 100%,0 90%,0 10%);
}
.table-stage::after{content:"TABLE CORE // 8 SLOT";position:absolute;top:12px;left:24px;color:rgba(92,231,255,.42);font:.52rem var(--mono);letter-spacing:.2em}
.seats{
  --seat-rail:clamp(124px,12vw,166px);
  position:absolute;z-index:5;inset:34px 14px;display:grid;pointer-events:none;
  grid-template-columns:var(--seat-rail) minmax(0,1fr) var(--seat-rail);
  grid-template-rows:repeat(4,minmax(0,1fr));gap:.65rem 0;
}
.seat{
  position:relative;width:auto;min-height:0;padding:.72rem;pointer-events:auto;
  border:2px solid rgba(92,231,255,.58);border-radius:1px;background:linear-gradient(135deg,rgba(13,55,88,.98),rgba(4,20,39,.98));
  text-align:left;box-shadow:inset 0 0 22px rgba(92,231,255,.09),0 10px 30px rgba(0,0,0,.3),0 0 14px rgba(92,231,255,.08);
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
.seat::after{content:"";position:absolute;right:0;bottom:0;width:32%;height:3px;background:rgba(92,231,255,.18)}
.seat strong,.seat small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat strong{margin:.34rem 0;font-size:clamp(1rem,1.05vw,1.18rem);font-weight:800;letter-spacing:.02em;text-shadow:0 0 13px rgba(92,231,255,.22)}.seat small{color:#9dc4d8;font:.55rem var(--mono);letter-spacing:.08em}
.seat.manageable{padding-bottom:2.7rem}.seat-eject{position:absolute;z-index:3;right:.55rem;bottom:.5rem;width:auto;min-height:0;margin:0;padding:.34rem .52rem;color:#ffd8e1;border-color:rgba(255,82,119,.62);background:linear-gradient(120deg,rgba(99,22,47,.96),rgba(37,12,28,.96));font-size:.62rem;font-weight:750}.seat-eject::after{display:none}.seat-eject:disabled{opacity:.58}
.seat.self{border-color:var(--amber);box-shadow:0 0 0 1px rgba(255,200,87,.16),0 0 28px rgba(255,200,87,.18)}.seat.self::after{background:var(--amber);box-shadow:0 0 12px var(--amber)}
.admin-mark{color:var(--amber)}
.temporary-host-mark{margin-left:.25rem;color:var(--success);font-family:var(--mono);font-size:.58rem;letter-spacing:.04em}
.seat:nth-child(1){grid-area:1/1}.seat:nth-child(2){grid-area:2/1}.seat:nth-child(3){grid-area:3/1}.seat:nth-child(4){grid-area:4/1}
.seat:nth-child(5){grid-area:1/3}.seat:nth-child(6){grid-area:2/3}.seat:nth-child(7){grid-area:3/3}.seat:nth-child(8){grid-area:4/3}
.ritual-core{
  position:absolute;z-index:12;top:50%;left:50%;display:grid;width:184px;aspect-ratio:1;translate:-50% -50%;place-items:center;align-content:center;
  border:1px solid rgba(92,231,255,.44);border-radius:50%;text-align:center;
  background:radial-gradient(circle,rgba(34,156,214,.25),rgba(2,11,24,.8) 56%,transparent 58%);
  box-shadow:0 0 70px rgba(46,187,238,.2),inset 0 0 32px rgba(92,231,255,.09);
}
.ritual-core::before,.ritual-core::after{content:"";position:absolute;border-radius:50%}
.ritual-core::before{inset:-12px;border:1px dashed rgba(92,231,255,.28);animation:spin 24s linear infinite}
.ritual-core::after{inset:18px;border:1px solid rgba(255,60,184,.18)}
.ritual-core span{color:var(--cyan);font:.62rem var(--mono);letter-spacing:.16em}.ritual-core strong{margin-top:.42rem;font:.76rem var(--mono);letter-spacing:.08em}
.cards{
  position:absolute;z-index:8;top:34px;bottom:34px;left:50%;display:grid;
  width:min(calc(100% - clamp(124px,12vw,166px) - clamp(124px,12vw,166px) - 70px),1178px);
  max-height:none;translate:-50% 0;
  grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));align-items:center;justify-items:center;gap:.8rem;
}
.card{
  position:relative;display:grid;width:min(100%,clamp(200px,calc((100dvh - 225px)*.3),245px));max-width:100%;height:auto;min-width:0;min-height:0;aspect-ratio:3/5;place-items:center;align-content:center;gap:.42rem;padding:.7rem;
  overflow:hidden;border:2px solid rgba(92,231,255,.48);border-radius:2px;
  background:
    radial-gradient(circle at 50% 32%,rgba(70,213,244,.2),transparent 25%),
    repeating-radial-gradient(circle at 50% 42%,transparent 0 20px,rgba(92,231,255,.045) 21px 22px),
    linear-gradient(145deg,#0b2945 0,#061426 52%,#020814 100%);
  box-shadow:inset 0 0 25px rgba(92,231,255,.06),0 9px 24px rgba(0,0,0,.35);
  clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);
}
.card::before{
  content:"✦";position:absolute;inset:7px;display:grid;pointer-events:none;place-items:start center;padding-top:8px;color:color-mix(in srgb,var(--role-color,var(--cyan)) 62%,transparent);border:2px double rgba(92,231,255,.25);
  background:radial-gradient(circle at 50% 38%,rgba(92,231,255,.08),transparent 36%);font:700 clamp(1.5rem,2.4vw,2.5rem) Georgia,serif;text-shadow:0 0 16px currentColor;
}
.card::after{content:"☾";position:absolute;right:11px;bottom:7px;width:auto;height:auto;color:color-mix(in srgb,var(--role-color,var(--cyan)) 72%,transparent);background:none;font:700 clamp(1.55rem,2.25vw,2.35rem) Georgia,serif;text-shadow:0 0 15px currentColor}.card .role{z-index:2;font:900 clamp(1.75rem,3.2vw,3rem) Georgia,"Noto Serif TC",serif;letter-spacing:.1em;text-shadow:0 0 20px rgba(92,231,255,.46)}
.card small{z-index:2;max-width:100%;overflow:hidden;color:#a9c9da;font:700 clamp(.62rem,.75vw,.78rem) var(--mono);letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap}
.card.available{border-color:var(--cyan);animation:card-pulse 1.2s ease-in-out infinite alternate}.card.available:hover{z-index:4;transform:translateY(-9px) scale(1.025)}
.card.assigned{color:var(--amber);border-color:var(--amber);background:radial-gradient(circle at 50% 35%,rgba(255,200,87,.2),transparent 30%),linear-gradient(145deg,#302513,#0d1220)}
.card.claimed{border-color:var(--success)}.card.claimed::after{color:var(--success);background:none}
.card:disabled{opacity:1;filter:none}
.card[data-role]{--role-color:var(--cyan);color:var(--role-color);border-color:color-mix(in srgb,var(--role-color) 78%,#12283b);opacity:1;filter:none;box-shadow:inset 0 0 18px color-mix(in srgb,var(--role-color) 8%,transparent),0 0 10px color-mix(in srgb,var(--role-color) 9%,transparent)}
.card[data-role] .role{color:color-mix(in srgb,var(--role-color) 88%,#fff);text-shadow:0 0 5px color-mix(in srgb,var(--role-color) 58%,transparent)}
.card.is-revealed .role{font-size:clamp(1.45rem,2.6vw,2.35rem);letter-spacing:.07em}.card.is-revealed .card-owner{color:#f4fbff;font-size:clamp(.98rem,1.12vw,1.18rem);font-weight:850;text-shadow:0 1px 6px rgba(0,0,0,.72)}.card.is-revealed .card-kind{font-size:clamp(.58rem,.66vw,.7rem);font-weight:650}
.card[data-role="MT"]{--role-color:#4aa8ff}.card[data-role="ST"]{--role-color:#737cff}
.card[data-role="H1"]{--role-color:#64f5a8}.card[data-role="H2"]{--role-color:#2ad9b2}
.card[data-role="D1"]{--role-color:#ff5d73}.card[data-role="D2"]{--role-color:#ff934f}
.card[data-role="D3"]{--role-color:#d86bff}.card[data-role="D4"]{--role-color:#ff55bd}
.console{display:grid;max-height:clamp(760px,calc(100dvh - 157px),900px);align-content:start;gap:.62rem;overflow:auto;padding-right:3px;scrollbar-width:thin}
.panel{padding:1rem;border-width:2px}.panel h2,.panel>summary{margin:0 0 .75rem;color:var(--cyan);font:.72rem var(--mono);letter-spacing:.12em;text-transform:uppercase}
.panel>summary::after{content:"＋";float:right;color:var(--cyan);font-size:1rem;line-height:.7}.panel[open]>summary::after{content:"－"}.activity-panel:not([open])>summary{margin-bottom:0}
.panel h2::before,.panel>summary::before{content:"▰ ";color:var(--magenta)}.panel>summary{cursor:pointer;list-style:none}.panel>summary::-webkit-details-marker{display:none}
.panel button{width:100%;margin:.24rem 0}.panel details summary{padding:.55rem 0;cursor:pointer;color:var(--muted);font:.68rem var(--mono)}
.inline-form{display:grid;grid-template-columns:1fr 1.4fr;gap:.45rem}.inline-form button{grid-column:1/-1}
.roster-row,.assignment-row,.history-row,.activity-row{padding:.58rem 0;border-bottom:1px solid rgba(92,231,255,.12)}
.roster-row:last-child{border:0}.roster-row strong{font-size:.8rem}.roster-row button{width:auto;margin-left:.24rem;padding:.36rem .5rem;font-size:.65rem}
.activity-row{display:flex;justify-content:space-between;gap:.55rem;font-size:.74rem}.activity-row small,.history-row small{color:var(--muted);font:.58rem var(--mono);white-space:nowrap}
.history-row p{color:var(--muted);font-size:.72rem;line-height:1.55}
.modal{
  width:min(470px,calc(100% - 2rem));padding:0;color:var(--text);border:1px solid var(--cyan);border-radius:2px;
  background:linear-gradient(145deg,#09213d,#020a17);box-shadow:0 0 100px rgba(41,184,255,.34);
  clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px);
}
.modal::backdrop{background:rgba(0,3,10,.88);backdrop-filter:blur(7px)}
.modal>div,.modal form{padding:2rem}.modal h2{font-size:1.6rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}
.toast{
  position:fixed;z-index:60;bottom:1.5rem;left:50%;padding:.75rem 1rem;translate:-50% 20px;opacity:0;
  color:var(--cyan);border:1px solid var(--line-hot);border-radius:1px;background:#06182b;font:.72rem var(--mono);transition:.2s;
}
.toast.show{translate:-50% 0;opacity:1}
@keyframes spin{to{rotate:360deg}}@keyframes login-magic-spin{to{transform:rotate(360deg)}}@keyframes login-magic-spin-reverse{to{transform:rotate(-360deg)}}@keyframes login-magic-breathe{0%,100%{opacity:.26}50%{opacity:.58;box-shadow:0 0 28px rgba(255,193,110,.1)}}@keyframes login-sigil-drift{0%{transform:rotate(19deg) scale(.985)}100%{transform:rotate(26deg) scale(1.015)}}@keyframes login-core-pulse{0%,100%{opacity:.45;scale:.96}50%{opacity:.82;scale:1.04}}@keyframes card-pulse{to{box-shadow:0 0 20px rgba(92,231,255,.2),inset 0 0 18px rgba(92,231,255,.07)}}@keyframes card-wave{0%,100%{translate:0 1px;rotate:-.12deg}25%{translate:0 -4px;rotate:.18deg}50%{translate:0 -1px;rotate:.1deg}75%{translate:0 3px;rotate:-.18deg}}@keyframes deal-from-bottom{0%{opacity:0;transform:translateY(76vh) scale(.84) rotate(5deg)}66%{opacity:1;transform:translateY(0) scale(1) rotate(0)}80%{opacity:1;transform:translateY(0) scale(1) rotate(0)}92%{transform:translateY(-6px) scale(1.012)}100%{opacity:1;transform:none}}@keyframes tarot-flip{0%{transform:perspective(1200px) rotateY(0) scale(1);animation-timing-function:cubic-bezier(.48,.02,.86,.42)}48%{transform:perspective(1200px) rotateY(90deg) scale(.96);filter:brightness(1.12)}48.01%{transform:perspective(1200px) rotateY(-90deg) scale(.96);filter:brightness(1.12);animation-timing-function:cubic-bezier(.16,.7,.24,1)}100%{transform:perspective(1200px) rotateY(0) scale(1);filter:none}}@keyframes reveal-content{0%,49%{opacity:0}64%,100%{opacity:1}}.card:not(.is-dealing):not(.is-flipping):not(.is-revealed){animation:card-wave 5.2s ease-in-out var(--wave-delay) infinite}.card.available:not(.is-dealing):not(.is-flipping){animation:card-wave 5.2s ease-in-out var(--wave-delay) infinite,card-pulse 1.2s ease-in-out infinite alternate}.card.is-flipping{will-change:transform;transform-origin:50% 50%;transform-style:preserve-3d;backface-visibility:hidden;animation:tarot-flip 1.08s both;animation-delay:var(--card-delay)}.card.is-flipping .role,.card.is-flipping small{animation:reveal-content 1.08s ease both;animation-delay:var(--card-delay)}.card.is-dealing{animation:deal-from-bottom 1.25s cubic-bezier(.18,.72,.18,1) both;animation-delay:var(--card-delay)}
@media(max-width:1120px){
  .workspace{grid-template-columns:1fr}.console{max-height:none;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.panel{min-width:0}.table-stage{min-height:780px}
}
@media(max-width:720px){
  main{padding:.72rem}.topbar{position:relative;align-items:flex-start;padding:.7rem}.topbar::before{display:none}.brand small{display:none}.top-actions{flex-wrap:wrap;justify-content:flex-end}.top-actions button{padding:.46rem .55rem;font-size:.68rem}
  .table-heading{display:block}.table-heading::after{display:none}.my-status{margin-top:.7rem}.workspace{display:block}
  .table-stage{display:flex;min-height:0;flex-direction:column;gap:1rem;padding:1rem;overflow:visible;border-width:2px}
  .table-stage::after{position:relative;top:auto;left:auto;order:-2;margin-bottom:.15rem}
  .seats{position:relative;inset:auto;display:grid;order:-1;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:.45rem}
  .seat,.seat:nth-child(n){position:relative;inset:auto;width:auto;min-height:68px;padding:.58rem;grid-area:auto}.seat.manageable{min-height:94px;padding-bottom:2.55rem}.seat strong{font-size:1rem}.seat-eject{right:.4rem;bottom:.4rem;padding:.3rem .42rem;font-size:.58rem}
  .ritual-core{position:relative;top:auto;left:auto;order:0;width:142px;margin:.3rem auto;translate:0}
  .cards{position:relative;top:auto;right:auto;bottom:auto;left:auto;order:1;width:100%;max-height:none;translate:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:.6rem}
  .card{width:100%;height:auto;aspect-ratio:3/5}.card .role{font-size:clamp(2.15rem,14vw,3.4rem)}.card.is-revealed .role{font-size:clamp(1.8rem,11vw,2.8rem)}.card.is-revealed .card-owner{font-size:clamp(.92rem,5vw,1.15rem)}.card small{font-size:.7rem}
  .console{display:grid;grid-template-columns:1fr;max-height:none;margin-top:.8rem;overflow:visible}.panel{padding:.9rem}
}
@media(max-width:390px){.brand strong{font-size:.82rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.card.available:hover{transform:none}}
