:root{--accent:#6d28d9;--accent-hover:#5b21b6;--accent-soft:#f3effd;--accent-text:#fff;--ink:#14121c;--muted:#5f5b6e;--line:#e7e4ef;--surface:#fff;--surface-alt:#faf9fc;--success:#15803d;--warning:#b45309;--danger:#b91c1c;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--radius:8px}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--surface);line-height:1.6;font-size:16px}h1,h2,h3{line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em}h1{font-size:clamp(2rem,4.5vw,3rem);font-weight:700}h2{font-size:1.5rem;font-weight:650}h3{font-size:1.05rem;font-weight:600}p{margin:0 0 1em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.skip-link{position:absolute;left:-999px;top:0;background:var(--accent);color:#fff;padding:8px 12px;z-index:100}.skip-link:focus{left:8px;top:8px}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 16px}.narrow{max-width:720px}.muted{color:var(--muted)}.eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 .75em}.lead{font-size:1.125rem;color:var(--muted);max-width:56ch}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;font-size:.95rem;padding:9px 16px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s;line-height:1.3}.btn:hover{text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-ghost{background:transparent;color:var(--ink)}.btn-ghost:hover:not(:disabled){background:var(--accent-soft)}.btn-danger{background:var(--surface);color:var(--danger);border-color:#f0c9c9}.btn-danger:hover:not(:disabled){background:#fdf3f3;border-color:var(--danger)}.btn-lg{padding:12px 22px;font-size:1rem}.btn-block{width:100%}.site-header{border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:20}.header-row{display:flex;align-items:center;gap:24px;height:64px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);font-size:1.02rem}.brand:hover{text-decoration:none}.nav{display:flex;gap:20px;margin-left:12px;flex:1}.nav a{color:var(--muted);font-size:.95rem}.nav a:hover{color:var(--ink);text-decoration:none}.header-actions{display:flex;gap:8px}.banner{padding:10px 14px;border-radius:var(--radius);font-size:.93rem;border:1px solid var(--line);margin:0 0 16px}.banner-warn{background:#fffbeb;border-color:#f3dfa6;color:#7a4a05}.banner-info{background:var(--accent-soft);border-color:#ddd2f7;color:#3b1a85}.banner-error{background:#fdf3f3;border-color:#f0c9c9;color:#8a1818}body[data-page=landing]>.banner{margin:0;border-radius:0;border-width:0 0 1px}.hero{padding:72px 0 64px;background:linear-gradient(180deg,var(--surface-alt),var(--surface))}.hero-grid{display:grid;grid-template-columns:1.3fr .8fr;gap:48px;align-items:center}.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.capacity{border:1px solid var(--line);border-radius:12px;padding:20px;background:var(--surface)}.capacity-inline{margin-bottom:20px;max-width:420px}.capacity-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.capacity-head .eyebrow{margin:0}.capacity-count{font-size:1.15rem;margin:0 0 10px}.capacity-count strong{font-size:1.5rem;font-variant-numeric:tabular-nums}.capacity-note{font-size:.88rem;color:var(--muted);margin:10px 0 0}.meter{width:100%;height:8px;border:0;border-radius:99px;background:var(--line);overflow:hidden;appearance:none;-webkit-appearance:none;display:block}.meter::-webkit-progress-bar{background:var(--line)}.meter::-webkit-progress-value{background:var(--accent);border-radius:99px}.meter::-moz-progress-bar{background:var(--accent);border-radius:99px}.status{display:inline-block;font-size:.78rem;font-weight:600;padding:2px 10px;border-radius:99px;border:1px solid var(--line);background:var(--surface-alt);color:var(--muted)}.status-open,.status-connected{color:var(--success);background:#f0faf3;border-color:#c6e8d1}.status-full,.status-connecting,.status-maintenance,.status-pairing_required{color:var(--warning);background:#fffbeb;border-color:#f3dfa6}.status-error,.status-disconnected{color:var(--danger);background:#fdf3f3;border-color:#f0c9c9}.section{padding:72px 0}.section-alt{background:var(--surface-alt);border-block:1px solid var(--line)}.section h2{margin-bottom:28px}.features{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.features li{padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.features p{color:var(--muted);margin:0;font-size:.95rem}.index{display:block;font-family:var(--mono);font-size:.78rem;color:var(--accent);margin-bottom:10px}.steps{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:s}.steps p{color:var(--muted);font-size:.93rem;margin:0}.step-no{display:inline-flex;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-size:.85rem;font-weight:700;align-items:center;justify-content:center;margin-bottom:12px}.faq details{border-bottom:1px solid var(--line);padding:14px 0}.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:16px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--accent);font-size:1.25rem;line-height:1}.faq details[open] summary:after{content:"\2212"}.faq details p{margin:10px 0 0;color:var(--muted)}.contact{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--line)}.contact li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.contact h3{margin:0}.contact p{margin:0;color:var(--muted);font-size:.9rem}.site-footer{border-top:1px solid var(--line);padding:24px 0;font-size:.9rem;color:var(--muted)}.footer-row{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.footer-row nav{display:flex;gap:16px}.form{display:grid;gap:16px}.form-wide{max-width:560px}.field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px}input[type=text],input[type=email],input[type=password],input[type=tel],select{width:100%;font:inherit;padding:10px 12px;border:1px solid #cfcadd;border-radius:var(--radius);background:var(--surface);color:var(--ink)}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}input:disabled{background:var(--surface-alt);color:var(--muted)}.hint{font-size:.83rem;color:var(--muted);margin:6px 0 0}.field-error,.form-error{font-size:.85rem;color:var(--danger);margin:6px 0 0;min-height:0}.field-error:empty,.form-error:empty{display:none}.check{display:flex;gap:10px;align-items:center;font-size:.93rem}.form-section{font-size:1rem;margin:12px 0 0;padding-top:16px;border-top:1px solid var(--line)}.turnstile{min-height:65px}.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:var(--surface-alt)}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:32px}.auth-card .brand{margin-bottom:24px}.auth-card h1{font-size:1.5rem}.auth-alt{font-size:.9rem;text-align:center;margin:16px 0 0;color:var(--muted)}.app{min-height:100vh;display:flex;flex-direction:column}.app-loading{padding:48px 16px;text-align:center}.app-header{display:flex;align-items:center;gap:16px;height:60px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:20}.app-header .pill{margin-left:auto}.pill{font-size:.82rem;font-weight:600;padding:4px 12px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-variant-numeric:tabular-nums}.user-email{font-size:.88rem;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-toggle{display:none}.app-body{display:grid;grid-template-columns:220px 1fr;flex:1}.sidebar{border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:2px;background:var(--surface-alt)}.sidebar a{padding:9px 12px;border-radius:var(--radius);color:var(--ink);font-weight:500;font-size:.95rem}.sidebar a:hover{background:var(--accent-soft);text-decoration:none}.sidebar a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.view{padding:32px;max-width:860px;width:100%}.page-head{margin-bottom:24px}.page-head h1{font-size:1.6rem;margin-bottom:4px}.page-head p{margin:0}.panel{border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:20px}.panel h2{font-size:1.1rem;margin-bottom:14px}.empty{border:1px dashed #cfcadd;border-radius:12px;padding:32px;text-align:center}.facts{margin:0 0 20px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.facts>div{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line)}.facts>div:last-child{border-bottom:0}.facts dt{color:var(--muted);font-size:.9rem}.facts dd{margin:0;font-weight:500;word-break:break-word}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}.pairing{border:1px solid var(--line);border-radius:12px;padding:24px}.code-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:16px 0}.pair-code{font-family:var(--mono);font-size:2rem;font-weight:700;letter-spacing:.14em;background:var(--accent-soft);color:var(--accent);padding:10px 20px;border-radius:var(--radius)}.how{padding-left:20px;color:var(--muted)}.logs{background:#14121c;color:#e8e4f5;font-family:var(--mono);font-size:.78rem;line-height:1.5;padding:16px;border-radius:12px;height:460px;overflow:auto;white-space:pre-wrap;word-break:break-all;margin:16px 0 0}.dialog{border:1px solid var(--line);border-radius:12px;padding:24px;max-width:420px;width:calc(100% - 32px)}.dialog::backdrop{background:#14121c73}.dialog h2{font-size:1.15rem}.dialog-actions{display:flex;gap:10px;justify-content:flex-end}.toast{position:fixed;bottom:20px;right:20px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--radius);font-size:.9rem;z-index:50;max-width:320px}.toast-error{background:var(--danger)}@media(max-width:860px){.hero-grid{grid-template-columns:1fr;gap:32px}.features,.steps{grid-template-columns:1fr 1fr}.nav{display:none}.header-row{gap:12px}.header-actions{margin-left:auto}.menu-toggle{display:inline-flex}.app-body{grid-template-columns:1fr}.sidebar{display:none;position:absolute;top:60px;left:0;right:0;z-index:15;border-right:0;border-bottom:1px solid var(--line)}.sidebar.open{display:flex}.user-email{display:none}.view{padding:20px 16px}.facts>div{grid-template-columns:1fr;gap:2px}}@media(max-width:560px){.hero{padding:48px 0 40px}.section{padding:48px 0}.features,.steps{grid-template-columns:1fr}.header-actions .btn-ghost{display:none}.pair-code{font-size:1.5rem;padding:8px 14px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.config-group{border:1px solid var(--line);border-radius:12px;padding:0 14px;background:var(--surface)}.config-group>summary{cursor:pointer;font-weight:600;padding:14px 0;list-style:none}.config-group>summary::-webkit-details-marker{display:none}.config-group>summary:after{content:"+";float:right;color:var(--muted)}.config-group[open]>summary:after{content:"\2212"}.config-group[open]{padding-bottom:6px}.config-group .field{margin-bottom:14px}.field textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid #cfcadd;border-radius:var(--radius);background:var(--surface);color:var(--ink);resize:vertical}.field textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}@font-face{font-family:Bricolage Grotesque;src:url(/assets/fonts/bricolage-grotesque-latin-wght-normal.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:Syne;src:url(/assets/fonts/syne-latin-wght-normal.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(/assets/fonts/fraunces-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Unbounded;src:url(/assets/fonts/unbounded-latin-wght-normal.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:Instrument Sans;src:url(/assets/fonts/instrument-sans-latin-wght-normal.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:"Instrument Serif";src:url(/assets/fonts/instrument-serif-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Instrument Serif";src:url(/assets/fonts/instrument-serif-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Space Mono;src:url(/assets/fonts/space-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Space Mono;src:url(/assets/fonts/space-mono-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--paper:#f2ede3;--card:#fbf8f1;--ink:#1b1a17;--accent:#e8431f;--accent-hover:#c93412;--accent-soft:#ffe3d9;--accent-text:#fff;--mark:#e6f76a;--muted:#6a6558;--line:#1b1a17;--surface:var(--card);--surface-alt:var(--paper);--success:#1f6f3a;--warning:#8a4b00;--danger:#b3261e;--radius:3px;--display:"Bricolage Grotesque","Arial Narrow",sans-serif;--font:"Instrument Sans",system-ui,sans-serif;--serif:"Instrument Serif",Georgia,serif;--mono:"Space Mono",ui-monospace,Menlo,monospace;--hard:4px 4px 0 var(--ink)}html[data-display=syne]{--display:"Syne",sans-serif}html[data-display=fraunces]{--display:"Fraunces",Georgia,serif}html[data-display=unbounded]{--display:"Unbounded",sans-serif}body{background:var(--paper);font-family:var(--font);background-image:radial-gradient(rgba(27,26,23,.09) 1px,transparent 1px);background-size:18px 18px}h1,h2,h3,.brand{font-family:var(--display);letter-spacing:-.025em}h1{font-weight:800;line-height:1.02}h1 em,h2 em,.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0}h1 mark,h2 mark{background:var(--mark);color:var(--ink);padding:0 .12em}.eyebrow,.index,.status,.pill,.hint,.step-no{font-family:var(--mono)}.eyebrow{color:var(--ink);letter-spacing:.12em}.eyebrow:before{content:"// ";color:var(--accent)}a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lead{font-family:var(--serif);font-size:1.45rem;line-height:1.35;color:var(--ink)}.btn{font-family:var(--mono);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;border:2px solid var(--ink);box-shadow:var(--hard);text-decoration:none;transition:transform .08s,box-shadow .08s}.btn:hover:not(:disabled){transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.btn:active:not(:disabled){transform:translate(4px,4px);box-shadow:none}.btn-primary{background:var(--accent);color:#fff;border-color:var(--ink)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary,.btn-ghost{background:var(--card);color:var(--ink);border-color:var(--ink)}.btn-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled){background:var(--mark);color:var(--ink);border-color:var(--ink)}.btn-danger{background:var(--card);color:var(--danger);border-color:var(--danger);box-shadow:4px 4px 0 var(--danger)}.site-header{background:var(--paper);border-bottom:2px solid var(--ink)}.brand{font-weight:800;font-size:1.15rem}.nav a{font-family:var(--mono);font-size:.82rem;text-transform:uppercase;color:var(--ink);text-decoration:none}.nav a:hover{background:var(--mark)}.hero{background:none;padding:88px 0 72px}.hero h1{font-size:clamp(2.6rem,7vw,5.2rem)}.capacity,.panel,.facts,.pairing,.dialog,.auth-card,.config-group,.empty{background:var(--card);border:2px solid var(--ink);border-radius:var(--radius);box-shadow:var(--hard)}.empty{border-style:dashed;box-shadow:none}.capacity{transform:rotate(1.2deg)}.meter{height:14px;border:2px solid var(--ink);border-radius:0;background:var(--card)}.meter::-webkit-progress-bar{background:var(--card)}.meter::-webkit-progress-value{background:repeating-linear-gradient(45deg,var(--accent) 0 6px,#ff7a5a 6px 12px);border-radius:0}.meter::-moz-progress-bar{background:var(--accent);border-radius:0}.status,.pill{border:1.5px solid var(--ink);border-radius:0;background:var(--card);color:var(--ink);text-transform:uppercase;font-size:.7rem;letter-spacing:.06em}.status-open,.status-connected{background:var(--mark);color:var(--ink);border-color:var(--ink)}.status-full,.status-connecting,.status-maintenance,.status-pairing_required{background:#ffd9a0;color:var(--ink);border-color:var(--ink)}.status-error,.status-disconnected{background:#ffb4a8;color:var(--ink);border-color:var(--ink)}.pill{background:var(--mark)}.section{padding:88px 0}.section-alt{background:var(--ink);color:var(--paper);border:0}.section-alt h2,.section-alt .muted,.section-alt p{color:var(--paper)}.section-alt .eyebrow{color:var(--mark)}.section-alt .eyebrow:before{color:var(--accent)}.section h2{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800}.features{border:2px solid var(--ink);background:var(--card);border-radius:var(--radius);box-shadow:var(--hard)}.features li{border-color:var(--ink)}.features li:nth-child(2n){background:var(--paper)}.features h3{font-size:1.2rem}.index{color:var(--accent);font-weight:700}.step-no{width:36px;height:36px;border-radius:0;background:var(--mark);color:var(--ink);border:2px solid var(--paper);font-weight:700}.steps li:nth-child(2n){transform:translateY(14px)}.faq details,.contact,.contact li{border-color:var(--ink)}.faq summary{font-family:var(--display);font-size:1.1rem}.faq summary:after{color:var(--accent);font-family:var(--mono)}.site-footer{border-top:2px solid var(--ink);font-family:var(--mono);font-size:.8rem;color:var(--ink)}input[type=text],input[type=email],input[type=password],input[type=tel],select,.field textarea{background:var(--card);border:2px solid var(--ink);border-radius:var(--radius);font-family:var(--mono);font-size:.9rem}input:focus,select:focus,.field textarea:focus{outline:0;box-shadow:var(--hard);background:#fff;border-color:var(--ink)}.field label{font-family:var(--mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.hint{color:var(--muted);font-size:.74rem}.form-section{font-family:var(--display);border-top:2px solid var(--ink)}.config-group>summary{font-family:var(--display);font-size:1.05rem}.config-group>summary:after{font-family:var(--mono);color:var(--accent)}.auth{background:transparent}.auth-card{max-width:420px}.banner{border:2px solid var(--ink);border-radius:0;font-family:var(--mono);font-size:.82rem}.banner-warn{background:#ffd9a0;color:var(--ink)}.banner-info{background:var(--mark);color:var(--ink)}.banner-error{background:#ffb4a8;color:var(--ink)}.app-header{background:var(--paper);border-bottom:2px solid var(--ink)}.sidebar{background:var(--ink);border-right:2px solid var(--ink);padding:20px 12px;gap:4px}.sidebar a{color:var(--paper);font-family:var(--mono);font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;border-radius:0;text-decoration:none;border-left:4px solid transparent}.sidebar a:hover{background:#2c2a25}.sidebar a.active{background:var(--mark);color:var(--ink);border-left-color:var(--accent);font-weight:700}.view{max-width:980px}.page-head h1{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:800}.page-head p{font-family:var(--serif);font-size:1.2rem;color:var(--muted)}.panel h2{font-size:1.25rem}.facts>div{border-color:var(--ink)}.facts dt{font-family:var(--mono);font-size:.76rem;text-transform:uppercase;color:var(--muted)}.pair-code{background:var(--mark);color:var(--ink);border:2px solid var(--ink);border-radius:0;box-shadow:var(--hard);font-family:var(--mono)}.logs{background:var(--ink);border:2px solid var(--ink);border-radius:0;color:var(--mark)}.dialog::backdrop{background:#1b1a1799}.toast{background:var(--ink);color:var(--mark);font-family:var(--mono);border:2px solid var(--mark);border-radius:0;box-shadow:var(--hard)}.toast-error{background:var(--danger);color:#fff;border-color:#fff}@media(max-width:860px){.capacity{transform:none}.steps li:nth-child(2n){transform:none}.sidebar{border-bottom:2px solid var(--ink)}}@media(prefers-reduced-motion:reduce){.btn{transition:none}}.config-form.form-wide{max-width:780px;padding-bottom:88px}.config-form .config-group{display:block}.config-group .field{margin-bottom:16px}.config-toggle{padding:10px 12px;margin:0 0 12px;border:2px solid var(--ink);background:var(--paper);font-family:var(--mono);font-size:.82rem;cursor:pointer}.config-toggle:has(input:checked){background:var(--mark)}.config-toggle input{width:18px;height:18px;accent-color:var(--accent)}input[type=password]{background:var(--card);border:2px solid var(--ink);border-radius:var(--radius);font-family:var(--mono);font-size:.9rem}.config-form .actions{position:sticky;bottom:0;z-index:5;margin:8px -16px 0;padding:14px 16px;background:var(--paper);border-top:2px solid var(--ink)}@media(min-width:720px){.config-group[open]{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.config-group>summary,.config-group>.hint,.config-group>.config-toggle,.config-group>.field:has(textarea){grid-column:1/-1}}
