@font-face{font-family:Plex KR;src:url(/fonts/plex-sans-kr-400.woff2) format("woff2");font-weight:400 500;font-display:block}@font-face{font-family:Plex KR;src:url(/fonts/plex-sans-kr-600.woff2) format("woff2");font-weight:600 700;font-display:block}@font-face{font-family:Plex Mono;src:url(/fonts/plex-mono-400.woff2) format("woff2");font-weight:400;font-display:block}@font-face{font-family:Plex Mono;src:url(/fonts/plex-mono-500.woff2) format("woff2");font-weight:500 700;font-display:block}:root{--ground:#F4F7F6;--surface:#FFFFFF;--sunk:#EDF2F0;--line:#DCE4E1;--line-fine:#E8EEEC;--ink:#15202B;--ink-2:#4D5B67;--ink-3:#6F7C87;--mint:#DDF3EA;--mint-d:#0F766E;--sky:#DCEBFA;--sky-d:#1D5FA8;--lav:#E7E3FA;--lav-d:#5B47B8;--peach:#FBE6D8;--peach-d:#A34A24;--lemon:#FBF1C9;--lemon-d:#8A6100;--lemon-ink:#5E4200;--rose:#FBE0E5;--rose-d:#B42342;--safety:#DC2626;--r-panel:1.25rem;--r-card:1.375rem;--r-tile:.75rem;--ease:cubic-bezier(.2,.7,.2,1);color-scheme:light}*{box-sizing:border-box}html{font-size:clamp(12px,calc(100vw / 80),24px);-webkit-tap-highlight-color:transparent}body,html{height:100%}body{margin:0;overflow:hidden;background:var(--ground);color:var(--ink);font-family:Plex KR,system-ui,sans-serif;font-size:1.125rem;line-height:1.45;user-select:none;-webkit-user-select:none;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}h1,h2,h3,p{margin:0}.mono{font-family:Plex Mono,ui-monospace,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.caption{color:var(--ink-3);font-size:.9375rem}.grow{flex-grow:1}.row{align-items:center}.col,.row{display:flex;gap:.75rem}.col{flex-direction:column}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.frame{height:100vh;height:100dvh;display:flex;flex-direction:column}.topbar{height:4.75rem;flex-shrink:0;padding:0 2rem;display:flex;align-items:center;gap:1.25rem;background:var(--surface);border-bottom:1px solid var(--line)}.topbar.tall{height:6rem;padding:0 2.25rem}.brand{display:flex;align-items:center;gap:.75rem}.brand b{font-size:1.25rem;font-weight:600;letter-spacing:.04em;display:block;line-height:1.1}.brand small{font-size:.8125rem;color:var(--ink-2);display:block}.vr{width:1px;height:2rem;background:var(--line)}.content{flex-grow:1;min-height:0;padding:1.5rem 2rem 1.75rem}.staff-band{height:.5rem;background:var(--lemon-d);flex-shrink:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);padding:1.375rem 1.5rem}.panel.sunk{background:var(--sunk);border-color:transparent}.panel h2{font-size:1.5rem;font-weight:600}.tint-mint{background:var(--mint)}.tint-mint,.tint-sky{border-color:transparent}.tint-sky{background:var(--sky)}.tint-lav{background:var(--lav)}.tint-lav,.tint-peach{border-color:transparent}.tint-peach{background:var(--peach)}.tint-lemon{background:var(--lemon)}.tint-lemon,.tint-rose{border-color:transparent}.tint-rose{background:var(--rose)}.chip{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border-radius:999px;font-size:1rem;font-weight:500;white-space:nowrap}.chip:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}.chip.mint{background:var(--mint);color:var(--mint-d)}.chip.sky{background:var(--sky);color:var(--sky-d)}.chip.lav{background:var(--lav);color:var(--lav-d)}.chip.peach{background:var(--peach);color:var(--peach-d)}.chip.lemon{background:var(--lemon);color:var(--lemon-d)}.chip.rose{background:var(--rose);color:var(--rose-d)}.chip.plain{background:var(--sunk);color:var(--ink-2)}.btn{min-height:4rem;padding:0 1.5rem;border-radius:1rem;border:1px solid var(--line);background:var(--surface);font-size:1.375rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:.75rem;transition:transform .12s var(--ease),opacity .12s}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45}.btn.primary{background:var(--mint-d);border-color:var(--mint-d);color:#fff;font-weight:600}.btn.sky{background:var(--surface);border-color:var(--sky-d);color:var(--sky-d)}.btn.quiet{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.danger{background:var(--rose-d);border-color:var(--rose-d);color:#fff}.btn.xl{min-height:6rem;border-radius:1.375rem;font-size:2rem}.btn.lg{min-height:5rem;border-radius:1.25rem;font-size:1.625rem}.btn.block{width:100%}.bar{position:relative;height:.875rem;border-radius:.4375rem;background:var(--sunk);overflow:hidden}.bar.on-tint{background:var(--surface)}.bar>i{position:absolute;inset:0;transform-origin:left center;border-radius:inherit;background:var(--ink);transition:transform .5s var(--ease)}.pips{display:flex;gap:.3rem}.pips i{flex:1 1;height:.875rem;border-radius:.25rem;background:var(--sunk)}.pips i.on{background:var(--mint-d)}.scrim{position:fixed;inset:0;background:rgba(21,32,43,.32);display:flex;align-items:center;justify-content:center;z-index:50;animation:fade .22s var(--ease)}.sheet{width:min(44rem,92vw);background:var(--surface);border-radius:1.75rem;padding:2.25rem 2.5rem;box-shadow:0 12px 24px rgba(21,32,43,.18);display:flex;flex-direction:column;gap:1.25rem;animation:rise .22s var(--ease)}.sheet h2{font-size:2rem;font-weight:600;line-height:1.25}.sheet .actions{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.enter{animation:rise .22s var(--ease)}.toast{position:fixed;left:50%;bottom:2rem;transform:translateX(-50%);background:var(--ink);color:#fff;padding:.875rem 1.5rem;border-radius:1rem;font-size:1.125rem;z-index:60;animation:fade .22s var(--ease);max-width:80vw}.lobby{display:grid;grid-template-columns:minmax(0,1fr) 26.25rem;gap:1.5rem;height:100%}.scan{display:flex;flex-direction:column;gap:1rem;height:100%}.scan-view{position:relative;flex-grow:1;min-height:0;border-radius:var(--r-panel);background:var(--ink);overflow:hidden}.scan-view video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.scan-frame{border:2px solid rgba(255,255,255,.9)}.scan-frame,.scan-sweep{position:absolute;inset:14% 16%;border-radius:1.25rem}.scan-sweep{overflow:hidden}.scan-sweep i{position:absolute;inset:0;border-top:2px solid #7fe3c4;animation:scanline 2.4s linear infinite;will-change:transform}@keyframes scanline{0%{transform:translateY(0)}to{transform:translateY(100%)}}.scan-msg{position:absolute;left:0;right:0;bottom:0;padding:1rem 1.25rem;background:rgba(21,32,43,.72);color:#fff;font-size:1.125rem;text-align:center}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.step{border-radius:var(--r-tile);padding:1rem 1.125rem;display:flex;flex-direction:column;gap:.375rem}.step .n{font-size:.9375rem;font-weight:600}.step p{font-size:1.1875rem;line-height:1.4}.result-icon{width:4.5rem;height:4.5rem}.avatar,.result-icon{border-radius:50%;display:flex;align-items:center;justify-content:center}.avatar{width:3.5rem;height:3.5rem;font-size:1.5rem;font-weight:600}.hub{display:grid;grid-template-columns:minmax(0,1fr) 23.75rem;gap:1.5rem;height:100%}.hub-main{gap:1.25rem;min-width:0}.hub-main,.hub-side{display:flex;flex-direction:column;min-height:0}.hub-side{gap:1.125rem;overflow:hidden}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:1.375rem;display:flex;flex-direction:column;gap:.75rem}.card.feature{border:2px solid var(--lemon-d);border-radius:1.625rem;padding:1.875rem 2rem;gap:1.375rem;flex-grow:1}.card-head{gap:.75rem}.card-head,.card-icon{display:flex;align-items:center}.card-icon{width:3rem;height:3rem;border-radius:.875rem;justify-content:center;flex-shrink:0}.card-title{font-size:1.125rem;font-weight:600}.timer-box{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem 1.625rem;border-radius:1.25rem;background:var(--lemon)}.timer-big{font-size:7rem;font-weight:500;line-height:.95}.stat-pair{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.stat{border-radius:.875rem;padding:.75rem .875rem;display:flex;flex-direction:column}.stat span:first-child{font-size:.875rem}.stat .v{font-size:2.125rem;font-weight:500;line-height:1.15}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;text-align:center}.cal .wd{font-size:.875rem;color:var(--ink-2)}.cal .d{position:relative;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.0625rem;border-radius:.625rem}.cal .d.bm{background:var(--lemon);color:var(--lemon-ink);font-weight:600}.cal .d.ai{background:var(--sky);color:var(--sky-d);font-weight:600}.cal .d.lesson:after{content:"";position:absolute;bottom:.25rem;width:.3rem;height:.3rem;border-radius:50%;background:var(--peach-d)}.cal .d.today{outline:2px solid var(--ink);outline-offset:-2px}.cal.small .d{height:1.875rem;font-size:.875rem}.practice{display:grid;grid-template-columns:minmax(0,1fr) 27rem;gap:1.25rem;height:100%}.video{position:relative;border-radius:var(--r-panel);background:#0E151C;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#C9D4DC;min-height:0}.video img{width:100%;height:100%;object-fit:contain;display:block}.count-grid{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}.count{border-radius:1.25rem;padding:1.125rem 1.25rem;display:flex;flex-direction:column}.count .label{font-size:1.25rem;font-weight:600}.count .v{font-size:6rem;font-weight:500;line-height:1}.practice .left{display:flex;flex-direction:column;gap:1.25rem;min-height:0}.practice .left>.video{flex:1 1 auto;min-height:0}.practice .left>.remote,.practice .left>.remote-wait{flex:0 0 auto}.remote>.caption{color:var(--ink-2)}.remote{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem}.remote .keys{display:flex;gap:1.5rem;flex-wrap:wrap}.remote .g{display:flex;flex-direction:column;gap:.25rem}.remote .g .lbl{font-size:.9375rem;font-weight:600;color:var(--ink-2)}.remote .btn{min-width:5rem;padding:0 1rem}.remote .btn.feed{min-width:9.5rem;font-weight:600;letter-spacing:.02em}.remote-wait{min-height:13.25rem}.bottom-bar{display:flex;align-items:center;gap:1rem;padding:.875rem 2rem;background:var(--surface);border-top:1px solid var(--line);flex-shrink:0}.ops{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;font-size:1.0625rem}.ops table{width:100%;border-collapse:collapse;font-size:1rem}.ops td{padding:.5rem .25rem;border-bottom:1px solid var(--line-fine)}.ops td:last-child{text-align:right}.pinpad{display:grid;grid-template-columns:repeat(3,5.5rem);gap:.75rem;justify-content:center}.pinpad button{height:5rem;border-radius:1rem;border:1px solid var(--line);background:var(--surface);font-size:2rem}.pin-dots{display:flex;gap:.75rem;justify-content:center}.pin-dots i{width:1.125rem;height:1.125rem;border-radius:50%;border:2px solid var(--ink-2)}.pin-dots i.on{background:var(--ink);border-color:var(--ink)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.btn.estop{background:var(--safety);border-color:var(--safety);color:#fff;font-weight:700;min-width:11rem}.caption{color:var(--ink-2)}.chip.lemon{color:var(--lemon-ink)}button{min-height:56px}.btn{min-height:max(64px,4rem)}[tabindex]:focus-visible,button:focus-visible{outline:3px solid var(--sky-d);outline-offset:3px}.content{overscroll-behavior:contain}.content,.hub-main,.hub-side,.practice>.col,.sheet{overflow:auto}.sheet{max-height:calc(100dvh - 32px);overscroll-behavior:contain}.safety-notice{padding:1rem 2rem;background:var(--rose);color:var(--rose-d);border-bottom:2px solid var(--rose-d);flex-shrink:0}.bottom-bar,.topbar{gap:1rem}@media (max-width:1100px){html{font-size:14px}.topbar,.topbar.tall{height:auto;min-height:76px;padding:12px 20px;flex-wrap:wrap}.content{padding:16px 20px}.bottom-bar{flex-wrap:wrap;padding:12px 20px}.bottom-bar .btn{flex:1 1;font-size:20px;min-width:140px}.hub{grid-template-columns:minmax(0,1fr) 300px}.practice{grid-template-columns:minmax(0,1fr) 340px}.remote .keys{gap:12px}}@media (max-width:760px),(orientation:portrait){.hub,.lobby,.practice{grid-template-columns:1fr;height:auto}.scan{min-height:480px}.scan-view{min-height:280px}.practice .video{min-height:300px}.hub-main,.hub-side{overflow:visible}.ops,.steps{grid-template-columns:1fr}.sheet{padding:24px}.sheet .actions{grid-template-columns:1fr}}.artwork{display:block;width:9rem;height:9rem;object-fit:contain;flex-shrink:0;pointer-events:none}.service-state{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.5fr);gap:1.5rem}.service-hero{display:flex;align-items:center;justify-content:center;border-radius:1.5rem;padding:1.5rem;min-height:0}.service-hero .artwork{width:100%;height:100%;max-height:28rem}.service-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1.5rem}.service-copy h1{font-size:2.5rem;line-height:1.3}.service-copy>.muted{font-size:1.375rem}.service-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.inline-state{display:flex;align-items:center;justify-content:center;gap:1.25rem;padding:1rem}.inline-state p{max-width:26rem;word-break:keep-all}.inline-state .artwork{width:8rem;height:8rem}.video .inline-state{position:absolute;inset:0;flex-direction:column;text-align:center}.video .inline-state .artwork{width:9rem;height:9rem}.video .inline-state p{padding:0 1rem}.welcome-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-radius:1.5rem;background:var(--mint)}.welcome-banner h1{font-size:1.75rem;line-height:1.3;color:var(--mint-d)}.welcome-banner p{margin-top:.5rem;font-size:1rem}.welcome-coaches{display:flex;flex-shrink:0}.welcome-coaches .artwork{width:7rem;height:10rem}.sheet-wide{width:min(72rem,96vw)}.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.guide-card{border:1px solid var(--line);background:var(--mint);border-radius:1.25rem;padding:1rem;display:flex;align-items:center;flex-direction:column;gap:.5rem}.guide-card .artwork{width:100%;height:12rem}.guide-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:2rem;align-items:center}.guide-detail p{font-size:1.25rem;line-height:1.7;word-break:keep-all}.guide-detail .service-hero{height:27rem}.help-topics{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.help-topics .btn{font-size:1.125rem;padding:.5rem}.confirm-heading,.growth-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.growth-heading .artwork{width:7rem;height:7rem}.growth-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.confirm-heading .artwork{width:5rem;height:5rem}.companion-links{display:flex;gap:.75rem;flex-wrap:wrap}.coach-note{display:flex;align-items:center;gap:1rem}.coach-note>div{flex:1 1;min-width:0}.coach-note .artwork{width:7rem;height:8rem}.result-art{width:8rem;height:9rem}.maintenance-banner{display:flex;gap:1rem;align-items:center;background:var(--lemon);border-radius:1.25rem;padding:1rem}.maintenance-banner .artwork{width:5rem;height:6rem}.pin-entry-layout{display:flex;align-items:center;justify-content:center;gap:3rem;overflow:auto;padding:1rem}.pin-entry-layout>.artwork{width:18rem;height:25rem}.panel p,.service-state p{word-break:keep-all;overflow-wrap:anywhere}@media (max-width:760px),(orientation:portrait){.guide-detail,.service-state{grid-template-columns:1fr}.service-hero{min-height:180px}.service-hero .artwork{height:220px}.guide-grid{grid-template-columns:1fr 1fr}.guide-detail .service-hero{height:220px}.welcome-coaches .artwork{width:5rem;height:8rem}.growth-list{grid-template-columns:1fr}.pin-entry-layout>.artwork{display:none}}.hub-avatar.artwork{width:4rem;height:4rem}.timer-box{position:relative}.timer-art.artwork{position:absolute;right:1rem;top:1rem;width:8rem;height:8rem}.lesson-coach.artwork{float:right;align-self:flex-end;width:7rem;height:7rem}.topbar .result-art{width:4rem;height:4rem}.lobby>.col{overflow:auto}.lobby>.col,.scan{min-height:0}@media (min-width:1101px) and (max-height:850px){.welcome-banner{padding:1rem 1.5rem}.welcome-coaches .artwork{height:7rem}.card.feature{padding:1.25rem;gap:1rem}.timer-big{font-size:5.5rem}.timer-box{padding:1.25rem}.coach-note .artwork{height:5.5rem;width:5.5rem}.hub-side .card{padding:1rem;gap:.625rem}.hub .btn.xl{min-height:5rem}}.lobby>.col>*{flex-shrink:0}.practice-total{padding:1rem 1.25rem}.practice-total .v{font-size:4rem;line-height:1.1}.practice-total small{font-size:1.25rem}.practice>.col .remote{flex:1 1;gap:.6rem}.practice>.col .remote>.row{flex-direction:column;align-items:flex-start;gap:.25rem!important}.practice>.col .remote .keys{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.practice>.col .remote .btn{min-width:0;flex:1 1;min-height:3.25rem;padding:.5rem}.practice>.col .remote .btn.feed{min-width:0}.practice>.col .remote .caption{font-size:.8125rem}.remote .btn.remote-pressed:disabled{opacity:1;color:#fff;background:var(--mint-d);border-color:var(--mint-d);box-shadow:inset 0 3px 0 rgb(0 0 0/18%);transform:translateY(2px)}.remote .btn:active:not(:disabled){transform:translateY(2px)}