:root{color-scheme:dark;--ink: #f4f0e6;--muted: #a39b90;--line: #2e2a26;--panel: #1c1a17;--bg: #12110e;--cream: #f4f0e6;--danger: #e24b3b}*{box-sizing:border-box}html,body,#root{margin:0}body{min-height:100dvh;background:var(--bg);color:var(--ink);font-family:Outfit,Avenir Next,sans-serif;font-size:16px}button,summary,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus{outline:none}:focus-visible{outline:2px solid var(--cream);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,p{margin:0}.app,.shell{min-height:100dvh}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 16px 8px;background:#12110e}.studio-switch{flex:none}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand h1{font-size:16px;letter-spacing:.16em;font-weight:700}.brand p{color:var(--muted);font-size:12px}.mark{width:22px;height:22px;display:grid;grid-template-rows:1fr 1fr;border-radius:4px;overflow:hidden;border:1px solid #3c362f;flex:none}.mark i:first-child{background:#f4f4f4}.mark i:last-child{background:#0c4cb8}.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.history{display:flex;gap:6px}.history .btn{min-height:36px;padding:0 12px}.lede{padding:0 16px 8px;color:var(--muted);font-size:14px;max-width:68ch;line-height:1.45}.error{margin:0 16px 8px;color:#ffb4a8;font-size:14px}.btn{min-height:44px;padding:0 14px;border-radius:8px;border:1px solid #3c362f;background:#221f1b;color:var(--ink);font-size:14px;font-weight:600}.btn:hover{border-color:#6b6258}.btn.on,.btn[aria-pressed=true]{background:var(--cream);color:#171512;border-color:var(--cream)}.btn.wide{width:100%}.gate{min-height:100dvh;display:grid;place-items:center;padding:24px}.gate-card{width:min(380px,100%);display:grid;gap:12px;padding:28px 24px;background:#1c1a17;border:1px solid #3c362f;border-radius:16px}.gate-card h1{font-size:22px;letter-spacing:.18em;font-weight:700}.gate-card p{color:var(--muted);font-size:14px;line-height:1.4}.gate-error{color:#ffb4a8}.menu{position:relative}.menu summary{list-style:none;min-height:44px;display:grid;place-items:center;padding:0 14px;border-radius:8px;background:var(--cream);color:#171512;font-weight:650;font-size:14px;cursor:pointer}.menu summary::-webkit-details-marker{display:none}.menu-panel{position:absolute;right:0;top:calc(100% + 6px);width:min(280px,80vw);background:var(--panel);border:1px solid #3c362f;border-radius:10px;padding:6px;z-index:12;display:grid;gap:4px;box-shadow:0 12px 40px #00000059}.menu-panel button{text-align:left;min-height:44px;padding:8px 10px;border-radius:8px;border:0;background:transparent;color:var(--ink);font-size:14px}.menu-panel button:hover{background:#2a2622}.workspace{min-width:0}.design-head{padding:4px 16px 0}.head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}.head-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.pair{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.pair .field{flex:1;min-width:140px}.pair .btn{flex:1}.kicker{color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}.design-head h2,.modal-card h2{margin-top:2px;font-size:22px;font-weight:650;letter-spacing:-.02em}.change,.state-note{margin-top:4px;color:var(--ink);font-size:14px;max-width:68ch;line-height:1.4}.segment{display:flex;padding:3px;background:var(--panel);border-radius:10px;border:1px solid var(--line);width:max-content;max-width:100%}.segment button{min-height:36px;padding:0 12px;border-radius:8px;border:0;background:transparent;color:var(--muted);font-weight:600;font-size:14px}.segment button.on{background:var(--cream);color:#171512}.stage{padding:12px 16px 4px}.stage-mat{padding-bottom:8px}.stage-mat:after{content:"";display:block;width:min(100%,720px);height:8px;margin:10px auto 0;background:linear-gradient(90deg,#b4332c 0 42%,#d7a31a 42% 100%)}.fit-wrap{width:100%}.fit{width:100%;overflow-x:auto;overflow-y:hidden;display:flex}.fit-sizer{flex:none;position:relative}.fit-scale{transform-origin:top left}.fit-placeholder{width:100%}.hint{margin:6px 0 0;color:var(--muted);font-size:12px}.controls{padding:10px 16px 0;display:grid;gap:8px}.states,.more,.toggles,.samples{display:flex;flex-wrap:wrap;gap:8px}.more .btn{min-height:36px;font-size:13px;padding:0 10px;background:transparent}.more .btn.on,.more .btn[aria-pressed=true]{background:var(--cream);color:#171512;border-color:var(--cream)}.strip{display:flex;gap:10px;overflow-x:auto;padding:14px 16px 18px;scroll-snap-type:x mandatory}.strip-card,.gallery-card{text-align:left;border:1px solid #3c362f;border-radius:10px;background:#1a1815;padding:8px;color:inherit}.strip-card{flex:none;width:200px;scroll-snap-align:start}.strip-card.on,.gallery-card.on{border-color:var(--cream);background:#26231f}.strip-label,.g-name,.g-change{display:block}.strip-label{margin-top:6px;font-size:12px;color:#d9d2c6}.strip-label b{font-variant-numeric:tabular-nums;margin-right:4px;color:var(--ink)}.trio,.gallery{padding:12px 16px 8px;display:grid;gap:16px}.trio figure{margin:0}.trio figcaption,.g-name{margin-top:8px;font-size:14px;font-weight:650}.g-change{margin-top:2px;color:var(--muted);font-size:13px;line-height:1.35}.gallery{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:30;max-height:min(82dvh,760px);overflow:auto;background:#1c1a17;border-radius:16px 16px 0 0;transform:translateY(110%);transition:transform .2s ease;padding-bottom:calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain}.sheet.open{transform:translateY(0)}.grab{width:40px;height:4px;border-radius:4px;background:#3c362f;margin:8px auto 4px}.sheet-head,.modal-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px 0}.sheet-head h2{font-size:18px}.sheet-body{padding:12px 16px 8px;display:grid;gap:12px}.backdrop{position:fixed;inset:0;background:#00000080;z-index:25;border:0}fieldset{border:1px solid var(--line);border-radius:12px;padding:12px;margin:0;display:grid;gap:8px}legend{padding:0 6px;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase}legend.white{color:var(--ink)}legend.blue{color:#8eb6ff}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field{display:grid;gap:4px;font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.04em}.field input,.field select,.yuko-row b{font-weight:500;letter-spacing:0;color:var(--ink)}input,select{min-height:44px;font-size:16px;background:#12100e;color:var(--ink);border:1px solid #3c362f;border-radius:8px;padding:0 10px;width:100%}.yuko-row{display:grid;grid-template-columns:1fr 44px 36px 44px;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em}.yuko-row b{text-align:center;font-size:18px}.board-num{display:flex;align-items:baseline;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em}.board-num strong{font-size:28px;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:0}.note{margin:0;color:#d7c4a2;font-size:13px;font-weight:500;letter-spacing:0;line-height:1.4}.rules{color:var(--muted);font-size:14px}.rules summary{cursor:pointer;color:var(--ink);font-weight:600;min-height:44px;display:grid;align-items:center}.rules p{margin:0 0 8px;line-height:1.45}.legal{color:#7d766d;font-size:12px;line-height:1.45}.export-bay{position:fixed;left:-20000px;top:0;width:1100px;pointer-events:none}.modal{position:fixed;inset:0;background:#0a0908b8;display:grid;place-items:center;z-index:40;padding:16px}.modal-card{display:block;background:#1c1a17;border:1px solid #3c362f;padding:20px;border-radius:12px;width:min(380px,100%)}.modal-card .btn{margin-top:16px}.mockup-frame{position:relative;margin:8px 16px 4px;min-height:420px;height:min(68dvh,760px);border-radius:12px;overflow:hidden;background:#090807}.mockup-scene{position:absolute;left:0;top:0;transform-origin:0 0}.mockup-scene>img{display:block;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;user-select:none}.mockup-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.mockup-board{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;filter:blur(.4px) contrast(.94) saturate(.9) drop-shadow(0 10px 12px rgba(0,0,0,.5))}.mockup-falloff{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#fff3,#fff0 24%,#00000047),repeating-linear-gradient(0deg,rgba(0,0,0,.05) 0 1px,transparent 1px 3px);mix-blend-mode:multiply}.corner{position:absolute;z-index:2;width:22px;height:22px;margin:-11px 0 0 -11px;padding:0;border-radius:99px;border:2px solid #171512;background:var(--cream);box-shadow:0 0 0 1px #00000059;touch-action:none}.swatches{display:grid;grid-template-columns:1fr 1fr;gap:8px}.swatch{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 6px 0 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-weight:650;letter-spacing:.04em}.swatch input[type=color]{width:36px;height:36px;min-height:36px;padding:2px;border:0;background:transparent;cursor:pointer}@media(min-width:1100px){.shell{height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 380px;min-height:0;overflow:hidden}.stage-col{display:flex;flex-direction:column;overflow:hidden;min-height:0}.stage,.trio,.gallery,.mockup-frame{flex:1;min-height:0;height:auto}.stage,.trio,.gallery{overflow:auto}.design-head,.controls,.strip{flex:none}.sheet{position:static;transform:none;max-height:none;height:auto;border-radius:0;z-index:auto;overflow:auto;border-left:1px solid var(--line);background:#161410}.grab,.only-mobile,.backdrop{display:none}.gallery{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){.sheet{transition:none}}.board{width:var(--w);height:var(--h);box-sizing:border-box;background:var(--bezel-bg);padding:var(--bezel);border-radius:var(--radius);border:var(--border);overflow:hidden;font-family:var(--font),Impact,sans-serif;-webkit-user-select:none;user-select:none}.screen{height:100%;border-radius:var(--inner-radius);overflow:hidden;background:var(--screen-bg);display:flex;flex-direction:column;gap:var(--gap)}.board[data-layout=rail] .screen{display:grid;grid-template-columns:minmax(0,1fr) var(--mid) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0}.row,.rail-side{position:relative;min-width:0;min-height:0}.row{flex:1;display:flex;align-items:center;gap:12px;padding:0 18px}.row[data-osa=true],.rail-side[data-osa=true]{padding-bottom:34px}.row[data-side=white],.rail-side[data-side=white]{background:var(--white-bg);color:var(--white-fg);box-shadow:inset var(--stripe) 0 0 var(--stripe-w)}.row[data-side=blue],.rail-side[data-side=blue]{background:var(--blue-bg);color:var(--blue-fg);box-shadow:inset var(--stripe) 0 0 var(--stripe-b),inset 0 1px 0 var(--line)}.board[data-gap="1"] .row,.board[data-gap="1"] .footer{border-radius:12px}.row[data-win=true],.rail-side[data-win=true]{outline:4px solid var(--win);outline-offset:-4px;z-index:1}.hm-bar{position:absolute;left:0;top:0;bottom:0;width:7px;background:#e10600}.flag{width:48px;height:36px;object-fit:cover;display:block;flex:none;box-shadow:0 0 0 1px #00000059;background:#ddd}.flag.tile{display:grid;place-items:center;font-family:Outfit,sans-serif;font-size:11px;font-weight:700;letter-spacing:.04em;color:#111;background:#ececec}.bib{flex:none;min-width:1.4em;font-size:18px;font-weight:700;opacity:.72;font-variant-numeric:tabular-nums}.who{flex:1;min-width:0}.who[data-place=beside]{display:flex;align-items:baseline;gap:8px}.who[data-place=beside] .person{margin-top:0}.noc{font-size:var(--noc);font-weight:var(--weight-noc);letter-spacing:var(--track);line-height:.9;text-transform:uppercase}.person{margin-top:4px;font-size:var(--name);font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.9}.family{font-weight:var(--weight-noc);text-transform:uppercase}.board[data-team=true] .noc{font-size:calc(var(--noc) * 1.18)}.scorestack{flex:none;display:flex;flex-direction:column;align-items:flex-end;min-width:72px}.score,.clock{font-variant-numeric:tabular-nums;font-weight:var(--weight-score);line-height:.8}.score{font-size:var(--score)}.row[data-side=white] .score,.rail-side[data-side=white] .score{color:var(--score-w)}.row[data-side=blue] .score,.rail-side[data-side=blue] .score{color:var(--score-b)}.digits{display:inline-flex;align-items:center}.shidos{display:flex;gap:5px;flex:none}.shidos i{width:var(--shido);height:var(--shido);border-radius:var(--shido-radius);border:2px solid var(--shido-off);background:transparent;display:block}.shidos i.on{background:var(--shido-on);border-color:#1a1408}.hm{background:#e10600;color:#fff;font-family:Outfit,sans-serif;font-size:13px;font-weight:800;letter-spacing:.08em;padding:4px 6px;border-radius:2px}.lamps{display:flex;gap:6px;margin-top:4px;justify-content:flex-end}.lamps span{display:flex;align-items:center;gap:3px;font-size:10px;letter-spacing:.08em;font-weight:700;opacity:.45}.lamps span[data-on=true]{opacity:1}.lamps i{width:8px;height:8px;border-radius:99px;background:currentColor;opacity:.35;display:block}.lamps span[data-on=true] i{opacity:1;background:#ffd000}.osa{position:absolute;left:12px;right:12px;bottom:8px;display:flex;align-items:center;gap:8px;background:#000000b8;color:#fff;border-radius:4px;padding:4px 8px;font-family:Outfit,sans-serif;font-size:11px;font-weight:700;letter-spacing:.12em}.osa .track{flex:1;height:8px;border-radius:99px;overflow:hidden;background:linear-gradient(#fff,#fff) 50% 0 / 2px 100% no-repeat,#ffffff2e}.osa .track i{display:block;height:100%;background:#ffd000}.osa b{font-variant-numeric:tabular-nums;letter-spacing:0}.footer{flex:none;height:var(--foot-h);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:0 18px;background:var(--foot-bg);color:var(--foot-fg)}.meta{min-width:0;grid-column:1;justify-self:start}.round,.cat,.event{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.round{font-size:var(--meta);font-weight:700;letter-spacing:.14em}.cat,.event{margin-top:3px;color:var(--foot-muted);font-size:calc(var(--meta) * .9);letter-spacing:.04em}.event{letter-spacing:.16em;font-size:11px}.teamchip{margin-top:4px;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--win)}.result{grid-column:2;justify-self:center;text-align:center;font-size:var(--result);font-weight:700;letter-spacing:.12em;color:var(--win);line-height:.9}.result[data-kind=hansoku]{font-size:calc(var(--result) * .62);letter-spacing:.06em}.timeblock{grid-column:3;justify-self:end;text-align:right}.clock{font-size:var(--clock)}.clock[data-matte=true]{opacity:.5}.gslabel,.mattelabel{margin-top:2px;font-family:Outfit,sans-serif;font-size:11px;letter-spacing:.16em;font-weight:700}.gslabel{color:var(--gs)}.rail-side{display:flex;flex-direction:column;justify-content:center;gap:10px;padding:16px}.rail-side[data-side=blue]{align-items:flex-end}.rail-top{display:flex;align-items:center;gap:10px;width:100%;min-width:0}.rail-side[data-side=blue] .rail-top{flex-direction:row-reverse}.rail-side .who{min-width:0}.rail-side[data-side=blue] .who,.rail-side[data-side=blue] .person{text-align:right}.rail-sub{display:flex;align-items:center;gap:8px}.rail-side[data-side=blue] .rail-sub{flex-direction:row-reverse}.rail-mid{background:var(--foot-bg);color:var(--foot-fg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px;gap:4px;min-width:0}.rail-mid .round,.rail-mid .cat{max-width:100%}.rail-mid .result{font-size:calc(var(--result) * .72)}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2) format("woff2"),url(/assets/outfit-latin-400-normal-DMwTpYkH.woff) format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2) format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff) format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-600-normal-B7SfZ07L.woff2) format("woff2"),url(/assets/outfit-latin-600-normal-BEfTtDA7.woff) format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-700-normal-Cu9v6i1X.woff2) format("woff2"),url(/assets/outfit-latin-700-normal-D4itBLBr.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-condensed-latin-400-normal-Dc2u_eUW.woff2) format("woff2"),url(/assets/barlow-condensed-latin-400-normal-BXL2z6Kg.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/oswald-latin-500-normal-B-eyT0Dw.woff2) format("woff2"),url(/assets/oswald-latin-500-normal-DM85Di4w.woff) format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/oswald-latin-700-normal-vy6hmKSr.woff2) format("woff2"),url(/assets/oswald-latin-700-normal-UmC9Ev9x.woff) format("woff")}@font-face{font-family:Bebas Neue;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bebas-neue-latin-400-normal-9mHNbWWO.woff2) format("woff2"),url(/assets/bebas-neue-latin-400-normal-Bi-ndsyu.woff) format("woff")}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-narrow-latin-500-normal-BH-FPhCi.woff2) format("woff2"),url(/assets/archivo-narrow-latin-500-normal-Oafwxh5s.woff) format("woff")}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-latin-700-normal-DtADLsoy.woff2) format("woff2"),url(/assets/archivo-narrow-latin-700-normal-DxmyBkwC.woff) format("woff")}@font-face{font-family:Teko;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/teko-latin-500-normal-CnS-PWFz.woff2) format("woff2"),url(/assets/teko-latin-500-normal-DJUwy4_e.woff) format("woff")}@font-face{font-family:Teko;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/teko-latin-600-normal-Cj5MAY47.woff2) format("woff2"),url(/assets/teko-latin-600-normal-CSggg3rU.woff) format("woff")}@font-face{font-family:Chivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/chivo-latin-400-normal-BP0TbwmH.woff2) format("woff2"),url(/assets/chivo-latin-400-normal-DBaM4DNC.woff) format("woff")}@font-face{font-family:Chivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/chivo-latin-700-normal-w8tJISmu.woff2) format("woff2"),url(/assets/chivo-latin-700-normal-D76hz2nd.woff) format("woff")}@font-face{font-family:Russo One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/russo-one-latin-400-normal-BfOuQF9V.woff2) format("woff2"),url(/assets/russo-one-latin-400-normal-CosRecV9.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-condensed-latin-500-normal-BqaLkUoX.woff2) format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-500-normal-BLe87hIu.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-condensed-latin-600-normal-CRd5VyFf.woff2) format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-600-normal-6XnkKYvF.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-condensed-latin-700-normal-D8r4s4aS.woff2) format("woff2"),url(/assets/ibm-plex-sans-condensed-latin-700-normal-D3enqrvP.woff) format("woff")}
