*{box-sizing:border-box}body{margin:0;background:var(--bg-dark);color:var(--text-light);font:16px/1.5 Manrope,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,.button{min-height:46px;border:1px solid var(--border-control-dark);border-radius:10px;padding:10px 16px;color:var(--text-light);background:var(--surface-dark);cursor:pointer;font-weight:650}button:hover:not(:disabled),.button:hover{background:var(--surface-dark-strong)}button:disabled,fieldset:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent-soft);outline-offset:4px}p{color:var(--text-light-soft)}h1,h2{letter-spacing:-.03em;line-height:1.15}label{display:block;font-size:.875rem;font-weight:650;margin:12px 0 6px}input,select{min-height:48px;width:100%;padding:10px 12px;background:var(--bg-dark);color:var(--text-light);border:1px solid var(--border-control-dark);border-radius:10px}input[type=range]{accent-color:var(--accent);padding:0}fieldset{border:0;padding:0;margin:0;min-width:0}.shell-brand{display:flex;align-items:center;gap:14px}.shell-brand img{flex:0 0 auto}.shell-brand span{display:grid;gap:3px}.shell-brand strong{font:700 .95rem Sora,Manrope,sans-serif;letter-spacing:.08em}.shell-brand small{color:var(--text-light-soft);font-size:.8rem}.landing{max-width:1100px;padding:36px 24px 60px;margin:auto}.landing-copy{max-width:700px;margin-top:80px}.kicker{font:600 .75rem Sora,Manrope,sans-serif;letter-spacing:.12em;color:var(--accent-soft)}.landing h1{font-size:clamp(36px,5vw,66px);margin:24px 0}.landing-copy>p:last-child{font-size:1.05rem;max-width:560px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}.mode-card{padding:32px;border:1px solid var(--line-dark);background:var(--bg-dark-2);border-radius:24px;display:flex;flex-direction:column;transition:background .15s}.mode-card:hover{background:var(--surface-dark)}.mode-card:first-child{background:var(--surface-light-strong);color:var(--text-dark)}.mode-card:first-child p{color:var(--text-dark-soft)}.mode-icon{font-size:42px;color:var(--accent)}.mode-card h2{font-size:26px;margin:20px 0 0}.mode-card p{margin-bottom:32px}.mode-cta{margin-top:auto;font-weight:700}.landing-note{font-size:.8rem;margin-top:28px}.back-link{color:var(--text-light-soft);font-size:.875rem}.target-shell{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.session-bar{height:112px;flex:0 0 112px;display:flex;align-items:center;justify-content:space-between;padding:8px 28px;border-bottom:1px solid var(--line-dark);gap:20px}.room-code{display:flex;align-items:center;gap:24px}.room-code>span{font-size:.75rem;letter-spacing:.1em;color:var(--accent-soft);max-width:90px}.room-code strong{font:700 76px/1 Sora,Manrope,sans-serif;letter-spacing:.14em;color:var(--text-light);font-variant-numeric:tabular-nums}.session-side{display:grid;gap:6px;text-align:center;font-size:.8rem;color:var(--text-light-soft)}.target-frame{border:0;display:block;width:100%;flex:1;min-height:0;background:var(--bg-dark)}.remote-shell{max-width:1240px;margin:auto;padding:24px 24px 130px}.remote-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.quiet-button{background:transparent}.join-card{max-width:500px;margin:70px auto 0;padding:32px;background:var(--bg-dark-2);border:1px solid var(--line-dark);border-radius:24px}.join-card h1{font-size:32px}.join-card .primary-button{width:100%;margin:18px 0}.code-input{text-transform:uppercase;font:600 36px Sora,Manrope,sans-serif;letter-spacing:.3em;text-align:center;min-height:72px}.primary-button{background:var(--surface-light-strong);color:var(--text-dark);border-color:var(--surface-light-strong)}.primary-button:hover:not(:disabled){background:var(--surface-light)}.remote-title{display:flex;align-items:center;gap:18px;margin:30px 0 12px;font-size:30px}.code-chip{font:600 24px Sora,Manrope,sans-serif;letter-spacing:.14em;color:var(--accent-soft)}.connection-status{font-size:.8rem;margin-bottom:20px;color:var(--text-light-soft)}.connection-status:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sand-dark-8);margin-right:8px}.connection-status.online:before{background:var(--accent-soft)}.connection-status.offline{color:var(--accent-soft)}.remote-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px}.remote-paper{position:relative;background:var(--bg-configurator);color:var(--text-dark);border-radius:24px;overflow:hidden}.remote-paper.flash{background:#51ed76}.remote-paper svg{display:block;width:100%;height:auto;max-height:420px;pointer-events:none}.preview-stats{position:absolute;inset:18px 12px auto;text-align:center;pointer-events:none}.preview-stats>span{font-size:.6rem;letter-spacing:.12em}.preview-stats strong{display:block;font:600 36px/1.2 Sora,Manrope,sans-serif;margin-top:4px}.preview-stats small{font-size:14px}.preview-stats p{color:var(--text-dark-soft);font-size:.75rem;margin:6px 0}.preview-caption{padding:0 12px 14px;text-align:center;font-size:.8rem}.preview-caption span{display:block;font-size:.65rem;color:var(--text-dark-soft)}.live-status{font-size:.875rem}.camera-status{border-top:1px solid var(--line-dark);padding-top:14px;font-size:.875rem}.camera-status small{color:var(--accent-soft)}.remote-settings{border:1px solid var(--line-dark);border-radius:24px;padding:24px;background:var(--bg-dark-2)}.remote-settings h2{margin:0;font-size:22px}.remote-settings>p,.field-note,.remote-scale p{font-size:.8rem}.form-grid,.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.action-grid{margin-top:20px}.action-grid button:first-child{grid-column:1/-1}.remote-scale{padding:14px 0;border-block:1px solid var(--line-dark);margin-top:20px}.remote-scale summary{cursor:pointer;font-size:.875rem}.remote-scale button{margin-top:12px}output{float:right;color:var(--accent-soft)}.notice{padding:12px;border:1px solid var(--accent-border);border-radius:10px;color:var(--accent-soft);font-size:.875rem}.notice.error,.command-error{color:#ffb6b6}.remote-dock{position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--bg-dark-2);border-top:1px solid var(--line-dark);display:flex;align-items:center;justify-content:center;gap:24px;padding:12px 24px calc(12px + env(safe-area-inset-bottom))}.remote-dock p{font-size:.8rem;margin:0;max-width:520px}.reset-button{display:flex;align-items:center;justify-content:center;gap:12px;min-width:240px;background:var(--surface-light-strong);color:var(--text-dark);font-weight:750}.reset-button span{font-size:28px;font-weight:900;line-height:1}.reconnect{display:none}.components-reconnect-show,.components-reconnect-failed,.components-reconnect-rejected{display:flex;position:fixed;inset:0;z-index:1000;background:#111110e8;align-items:center;justify-content:center;padding:24px}.reconnect>div{max-width:480px;border:1px solid var(--line-dark);border-radius:24px;padding:30px;background:var(--bg-dark-2)}#blazor-error-ui{display:none;position:fixed;bottom:0;z-index:2000;background:#3b352b;color:#eeeeec;padding:16px;width:100%}
@media(max-width:740px){.landing{padding:22px 18px}.landing-copy{margin-top:48px}.mode-grid{grid-template-columns:1fr;gap:16px}.mode-card{padding:24px}.mode-card h2{font-size:24px}.mode-card p{margin-bottom:22px}.landing h1{font-size:40px}.shell-brand{gap:10px}.shell-brand img{width:42px;height:42px}.shell-brand strong{font-size:.77rem}.shell-brand small{font-size:.72rem}.session-bar{height:106px;flex-basis:106px;padding:8px 12px;gap:8px}.session-bar>.back-link{font-size:.7rem}.room-code{display:grid;gap:4px;text-align:center}.room-code>span{max-width:none;font-size:.6rem}.room-code strong{font-size:42px;letter-spacing:.08em}.session-side{font-size:.7rem}.session-side button{font-size:.7rem;padding:7px;max-width:94px}.remote-shell{padding:18px 14px 160px}.remote-header .quiet-button{font-size:.75rem;padding:8px}.join-card{margin-top:38px;padding:24px 20px}.join-card h1{font-size:28px}.remote-grid{grid-template-columns:minmax(0,1fr);gap:18px}.remote-title{font-size:26px;margin-top:24px}.remote-paper{border-radius:18px}.remote-paper svg{max-height:330px}.preview-stats strong{font-size:30px}.remote-settings{border-radius:18px;padding:20px 16px}.camera-status{font-size:.8rem}.remote-dock{display:grid;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom))}.remote-dock p{text-align:center;font-size:.75rem}.reset-button{min-height:52px;min-width:0;width:100%}.action-grid button{font-size:.8rem}.form-grid{gap:10px}.remote-settings label{font-size:.8rem}input,select{font-size:16px}}
/* Route navigation focuses headings for screen readers without drawing a control outline. */
h1:focus,h2:focus{outline:none}
.preview-stats{position:static;padding:20px 12px 4px}
.remote-paper svg.target-closeup{width:100%;height:auto;max-height:none;aspect-ratio:1;display:block}
.preview-zoom{display:flex;align-items:center;justify-content:center;gap:10px;padding:0 12px 16px;color:var(--text-dark-soft);font-size:.75rem}
.preview-zoom button{min-height:44px;padding:8px 10px;background:transparent;border-color:var(--sand-8);color:var(--text-dark);font-size:.75rem}
.preview-zoom button:hover:not(:disabled){background:var(--sand-4)}
@media(max-width:740px){.preview-stats{padding-top:18px}.remote-paper .preview-caption{padding-top:4px}.preview-stats strong{font-size:36px}}
.form-grid,.action-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.form-grid>div,.remote-header>.shell-brand{min-width:0}
.remote-shell{width:100%;min-width:0}
/* Home: introduction, equipment and device reference. */
.landing-copy>p:last-child{max-width:660px;line-height:1.75}
.landing-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:28px 0;border-bottom:1px solid var(--line-dark)}
.landing-facts strong{display:block;font:600 18px Sora,Manrope,sans-serif;color:var(--accent-soft)}
.landing-facts span{display:block;margin-top:8px;color:var(--text-light-soft);font-size:.8rem}
.landing-section{margin-top:76px;scroll-margin-top:24px}
.landing-section>h2{font-size:clamp(27px,3.2vw,38px);margin:14px 0 20px;max-width:780px}
.section-intro{max-width:740px;line-height:1.75;margin-bottom:28px}
.equipment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.equipment-grid article{border:1px solid var(--line-dark);border-radius:20px;padding:26px 24px;background:var(--bg-dark-2)}
.item-index,.device-type{font:600 .7rem Sora,Manrope,sans-serif;letter-spacing:.1em;color:var(--accent-soft)}
.equipment-grid h3,.setup-steps h3{font-size:19px;line-height:1.4;margin:18px 0 12px}
.equipment-grid p,.setup-steps p{font-size:.9rem;line-height:1.75;margin-bottom:0}
.equipment-extra{font-size:.875rem;line-height:1.8;margin-top:20px}
.equipment-extra strong{color:var(--text-light)}
.setup-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;list-style:none;padding:0;counter-reset:steps}
.setup-steps li{counter-increment:steps;border-top:2px solid var(--accent-border);padding-top:20px}
.setup-steps li:before{content:"0" counter(steps);font:500 28px Sora,Manrope,sans-serif;color:var(--accent-soft)}
.device-list{border-top:1px solid var(--line-dark)}
.device-row{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:38px;padding:28px 0;border-bottom:1px solid var(--line-dark)}
.device-row h3{font-size:21px;line-height:1.5;margin:10px 0 0}
.device-row a:hover,.device-note a:hover,.landing-footer a:hover{color:var(--accent-soft)}
.device-row p{margin:0;font-size:.95rem;line-height:1.75}
.device-row .device-detail{font-size:.825rem;margin-top:10px;color:var(--accent-soft)}
.device-note{padding:24px 28px;margin-top:28px;border-left:3px solid var(--accent);border-radius:0 16px 16px 0;background:var(--bg-dark-2)}
.device-note h3{font-size:18px;margin:0 0 10px}.device-note p{margin:0;line-height:1.8;font-size:.9rem}.device-note a{text-decoration:underline;text-underline-offset:4px}
.landing-questions details{border-bottom:1px solid var(--line-dark);padding:0 4px}
.landing-questions summary{padding:22px 0;cursor:pointer;font-weight:650;line-height:1.5}
.landing-questions details p{max-width:820px;line-height:1.8;margin:0 0 24px;font-size:.9rem}
.landing-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:64px;padding-top:24px;border-top:1px solid var(--line-dark);font-size:.75rem;color:var(--text-light-soft)}
.landing-footer a{padding:12px 0;font-size:.875rem;color:var(--text-light)}
@media(max-width:740px){.landing-facts{gap:20px;grid-template-columns:1fr;padding:24px 0}.landing-facts div{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.landing-facts strong{font-size:15px}.landing-facts span{font-size:.72rem;text-align:right;margin-top:0;max-width:150px}.landing-section{margin-top:52px}.equipment-grid,.setup-steps{grid-template-columns:minmax(0,1fr)}.equipment-grid article{padding:24px}.setup-steps{gap:24px}.device-row{grid-template-columns:minmax(0,1fr);gap:14px;padding:24px 0}.device-row h3{font-size:20px}.device-note{padding:22px 20px}.landing-footer{flex-direction:column;align-items:flex-start;gap:6px}.landing-questions summary{font-size:.95rem}}
