:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:#17213b;background:#fbfaf6;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #5d5de5;outline-offset:3px}button:disabled{opacity:.45;cursor:not-allowed}button[hidden],div[hidden]{display:none!important}
.app-shell{max-width:1560px;margin:0 auto;padding:0 48px}.site-header{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8e9e8;gap:24px}.brand{font-size:22px;font-weight:900;letter-spacing:-.055em;display:flex;align-items:center;gap:12px;white-space:nowrap}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:#ffe487;transform:rotate(-9deg);width:43px;height:43px;border-radius:15px;font-size:28px;box-shadow:0 4px 0 #f6c652}.brand-accent{color:#5441d6}.header-right{display:flex;align-items:center;gap:20px}.prototype{font-size:12px;color:#6b678d;background:#eeeafa;border:1px solid #ded5fb;border-radius:40px;padding:7px 13px;font-weight:700}.text-button{border:none;background:none;font-size:14px;font-weight:800;color:#474763;white-space:nowrap;padding:8px}.text-button:hover{color:#4933d2}
.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 335px;gap:30px;padding:36px 0 46px}.stage{min-width:0;text-align:center}.stage-kicker{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:800;letter-spacing:.07em;color:#5342b4;margin-bottom:10px}.live-dot{display:inline-block;width:9px;height:9px;background:#8566e9;border-radius:50%;box-shadow:0 0 0 5px #eae3ff}.stage h1{font-size:clamp(29px,3.15vw,53px);font-weight:950;line-height:1.32;margin:8px 0 12px;letter-spacing:-.06em}.stage h1 span{background:linear-gradient(100deg,#513ed7,#9053d7);background-clip:text;-webkit-background-clip:text;color:transparent}.stage-lead{font-size:15px;color:#707485;margin:0 0 30px;line-height:1.8}
.arena{isolation:isolate;position:relative;overflow:hidden;background:linear-gradient(130deg,#6853e2,#573dc7 64%,#4831b7);border-radius:27px;min-height:374px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 25px;box-shadow:0 14px 35px rgba(64,42,132,.17);color:#fff}.arena-shape{z-index:-1;position:absolute;border-radius:50%;background:rgba(255,255,255,.055);border:2px solid rgba(255,255,255,.1)}.arena-shape-1{width:370px;height:370px;left:-155px;top:-175px}.arena-shape-2{width:530px;height:530px;right:-240px;bottom:-360px}.round-label{font-size:14px;font-weight:900;letter-spacing:.2em;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.26);padding:8px 18px;border-radius:100px}.play-symbol{margin:12px 0 -2px;font-size:124px;line-height:1.2;filter:drop-shadow(0 14px 12px rgba(34,20,111,.23));transform:rotate(-12deg);user-select:none}.arena-title{font-weight:900;font-size:clamp(29px,4vw,49px);letter-spacing:-.055em;line-height:1.35}.arena-subtitle{font-size:14px;opacity:.87;margin-top:10px;line-height:1.7}.arena.countdown .play-symbol{font-size:146px;font-weight:950;font-variant-numeric:tabular-nums;transform:none;color:#ffe77e;animation:pop .35s ease-out}.arena.reveal .play-symbol{animation:reveal .5s cubic-bezier(.1,.8,.15,1.15)}.arena.complete{background:linear-gradient(130deg,#e9a949,#ea784d)}.arena.paused{filter:saturate(.75)}@keyframes pop{from{transform:scale(.75);opacity:.5}to{transform:scale(1);opacity:1}}@keyframes reveal{from{transform:scale(.7) rotate(-25deg);opacity:.6}to{transform:scale(1) rotate(-12deg);opacity:1}}
.result-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.result-item{border-radius:14px;padding:11px 6px 12px;display:flex;align-items:center;flex-direction:column;gap:4px;min-width:0}.result-label{font-weight:900;font-size:13px}.result-item strong{font-size:18px;white-space:nowrap}.result-item small{font-size:11px;color:#566072;font-weight:700}.result-item.win{background:#e6f9eb;color:#147842}.result-item.draw{background:#fff1d0;color:#9a6500}.result-item.lose{background:#f5e8ea;color:#a64050}
.actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:11px;margin-top:25px}.action{min-height:56px;padding:13px 24px;border-radius:14px;border:2px solid transparent;font-weight:900;font-size:15px;transition:transform .15s,box-shadow .15s}.action:hover:not(:disabled){transform:translateY(-2px)}.action.primary{background:#5841d6;color:white;box-shadow:0 7px 0 #3925a2}.action.secondary{background:#fff;border-color:#dedce9;color:#443e63;box-shadow:0 4px 0 #e6e4ef}.action.quiet{color:#777d91;background:transparent;border:1px solid #dddde7;min-height:50px;padding:10px 17px}.status-note{color:#737787;font-size:13px;min-height:19px;line-height:1.5;margin:19px 0 0}
.sidebar{display:flex;flex-direction:column;gap:17px}.aside-card{background:#fff;border:1px solid #e9e9f0;border-radius:18px;padding:22px;box-shadow:0 4px 16px rgba(20,22,50,.035)}.card-heading{display:flex;align-items:center;gap:10px;margin-bottom:14px}.card-heading h2{font-size:17px;font-weight:900;margin:0;letter-spacing:-.035em}.card-icon{display:grid;place-items:center;width:35px;height:35px;background:#f2edff;border-radius:10px;font-size:19px}.aside-card p{font-size:13px;line-height:1.9;margin:0;color:#4a5167}.aside-card p strong{color:#3f339a}.aside-card p.aside-hint{font-size:11px;color:#9295a4;margin-top:12px;line-height:1.7}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 0;border-top:1px solid #f0f0f5}.setting-row:first-of-type{border-top:none;padding-top:4px}.setting-row strong,.setting-row small{display:block}.setting-row strong{font-size:13px}.setting-row small{font-size:11px;color:#9698a7;margin-top:5px}.setting-row input{appearance:none;width:42px;height:25px;background:#d4d6df;border-radius:20px;position:relative;flex-shrink:0;transition:background .2s}.setting-row input:before{content:"";position:absolute;width:19px;height:19px;background:white;border-radius:50%;left:3px;top:3px;transition:transform .2s}.setting-row input:checked{background:#614de0}.setting-row input:checked:before{transform:translateX(17px)}.setting-row select{max-width:142px;background:#f7f6fd;color:#3e385d;border:1px solid #e6e3f3;border-radius:8px;padding:8px 5px;font-size:11px;font-weight:700}.history-list{list-style:none;margin:0;padding:0;max-height:238px;overflow:auto}.history-list li{font-size:13px;padding:9px 4px;border-bottom:1px solid #f4f3f7;display:flex;justify-content:space-between;align-items:center;gap:12px}.history-list .empty-history{color:#9a9da9;font-size:12px}.history-list strong{font-size:15px}.site-footer{border-top:1px solid #e8e9e8;color:#979aaa;font-size:12px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:22px 0 28px}
@media(min-width:1200px){.stage-lead{margin-bottom:34px}.arena{min-height:435px}.play-symbol{font-size:153px}.arena.countdown .play-symbol{font-size:180px}}
@media(max-width:1000px){.app-shell{padding:0 24px}.main-grid{grid-template-columns:minmax(0,1fr);gap:26px}.sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.history-card{grid-column:1/-1}.history-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}}
@media(max-width:620px){.app-shell{padding:0 14px}.site-header{height:72px}.brand{font-size:17px;gap:8px}.brand-mark{width:35px;height:35px;font-size:22px}.prototype{font-size:10px;padding:5px 8px}.text-button span{display:none}.header-right{gap:2px}.main-grid{padding-top:25px}.stage h1{font-size:32px}.stage-lead{font-size:12px;margin-bottom:20px}.arena{min-height:315px;padding:24px 13px;border-radius:18px}.play-symbol{font-size:111px}.arena.countdown .play-symbol{font-size:140px}.arena-title{font-size:30px}.arena-subtitle{font-size:12px}.result-guide{gap:6px}.result-item{padding:8px 2px}.result-item strong{font-size:13px}.result-label{font-size:12px}.result-item small{font-size:10px}.sidebar{display:flex}.actions{gap:8px}.action{min-height:51px;font-size:13px;padding:11px 14px}.site-footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Projector mode removes sidebars to maximize reach without changing game controls. */
:fullscreen .app-shell{max-width:none;min-height:100vh;padding:0 4vw}:fullscreen .main-grid{grid-template-columns:1fr;padding:2vh 0}:fullscreen .sidebar,:fullscreen .site-footer{display:none}:fullscreen .stage h1{font-size:clamp(34px,3.2vw,64px);margin:3px 0}:fullscreen .stage-lead{margin-bottom:1vh}:fullscreen .arena{min-height:46vh}:fullscreen .play-symbol{font-size:clamp(110px,12vh,210px)}:fullscreen .arena.countdown .play-symbol{font-size:clamp(150px,18vh,260px)}:fullscreen .arena-title{font-size:clamp(36px,5vw,80px)}:fullscreen .result-item strong{font-size:clamp(20px,2vw,35px)}
/* The organizer gets a separate return-to-seat countdown before round one. */
.arena.preparing .play-symbol{font-size:146px;font-weight:950;font-variant-numeric:tabular-nums;transform:none;color:#ffe77e}
@media(max-width:620px){.arena.preparing .play-symbol{font-size:140px}}
:fullscreen .arena.preparing .play-symbol{font-size:clamp(150px,18vh,260px)}

/* Public information pages, under the same strict CSP (no inline styles). */
.info-brand{text-decoration:none;color:inherit}.info-page{max-width:760px;margin:55px auto 85px;line-height:1.95}.info-page h1{font-size:clamp(27px,4vw,39px);letter-spacing:-.04em}.info-page h2{font-size:22px;margin-top:26px}.info-page a,.site-footer a{color:#5945c7}.info-page p,.info-page li{font-size:15px}.info-page code{overflow-wrap:anywhere}.site-footer a{text-decoration:none}.site-footer a:hover{text-decoration:underline}@media(max-width:620px){.info-page{margin:28px auto 64px}.info-page p,.info-page li{font-size:14px}}

/* Separate projection window: operator controls remain on the laptop. */
.projection-body{background:#f6f4fd}
.projection-shell{min-height:100vh;padding:18px clamp(14px,3vw,45px);display:flex;flex-direction:column;gap:12px;max-width:1800px;margin:0 auto}
.projection-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#5144a5;font-weight:900;font-size:14px}
.projection-topbar .text-button{border:1px solid #dcd6f9;border-radius:12px;background:white;padding:11px 16px}
.projection-stage{display:flex;flex-direction:column;flex:1;text-align:center;min-height:0}
.projection-stage .arena{flex:1;min-height:50vh;border-radius:25px}
.projection-stage .play-symbol{font-size:clamp(128px,19vh,275px)}
.projection-stage .arena-title{font-size:clamp(38px,5.5vw,90px)}
.projection-stage .arena-subtitle{font-size:clamp(16px,2.3vw,31px)}
.projection-stage .result-guide{margin-top:14px}
.projection-stage .result-item{padding:12px}
.projection-stage .result-item strong{font-size:clamp(19px,2.6vw,44px)}
.projection-stage .result-item small{font-size:clamp(12px,1.4vw,22px)}
.projection-status{font-size:13px;color:#746e93;margin:14px auto;min-height:20px}
:fullscreen .projection-shell{max-width:none;min-height:100vh;padding:1vh 3vw}
:fullscreen .projection-topbar{display:none}
:fullscreen .projection-stage .arena{min-height:62vh}
@media(max-width:620px){.projection-shell{padding:12px}.projection-stage .arena{min-height:55vh}.projection-stage .play-symbol{font-size:135px}.projection-stage .arena-title{font-size:36px}.projection-stage .arena-subtitle{font-size:14px}.projection-topbar{font-size:12px}}
@media(max-width:620px){.projection-launch{display:none}}
