/* Duo: a quiet working surface, a vivid stage, and one continuous unfolding. */
:root { --duo-ink:#20212b; --duo-muted:#71737f; --duo-accent:#6155df; --duo-line:rgba(38,36,60,.09); }
button { touch-action:manipulation; cursor:pointer; transition:background .16s,transform .16s,box-shadow .16s; }
button:active:not(:disabled) { transform:scale(.97); }
button:disabled { opacity:.38; cursor:default; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:3px solid #9686ff; outline-offset:3px; }
button { -webkit-user-select:none; user-select:none; }
.entry-shell { background:radial-gradient(ellipse at 78% 8%,#5b4a9c 0,transparent 45%),radial-gradient(ellipse at 12% 92%,#dc917b 0,transparent 48%),#11121d; }
.entry-shell::before,.sunset-orb { display:none; }
.entry-card { width:min(820px,100%); border-radius:42px; border-color:#ffffff22; background:linear-gradient(140deg,#ffffff10,#ffffff03); backdrop-filter:blur(32px); }
.school-chip { border:0; color:#c7c0de; background:transparent; letter-spacing:.12em; }
.entry-heading h1 { font-size:clamp(7rem,16vw,12rem); font-weight:600; margin:12px 0 24px; letter-spacing:-.1em; }
.entry-heading h1 span { color:#b8a3ff; }
.entry-heading p { color:#c0bdca; }
.role-card { border-radius:26px; background:#ffffff0b; grid-template-columns:60px 1fr; text-align:left; justify-items:start; min-height:130px; gap:4px 18px; }
.role-icon { grid-row:1/3; border:0; background:#ffffff12; color:#d9cffd; font-size:2rem; }
.role-card small { color:#bab8c6; }
.controller-role { color:#262132; background:linear-gradient(130deg,#ece7ff,#dfcdf0 60%,#f5c8b8); }
.controller-role small { color:#635974; }.controller-role .role-icon { color:#6b509f; background:#ffffff66; }
.role-card:hover { border-color:#baabed; background:#ffffff18; }.controller-role:hover { background:#f0e7ff; }
.room-join .primary-button { background:#c8b5ff; color:#201c30; }

/* The controller stays in a single landscape viewport. Only its rails scroll. */
body[data-role="controller"] { background:#eae9f0; color:var(--duo-ink); color-scheme:light; }
.controller-shell { height:100dvh; min-height:0; display:grid; grid-template-rows:76px minmax(0,1fr) 86px; padding:0; overflow:hidden; background:radial-gradient(ellipse at 5% 0,#e3dcfa,transparent 48%),radial-gradient(ellipse at 100% 100%,#f5e0d7,transparent 46%),#eeedf3; }
.controller-topbar { height:auto; min-height:0; padding:8px 22px; display:flex; justify-content:space-between; border:0; background:transparent; }
.brand-lockup { gap:12px; }.brand-lockup > span { width:54px; height:54px; padding-right:4px; border:0; border-radius:18px; color:#fff; background:#292537; font-size:24px; letter-spacing:-.1em; box-shadow:0 4px 12px #29253716; }
.brand-lockup b { color:#272433; font-size:16px; letter-spacing:-.02em; }.brand-lockup small { color:#888291; font-size:11px; }
.console-status { display:flex; align-items:center; gap:8px; font-size:12px; color:#746d83; }.console-status #clockNow { margin-left:10px; padding-left:16px; border-left:1px solid #26223420; font-variant-numeric:tabular-nums; }
.status-dot.online { background:#45b893; box-shadow:0 0 0 4px #45b89315; }
.header-actions,.stage-actions { display:flex; align-items:center; gap:8px; }
.header-icon,.fullscreen-button { display:flex; align-items:center; justify-content:center; gap:8px; min-width:60px; min-height:60px; padding:0 16px; border:1px solid #ffffffb0; border-radius:20px; color:#494353; background:#ffffff80; font-size:22px; }
.fullscreen-button b { font-size:12px; font-weight:600; }.fullscreen-button[aria-pressed="true"] { color:#5a46bf; background:#e0d7ff; }
.controller-main { min-height:0; display:grid; grid-template-columns:190px minmax(0,1fr) 242px; gap:14px; padding:0 16px; }
.run-sidebar { overflow:hidden; gap:0; border-right:1px solid #3430470c; padding-right:10px; }
.delay-card { display:flex; align-items:center; gap:8px; flex-wrap:wrap; min-height:40px; padding:4px 10px; background:none; border:0; box-shadow:none; }
.delay-card span { font-size:10px; color:#8a8594; }.delay-card strong { font-size:11px; color:#696477; font-weight:500; }
.schedule-nav-head { padding:0 6px; height:60px; flex-shrink:0; }.schedule-nav-head h2 { font-size:14px; }.schedule-nav-head .icon-button { background:transparent; border:0; color:#73698a; }
.schedule-list { display:flex; flex-direction:column; gap:5px; min-height:0; overflow:auto; scrollbar-width:thin; scrollbar-color:#bdb5ca transparent; }
.schedule-item { flex-shrink:0; min-height:66px; grid-template-columns:1fr 24px; gap:3px; padding:9px 10px; border:0; border-radius:16px; color:#777180; background:transparent; }
.schedule-item > span { grid-column:1; color:#98909f; font-size:10px; }.schedule-item > b { grid-column:1; font-size:12px; font-weight:550; }.schedule-item > i { grid-column:2; grid-row:1/3; background:transparent; color:#a49aa8; width:24px; }
.schedule-item.active { background:#ffffffdd; color:#4a3b86; box-shadow:0 3px 10px #31245008; border:0; }.schedule-item.active > span { color:#9b89bc; }.schedule-item.active b { font-weight:750; }
.live-console { min-height:0; gap:12px; overflow:hidden; }
.current-run-card { flex-shrink:0; min-height:0; display:grid; grid-template-columns:1fr auto; gap:12px; justify-items:stretch; padding:18px; border-radius:24px; color:#fff; background:radial-gradient(ellipse at 105% -10%,#615183,transparent 70%),#282332; border:1px solid #ffffff20; box-shadow:0 8px 24px #2922390d; }
.current-run-card::after { display:none; }.run-title { min-width:0; align-self:center; }.run-meta { font-size:10px; gap:8px; color:#c6b9da; letter-spacing:.06em; }.run-meta b { color:#baabc7; font-weight:500; }
.current-run-card h1 { margin:7px 0 0; font-size:clamp(16px,1.85vw,28px); text-align:left; font-weight:650; letter-spacing:-.05em; line-height:1.25; }
.main-timer { font-size:clamp(38px,4.3vw,66px); font-weight:350; color:#f1eafd; letter-spacing:-.06em; align-self:center; }
.timer-actions { grid-column:1/-1; width:100%; margin:0; gap:8px; grid-template-columns:1fr 1.25fr 1fr; }.touch-button { border-radius:14px; font-size:13px; font-weight:600; }
.touch-button.primary { background:#e2d5ff; color:#443460; }.touch-button.secondary { background:#ffffff0b; color:#e4d9f1; border-color:#ffffff0c; }
.time-adjust-row { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); gap:5px; margin:0; }.time-adjust-row button { min-height:60px; padding:0 6px; border:0; background:#ffffff05; color:#bfb2cf; font-size:11px; border-radius:12px; }
.activity-tool { min-height:0; flex:1; overflow:auto; padding:20px; border:1px solid #fff; border-radius:24px; color:#292433; background:#ffffffbb; box-shadow:none; scrollbar-width:thin; scrollbar-color:#d2c8dc transparent; }
.utility-sidebar { display:flex; min-height:0; overflow:auto; gap:10px; grid-column:auto; scrollbar-width:thin; }
.panel { border:1px solid #ffffffd0; background:#ffffff80; box-shadow:none; border-radius:24px; padding:12px; }.panel-title-row h2 { font-size:13px; padding-left:4px; }.panel-title-row .tiny-button { padding:0 9px; color:#84778f; border:0; background:transparent; font-size:11px; }
.score-controls { gap:7px; margin-top:4px; }.score-control-row { padding:9px; gap:6px; border:0; border-radius:16px; background:#ffffffaa; }.score-control-row > div:first-child { gap:0; }.score-control-row b { font-size:12px; color:#61536b; }.score-control-row span { display:none; }.score-control-row strong { color:#3c304e; font-size:23px; font-weight:600; font-variant-numeric:tabular-nums; }
.score-buttons { gap:5px; }.score-buttons button { color:#7d6a8f; font-size:13px; border:0; border-radius:12px; background:#eee9f4; }.score-buttons button:nth-child(2) { color:#62518e; background:#e5dcf3; }
.extras-button { flex-shrink:0; padding:0 8px; border:1px solid #ffffffaa; border-radius:18px; background:#ffffff70; color:#807089; font-size:12px; }
.controller-dock { position:static; min-height:0; padding:10px 18px max(10px,env(safe-area-inset-bottom)); gap:8px; border:0; background:transparent; backdrop-filter:none; }
.controller-dock button { flex:1; max-width:180px; min-width:0; display:flex; gap:10px; align-items:center; justify-content:center; border:1px solid #ffffffd0; border-radius:18px; color:#71677e; background:#ffffff96; font-size:12px; font-weight:600; }
.controller-dock i { font-style:normal; font-size:21px; line-height:1; color:#a693bb; }.controller-dock button[data-effect="blackout"] { background:#302936; color:#ece3f4; border-color:#302936; }.controller-dock button.active { background:#d8c7f4; border-color:#bd9fe8; color:#5a377a; }
.controller-shell button,.app-dialog button { min-height:60px; }

/* Activity controls share the same touch hierarchy, not 17 unrelated panels. */
.tool-head { padding-bottom:14px; gap:12px; border-color:var(--duo-line); }.tool-head span { color:#9e90b6; font-size:9px; letter-spacing:.16em; }.tool-head h2 { font-size:20px; color:#342b40; font-weight:650; }.tool-head p { color:#96909b; font-size:11px; }.tool-head > b { color:#8469a3; background:#f0e9f8; border:0; font-weight:600; }
.activity-tool button { color:#77638b; background:#eee8f4; border:1px solid transparent; border-radius:14px; font-size:12px; font-weight:600; }
.activity-tool .tool-main-button,.activity-tool .correct-button { background:#d6c6ee!important; color:#593e77!important; box-shadow:none; }
.activity-tool input,.activity-tool select,.activity-tool textarea { color:#45384f; background:#f7f3fa; border:1px solid #e9e1ef; border-radius:12px; min-height:60px; }
.activity-tool input[type="range"] { accent-color:#9b7bbd; background:transparent; padding:0; }
.activity-tool .tool-action-grid { margin-top:12px; gap:8px; }.tool-placeholder { min-height:150px; color:#9f96a8; }.tool-placeholder p { font-size:12px; }
.opening-control { display:grid; grid-template-columns:1fr 160px; align-items:center; gap:12px; min-height:160px; border-radius:18px; padding:20px; background:radial-gradient(ellipse at 90% 100%,#e8d6ef,transparent 75%),#f2edf9; }
.opening-copy > span { color:#a38cbd; font-size:9px; letter-spacing:.18em; }.opening-copy h2 { font-size:clamp(23px,2.6vw,40px); letter-spacing:-.06em; font-weight:650; margin:10px 0; color:#4c365f; }.opening-copy p { font-size:11px; line-height:1.6; margin:0; color:#9c8aa9; }
.activity-tool .intro-launch { min-height:124px; padding:14px; display:flex; flex-direction:column; align-items:start; justify-content:space-between; border:1px solid #ffffffa0; border-radius:24px; background:linear-gradient(125deg,#c5b1e8,#debedc 65%,#efc8b9); color:#604574; text-align:left; box-shadow:0 10px 20px #9580a51b; }.intro-launch span { font-size:30px; }.intro-launch b { font-size:17px; font-weight:600; }#skipIntro { grid-column:1/-1; }
.distance-grid section,.stopwatch-list section,.vote-option-list section { background:#f8f5fa; border-color:#eee6f1; }.distance-grid label,.wide-field,.mafia-settings label,.award-inputs label { color:#918199; font-size:11px; }.tool-subtitle { font-size:12px; color:#8a7a94; }
.round-console,.rope-console,.initial-control,.role-handoff { padding:14px; border-color:#ece3f2; background:#f6f1fa; }.round-console strong,.rope-console strong,.reserve-number,.stopwatch-list strong { color:#72518c; font-size:56px; }.round-console > div:first-child { display:flex; align-items:center; gap:20px; }.round-console span { color:#a08aad; font-size:12px; }.round-history,.file-status,.consent-note { color:#a293ab; font-size:11px; }.round-history span { margin-right:12px; }.water-actions { background:#eaf4f1; }.water-actions button { background:#dceee7; }
.rope-console { grid-template-columns:1fr 1fr; }.rope-console > div { grid-column:1/-1; display:flex; gap:6px; width:100%; }.rope-console > div button { flex:1; }#ropeCount { grid-column:2; grid-row:1/3; align-self:stretch; min-height:136px; color:#f8f0ff; background:#9772b7; font-size:42px; border-radius:22px; }.best-records { grid-template-columns:repeat(2,1fr); gap:8px; }.best-records span { font-size:11px; color:#aa98b6; }.best-records b { color:#775989; float:right; }
.stopwatch-list strong { font-size:30px; }.file-drop { border-color:#cdb9dd; background:#f7f1fc; color:#8e749f; }.file-drop span { font-size:12px; }.consent-note { background:#f0eaf5; }.person-preview { background:#e9e1ef; }.secret-word { padding:20px; color:#66477d; background:#eadff5; border:0; font-size:40px; }.initial-control h3 { color:#8050a4; }.role-handoff strong { color:#9465b5; }.role-handoff p { color:#a18aaf; }.rules-card { background:#f6effb; border:0; }.rules-card b { color:#8b63a9; }.rules-card p { color:#9a8aa5; }.photo-count-button { background:#d2bce9!important; color:#66437f!important; }

/* Dialogs sit inside document fullscreen, with all secondary setup out of the way. */
.app-dialog { color:#4c3c59; background:#f7f3fa; border:1px solid #ffffff; border-radius:30px; color-scheme:light; }.app-dialog::backdrop { background:#19122177; backdrop-filter:blur(12px); }.dialog-sheet > header span { color:#aa94bc; }.dialog-sheet label { color:#8e769f; }.dialog-sheet p { color:#9887a3; font-size:13px; line-height:1.7; margin:0; }.app-dialog input,.app-dialog select,.app-dialog textarea { color:#53415f; background:#fff; border-color:#e6dbed; min-height:60px; }.app-dialog button { color:#8b6da2; background:#eae0f2; border:0; border-radius:14px; }.app-dialog .primary-button { color:#fff; background:#9e7bb9; }.app-dialog .danger-button { color:#b95673; background:#f6e4ed; }.dialog-close { min-width:60px; }.team-setup-card { border-color:#e9dfef; background:#fff; }.team-members { color:#a090a9; }.pairing-code { padding:24px; text-align:center; color:#73518f; font-size:80px; letter-spacing:.15em; background:#ede4f5; border-radius:22px; }.pairing-code b { font-weight:500; }

/* Stage: readable typography framed by a continuous, luminous horizon. */
.stage-shell { display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:100dvh; background:#101018; }
.stage-sky { background:radial-gradient(ellipse at 7% 108%,#b97569 0,transparent 45%),radial-gradient(ellipse at 98% -10%,#685bb3 0,transparent 45%),linear-gradient(140deg,#262438,#111118 60%); }
.stage-sky::before { width:90vw; height:75vw; left:30vw; right:auto; top:30vh; border-radius:50%; background:linear-gradient(135deg,#8778cf70,#e5b0a312 65%); transform:rotate(-30deg); opacity:.45; filter:blur(55px); }.stage-sky i { display:none; }
.stage-header { height:auto; min-height:92px; grid-template-columns:1fr auto 1fr; gap:20px; padding:20px 3vw 8px; border:0; background:transparent; }
.stage-header .stage-brand { display:flex; flex-direction:row; align-items:center; gap:18px; }.stage-brand b { font-size:38px; letter-spacing:-.1em; font-weight:550; }.stage-brand span { color:#b0a3bf; font-size:12px; font-weight:400; letter-spacing:0; }
.stage-live-bar { padding:12px 24px; border:1px solid #ffffff12; border-radius:25px; background:#ffffff07; backdrop-filter:blur(12px); gap:4px 20px; }.stage-live-bar > b { font-size:clamp(14px,1.25vw,24px); font-weight:550; color:#dcd2e7; }.stage-live-bar > span { min-width:90px; color:#d5c7ef; font-size:clamp(28px,2.6vw,50px); }.stage-live-bar small { font-size:11px; color:#97899e; }.stage-live-bar small b { color:#ac9db5; }
.stage-actions { justify-self:end; }.stage-actions button { color:#b5a7c8; background:#ffffff07; border-color:#ffffff0b; border-radius:18px; }.stage-actions .status-dot { margin-right:4px; }.stage-actions .header-icon { font-size:18px; }
.stage-content { height:auto; min-height:0; padding:3vh 4vw; overflow:hidden; }.stage-activity h1 { font-size:clamp(60px,8vw,154px); font-weight:650; line-height:1.05; letter-spacing:-.07em; margin:18px 0; }.stage-kicker { color:#bda6d7; font-size:clamp(12px,1.1vw,21px); font-weight:500; letter-spacing:.2em; }.stage-timer { font-size:clamp(90px,11vw,210px); font-weight:230; color:#e1d5f0; }.stage-next { font-size:clamp(16px,1.5vw,29px); color:#9788a2; }.stage-next b { color:#b9a8c9; font-weight:500; }
.stage-scoreboard { height:auto; min-height:0; padding:0 3vw 2vh; gap:12px; border:0; background:transparent; backdrop-filter:none; }.stage-score-team { min-height:92px; border:1px solid #ffffff12!important; border-radius:22px; padding:14px 22px; background:#ffffff08; backdrop-filter:blur(14px); gap:2px 12px; }.stage-score-team span { color:#a899b0; font-size:11px; letter-spacing:.08em; }.stage-score-team b { font-size:clamp(20px,1.8vw,34px); font-weight:550; }.stage-score-team strong { color:#d9c8ed; font-weight:350; font-size:clamp(36px,3.5vw,65px); }
.stage-tool-title { font-size:clamp(42px,5.5vw,104px); font-weight:650; }.stage-team-grid > div { min-height:220px; background:#ffffff07; border-radius:30px; border-width:1px; border-top-width:3px; }.stage-team-grid b { font-weight:600; }.result-ranking > div,.stopwatch-ranking > div { background:#ffffff08; border-color:#ffffff12; border-radius:24px; padding:1.5vh 2.2vw; }.result-ranking span,.stopwatch-ranking span { color:#b49dce; }.result-ranking .place-1 { background:linear-gradient(100deg,#b89ed826,#f2c7b214); border-color:#cab6e33b; box-shadow:none; }.result-ranking strong,.stopwatch-ranking strong { color:#e0cdef; }.tool-timer,.rope-count,.photo-number { color:#e7d9f6; }.stage-answer { background:#e1cef2; color:#584169; border:0; border-radius:28px; padding:1.5vh 3vw; box-shadow:0 20px 80px #b997d017; }.music-disc { border-color:#ac91ce70; background:repeating-radial-gradient(circle,#221e30 0 12px,#3e344e 13px 16px); color:#c7addf; box-shadow:0 0 90px #ac91ce18; }
.stage-vote-bars em { background:linear-gradient(90deg,#b593dd,#e8b6ad); }.stage-vote-bars strong { color:#d2b6e8; }.word-stage-grid { width:min(1250px,92%); gap:18px; }.word-stage-grid > div { padding:5vh 2vw; border-radius:40px; background:#ffffff08; border-color:#ffffff12; }.word-stage-grid > div:last-child { background:linear-gradient(140deg,#ac8fc522,#e6b7af11); }.word-stage-grid small { color:#b19cbd; }.word-stage-grid strong { color:#e8d5f5; }.initial-stage h1 { color:#e9d9f5; font-size:clamp(130px,20vw,360px); }.award-podium > div { background:linear-gradient(#c9adea22,#b69ad00a); }.award-podium span { color:#ceb0e5; }.special-awards b { color:#e2c6f2; }.sound-unlock { border:1px solid #ffffff66; color:#473650; background:linear-gradient(120deg,#e2d6fa,#f0cec5); border-radius:28px; font-size:18px; box-shadow:0 24px 100px #0006; }
.stage-shell[data-scene="mafia"] .stage-sky { background:#141622; }.stage-shell[data-scene="music"] .stage-sky { background:radial-gradient(ellipse at 50% 100%,#5c376a,transparent 70%),#15121e; }

/* Hinge-based unfolding. Transform/opacity dominate; blur is brief and bounded. */
.duo-intro { position:fixed; z-index:22; inset:0; display:grid; place-items:center; overflow:hidden; background:#0c0b12; opacity:var(--intro-opacity,1); perspective:1800px; pointer-events:none; }
.duo-surface { position:relative; width:82vw; height:77vh; transform:translateX(var(--fold-offset,-25%)) scale(var(--fold-scale,.86)); transform-style:preserve-3d; will-change:transform; }
.duo-half { position:absolute; top:0; bottom:0; width:50%; overflow:hidden; border:1px solid #ffffff45; display:flex; align-items:end; padding:35px; background:radial-gradient(ellipse at 110% 130%,#f8d4c5 0,#bb92c4 35%,transparent 73%),radial-gradient(ellipse at 5% -20%,#a898f5,transparent 70%),#292043; }
.duo-half > span { color:#ffffff30; font-weight:650; font-size:clamp(60px,13vw,200px); letter-spacing:-.11em; line-height:1; }.duo-right { right:0; border-radius:0 42px 42px 0; border-left:0; }.duo-left { left:0; border-radius:42px 0 0 42px; border-right:0; transform-origin:100% 50%; transform:rotateY(var(--fold-angle,180deg)); background:radial-gradient(ellipse at 0% 120%,#f7c9b3,#ab81bf 50%,#7261b5); backdrop-filter:blur(var(--fold-blur,0px)); box-shadow:20px 0 50px #0002; backface-visibility:visible; will-change:transform; }
.duo-left::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#fff0,#ffffff3b 88%,#ffffffaa); opacity:calc(var(--fold-blur,0px) / 18px); }
.duo-hinge { position:absolute; z-index:2; left:50%; top:0; bottom:0; width:2px; background:linear-gradient(transparent,#f7e0ff99,transparent); box-shadow:0 0 28px 10px #ffffff15; }
.duo-title { position:absolute; z-index:3; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; opacity:var(--title-opacity,0); filter:blur(var(--fold-blur,0px)); color:#fff9ff; }.duo-title small { font-size:clamp(14px,1.8vw,30px); letter-spacing:.08em; }.duo-title strong { font-size:clamp(60px,10vw,180px); font-weight:650; letter-spacing:-.085em; line-height:1.1; text-shadow:0 4px 45px #40255430; }.duo-title > span { font-size:clamp(14px,1.5vw,25px); color:#f3e6ff; }
.duo-count { position:absolute; z-index:4; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:15px; opacity:1; transition:opacity .25s,filter .4s; }.duo-count small { font-size:clamp(14px,1.5vw,24px); font-weight:400; letter-spacing:.12em; }.duo-count strong { font-size:clamp(170px,25vw,420px); font-weight:250; line-height:1; letter-spacing:-.08em; padding-right:.08em; color:#fff4ff; }.duo-count > span { font-size:12px; letter-spacing:.25em; color:#dccbe9; }.duo-intro[data-phase="reveal"] .duo-count { opacity:0; filter:blur(15px); }
.intro-active .stage-actions { position:relative; z-index:32; }.stage-header:has(.stage-actions) { z-index:24; }.intro-active .stage-header { z-index:32; }.intro-active .stage-brand,.intro-active .stage-live-bar { opacity:0; }
@media (max-width:1150px) and (min-width:761px) {
  .controller-main { grid-template-columns:162px minmax(0,1fr) 210px; gap:10px; padding:0 12px; }.controller-topbar { padding:8px 15px; }.current-run-card { padding:14px; gap:8px; }.activity-tool { padding:15px; }.opening-control { grid-template-columns:1fr 124px; padding:15px; }.opening-copy h2 { font-size:25px; }.intro-launch b { font-size:15px; }.tool-head p { font-size:10px; }.score-control-row { padding:7px; }.panel { padding:9px; }
}
@media (max-height:720px) and (min-width:761px) {
  .controller-shell { grid-template-rows:68px minmax(0,1fr) 80px; }.current-run-card { gap:7px; padding:12px; }.controller-main { gap:10px; }.panel-title-row { min-height:40px; }.score-control-row { padding:5px 8px; gap:3px; }.score-control-row strong { font-size:20px; }.score-controls { gap:4px; }.opening-control { min-height:125px; padding:15px; }.activity-tool .intro-launch { min-height:104px; }.stage-header { min-height:72px; padding-top:8px; }.stage-score-team { min-height:78px; }.stage-tool-title { font-size:5vw; }
}
@media (max-width:760px) {
  .controller-shell { height:auto; min-height:100dvh; overflow:visible; display:block; padding-bottom:86px; }.controller-topbar { min-height:76px; padding:8px 12px; }.console-status { display:none; }.brand-lockup small { display:none; }.fullscreen-button b { display:none; }.controller-main { display:flex; flex-direction:column; padding:0 12px; }.live-console { order:0; overflow:visible; }.current-run-card { padding:16px; }.main-timer { font-size:44px; }.activity-tool { min-height:300px; overflow:visible; }.utility-sidebar { order:1; display:block; overflow:visible; }.score-controls { grid-template-columns:1fr 1fr; }.extras-button { width:100%; margin-top:10px; }.run-sidebar { order:2; border:0; }.schedule-list { max-height:350px; min-height:0; }.controller-dock { position:fixed; z-index:20; height:80px; overflow:auto; background:#ece6f3e8; backdrop-filter:blur(16px); padding:8px; }.controller-dock button { flex:0 0 84px; flex-direction:column; gap:3px; font-size:10px; }.opening-control { grid-template-columns:1fr 130px; padding:15px; }.tool-action-grid { grid-template-columns:repeat(3,1fr); }.role-grid { gap:10px; }.entry-card { padding:28px; }.stage-brand span { display:none; }.stage-header { grid-template-columns:auto 1fr auto; gap:8px; }.stage-live-bar { padding:8px 12px; }.stage-live-bar small { display:none; }.stage-live-bar > b { max-width:22vw; }.stage-live-bar > span { min-width:60px; font-size:24px; }.stage-scoreboard { gap:6px; }.stage-score-team { padding:10px; }.stage-score-team b { font-size:13px; }.stage-score-team strong { font-size:25px; }.stage-score-team span { display:none; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }.duo-intro { perspective:none; }.duo-left { box-shadow:none; }.duo-title { filter:none; } }
.score-controls { gap:4px; }.score-control-row { padding:6px 8px; gap:4px; }
.duo-left::after { opacity:var(--fold-light,0); }
.duo-half > span { opacity:var(--title-opacity,0); }
.duo-intro[data-phase="countdown"] .duo-half { border-radius:42px; }
.intro-active .stage-header { z-index:24; }
.controller-shell .icon-button { min-width:60px; }
.score-buttons button { min-width:60px; }
.controller-shell .tiny-button { min-width:60px; }
.photo-stage .photo-number { font-size:clamp(140px,20vw,320px); line-height:1; }
.photo-stage h1 { font-size:clamp(40px,6vw,110px); margin:1vh 0; }
.nunchi-stage-number { font-size:min(28vw,46vh); }
@media (min-width:761px) and (max-width:1150px) { .controller-main { grid-template-columns:154px minmax(0,1fr) 228px; } }
