@font-face{font-family:KD Fredoka;font-style:normal;font-display:swap;font-weight:300 700;src:url(/control/assets/fredoka-latin-wght.v1-DM6njrJ3.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:KD Nunito;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/control/assets/nunito-latin-wght.v1-BzFMHfZw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--bg: #fffaf0;--surface: #ffffff;--surface2: #fff1cc;--text: #1f2340;--muted: #575c78;--border: #ecdcb4;--field-border: #8a8d9f;--primary: #1d5fd0;--on-primary: #ffffff;--pressed: #11397d;--link: #1a58c2;--focus: #1d5fd0;--tint: #e3edff;--danger: #c02a36;--on-danger: #ffffff;--danger-pressed: #731920;--ok: #1f9d55;--banner-bg: #a61e17;--banner-text: #ffffff;--scrim: rgba(20, 22, 40, .55);--a1: #ffc928;--a2: #38b6ff;--a3: #3cc46b;--a4: #ff6b6b;--a5: #9b5de5;--tv-bg: #121736;--tv-surface: #1f2758;--tv-text: #ffffff;--tv-muted: #c7cbef;--tv-focus: #ffc928;--tv-accent: #ffc928;--tv-safe: 5%;--tv-focus-width: .5vw;--tv-ring: var(--tv-focus-width);--font-display: "KD Fredoka", ui-rounded, system-ui, sans-serif;--font-body: "KD Nunito", ui-rounded, system-ui, sans-serif;--display-weight: 600;--r-sm: 10px;--r-md: 16px;--r-lg: 24px;--r-btn: 14px;--shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 6px 20px -8px rgba(0, 0, 0, .18);--focus-width: 3px}@media(prefers-color-scheme:dark){:root{--bg: #161a33;--surface: #20254a;--surface2: #2a3060;--text: #fdf8ee;--muted: #b8bdd9;--border: #363d72;--field-border: #7f86b8;--primary: #ffc928;--on-primary: #1f2340;--pressed: #997918;--link: #8fd0ff;--focus: #ffc928;--tint: #2a3567;--danger: #ff8a8a;--on-danger: #2a0a0e;--danger-pressed: #995353;--ok: #5fd68a;--scrim: rgba(0, 0, 0, .65)}}:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:2px}.kd-logo{display:inline-block;flex:none;vertical-align:middle}.kd-brand{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:var(--display-weight);font-size:1.15rem;line-height:1;color:var(--text);text-decoration:none}.kd-display{font-family:var(--font-display);font-weight:var(--display-weight);line-height:1.15}.kd-hl{text-decoration:underline wavy var(--a1);text-decoration-thickness:.07em;text-underline-offset:.2em;text-decoration-skip-ink:none}.kd-ribbon{background:linear-gradient(90deg,var(--a1) 0 20%,var(--a4) 20% 40%,var(--a5) 40% 60%,var(--a2) 60% 80%,var(--a3) 80%) top / 100% 6px no-repeat,var(--surface)}.kd-ribbon-bar{background:linear-gradient(90deg,var(--a1) 0 20%,var(--a4) 20% 40%,var(--a5) 40% 60%,var(--a2) 60% 80%,var(--a3) 80%)}.kd-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font:700 1rem/1.1 var(--font-body);padding:.75rem 1.2rem;min-height:48px;border-radius:var(--r-btn);border:2px solid transparent;text-decoration:none;cursor:pointer}.kd-btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 4px 0 var(--pressed)}.kd-btn-primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--pressed)}.kd-btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:0 3px 0 var(--border)}.kd-btn-secondary:active{transform:translateY(2px);box-shadow:0 1px 0 var(--border)}.kd-btn-danger{background:var(--danger);color:var(--on-danger);box-shadow:0 4px 0 var(--danger-pressed)}.kd-btn-danger:active{transform:translateY(3px);box-shadow:0 1px 0 var(--danger-pressed)}.kd-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none}.kd-deco i{position:absolute;display:block;width:.8em;height:.8em;border-radius:50%;opacity:.95}.kd-deco i:nth-child(1){left:62%;top:12%;background:var(--a1);width:1.1em;height:1.1em}.kd-deco i:nth-child(2){left:78%;top:22%;background:var(--a4);border-radius:.2em;transform:rotate(25deg)}.kd-deco i:nth-child(3){left:90%;top:8%;background:var(--a2)}.kd-deco i:nth-child(4){left:70%;top:40%;background:var(--a3);width:.55em;height:.55em}.kd-deco i:nth-child(5){left:86%;top:52%;background:var(--a5);border-radius:.15em;transform:rotate(-20deg)}.kd-deco i:nth-child(6){left:95%;top:34%;background:var(--a1);width:.5em;height:.5em}.kd-deco i:nth-child(7){left:58%;top:60%;background:var(--a2);width:.45em;height:.45em}.kd-deco i:nth-child(8){left:80%;top:72%;background:var(--a4);width:.6em;height:.6em}.kd-deco .n{position:absolute;width:2.2em;height:2.2em}.kd-deco .n:nth-of-type(1){left:72%;top:4%;color:var(--a5);transform:rotate(-12deg)}.kd-deco .n:nth-of-type(2){left:88%;top:66%;color:var(--a2);transform:rotate(10deg);width:1.7em;height:1.7em}@media(prefers-reduced-motion:no-preference){.kd-deco i,.kd-deco .n{animation:kd-float 5s ease-in-out infinite alternate}.kd-deco i:nth-child(2n){animation-duration:6.5s;animation-delay:-2s}.kd-deco i:nth-child(3n){animation-duration:4.2s;animation-delay:-1s}@keyframes kd-float{to{translate:0 -.5em}}}.kd-credit{margin:.25rem 0 0;color:var(--muted);font-size:.8rem}.kd-credit a{display:inline-block;margin:0;color:inherit;font-weight:600;text-decoration:none}.kd-credit a:before{content:"";display:inline-block;vertical-align:-.2em;margin-right:.3rem;width:1rem;height:1rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAMFBMVEXA0tWXoq6sucWG0+Pi6/DN2d9jdothkLOgw8qi1tpFv9YYha2DjZr9/v5HVmwUPGFMBxpWAAAADXRSTlME+Pz4/fr7+leQ9/390bZNmgAAAAlwSFlzAAAD6AAAA+gBtXtSawAAAQVJREFUGNNjYACCqa7GMxmgYJJ4eXmxJYTdlFfk4hJYbAFic8in3AUCx+IGIKfn410wUAdJnZcFMa2WXCpmYOB85qikpKSyeomt8AQGRsH8f+//Z+2yWutuwNCTe+nNuT+rF1vFXrRkmHf2bt4b8c2rF9+9VMkgp3vX1bVaOdb37tXNDHKxd++6Jyr73r17ZReIc1VHrBjK0b179ewzkMzVXSAD7vq+EwZyLu1kaHsLtF8GxLm2g4HxK4wTv4CBMw/GyZ7AwCCXe/euENCAi7+Arm78dveuqGrsXfkdIM/JPb0rGns37DfIcwyN+Y9UQsX+74AEwsQk1f//d8KCp1M1rQJEAwA2P4LIc1R/JAAAAABJRU5ErkJggg==) center / contain no-repeat}.kd-credit a:hover{color:#2563eb;text-decoration:underline}@media(prefers-color-scheme:dark){.kd-credit a:hover{color:#60a5fa}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 var(--font-body);-webkit-tap-highlight-color:transparent}h1,h2,.now-title,.pages{font-family:var(--font-display);font-weight:var(--display-weight)}h1{font-size:1.35rem;line-height:1.15;margin:0;overflow-wrap:anywhere}h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .5rem;font-family:var(--font-body);font-weight:800}.app,.full{max-width:560px;margin:0 auto;padding:1rem}.full{text-align:center;padding-top:14vh}.full h1{margin:1rem 0;font-size:1.6rem}.full p{color:var(--muted);font-size:1.05rem;margin:0 auto;max-width:24rem}.full .kd-logo{display:block;margin:0 auto}.full.problem h1{color:var(--danger)}header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.who{flex:1;min-width:0}.who .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.85rem}.sub,.muted{color:var(--muted);font-size:.9rem}.empty{color:var(--muted);text-align:center;padding:1rem;background:var(--surface2);border-radius:var(--r-md)}.status{display:flex;align-items:center;gap:.4rem;font-size:.875rem;font-weight:800;white-space:nowrap;padding:.35rem .75rem;border-radius:999px;background:var(--surface);border:2px solid var(--border);color:var(--text)}.dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--muted)}.status.on{border-color:var(--ok)}.status.on .dot{background:var(--ok);box-shadow:0 0 0 3px var(--tint)}.status.off{border-color:var(--danger)}.status.off .dot{background:var(--danger)}.banner{background:var(--surface2);color:var(--text);border:2px solid var(--danger);padding:.75rem 1rem;border-radius:var(--r-md);margin-bottom:.9rem;font-weight:700}.card{background:var(--surface);border:2px solid var(--border);border-radius:var(--r-lg);padding:1.3rem 1rem 1rem;margin-bottom:1rem;box-shadow:var(--shadow)}.kd-ribbon.card{background:linear-gradient(90deg,var(--a1) 0 20%,var(--a4) 20% 40%,var(--a5) 40% 60%,var(--a2) 60% 80%,var(--a3) 80%) top / 100% 6px no-repeat,var(--surface)}.now-title{font-size:1.35rem;line-height:1.2;overflow-wrap:anywhere}.row{display:flex;gap:.6rem;align-items:center;justify-content:center;margin:.9rem 0}.btn{font:700 1.05rem/1.1 var(--font-body);min-height:56px;min-width:64px;padding:.4rem 1rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:2px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-btn);box-shadow:0 3px 0 var(--border);touch-action:manipulation;cursor:pointer}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--border)}.btn:disabled{opacity:.5;box-shadow:none;cursor:default}.btn.primary{background:var(--primary);border-color:transparent;color:var(--on-primary);box-shadow:0 4px 0 var(--pressed)}.btn.primary:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--pressed)}.btn.primary:disabled{box-shadow:none}.btn.big{flex:1;min-height:68px;font-size:1.3rem}.btn.back{width:100%;min-height:56px;margin-top:.25rem}.btn.sm{min-height:48px;min-width:56px;font-size:.95rem}.btn.back.sm{min-height:44px;font-weight:600;color:var(--muted);box-shadow:none}.btn.continue{width:100%;min-height:76px;font-size:1.6rem;margin:.75rem 0 .25rem;gap:.6rem}.progress{display:flex;align-items:center;gap:.6rem;font-size:.85rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:.9rem}.progress input{flex:1;height:44px;touch-action:none;accent-color:var(--primary)}.pages{min-width:6rem;text-align:center;font-size:1.15rem;font-variant-numeric:tabular-nums;background:var(--tint);border-radius:999px;padding:.4rem .9rem}.items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.item{width:100%;display:flex;align-items:center;gap:.75rem;text-align:left;font:inherit;color:inherit;background:var(--surface);border:2px solid var(--border);border-radius:var(--r-md);padding:.5rem .75rem .5rem .5rem;min-height:68px;box-shadow:0 3px 0 var(--border);touch-action:manipulation;cursor:pointer}.item:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--border)}.item:disabled{opacity:.55;box-shadow:none;cursor:default}.item.current{border-color:var(--primary);background:var(--tint);box-shadow:0 3px 0 var(--primary)}.item.blocked .t{text-decoration:line-through;opacity:.7}.item img,.item .ph{box-shadow:0 0 0 2px var(--border);width:80px;height:45px;object-fit:cover;border-radius:var(--r-sm);background:var(--surface2);flex:none;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--muted)}.grow{flex:1;min-width:0;display:flex;flex-direction:column}.t{font-weight:800;overflow:hidden;text-overflow:ellipsis}.tag{font-size:.75rem;font-weight:800;background:var(--primary);color:var(--on-primary);padding:.2rem .6rem;border-radius:999px}@media(prefers-reduced-motion:reduce){.btn:active,.item:active{transform:none!important}}.demo-banner{margin:0 0 12px;padding:8px 12px;border-radius:12px;background:#fff3cd;color:#4a3b00;font-size:14px;line-height:1.35}.demo-banner summary{cursor:pointer;list-style:none;display:flex;gap:8px;align-items:baseline;justify-content:space-between}.demo-banner summary::-webkit-details-marker{display:none}.demo-more{flex:none;font-weight:800;text-decoration:underline}.demo-banner details[open] summary{margin-bottom:6px}.full p{margin:0 0 1rem}.demo-hint{margin-top:1rem!important}.demo-small{margin-top:1.4rem;font-size:.85rem;color:var(--muted)}.demo-banner a{color:inherit;font-weight:700}header .who{min-width:0;flex:1}header .who h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1.1rem}header .status{flex:none;font-size:.72rem;padding-inline:.5rem}.tv-preview{position:sticky;top:0;z-index:5;margin:0 0 10px;padding:6px 0 4px;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--bg)}.tv-screen{position:relative;box-sizing:border-box;height:120px;aspect-ratio:16 / 9;border:5px solid #05070f;border-radius:12px;background:var(--tv-bg, #121736);color:#fff;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 8px 6px;text-align:center;font-family:var(--font-display);box-shadow:0 0 0 1px #3a4070}.tv-screen:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#ffc928 0 20%,#ff6b6b 20% 40%,#9b5de5 40% 60%,#38b6ff 60% 80%,#3cc46b 80%)}.tv-screen .tv-title{font-size:13px;line-height:1.1;color:var(--tv-accent, #ffc928)}.tv-tiles{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.tv-tiles i{width:22px;height:13px;border-radius:3px}.tv-slide{display:flex;flex-direction:column;gap:3px;border-top:3px solid;padding-top:4px;width:100%;max-height:100%;overflow:hidden}.tv-line{font-size:9px;line-height:1.2;font-family:var(--font-body);color:#fff;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tv-meta{font:800 8px/1 var(--font-body);color:var(--tv-accent, #ffc928)}.tv-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.tv-screen:has(.tv-img) .tv-meta{position:absolute;right:6px;bottom:5px;padding:2px 5px;border-radius:6px;background:#000a}.tv-play{position:absolute;left:6px;bottom:5px;padding:2px 6px;border-radius:6px;background:#000a;color:#fff;font:800 9px/1.2 var(--font-body)}.tv-caption{font-size:11px;color:var(--muted);font-weight:700}.demo-banner p{margin:0 0 6px}.demo-banner-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 8px}.status.wait,.status.practice{border-color:var(--border);color:var(--muted)}.status.wait .dot,.status.practice .dot{background:var(--muted)}.spin{width:.8rem;height:.8rem;border-radius:50%;border:2px solid var(--border);border-top-color:var(--primary);animation:kd-spin .9s linear infinite}@keyframes kd-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}.demo-toast{position:fixed;left:12px;right:12px;bottom:16px;z-index:20;padding:12px 14px;border-radius:12px;background:#1f2340;color:#fff;font-weight:700;text-align:center}.demo-ctl{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:16px;background:#3c3c46c7}.demo-ctl-card{background:var(--surface);color:var(--text);border-radius:16px;padding:18px;text-align:center;max-width:320px}.demo-ctl-card p{margin:0 0 12px;font-weight:800}.full .status{display:inline-flex}
