/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.hidden{display:none}.table{display:table}}:root{--orange:#f3a14d;--ink:#142633;--blue:#235c79;--paper:#fffdfa}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 8% 4%,#f3a14d29,#0000 28rem),linear-gradient(#f8f5ef 0%,#eef4f5 100%);margin:0;font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.access-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.access-card{text-align:center;background:#ffffffe6;border:1px solid #14263314;border-radius:28px;width:min(460px,100%);padding:34px;box-shadow:0 24px 70px #1c354126}.access-brand{color:#b76d29;letter-spacing:.18em;margin:0;font-size:12px;font-weight:800}.access-logo{object-fit:contain;width:88px;height:88px;margin:18px auto}.access-card h1{color:#687983;margin:0;font-size:18px;line-height:1.3}.access-card h1 strong{color:var(--ink);font-size:1.25em}.access-card h1 span{display:block}.access-copy{color:#687983;margin:12px 0 24px;font-size:14px}.access-card form{text-align:left}.access-card label{color:var(--ink);margin-bottom:7px;font-size:13px;font-weight:800;display:block}.access-card input{width:100%;color:var(--ink);background:#fff;border:1px solid #235c7938;border-radius:12px;outline:none;padding:13px 14px}.access-card input:focus{border-color:var(--orange);box-shadow:0 0 0 4px #f3a14d26}.access-card form button{color:#fff;background:var(--orange);cursor:pointer;border:0;border-radius:12px;width:100%;margin-top:14px;padding:14px;font-weight:800}.access-card form button:disabled{opacity:.65;cursor:wait}.access-error{color:#a1372c;margin:9px 0 0;font-size:13px}.access-help{color:#7b898f;margin:18px 0 0;font-size:12px}.admin-shell{min-height:100vh;padding:32px 18px}.admin-card{background:#ffffffeb;border:1px solid #14263314;border-radius:26px;width:min(620px,100%);margin:0 auto;padding:30px;box-shadow:0 24px 70px #1c354121}.admin-card h1{color:var(--ink);margin:8px 0 4px;font-size:28px}.admin-intro{color:#687983;margin:0 0 24px}.admin-card label{color:var(--ink);margin:10px 0 7px;font-size:13px;font-weight:800;display:block}.admin-card input{border:1px solid #235c7938;border-radius:11px;outline:none;width:100%;padding:12px 13px}.admin-card input:focus{border-color:var(--orange);box-shadow:0 0 0 4px #f3a14d26}.admin-section{border-top:1px solid #1426331a;margin-top:22px;padding-top:20px}.admin-section h2{color:var(--ink);margin:0 0 5px;font-size:18px}.admin-section p{color:#687983;margin:0 0 12px;font-size:14px}.admin-section button{color:#fff;background:var(--orange);cursor:pointer;border:0;border-radius:11px;width:100%;margin-top:12px;padding:13px;font-weight:800}.admin-danger button{background:#171717}.admin-section button:disabled{opacity:.6;cursor:wait}.admin-message{color:#285b3b;background:#e9f6ed;border-radius:10px;margin:18px 0 0;padding:11px;font-size:13px}.admin-card>a{color:var(--blue);text-align:center;margin-top:20px;font-size:13px;display:block}.app-shell{width:min(1180px,100% - 32px);margin:0 auto;padding:28px 0 40px}.topbar{justify-content:space-between;align-items:end;gap:24px;margin-bottom:18px;display:flex}.eyebrow{color:#b76d29;letter-spacing:.18em;margin:0 0 4px;font-size:12px;font-weight:800}.product-title{white-space:nowrap;color:#687983;letter-spacing:.018em;margin:0;font-size:clamp(12px,2vw,24px);font-weight:700}.product-title strong{color:var(--ink);letter-spacing:-.02em;font-size:1.34em;font-weight:800}.fullscreen-button{color:var(--blue);cursor:pointer;background:#ffffffb8;border:1px solid #235c7938;border-radius:999px;padding:11px 17px}.stage-card{aspect-ratio:16/9;background:#fff;border:1px solid #14263314;border-radius:22px;width:100%;position:relative;overflow:hidden;box-shadow:0 22px 55px #1c354121}.stage-canvas{position:absolute;inset:0;container-type:inline-size}.stage-card:-webkit-full-screen{aspect-ratio:auto;background:#fff;border-radius:0;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.stage-card:fullscreen{aspect-ratio:auto;background:#fff;border-radius:0;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.stage-card:-webkit-full-screen .stage-canvas{flex:none;width:min(100vw,177.778vh);height:min(100vh,56.25vw);position:relative;inset:auto}.stage-card:fullscreen .stage-canvas{flex:none;width:min(100vw,177.778vh);height:min(100vh,56.25vw);position:relative;inset:auto}.stage-template{object-fit:contain;width:100%;height:100%;display:block;transform:translateY(5.5%)}.stage-school-logo{object-fit:contain;width:14.5%;height:auto;position:absolute;top:4.2%;right:5.5%}.stage-brand{z-index:2;width:17%;height:11.5%;position:absolute;bottom:2.35%;left:50%;transform:translate(-50%)}.stage-brand img{object-fit:contain;opacity:.14;width:auto;height:92%;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.stage-brand span{z-index:1;color:var(--orange);letter-spacing:.02em;white-space:nowrap;font-family:Futura,Trebuchet MS,Arial,sans-serif;font-size:clamp(5px,.72cqw,13px);font-weight:400;line-height:1;position:absolute;bottom:8%;left:50%;transform:translate(-50%)}.stage-time{z-index:3;white-space:nowrap;align-items:baseline;gap:1.65cqw;display:flex;position:absolute;bottom:7.2%;left:5.5%}.stage-clock{color:#000;font-variant-numeric:tabular-nums;font-size:3.7cqw;font-weight:800;line-height:1}.stage-clock.complete{color:var(--orange)}.stage-bpm{color:#000;font-size:clamp(15px,2.35cqw,30px);line-height:1}.stage-sound{z-index:3;color:#5f6d74;letter-spacing:.045em;text-overflow:ellipsis;white-space:nowrap;max-width:31%;font-size:.8cqw;font-weight:600;line-height:1;position:absolute;bottom:8.15%;right:5.5%;overflow:hidden}.beat-ball{aspect-ratio:1;background:var(--orange);border-radius:50%;width:2.35cqw;transition:left 45ms linear,top 45ms linear,width 90ms ease-out;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 7px #b864192e}.beat-ball--accent{width:3.45cqw}.beat-ball--pulse{animation:.15s ease-out pulse}@keyframes pulse{50%{opacity:.5}}.controls{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffc7;border:1px solid #14263314;border-radius:20px;width:min(760px,100%);margin:22px auto 0;padding:22px;box-shadow:0 14px 40px #1c354114}.sound-settings{border-bottom:1px solid #1426331a;margin-bottom:20px;padding-bottom:18px}.setting-group{min-width:0}.segmented{gap:7px;display:grid}.one-option{grid-template-columns:1fr}.two-options{grid-template-columns:repeat(2,1fr)}.three-options{grid-template-columns:repeat(3,1fr)}.four-options{grid-template-columns:repeat(4,1fr)}.segmented button,.setting-group select{width:100%;min-height:38px;color:var(--blue);cursor:pointer;background:#fff;border:1px solid #235c7929;border-radius:10px;padding:7px 10px}.segmented button.selected{border-color:var(--orange);color:#9b551b;background:#fff3e7;font-weight:800}.base-settings{background:#f3a14d12;border-radius:13px;grid-template-columns:1fr 1.35fr;gap:14px;margin-top:14px;padding:13px;display:grid}.setting-group select{-webkit-appearance:auto;appearance:auto;color:var(--ink)}.signal-toggles{color:#52636d;flex-wrap:wrap;grid-column:1/-1;gap:10px 22px;font-size:13px;display:flex}.signal-toggles label{cursor:pointer;align-items:center;gap:7px;display:flex}.signal-toggles label.disabled{opacity:.42;cursor:default}.signal-toggles input{accent-color:var(--orange)}.audio-error{color:#a1372c;text-align:center;margin:12px 0 -4px;font-size:13px}.tempo-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.control-label{color:#687983;letter-spacing:.12em;margin-bottom:4px;font-size:11px;font-weight:800;display:block}.tempo-adjuster{align-items:center;gap:8px;display:flex}.tempo-adjuster button{width:34px;height:34px;color:var(--blue);cursor:pointer;background:#fff;border:1px solid #235c7929;border-radius:10px;font-size:21px;line-height:1}.tempo-adjuster button:disabled{opacity:.35;cursor:default}.tempo-adjuster input{width:76px;color:var(--ink);text-align:center;-moz-appearance:textfield;background:0 0;border:0;border-bottom:2px solid #f3a14d8c;outline:none;padding:1px 3px;font-size:33px;font-weight:800}.tempo-adjuster input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tempo-adjuster input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tempo-adjuster input:focus{border-bottom-color:var(--orange)}.tempo-adjuster small{color:#687983;letter-spacing:.08em;font-size:13px;font-weight:700}.status{color:#687983;align-items:center;gap:8px;font-size:14px;display:flex}.status i{background:#aeb7bb;border-radius:50%;width:9px;height:9px}.status i.live{background:var(--orange);box-shadow:0 0 0 5px #f3a14d29}.tempo-slider{width:100%;accent-color:var(--orange);cursor:pointer;margin:20px 0 15px}.quick-tempos{grid-template-columns:repeat(8,1fr);gap:7px;display:grid}.quick-tempos button{min-height:38px;color:var(--blue);cursor:pointer;background:#fff;border:1px solid #235c7929;border-radius:10px}.quick-tempos button.selected{border-color:var(--orange);color:#9b551b;background:#fff3e7;font-weight:800}.time-settings{border-top:1px solid #1426331a;margin-top:18px;padding-top:16px}.time-panel{background:#f3a14d12;border-radius:13px;margin-top:10px;padding:13px}.time-readout{justify-content:space-between;align-items:center;gap:16px;display:flex}.time-readout div{align-items:baseline;gap:12px;display:flex}.time-readout span,.practice-summary span{color:#687983;letter-spacing:.1em;font-size:9px;font-weight:800}.time-readout strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:26px}.time-readout button{color:var(--blue);cursor:pointer;background:#fff;border:1px solid #235c7929;border-radius:9px;padding:7px 11px}.time-slider{width:100%;accent-color:var(--orange);cursor:pointer;margin:10px 0 8px}.practice-summary{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px;display:grid}.practice-summary div{border-top:1px solid #235c791f;flex-direction:column;gap:2px;padding-top:7px;display:flex}.practice-summary strong{color:var(--ink);font-size:13px}.play-button{color:#fff;background:var(--orange);cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:18px;padding:15px 20px;font-weight:800;display:flex;box-shadow:0 10px 24px #d1762440}.play-button.is-playing{background:#151515;box-shadow:0 10px 24px #0000002e}.play-button:disabled{opacity:.7;cursor:wait}.play-button span{font-size:17px}.hint{color:#687983;text-align:center;margin:13px 0 0;font-size:13px}@media (max-width:700px){.app-shell{width:min(100% - 20px,1180px);padding-top:18px}.topbar{align-items:center}.fullscreen-button{padding:9px 12px;font-size:13px}.stage-card{border-radius:14px}.stage-school-logo{width:17%;top:5%;right:4.5%}.controls{margin-top:14px;padding:16px}.quick-tempos{grid-template-columns:repeat(4,1fr)}.base-settings{grid-template-columns:1fr}.signal-toggles{grid-column:auto}}@media (max-height:950px) and (min-width:701px){.app-shell{padding:12px 0 18px}.topbar{width:min(900px,100%);margin:0 auto 10px}.eyebrow{margin-bottom:2px;font-size:10px}.product-title{font-size:clamp(12px,1.6vw,19px)}.fullscreen-button{padding:8px 14px;font-size:13px}.stage-card{border-radius:16px;width:min(760px,100%);margin:0 auto}.controls{border-radius:16px;width:min(760px,100%);margin-top:10px;padding:13px 16px}.sound-settings{margin-bottom:10px;padding-bottom:10px}.base-settings{margin-top:8px;padding:9px}.segmented button,.setting-group select{min-height:32px;padding:5px 8px}.control-label{margin-bottom:1px;font-size:9px}.tempo-adjuster input{width:62px;font-size:26px}.tempo-adjuster button{width:30px;height:30px}.tempo-slider{margin:8px 0 7px}.quick-tempos button{min-height:32px}.time-settings{margin-top:9px;padding-top:9px}.time-panel{margin-top:6px;padding:8px 10px}.time-readout strong{font-size:21px}.time-slider{margin:6px 0 5px}.practice-summary{margin-top:7px}.play-button{margin-top:9px;padding:10px 18px}.hint{margin-top:7px;font-size:12px}}@media (max-width:460px){.fullscreen-button{display:none}.eyebrow{font-size:10px}.product-title{font-size:clamp(9px,3.05vw,13px)}.controls{border-radius:15px}}@media (prefers-reduced-motion:reduce){.beat-ball{transition:none;animation:none}}
