.loading-splash{position:fixed;inset:0;z-index:99999;background:#0a0c10;display:flex;align-items:center;justify-content:center;transform:translateY(-100%);will-change:transform}.loading-splash--entering{animation:splash-enter .45s cubic-bezier(.22,1,.36,1) both}.loading-splash--loading{transform:translateY(0)}.loading-splash--exiting{animation:splash-exit .4s cubic-bezier(.55,0,1,.45) both}@keyframes splash-enter{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes splash-exit{0%{transform:translateY(0)}to{transform:translateY(-100%)}}.loading-splash__label{display:flex;gap:.18em;align-items:flex-end;margin:0;padding:0}.loading-splash__letter{display:inline-block;font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:800;color:#e2e8f0;animation:letter-jump .9s ease-in-out infinite both;animation-delay:calc(var(--i) * -.13s);text-shadow:0 0 24px rgba(226,232,240,.18)}@keyframes letter-jump{0%,60%,to{transform:translateY(0);animation-timing-function:cubic-bezier(.55,0,1,.45)}30%{transform:translateY(-22px);animation-timing-function:cubic-bezier(0,0,.44,1)}48%{transform:translateY(-7px)}}.mm{display:flex;flex-direction:row;height:100svh;overflow:hidden;background:var(--surface-1)}@media(max-width:767px){.mm{flex-direction:column-reverse}}.mm__hero{flex:1;position:relative;overflow:hidden}.mm__hero:before{content:"";position:absolute;top:42%;left:45%;width:110%;height:85%;transform:translate(-50%,-50%);background:radial-gradient(ellipse at center,rgba(160,130,250,.28) 0%,rgba(100,60,200,.12) 45%,transparent 70%);pointer-events:none}.mm__hero:after{content:"";position:absolute;bottom:0;left:0;right:0;height:35%;background:linear-gradient(to bottom,transparent,rgba(4,12,40,.55));pointer-events:none}.mm__dev-notes{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;overflow:hidden;background:#04081894;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-right:1px solid rgba(160,130,250,.18)}[data-theme=light] .mm__dev-notes{background:#ffffff8c;border-right-color:#643cc82e}.mm__dev-notes__header{flex:0 0 auto;display:flex;align-items:center;gap:.6rem;padding:.9rem 1.4rem .75rem;border-bottom:1px solid rgba(160,130,250,.2);background:#0000002e}[data-theme=light] .mm__dev-notes__header{background:#0000000f}.mm__dev-notes__badge{font-size:.65rem;font-weight:800;letter-spacing:.12em;color:#a78bfa;background:#a78bfa26;border:1px solid rgba(167,139,250,.4);border-radius:4px;padding:2px 6px}[data-theme=light] .mm__dev-notes__badge{color:#5b21b6;background:#5b21b614;border-color:#5b21b64d}.mm__dev-notes__title{font-size:.82rem;font-weight:700;color:#e2e8f0e6;letter-spacing:.03em}[data-theme=light] .mm__dev-notes__title{color:#1e293b}.mm__dev-notes__body{flex:1;overflow-y:auto;padding:1rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:1.1rem;scrollbar-width:thin;scrollbar-color:rgba(167,139,250,.35) transparent}.mm__dev-notes__body::-webkit-scrollbar{width:4px}.mm__dev-notes__body::-webkit-scrollbar-thumb{background:#a78bfa59;border-radius:2px}.mm__dev-notes__section{display:flex;flex-direction:column;gap:.5rem}.mm__dev-notes__section-title{margin:0 0 .1rem;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#94a3b8b3}[data-theme=light] .mm__dev-notes__section-title{color:#475569b3}.mm__dev-notes__prose{margin:0;font-size:.78rem;line-height:1.65;color:#cbd5e1cc}[data-theme=light] .mm__dev-notes__prose{color:#374151}.mm__dev-notes__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem}.mm__dev-notes__item{display:flex;align-items:baseline;gap:.55rem;font-size:.82rem;color:#cbd5e1d9;line-height:1.5}[data-theme=light] .mm__dev-notes__item{color:#1e293b}.mm__dev-notes__checkbox{flex-shrink:0;font-size:.8rem;width:1em;text-align:center}.mm__dev-notes__checkbox--done{color:#34d399}.mm__dev-notes__checkbox--open{color:#94a3b880}.mm__dev-notes__note-block{display:block;font-family:var(--font-mono, "Fira Code", "Cascadia Code", monospace);font-size:.76rem;line-height:1.7;color:#cbd5e1c7;background:#00000038;border-left:2px solid rgba(167,139,250,.5);border-radius:0 4px 4px 0;padding:.65rem .85rem;white-space:pre-wrap;word-break:break-word}.mm__dev-notes__note-block em{font-style:normal;color:#a78bfa}[data-theme=light] .mm__dev-notes__note-block em{color:#5b21b6}[data-theme=light] .mm__dev-notes__note-block{background:#0000000d;color:#374151;border-left-color:#5b21b666}.mm__nav{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.mm__btn{flex:1;display:flex;align-items:center;justify-content:center;padding:0 2rem;background:var(--surface-3);color:var(--text);border:none;border-top:1px solid var(--surface-border);cursor:pointer;font-family:var(--font-base);font-size:clamp(.95rem,2vw,1.4rem);font-weight:800;letter-spacing:.08em;text-transform:uppercase;position:relative;overflow:hidden;transition:color .32s ease}[data-theme=light] .mm__btn{background:#fff;color:#0d2c54;border-top-color:#dde4ee}.mm__btn:first-child{border-top:none}.mm__btn:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#0d2045,#1a4b9e 35%,#3b82f6 68%,#3b82f600);transform:translate(-101%);transition:transform .36s cubic-bezier(.22,1,.36,1)}.mm__btn:hover:before,.mm__btn:focus-visible:before{transform:translate(0)}.mm__btn:hover,.mm__btn:focus-visible{color:#fff;outline:none}.mm__btn:active:before{transition-duration:.12s}.mm__btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.mm__btn-label{position:relative;z-index:1;pointer-events:none;display:flex;align-items:center;gap:.6em}@keyframes mm-btns-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(14%)}}@keyframes mm-btns-in{0%{opacity:0;transform:translate(14%)}to{opacity:1;transform:translate(0)}}@keyframes mm-panel-in{0%{opacity:0;transform:translate(-6%)}60%{opacity:1;transform:translate(1.2%)}80%{transform:translate(-.4%)}to{opacity:1;transform:translate(0)}}.mm__nav--view-menu>.mm__btn,.mm__nav--view-menu>.mm__back-btn{animation:mm-btns-in .32s cubic-bezier(.22,1,.36,1) both}.mm__nav--view-menu>.mm__btn:nth-child(1),.mm__nav--view-menu>.mm__back-btn:nth-child(1){animation-delay:0s}.mm__nav--view-menu>.mm__btn:nth-child(2),.mm__nav--view-menu>.mm__back-btn:nth-child(2){animation-delay:.04s}.mm__nav--view-menu>.mm__btn:nth-child(3),.mm__nav--view-menu>.mm__back-btn:nth-child(3){animation-delay:.08s}.mm__nav--view-menu>.mm__btn:nth-child(4),.mm__nav--view-menu>.mm__back-btn:nth-child(4){animation-delay:.12s}.mm__nav--view-menu>.mm__btn:nth-child(5),.mm__nav--view-menu>.mm__back-btn:nth-child(5){animation-delay:.16s}.mm__nav--view-menu>.mm__btn:nth-child(6),.mm__nav--view-menu>.mm__back-btn:nth-child(6){animation-delay:.2s}.mm__nav--view-menu>.mm__btn:nth-child(7),.mm__nav--view-menu>.mm__back-btn:nth-child(7){animation-delay:.24s}.mm__nav--view-menu>.mm__btn:nth-child(8),.mm__nav--view-menu>.mm__back-btn:nth-child(8){animation-delay:.28s}.mm__nav--view-panel>.mm__btn{animation:mm-btns-out .22s ease forwards;pointer-events:none}.mm__back-btn{flex:0 0 auto;height:64px;display:flex;align-items:center;gap:.6rem;padding:0 2rem;background:var(--surface-3);color:var(--text);border:none;border-bottom:1px solid var(--surface-border);cursor:pointer;font-family:var(--font-base);font-size:clamp(.8rem,1.4vw,1rem);font-weight:700;letter-spacing:.06em;text-transform:uppercase}[data-theme=light] .mm__back-btn{background:#e8ecf7;color:#0d2c54;border-bottom-color:#dde4ee}.mm__back-btn:hover{background:var(--surface-hover)}[data-theme=light] .mm__back-btn:hover{background:#d8e0f4}.mm__back-btn .mm__back-arrow{font-size:1.1em;line-height:1}.mm__panel{flex:1;overflow-y:auto;padding:2rem 2.5rem;display:flex;flex-direction:column;gap:1.5rem;animation:mm-panel-in .42s cubic-bezier(.18,.89,.32,1.05) both;background:var(--surface-2);color:var(--text)}[data-theme=light] .mm__panel{background:#fff}.mm__panel h2{margin:0 0 .25rem;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:900;color:var(--text);letter-spacing:-.02em}[data-theme=light] .mm__panel h2{color:#0d2c54}.mm__error{position:fixed;bottom:1.5rem;left:1.5rem;z-index:300;background:var(--red-dim, rgba(239, 68, 68, .15));border:1px solid var(--red, #ef4444);color:var(--red, #ef4444);border-radius:8px;padding:.75rem 1.25rem;font-size:.875rem;max-width:380px;box-shadow:0 4px 14px #00000059;line-height:1.45}.mm__rejoin-backdrop{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:900}.mm__rejoin{background:var(--surface-3, #1a1d24);border:1px solid var(--surface-border, #2a2f3d);border-radius:14px;padding:2.5rem 3rem;text-align:center;display:flex;flex-direction:column;gap:1.25rem;max-width:380px;width:calc(100vw - 3rem);box-shadow:0 20px 60px #0009}.mm__rejoin h2{margin:0;font-size:1.3rem;color:var(--text, #e2e8f0)}.mm__rejoin p{margin:0;color:var(--text-muted, #94a3b8);font-size:.95rem;line-height:1.5}.mm__join-row{display:flex;gap:.75rem;align-items:stretch}.mm__join-row .mm__code-input{flex:1}.mm__code-input{background:var(--surface-4, #f4f6fb);border:1px solid var(--surface-border, #d0d7e6);color:var(--text, #0d1b38);border-radius:8px;padding:.6rem .9rem;font-size:1rem;font-family:var(--font-base);outline:none;transition:border-color .15s,box-shadow .15s}.mm__code-input:focus{border-color:var(--blue, #3b82f6);box-shadow:0 0 0 2px var(--blue-dim, rgba(59, 130, 246, .15))}.mm__code-input::placeholder{color:var(--text-dim, #8896b3)}.mm__settings-section{display:flex;flex-direction:column;gap:.75rem}.mm__settings-section>p{margin:0;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted, #4a5880)}.mm__theme-toggle{display:flex;align-items:center;gap:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none;width:fit-content}.mm__theme-toggle__track{position:relative;width:52px;height:28px;border-radius:9999px;background:#c8d0e0;transition:background .22s ease;flex-shrink:0}[data-theme=light] .mm__theme-toggle__track{background:#3b82f6}.mm__theme-toggle__thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #00000040;transition:transform .22s cubic-bezier(.34,1.56,.64,1)}[data-theme=light] .mm__theme-toggle__thumb{transform:translate(24px)}.mm__theme-toggle__label{font-size:.95rem;font-weight:600;color:var(--text)}.mm__theme-toggle__track--on{background:#3b82f6}.mm__theme-toggle__track--on .mm__theme-toggle__thumb{transform:translate(24px)}.mm__settings-hint{margin:2px 0 0;font-size:.75rem;color:var(--text-muted, #4a5880);opacity:.8;font-style:italic}.mm__replay-id{font-family:var(--font-mono, "Fira Code", monospace);font-size:.72rem;color:var(--text-dim);background:var(--surface-4);border:1px solid var(--surface-border);border-radius:var(--radius-pill);padding:1px 7px;letter-spacing:.04em;white-space:nowrap}@media(max-width:767px){.mm__nav{flex:0 0 auto}.mm__btn{flex:0 0 auto;height:52px;font-size:.85rem;padding:0 1.2rem;letter-spacing:.06em}.mm__btn:first-child{border-top:1px solid var(--surface-border)}.mm__btn-label{gap:.4em}}.lang-switcher{display:flex;gap:4px;align-items:center}.lang-switcher__btn{padding:3px 8px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:transparent;color:#fff9;font-size:11px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.lang-switcher__btn:hover{background:#ffffff1a;color:#fff;border-color:#fff6}.lang-switcher__btn--active{background:#ffffff26;color:#fff;border-color:#ffffff80}[data-theme=light] .lang-switcher__btn{border-color:#0003;color:#0009}[data-theme=light] .lang-switcher__btn:hover{background:#0000000f;color:#0d2c54;border-color:#00000059}[data-theme=light] .lang-switcher__btn--active{background:#00000014;color:#0d2c54;border-color:#0006}:root{color-scheme:dark;--surface-1: #0a0c10;--surface-2: #111318;--surface-3: #1a1d24;--surface-4: #222630;--surface-border: #2a2f3d;--surface-hover: #2e3345;--blue: #3b82f6;--blue-dim: rgba(59, 130, 246, .15);--pink: #f472b6;--pink-dim: rgba(244, 114, 182, .15);--green: #4ade80;--green-dim: rgba(74, 222, 128, .15);--red: #ef4444;--red-dim: rgba(239, 68, 68, .15);--amber: #fbbf24;--amber-dim: rgba(251, 191, 36, .15);--text: #e2e8f0;--text-muted: #94a3b8;--text-dim: #475569;--text-on-color: #ffffff;--space-sm: 6px;--space-md: 12px;--space-lg: 20px;--space-xl: 32px;--radius-square: 0px;--radius-rounded: 8px;--radius-pill: 9999px;--shadow-light: 0 2px 8px rgba(0, 0, 0, .3);--shadow-strong: 0 8px 32px rgba(0, 0, 0, .65);--font-base: Inter, Segoe UI, system-ui, sans-serif;--font-mono: Fira Code, Fira Mono, Consolas, monospace;--font-xxs: 14px;--font-xs: 16px;--font-sm: 18px;--font-base-size: 20px;--font-md: 24px;--font-lg: 28px;--font-xl: 32px;--card-width: 90px;--card-height: 125px;--table-width: 800px;--playmat-w: 1020;--playmat-h: 523;--table-height: calc(var(--table-width) / var(--playmat-w) * var(--playmat-h) * 2);--board-scale: .38}[data-theme=light]{color-scheme:light;--surface-1: #f0f2f7;--surface-2: #e8ebf2;--surface-3: #ffffff;--surface-4: #f4f6fb;--surface-border: #d0d7e6;--surface-hover: #e2e7f4;--text: #0d1b38;--text-muted: #4a5880;--text-dim: #8896b3;--text-on-color: #ffffff;--shadow-light: 0 2px 8px rgba(0, 0, 0, .08);--shadow-strong: 0 8px 32px rgba(0, 0, 0, .15)}@media(min-width:768px){:root{--board-scale: 1}}@media(min-width:1024px){:root{--board-scale: 1}}@media(min-width:1280px){:root{--board-scale: 1.15}}@media(min-width:1920px){:root{--board-scale: 1.2}}@media(min-width:2560px){:root{--board-scale: 1.35}}@media(min-width:3840px){:root{--board-scale: 1.8}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-base);font-size:var(--font-base-size);color:var(--text);background:var(--surface-2);-webkit-font-smoothing:antialiased}body{background:var(--surface-2);color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}:root{scrollbar-color:var(--surface-border) var(--surface-1);scrollbar-width:thin}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--surface-1)}::-webkit-scrollbar-thumb{background:var(--surface-border);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--surface-hover)}::-webkit-scrollbar-corner{background:var(--surface-1)}.app-shell{display:flex;min-height:100vh;background:var(--surface-2);color:var(--text)}.sidebar{width:320px;flex-shrink:0;border-right:1px solid var(--surface-border);background:var(--surface-1);padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg)}.content{flex:1;padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg);overflow-y:auto}@media(max-width:767px){.app-shell{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--surface-border);padding:var(--space-md);gap:var(--space-md)}.content{padding:var(--space-md)}}.panel{background:var(--surface-3);border:1px solid var(--surface-border);border-radius:var(--radius-rounded);padding:var(--space-lg);box-shadow:var(--shadow-light)}.panel h2{margin:0 0 var(--space-md) 0;font-size:var(--font-lg);font-weight:700;color:var(--text)}.panel p{color:var(--text-muted);font-size:var(--font-base-size);line-height:1.5}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);background:var(--blue);color:var(--text-on-color);border:1px solid transparent;padding:8px var(--space-lg);border-radius:var(--radius-rounded);font-family:var(--font-base);font-size:var(--font-base-size);font-weight:600;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;box-shadow:var(--shadow-light);white-space:nowrap;-webkit-user-select:none;user-select:none}.button:not(:disabled):hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.button:not(:disabled):active{transform:translateY(1px);box-shadow:none}.button:disabled,.button[aria-disabled=true]{opacity:.38;cursor:not-allowed;pointer-events:none;box-shadow:none}.button--secondary,.button.secondary{background:var(--surface-4);color:var(--text);border-color:var(--surface-border)}.button--ghost{background:transparent;color:var(--text-muted);border-color:var(--surface-border);box-shadow:none}.button--ghost:not(:disabled):hover{background:var(--surface-4);color:var(--text)}.button--danger{background:var(--red)}.button--success{background:var(--green);color:#0a0c10}.button--amber{background:var(--amber);color:#0a0c10}.list{display:flex;flex-direction:column;gap:var(--space-sm)}.list-item{display:flex;align-items:center;justify-content:space-between;background:var(--surface-4);border:1px solid var(--surface-border);border-radius:var(--radius-rounded);padding:var(--space-md) var(--space-md);transition:background .12s}.list-item:hover{background:var(--surface-hover)}.badge{display:inline-block;background:var(--surface-4);border:1px solid var(--surface-border);padding:2px var(--space-sm);border-radius:var(--radius-pill);font-size:var(--font-sm);color:var(--text-muted);font-weight:600;letter-spacing:.03em}.badge--blue{background:var(--blue-dim);color:var(--blue);border-color:var(--blue)}.badge--green{background:var(--green-dim);color:var(--green);border-color:var(--green)}.badge--red{background:var(--red-dim);color:var(--red);border-color:var(--red)}.badge--amber{background:var(--amber-dim);color:var(--amber);border-color:var(--amber)}.badge--pink{background:var(--pink-dim);color:var(--pink);border-color:var(--pink)}.row{display:flex;gap:var(--space-md);align-items:center}.row-top{margin-top:var(--space-md)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-md)}.input{background:var(--surface-4);border:1px solid var(--surface-border);color:var(--text);padding:8px var(--space-md);border-radius:var(--radius-rounded);font-family:var(--font-base);font-size:var(--font-base-size);width:100%;transition:border-color .12s,box-shadow .12s;outline:none}.input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-dim)}.input::placeholder{color:var(--text-dim)}.select{background:var(--surface-4);border:1px solid var(--surface-border);color:var(--text);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-square);width:100%}.top-space{margin-top:var(--space-md)}.modal-hidden-blocker{position:fixed;inset:0;z-index:20000;pointer-events:auto;background:#00000026}.modal-restore-btn{position:fixed;bottom:24px;right:24px;z-index:10001;pointer-events:auto;width:36px;height:36px;background:#0a0c10eb;border:1px solid rgba(255,255,255,.14);border-radius:50%;color:#e2e8f0cc;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 8px #00000080;transition:background .15s,color .15s}.modal-restore-btn:hover{background:#1e232cf2;color:#fff}.modal-hide-btn{background:none;border:none;cursor:pointer;color:#94a3b880;font-size:15px;padding:2px 5px;line-height:1;border-radius:4px;transition:color .15s,background .12s}.modal-hide-btn:hover{color:#e2e8f0e6;background:#ffffff12}.log{overflow-y:auto;height:100%;background:var(--surface-3);border-radius:var(--radius-rounded);padding:var(--space-sm);border:1px solid var(--surface-border);box-shadow:var(--shadow-light)}.log-entries{overflow-y:auto;scrollbar-width:thin}.log-entry{margin-bottom:4px}.log-time{color:var(--text-dim);margin-right:var(--space-sm);font-size:var(--font-sm);font-family:var(--font-mono)}.log-content{color:var(--text-muted);font-size:var(--font-sm)}.log-card-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.log-card{width:36px;height:auto;border-radius:4px;border:1px solid var(--surface-border)}
