@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Sora:wght@500;600;700&display=swap";:root{--anbu-bg: #101419;--anbu-surface: #222a33;--anbu-surface-elevated: #394150;--anbu-surface-2: var(--anbu-surface-elevated);--anbu-warning: #e8b75c;--anbu-control-border: #718096;--anbu-focus: #8cc8ff;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--radius-small: 8px;--radius-control: 12px;--radius-panel: 16px;--radius-preview: 24px;--anbu-text: #eaf2ff;--anbu-muted: #a8b4c6;--anbu-blue: #108cff;--anbu-purple: #9a31f8;--anbu-success: #42c98b;--anbu-danger: #ef5b68;--anbu-border: rgb(234 242 255 / 12%);--anbu-gradient: linear-gradient( 135deg, var(--anbu-blue), var(--anbu-purple) );font-family:Inter,sans-serif;color:var(--anbu-text);background:var(--anbu-bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 82% 0,rgb(16 140 255 / 13%),transparent 32%),var(--anbu-bg)}button,input{font:inherit}button{border:1px solid transparent;border-radius:var(--radius-control);min-height:48px;background:var(--anbu-blue);color:var(--anbu-bg);font-weight:700;padding:14px 20px;cursor:pointer;font-size:.95rem;box-shadow:none;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}button:hover{transform:translateY(-1px);box-shadow:none}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button:focus-visible,input:focus-visible{outline:2px solid var(--anbu-focus);outline-offset:3px}.secondary{background:var(--anbu-surface);border-color:var(--anbu-control-border);color:var(--anbu-text);box-shadow:none}.danger{background:var(--anbu-surface);border-color:var(--anbu-danger);color:var(--anbu-danger);box-shadow:none}.primary{background:var(--anbu-blue);color:var(--anbu-bg)}.ghost{background:transparent;color:var(--anbu-text);box-shadow:none}.brand{display:inline-flex;align-items:center;min-height:36px}.brand-logo{display:block;width:min(210px,32vw);height:auto;max-height:42px;object-fit:contain;object-position:left center}.brand-compact{display:none;align-items:center;gap:8px;color:var(--anbu-text);font:700 .88rem Sora,sans-serif;letter-spacing:.07em}.brand-compact img{width:30px;height:30px;object-fit:contain}.brand-compact b{color:var(--anbu-blue)}.anbu-neon-qr{position:relative;isolation:isolate;display:grid;width:var(--anbu-qr-size);height:var(--anbu-qr-size);max-width:100%;max-height:100%;place-items:center;padding:0;overflow:hidden;background:#fff}.anbu-neon-qr>svg{display:block;width:100%;height:100%}.landing,.join{max-width:720px;padding:40px 24px;margin:auto;min-height:100vh;display:flex;flex-direction:column;gap:42px}.landing{min-height:100dvh;justify-content:center;gap:clamp(20px,5dvh,60px);padding-block:clamp(20px,4dvh,40px)}.landing section,.join section{max-width:610px}.landing h1,.join h1{font:700 clamp(2.3rem,8vw,4.9rem)/1.05 Sora,sans-serif;letter-spacing:-.055em;margin:0 0 22px}.landing h1{font-size:clamp(3rem,min(5vw,8dvh),5rem)}.eyebrow{font-size:.72rem;letter-spacing:.14em;color:var(--anbu-blue);font-weight:700;margin:0 0 14px}.landing section>p:not(.eyebrow),.success>p{font-size:1.05rem;line-height:1.65;color:var(--anbu-muted);margin:0 0 24px}.landing .secondary{margin-left:10px}main>header{max-width:1100px;margin:0 auto;padding:clamp(14px,2.5dvh,30px) 28px;display:flex;justify-content:space-between;align-items:center}.active{font-weight:600;color:var(--anbu-text);font-size:.9rem}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--anbu-muted)}.dot.connected{background:var(--anbu-success);box-shadow:0 0 0 4px #42c98b1f}.room-layout{display:grid;grid-template-columns:minmax(400px,1.25fr) minmax(300px,.75fr);gap:24px;max-width:1100px;margin:0 auto;padding:0 28px 40px}.room-hero,.participants,.join section{background:linear-gradient(145deg,rgb(57 65 80 / 80%),var(--anbu-surface));border:1px solid var(--anbu-border);border-radius:20px;padding:32px;box-shadow:0 18px 44px #00000038}.room-hero{text-align:center;padding:clamp(22px,4dvh,36px)}.room-hero h1{font:700 clamp(3rem,min(9vw,8dvh),6rem)/.9 Sora,sans-serif;letter-spacing:.04em;margin:0 0 clamp(12px,2.5dvh,26px)}.room-hero h2,.participants h2,.upload h2{font:600 1.2rem Sora,sans-serif;margin:18px 0 8px}.qr{display:inline-grid;place-items:center}.room-screen .qr .anbu-neon-qr{width:clamp(150px,20dvh,190px);height:clamp(150px,20dvh,190px)}.join-url{color:var(--anbu-muted);word-break:break-all;margin:0 0 20px;font-size:.88rem}.teacher-control{margin-top:clamp(18px,3dvh,30px);padding-top:14px;border-top:1px solid var(--anbu-border)}.teacher-details{display:flex;align-items:center;justify-content:center;gap:16px;text-align:left}.teacher-details .anbu-neon-qr{width:clamp(104px,15dvh,155px);height:clamp(104px,15dvh,155px);flex:none}.teacher-details p{margin:0 0 8px;color:var(--anbu-muted);font-size:.9rem}.participants{min-width:0}.participants h2{margin-top:0}.participants p,.participants li span:not(.dot),.participants li b small{color:var(--anbu-muted)}.participants ul,.ready-list{list-style:none;padding:0;margin:16px 0}.participants li{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid var(--anbu-border)}.participants li div,.participant-action{display:grid;gap:4px}.participants li b,.received{color:var(--anbu-success)!important;font-size:.9rem}.participants li .waiting{color:var(--anbu-muted)}.participants em{margin-left:auto;font-style:normal;font-size:.78rem;color:var(--anbu-muted)}.participant-action{padding:14px 0;border-bottom:1px solid var(--anbu-border)}.participant-action span{color:var(--anbu-muted);font-size:.9rem}.participant-action button{justify-self:start;margin-top:6px;padding:9px 13px;font-size:.82rem}.display-screen{height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);background:radial-gradient(circle at 50% 0,rgb(154 49 248 / 16%),transparent 35%),var(--anbu-bg)}.display-screen .brand span,.display-screen .active,.display-screen .count{color:var(--anbu-text)}.display-screen .room-layout{min-height:0;width:min(100%,760px);padding:0 clamp(16px,3vw,28px) clamp(16px,3dvh,28px);grid-template-columns:minmax(0,1fr);place-items:center}.display-screen .room-hero{width:100%;height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,rgb(57 65 80 / 84%),var(--anbu-surface))}.display-screen .room-hero h1{font-size:clamp(3rem,min(10vw,8dvh),5.5rem);margin-bottom:clamp(8px,1.5dvh,16px)}.display-screen .qr{padding:0}.display-screen .qr .anbu-neon-qr{width:clamp(150px,24dvh,240px);height:clamp(150px,24dvh,240px)}.display-screen .room-hero h2{margin:clamp(8px,1.5dvh,16px) 0 4px;color:var(--anbu-text)}.display-screen .join-url{margin:0 0 clamp(8px,1.5dvh,16px);font-size:clamp(.78rem,1.8dvh,.95rem)}.count{margin:2px 0;font:600 clamp(1rem,2.3dvh,1.35rem) Sora,sans-serif;color:var(--anbu-text)}.ready-list{max-height:min(14dvh,120px);overflow:auto;margin:clamp(6px,1dvh,12px) 0 0}.ready-list li{font-size:1rem;padding:4px;color:var(--anbu-text)}.join{gap:32px}.join section{width:100%}form{display:grid;gap:18px}label{display:grid;gap:8px;font-weight:600}input{width:100%;border:1px solid var(--anbu-border);border-radius:10px;padding:14px;font-size:1rem;background:#101419b8;color:var(--anbu-text)}.file-picker{border:2px dashed rgb(16 140 255 / 62%);border-radius:14px;padding:22px;text-align:center;color:var(--anbu-text);background:#108cff0f;cursor:pointer}.file-picker input{display:none}.selected{background:#108cff1f!important;color:var(--anbu-text)!important;padding:14px;border-radius:10px}.error{color:var(--anbu-danger);margin:0}.success .disabled{background:var(--anbu-surface-2);color:var(--anbu-muted);padding:18px;border-radius:12px;font-size:.95rem}.teacher-screen{max-width:610px}.teacher-screen .success>button{min-height:52px;margin:4px 8px 4px 0}.teacher-screen .participant-action{border:1px solid var(--anbu-border);border-radius:12px;padding:14px;margin-top:10px;background:#10141947}.pdf-player{position:fixed;inset:0;width:100vw;height:100vh;overflow:hidden;display:grid;place-items:center;background:#000}.pdf-player canvas{display:block;max-width:100vw;max-height:100vh;width:auto;height:auto}.pdf-page-transform{display:grid;place-items:center;max-width:100vw;max-height:100vh;transform-origin:center center;will-change:transform}.pdf-player-overlay{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--anbu-text);font-size:1.1rem;background:#101419c7}.pdf-player-page-count{position:absolute;right:20px;bottom:16px;padding:7px 11px;border:1px solid var(--anbu-border);border-radius:9px;background:#101419c7;color:var(--anbu-text);font:600 .9rem Sora,sans-serif;pointer-events:none}@media(min-width:721px){.room-screen{height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}.room-screen .room-layout{height:auto;min-height:0;padding-bottom:clamp(16px,3dvh,40px)}.room-screen .room-hero,.room-screen .participants{min-height:0;overflow:hidden}.room-screen .participants{overflow-y:auto}.room-screen .participants li{padding:clamp(8px,1.8dvh,15px) 0}.room-screen .participants ul{margin-block:clamp(10px,2dvh,20px)}}@media(min-width:721px)and (max-height:800px){.room-layout{gap:20px}.room-hero,.participants{padding:20px}.room-hero h2{font-size:1.1rem}.room-hero .join-url{margin-bottom:14px}.room-hero button{padding:11px 16px}.teacher-control{margin-top:14px}.teacher-details{gap:12px}.teacher-details p{font-size:.86rem}.display-screen .room-hero{padding:14px}.ready-list{max-height:10dvh}}@media(max-width:720px){.brand-logo{display:none}.brand-compact{display:inline-flex}.landing,.join{padding:26px 18px}.landing{gap:42px}.landing h1{font-size:clamp(2.8rem,13vw,4.2rem)}.room-layout{grid-template-columns:1fr;padding:0 16px 30px}.room-hero,.participants,.join section{padding:24px 18px;border-radius:16px}.teacher-details{align-items:flex-start}.secondary{margin:12px 0 0;display:block;width:100%}.landing button{width:100%}main>header{padding:18px}}.brand-product{display:flex;align-items:center;gap:12px;font:600 24px/1.2 Sora,sans-serif;white-space:nowrap}.brand-product img{width:auto;height:clamp(42px,calc(3.2051dvh + 17.3846px),52px);object-fit:contain}.brand-product--compact{font-size:16px}.brand-product--compact img{width:32px;height:32px}.brand-endorsement{width:200px;height:auto;object-fit:contain}.status-badge{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.status-badge svg{color:var(--anbu-success);flex:none}.display-lobby{--display-inset: clamp(32px, calc(5.1282dvh - 7.3846px) , 48px);--display-qr: clamp(360px, 48dvh, 520px);position:fixed;inset:0;width:100dvw;height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:radial-gradient(ellipse at 20% 0%,rgb(16 140 255 / 6%),transparent 55%),radial-gradient(ellipse at 90% 100%,rgb(154 49 248 / 4%),transparent 50%),var(--anbu-bg);color:var(--anbu-text)}.display-lobby>.display-lobby-header{width:100%;max-width:none;margin:0;padding:var(--display-inset);position:relative;display:flex;justify-content:space-between;align-items:center;font-size:clamp(18px,calc(.641dvh + 13.077px),20px)}.display-lobby-header:after{content:"";position:absolute;bottom:0;left:var(--display-inset);right:var(--display-inset);height:1px;background:var(--anbu-gradient);opacity:.3}.display-lobby-header .brand-product{font-size:clamp(24px,calc(1.923dvh + 9.231px),30px)}.display-lobby-center{min-height:0;display:grid;grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;gap:20px;padding:16px}.display-lobby-code{text-align:center}.display-lobby-code p{margin:0 0 8px;color:var(--anbu-blue);font-size:clamp(14px,1.6dvh,16px);font-weight:600;letter-spacing:.14em}.display-lobby-code h1{margin:0;font:600 clamp(64px,calc(9.0909dvh - 5.8182px),76px)/1.05 Sora,sans-serif;letter-spacing:.04em}.branded-qr{width:min(var(--display-qr),80dvw);aspect-ratio:1;display:grid;place-items:center}.branded-qr>.anbu-neon-qr{width:100%;height:100%}.display-lobby-instruction{margin:0;font-size:clamp(22px,calc(1.923dvh + 7.231px),28px);line-height:1.3}.display-lobby-footer{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:16px var(--display-inset) var(--display-inset);font-size:clamp(18px,calc(.641dvh + 13.077px),20px);line-height:1.5}.display-lobby-footer p{margin:0}.display-lobby-footer p:first-child{flex:none}.display-lobby-footer p:last-child{max-width:58%;text-align:right;color:var(--anbu-muted)}.display-lobby-footer strong{color:var(--anbu-text);font-weight:500;overflow-wrap:anywhere}@media(min-height:900px){.display-lobby{--display-qr: clamp(440px, 52dvh, 560px)}.display-lobby-code h1{font-size:clamp(76px,calc(6.6667dvh + 16px),88px)}}@media(orientation:landscape)and (max-height:599px){.display-lobby{--display-inset: 16px;--display-qr: min(48dvh, 36dvw)}.display-lobby-center{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;column-gap:32px;row-gap:16px}.display-lobby-code{align-self:end}.display-lobby-code h1{font-size:clamp(36px,10dvh,64px)}.display-lobby-center .branded-qr{grid-column:2;grid-row:1 / 3}.display-lobby-instruction{grid-column:1;grid-row:2;align-self:start}}@media(max-width:720px){.display-lobby{--display-inset: 16px;--display-qr: min(36dvh, 72dvw)}.display-lobby-header .brand-product{font-size:16px;gap:8px}.display-lobby-header .brand-product img{width:32px;height:32px}.display-lobby-header .status-badge{font-size:14px;gap:4px}.display-lobby-code h1{font-size:48px}.display-lobby-footer{flex-direction:column;gap:8px;font-size:14px;text-align:center}.display-lobby-footer p:last-child{max-width:100%;text-align:center}}@media(prefers-reduced-motion:reduce){button{transition:none}button:hover,button:active{transform:none}}.landing-page{min-height:100dvh;display:flex;flex-direction:column;padding:0 clamp(32px,calc(5.776vw - 46.9px),64px) 32px;background:var(--anbu-bg);color:var(--anbu-text)}.landing-page>.landing-header{width:100%;max-width:1360px;margin:0 auto;padding:16px 0;display:flex;align-items:center;justify-content:space-between}.landing-product-name{font:600 22px/1.2 Sora,sans-serif;letter-spacing:.04em}.landing-header .brand-endorsement{display:block;width:200px;height:113px;object-fit:contain}.landing-hero{width:100%;max-width:1360px;margin:auto;display:grid;grid-template-columns:minmax(0,52fr) minmax(0,48fr);gap:48px;align-items:center}.landing-message{min-width:0}.landing-message .eyebrow{margin:0 0 20px}.landing-message h1{margin:0 0 24px;font:600 76px/1.05 Sora,sans-serif;letter-spacing:-.045em}.landing-description{margin:0;max-width:46ch;font-size:18px;line-height:28px;color:var(--anbu-muted)}.landing-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.landing-actions button{height:52px;padding:0 24px;margin:0}.landing-actions .secondary{width:auto;display:inline-flex;align-items:center}.landing-benefits{display:flex;flex-wrap:wrap;gap:12px 20px;list-style:none;padding:0;margin:32px 0 0}.landing-benefits li{display:flex;align-items:center;gap:8px;color:var(--anbu-muted);font-size:13px;line-height:20px}.landing-benefits svg{flex:none;color:var(--anbu-text)}.product-preview{min-width:0;margin:0;position:relative}.product-preview:before{content:"";position:absolute;inset:-80px -24px;pointer-events:none;background:radial-gradient(ellipse at 45% 35%,rgb(16 140 255 / 8%),transparent 65%),radial-gradient(ellipse at 80% 80%,rgb(154 49 248 / 5%),transparent 55%)}.product-preview-scene{position:relative;padding-bottom:100px}.preview-display{position:relative;width:100%;aspect-ratio:16/9;border:1px solid var(--anbu-border);border-radius:16px;background:var(--anbu-surface);box-shadow:0 24px 64px #0000004d;container-type:inline-size}.preview-display-header{display:flex;justify-content:space-between;align-items:center;padding:3cqw 4cqw;font:600 2cqw/1.2 Sora,sans-serif;position:relative}.preview-display-header:after{content:"";position:absolute;height:1px;bottom:0;left:4cqw;right:4cqw;background:var(--anbu-gradient);opacity:.4}.preview-display-header>span:last-child{display:flex;align-items:center;gap:4px;font:400 1.9cqw Inter,sans-serif}.preview-display-header svg{color:var(--anbu-success)}.preview-display-content{display:flex;flex-direction:column;align-items:center;width:66%;padding-top:2cqw;gap:1.2cqw}.preview-label{color:var(--anbu-blue);font-size:1.6cqw;letter-spacing:.1em}.preview-display-content>strong{font:600 5.6cqw/1.1 Sora,sans-serif;letter-spacing:.04em}.preview-qr{width:23cqw;height:23cqw;display:grid;place-items:center}.preview-qr .anbu-neon-qr{width:100%;height:100%}.preview-instruction{font-size:1.9cqw}.preview-display-foot{position:absolute;bottom:3cqw;left:4cqw;font-size:1.8cqw;color:var(--anbu-muted)}.preview-remote{position:absolute;right:16px;bottom:0;width:34%;min-height:245px;border:1px solid var(--anbu-control-border);border-radius:24px;background:var(--anbu-bg);box-shadow:0 24px 64px #0000004d;padding:22px 14px 16px;display:flex;flex-direction:column}.preview-remote-header{display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:.08em;color:var(--anbu-muted)}.preview-remote-header svg{color:var(--anbu-blue);flex:none}.preview-remote-group{font:500 13px/1.5 Sora,sans-serif;margin-top:30px;text-align:center}.preview-remote-count{font:600 44px/1.2 Sora,sans-serif;text-align:center;margin:16px 0 26px;font-variant-numeric:tabular-nums}.preview-remote-count>span{color:var(--anbu-muted);font-size:20px}.preview-remote-actions{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px}.preview-remote-actions>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 2px;border:1px solid var(--anbu-border);border-radius:8px;font-size:10px}.preview-remote-actions>span:last-child{background:var(--anbu-blue);color:var(--anbu-bg);border-color:transparent;flex-direction:column-reverse}.product-preview figcaption{margin-top:24px;font-size:12px;line-height:20px;color:var(--anbu-muted)}@media(min-width:1024px)and (max-width:1599px){.landing-hero{gap:40px}.landing-message h1{font-size:64px}}@media(min-width:1024px)and (max-height:800px){.landing-header .brand-endorsement{width:160px;height:90px}.landing-hero{gap:32px}.landing-message h1{font-size:56px}.landing-benefits{margin-top:24px}}@media(max-width:1023px){.landing-page{padding:0 24px 40px}.landing-hero{grid-template-columns:minmax(0,1fr);gap:48px;margin:24px auto 0;max-width:680px}.landing-header .brand-endorsement{width:140px;height:80px}.landing-product-name{font-size:18px}.landing-message h1{font-size:56px}.product-preview{width:100%;max-width:620px}}@media(max-width:480px){.product-preview:before{inset-inline:-16px}.landing-page{padding-inline:20px}.landing-header .brand-endorsement{width:108px;height:64px}.landing-product-name{font-size:16px}.landing-message h1{font-size:44px}.landing-description{font-size:18px;line-height:28px}.landing-actions{flex-direction:column}.landing-actions button{width:100%;justify-content:center}.landing-benefits{gap:12px;flex-direction:column}.product-preview-scene{padding-bottom:125px}.preview-remote{width:39%;right:4px;padding:16px 8px 12px;min-height:218px}.preview-remote-group{margin-top:20px;font-size:11px}.preview-remote-count{font-size:34px}.preview-remote-count>span{font-size:16px}.product-preview figcaption span{display:block}}.host-page{max-width:1440px;margin:auto;padding:0 24px 24px;color:var(--anbu-text)}.host-page>.host-header{height:72px;width:100%;max-width:none;padding:0;margin:0;display:flex;justify-content:space-between;align-items:center;gap:24px}.host-product{font:600 22px/1.2 Sora,sans-serif;letter-spacing:.04em}.host-header>div{display:flex;align-items:center;gap:24px}.host-header .brand-endorsement{width:140px;height:68px;object-fit:contain}.host-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px}.host-sidebar{padding:20px;background:var(--anbu-surface);border:1px solid var(--anbu-border);border-radius:16px;text-align:center}.host-sidebar .eyebrow{margin:0 0 8px}.host-sidebar h1{margin:0 0 16px;font:600 44px/1.05 Sora,sans-serif;letter-spacing:.04em}.host-entry-qr,.host-private-qr{margin:auto;width:240px;aspect-ratio:1;display:grid;place-items:center}.host-entry-qr .anbu-neon-qr,.host-private-qr .anbu-neon-qr{width:100%;height:100%}.host-private-qr{width:190px}.host-instruction{margin:12px 0 4px;font-size:14px}.host-url{margin:0 0 12px;font-size:12px;line-height:18px;color:var(--anbu-muted);overflow-wrap:anywhere}.host-sidebar button{width:100%;margin:0}.host-teacher{border-top:1px solid var(--anbu-border);margin-top:16px;padding-top:16px}.host-teacher h2{font:600 16px/24px Sora,sans-serif;margin:0 0 12px}.host-private-label{margin:8px 0 0;display:flex;justify-content:center;align-items:center;gap:6px;font-size:12px;line-height:18px;color:var(--anbu-muted)}.host-workspace{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--anbu-surface);border:1px solid var(--anbu-border);border-radius:16px}.host-workspace-header{padding:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;border-bottom:1px solid var(--anbu-border)}.host-workspace-header h2{margin:0;font:600 24px/32px Sora,sans-serif}.host-summary{display:flex;gap:8px;flex-wrap:wrap}.host-summary span{background:var(--anbu-bg);padding:6px 10px;border-radius:8px;font-size:13px}.host-connection{display:inline-flex;align-items:center;gap:8px;font-size:13px;line-height:20px;color:var(--anbu-muted)}.host-connection svg{flex:none}.host-connection.is-connected svg{color:var(--anbu-success)}.host-connection.is-disconnected svg{color:var(--anbu-warning)}.host-active{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:20px 24px;border-bottom:1px solid var(--anbu-border);border-left:3px solid var(--anbu-blue);background:var(--anbu-bg)}.host-active>div{flex:1;min-width:160px}.host-active .eyebrow{margin:0 0 6px}.host-active h3{font:600 18px/26px Sora,sans-serif;margin:0 0 8px;overflow-wrap:anywhere}.host-page-count{font:600 28px/36px Sora,sans-serif;margin:0;font-variant-numeric:tabular-nums}.host-page-count span{color:var(--anbu-muted);font-size:18px}.host-participant-list{min-height:0;flex:1}.host-participant-list:focus-visible{outline:2px solid var(--anbu-focus);outline-offset:-3px}.host-participant-list ul{list-style:none;margin:0;padding:0}.host-participant-row{padding:18px 24px;border-bottom:1px solid var(--anbu-border)}.host-participant-row.has-action:hover{background:#eaf2ff08}.host-participant-row.is-presenting{border-left:3px solid var(--anbu-blue)}.host-row-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.host-row-title h3{min-width:0;margin:0;font:600 18px/26px Sora,sans-serif;overflow-wrap:anywhere}.host-row-name{margin:4px 0;color:var(--anbu-muted);font-size:14px;overflow-wrap:anywhere}.host-file{display:flex;align-items:flex-start;gap:6px;margin:8px 0;color:var(--anbu-muted);font-size:13px;line-height:20px}.host-file svg{flex:none;margin-top:2px}.host-file span{min-width:0;overflow-wrap:anywhere}.host-row-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}.host-file-state{color:var(--anbu-muted);font-size:13px;line-height:20px}.host-file-state.is-ready{color:var(--anbu-success)}.host-row-bottom button{flex:none}.host-empty{padding:64px 24px;text-align:center}.host-empty>svg{color:var(--anbu-muted)}.host-empty h3{font:600 18px/26px Sora,sans-serif;margin:16px 0 8px}.host-empty p{max-width:36ch;margin:auto;color:var(--anbu-muted);font-size:14px;line-height:22px}.host-empty--compact{padding:24px;border-bottom:1px solid var(--anbu-border)}@media(min-width:1100px)and (min-height:740px){.host-page{height:100dvh;display:grid;grid-template-rows:72px minmax(0,1fr)}.host-layout{min-height:0}.host-participant-list{overflow-y:auto;scrollbar-gutter:stable}}@media(min-width:1100px)and (max-height:820px){.host-sidebar{padding:16px 20px}.host-sidebar h1{margin-bottom:12px}.host-entry-qr{width:210px}.host-private-qr{width:168px}.host-teacher{margin-top:12px;padding-top:12px}}@media(max-width:1099px){.host-page{padding:0 16px 24px}.host-layout{grid-template-columns:minmax(0,1fr)}.host-header{height:auto;min-height:72px;flex-wrap:wrap}.host-product{font-size:18px}.host-header>div{gap:12px}.host-header .brand-endorsement{width:100px}.host-sidebar{max-width:100%}}@media(max-width:600px){.host-page>.host-header{height:auto;padding:12px 0;gap:8px}.host-header>div{width:100%;justify-content:space-between}.host-workspace-header,.host-active,.host-participant-row{padding:16px}.host-row-bottom{flex-wrap:wrap}}.teacher-remote,.teacher-access-state{width:100%;min-height:100dvh;max-width:520px;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));color:var(--anbu-text)}.teacher-remote{display:flex;flex-direction:column;gap:20px}.remote-header{display:grid;gap:10px}.remote-header .brand-product{width:fit-content;gap:8px;font:600 16px/1.2 Sora,sans-serif;letter-spacing:.04em}.remote-header .brand-product img{width:32px;height:32px}.remote-header p{display:flex;align-items:center;gap:8px;margin:0;color:var(--anbu-muted);font-size:12px;font-weight:600;letter-spacing:.08em}.remote-role{display:inline-flex;align-items:center;width:fit-content;min-height:24px;padding:4px 8px;border:1px solid rgb(16 140 255 / 42%);border-radius:999px;background:#108cff1f;color:#91ccff;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.remote-statuses{display:flex;flex-wrap:wrap;gap:8px 14px}.remote-status{display:inline-flex;align-items:center;gap:6px;color:var(--anbu-muted);font-size:13px;font-weight:600}.remote-status.is-connected svg{color:var(--anbu-success)}.remote-status.is-disconnected svg{color:var(--anbu-warning)}.remote-reconnecting{display:flex;align-items:center;gap:8px;margin:0;padding:10px 12px;border:1px solid rgb(232 183 92 / 38%);border-radius:var(--radius-control);background:#e8b75c1a;color:#f2ca7d;font-size:14px;font-weight:600}.remote-presentation{display:flex;min-height:0;flex:1;flex-direction:column}.remote-presentation-info{margin-top:12px}.remote-presentation h1,.remote-groups>h1{margin:0;color:var(--anbu-text);font:600 24px/1.22 Sora,sans-serif;letter-spacing:-.03em;overflow-wrap:anywhere}.remote-presentation h1{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.remote-presentation-info>p{margin:8px 0 0;color:var(--anbu-muted);font-size:14px}.presentation-counter{display:flex;align-items:baseline;justify-content:center;gap:12px;margin:clamp(28px,7dvh,64px) 0 0;color:var(--anbu-text);font-variant-numeric:tabular-nums}.presentation-counter>span{font:600 88px/.94 Sora,sans-serif;letter-spacing:-.07em}.presentation-counter small{color:var(--anbu-muted);font:600 32px/1 Sora,sans-serif;letter-spacing:-.04em}.remote-tools-slot{flex:1;min-height:24px}.remote-controls{display:grid;grid-template-columns:2fr 3fr;gap:12px}.remote-controls button{display:inline-flex;min-height:80px;align-items:center;justify-content:center;gap:8px;padding:12px 8px;font-size:16px}.remote-controls .primary{color:var(--anbu-bg)}.remote-danger-zone{margin-top:24px;padding-top:24px;border-top:1px solid var(--anbu-border)}.remote-danger-zone .danger{width:100%;min-height:48px}.remote-groups{display:grid;gap:20px}.remote-groups>ul{display:grid;gap:12px;padding:0;margin:0;list-style:none}.remote-group-card{display:grid;gap:16px;padding:18px;border:1px solid var(--anbu-border);border-radius:var(--radius-panel);background:#222a33db}.remote-group-card h2{margin:0;color:var(--anbu-text);font:600 19px/1.25 Sora,sans-serif;overflow-wrap:anywhere}.remote-group-file,.remote-group-person,.remote-unavailable{margin:7px 0 0;color:var(--anbu-muted);font-size:14px}.remote-group-person{margin-top:4px}.remote-group-card .remote-status{margin-top:10px}.remote-group-card>.primary{width:100%;min-height:56px}.remote-unavailable{padding-top:12px;border-top:1px solid var(--anbu-border);line-height:1.4}.remote-empty{display:grid;justify-items:start;gap:10px;padding:24px 0;color:var(--anbu-muted)}.remote-empty svg{color:var(--anbu-blue)}.remote-empty h2,.remote-empty p{margin:0}.remote-empty h2{color:var(--anbu-text);font:600 20px/1.3 Sora,sans-serif}.remote-empty p{max-width:330px;line-height:1.5}.teacher-access-state{display:grid;align-content:start;gap:48px}.teacher-access-state section{display:grid;justify-items:start;gap:14px;padding-top:32px}.teacher-access-state section>*{margin:0}.teacher-access-state h1{font:600 28px/1.18 Sora,sans-serif;letter-spacing:-.04em}.teacher-access-state section>p:last-child{color:var(--anbu-muted);line-height:1.5}.teacher-remote button{transition:transform .1s ease,background .1s ease,border-color .1s ease}.teacher-remote button:hover{transform:none}.teacher-remote button:active:not(:disabled){transform:scale(.98)}.teacher-remote button:disabled{opacity:.58}@media(max-height:700px){.presentation-counter{margin-top:28px}.presentation-counter>span{font-size:64px}.presentation-counter small{font-size:26px}.remote-tools-slot{min-height:24px}}@media(prefers-reduced-motion:reduce){.teacher-remote button{transition:none}.teacher-remote button:active:not(:disabled){transform:none}}.student-page{width:100%;min-height:100dvh;max-width:520px;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));color:var(--anbu-text)}.student-header{display:grid;gap:10px}.student-header .brand-product{width:fit-content;gap:8px;font:600 16px/1.2 Sora,sans-serif;letter-spacing:.04em}.student-header .brand-product img{width:32px;height:32px}.student-header p{margin:0;color:var(--anbu-muted);font-size:12px;font-weight:600;letter-spacing:.08em}.student-identity,.student-upload,.student-received{width:100%;max-width:420px;margin-top:clamp(52px,12dvh,104px)}.student-identity h1,.student-upload h1,.student-received h1,.student-presentation h1{margin:0;color:var(--anbu-text);font:600 30px/1.18 Sora,sans-serif;letter-spacing:-.045em;overflow-wrap:anywhere}.student-identity>p{margin:10px 0 32px;color:var(--anbu-muted);font-size:13px;font-weight:600;letter-spacing:.08em}.student-identity form,.student-upload form{display:grid;gap:16px}.student-identity label{gap:9px;color:var(--anbu-text);font-size:14px}.student-identity input{min-height:48px;padding:12px 14px;font-size:16px}.student-identity .primary,.student-upload .primary{width:100%;min-height:52px;margin-top:8px}.student-kicker{margin:0 0 10px;color:var(--anbu-muted);font-size:14px;font-weight:600}.student-upload h1{margin-bottom:28px;font-size:24px}.student-file-picker{display:grid;min-height:176px;place-items:center;align-content:center;gap:10px;padding:24px;border:1px dashed rgb(140 200 255 / 52%);border-radius:var(--radius-panel);background:#222a33a8;color:var(--anbu-text);text-align:center;cursor:pointer}.student-file-picker:hover{border-color:var(--anbu-blue);background:#108cff14}.student-file-picker svg{color:var(--anbu-blue)}.student-file-picker strong{font:600 17px/1.2 Sora,sans-serif}.student-file-picker span{color:var(--anbu-muted);font-size:14px}.student-file-picker input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%)}.student-selected,.student-received-file{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--anbu-border);border-radius:var(--radius-control);background:#222a33b8}.student-selected svg,.student-received-file svg{flex:0 0 auto;margin-top:2px;color:var(--anbu-blue)}.student-selected p,.student-received-file p{display:grid;gap:3px;min-width:0;margin:0}.student-selected strong,.student-received-file strong{overflow-wrap:anywhere;font-size:14px}.student-selected span,.student-received-file span{color:var(--anbu-muted);font-size:13px}.student-uploading,.student-error{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;line-height:1.45}.student-uploading{color:var(--anbu-muted)}.student-uploading svg{animation:student-spin .8s linear infinite}.student-error{color:#ff9da6}.student-received{display:grid;justify-items:start;gap:16px}.student-received>svg{color:var(--anbu-success)}.student-received .student-kicker{margin:0}.student-received h1{font-size:28px}.student-received-file{width:100%}.student-received-note{max-width:390px;margin:0;color:var(--anbu-muted);line-height:1.55}.student-received .ghost{min-height:48px;padding-inline:0;color:var(--anbu-muted);font-size:14px;font-weight:600}.student-remote{display:flex;flex-direction:column;gap:20px}.student-presentation{display:flex;min-height:0;flex:1;flex-direction:column;padding-top:12px}.student-presentation h1{display:-webkit-box;overflow:hidden;font-size:24px;-webkit-box-orient:vertical;-webkit-line-clamp:3}.student-presentation .presentation-counter{margin-top:clamp(28px,7dvh,64px)}.student-tools-slot{flex:1;min-height:24px}.student-remote .remote-controls button{transition:transform .1s ease,background .1s ease,border-color .1s ease}.student-remote .remote-controls button:hover{transform:none}.student-remote .remote-controls button:active:not(:disabled){transform:scale(.98)}.student-remote .remote-controls button:disabled{opacity:.58}@keyframes student-spin{to{transform:rotate(360deg)}}@media(max-height:700px){.student-identity,.student-upload,.student-received{margin-top:40px}}@media(prefers-reduced-motion:reduce){.student-uploading svg{animation:none}.student-remote .remote-controls button{transition:none}.student-remote .remote-controls button:active:not(:disabled){transform:none}}.laser-overlay{position:fixed;top:0;left:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#ff2938;box-shadow:0 0 0 3px #ff29382e,0 0 12px 5px #ff293894;opacity:0;pointer-events:none;z-index:4;will-change:transform,opacity}.gyro-laser-control{display:grid;width:100%;max-width:420px;gap:10px;padding:14px;border:1px solid var(--anbu-border);border-radius:var(--radius-panel);background:#222a33b8}.gyro-laser-control>p{margin:0;color:var(--anbu-muted);font-size:13px;line-height:1.45}.laser-launch,.laser-hold{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px}.laser-launch{justify-self:start;padding:10px 14px}.laser-launch svg{color:var(--anbu-blue)}.laser-launch:disabled svg{animation:laser-spin .8s linear infinite}.gyro-laser-title{display:flex;align-items:center;gap:8px;font:600 15px/1.2 Sora,sans-serif}.gyro-laser-title svg{color:var(--anbu-blue)}.gyro-sensitivity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;color:var(--anbu-muted);font-size:13px;font-weight:600}.gyro-sensitivity input{min-width:0;accent-color:var(--anbu-blue)}.gyro-sensitivity output{min-width:30px;color:var(--anbu-text);font-variant-numeric:tabular-nums}.laser-hold{width:100%;margin-top:2px;border-color:#ff5a689e;background:#4b1f25b8;color:#ffbac0;font-size:15px;letter-spacing:.04em;text-transform:uppercase;touch-action:none}.laser-hold>span{width:8px;height:8px;border-radius:50%;background:currentcolor}.laser-hold.is-active{border-color:#ff5360;background:#a026339e;color:#fff0f1}.laser-hold.is-active>span{background:#ff3442;box-shadow:0 0 8px 2px #ff3442c7}.laser-debug{margin:0;color:var(--anbu-muted);font-size:11px;font-variant-numeric:tabular-nums}.laser-transport{color:var(--anbu-muted);font-size:12px;font-weight:600}.laser-display-debug{position:fixed;right:12px;top:12px;z-index:5;padding:5px 7px;border-radius:6px;background:#101419c2;color:#d6e4f5;font:600 11px/1 Inter,sans-serif;font-variant-numeric:tabular-nums;pointer-events:none}.presenter-tools{display:grid;gap:12px}.zoom-pan-control{display:grid;gap:9px;width:100%;max-width:420px;padding:14px;border:1px solid var(--anbu-border);border-radius:var(--radius-panel);background:#222a33b8}.zoom-pan-heading{display:flex;align-items:center;gap:8px;font:600 15px/1.2 Sora,sans-serif}.zoom-pan-heading svg{color:var(--anbu-blue)}.zoom-pan-heading output{margin-left:auto;color:var(--anbu-text);font-variant-numeric:tabular-nums}.zoom-pan-presets{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.zoom-pan-presets button{min-height:46px;padding:6px 2px;font-size:13px}.zoom-pan-presets .selected{background:var(--anbu-blue);color:var(--anbu-bg)}.zoom-pan-fit{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:8px 12px}.zoom-pan-arrows{display:grid;grid-template-columns:56px 56px 56px;grid-template-rows:56px 56px 56px;justify-content:center;gap:6px}.zoom-pan-arrows button{min-height:56px;padding:6px;display:grid;place-items:center;border-radius:13px}.zoom-pan-arrows svg{width:23px;height:23px}.zoom-pan-arrow-up{grid-column:2;grid-row:1}.zoom-pan-arrow-left{grid-column:1;grid-row:2}.zoom-pan-arrow-center{grid-column:2;grid-row:2}.zoom-pan-arrow-right{grid-column:3;grid-row:2}.zoom-pan-arrow-down{grid-column:2;grid-row:3}@keyframes laser-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.laser-launch:disabled svg{animation:none}}.qr-lab,.qr-projector-test{--qr-lab-surface: #101419;--qr-lab-text: #eaf2ff;--qr-lab-muted: #a8b4c6;min-height:100dvh;color:var(--qr-lab-text);background:radial-gradient(circle at 18% 0%,rgb(16 140 255 / 10%),transparent 32%),radial-gradient(circle at 90% 100%,rgb(154 49 248 / 8%),transparent 35%),var(--qr-lab-surface)}.qr-lab[data-surface=light],.qr-projector-test[data-surface=light]{--qr-lab-surface: #f3f6fb;--qr-lab-text: #101419;--qr-lab-muted: #596575}.qr-lab{padding:clamp(24px,5vw,72px)}.qr-lab-header{width:min(1180px,100%);margin:0 auto 24px;display:flex;align-items:end;justify-content:space-between;gap:24px}.qr-lab-header h1{margin:0;font:600 clamp(2.2rem,5vw,4rem)/1 Sora,sans-serif;letter-spacing:-.05em}.qr-lab-header p:not(.eyebrow){max-width:620px;margin:14px 0 0;color:var(--qr-lab-muted);line-height:1.55}.qr-lab-header .secondary,.qr-lab-card .secondary,.qr-projector-controls .secondary,.qr-projector-controls .ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px}.qr-lab-controls{width:min(1180px,100%);margin:0 auto 28px;padding:16px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;border:1px solid color-mix(in srgb,var(--qr-lab-text) 14%,transparent);border-radius:16px;background:color-mix(in srgb,var(--qr-lab-surface) 76%,#fff 24%)}.qr-lab-controls label,.qr-lab-controls fieldset{display:inline-flex;align-items:center;gap:8px;color:var(--qr-lab-text);font-size:.9rem}.qr-lab-controls select{min-height:36px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--qr-lab-text) 24%,transparent);border-radius:8px;background:var(--qr-lab-surface);color:var(--qr-lab-text)}.qr-lab-controls input{width:auto;accent-color:var(--anbu-blue)}.qr-lab-controls fieldset{margin:0;padding:0;border:0}.qr-lab-controls legend{margin-right:8px;color:var(--qr-lab-muted);font-size:.78rem}.qr-lab-controls code{min-width:min(100%,250px);margin-left:auto;overflow:hidden;color:var(--qr-lab-muted);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.qr-lab-grid{width:min(1180px,100%);margin:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:20px}.qr-lab-card{min-width:0;padding:20px;display:grid;justify-items:center;gap:16px;border:1px solid color-mix(in srgb,var(--qr-lab-text) 14%,transparent);border-radius:18px;background:color-mix(in srgb,var(--qr-lab-surface) 82%,#fff 18%)}.qr-lab-card>header{width:100%;display:flex;align-items:start;justify-content:space-between;gap:12px}.qr-lab-card h2{margin:0;font:600 1.1rem/1.2 Sora,sans-serif}.qr-lab-card p{margin:5px 0 0;color:var(--qr-lab-muted);font-size:.82rem}.qr-lab-card header span{padding:4px 6px;border-radius:5px;color:#ffcf8e;background:#c66e1638;font-size:.61rem;font-weight:700;letter-spacing:.08em}.qr-lab-code{display:grid;width:min(var(--qr-lab-size),100%);aspect-ratio:1;place-items:center;overflow:visible;background:#fff}.qr-lab-code.has-frame{padding:8px;border:1px solid transparent;border-radius:18px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#108cffc7,#9a31f8b8) border-box;box-shadow:0 10px 24px #0610222e,0 0 18px #515bed1a}.qr-lab-code.is-badge.has-frame{padding:14px;border-radius:26px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#108cff,#9a31f8,#108cff) border-box;box-shadow:0 14px 32px #4852ec3b}.qr-lab-code.is-projector.has-frame{padding:3px;border-radius:10px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#254fb2cc,#5d37a5bd) border-box;box-shadow:0 8px 20px #1b357a24,0 0 14px #5d37a517}.qr-lab-code>svg{display:block;width:100%;height:100%}.qr-lab-projector-candidates{width:min(1180px,100%);margin:52px auto 0;padding-top:38px;border-top:1px solid color-mix(in srgb,var(--qr-lab-text) 16%,transparent)}.qr-lab-projector-candidates>header{max-width:700px;margin:0 0 24px}.qr-lab-projector-candidates h2{margin:5px 0 0;font:600 clamp(1.45rem,3vw,2.1rem)/1.1 Sora,sans-serif;letter-spacing:-.04em}.qr-lab-projector-candidates>header>p:not(.eyebrow){margin:10px 0 0;color:var(--qr-lab-muted);line-height:1.55}.qr-lab-card--projector{border-color:color-mix(in srgb,var(--anbu-blue) 34%,transparent);background:color-mix(in srgb,var(--qr-lab-surface) 88%,#fff 12%)}.qr-projector-test{position:fixed;inset:0;display:grid;place-items:center;overflow:hidden}.qr-projector-test .qr-lab-code{width:min(var(--qr-lab-size),72dvh,72dvw)}.qr-projector-preset{position:fixed;top:20px;right:24px;color:var(--qr-lab-muted);font:600 .78rem/1 Sora,sans-serif;letter-spacing:.1em;text-transform:uppercase}.qr-projector-controls{position:fixed;bottom:24px;left:50%;display:flex;align-items:center;gap:10px;padding:8px;border:1px solid color-mix(in srgb,var(--qr-lab-text) 14%,transparent);border-radius:14px;background:color-mix(in srgb,var(--qr-lab-surface) 86%,#fff 14%);color:var(--qr-lab-text);transform:translate(-50%)}.qr-projector-controls .secondary,.qr-projector-controls .ghost{min-height:40px;padding:8px 12px}.qr-projector-controls .ghost{width:40px;padding:0}@media(max-width:720px){.qr-lab{padding:20px 16px 32px}.qr-lab-header{align-items:start;flex-direction:column}.qr-lab-header .secondary{width:100%}.qr-lab-controls code{width:100%;margin-left:0}.qr-projector-controls{width:calc(100% - 24px);justify-content:center}.qr-projector-controls .secondary{font-size:.78rem}}
