.buddy-app.energy-app{--solar-production:var(--o89-signal);--solar-use:var(--o89-muted);border-radius:0}.buddy-app.energy-app.app-preview{box-shadow:none;border-radius:0;padding:24px}.energy-app .site-avatar{border-radius:0}.energy-app .buddy-intro,.energy-app>.home-indicator{display:none}.energy-app>.app-content,.buddy-app.energy-app.app-preview>.app-content{min-height:0}.energy-app .ask-buddy,.energy-app .battery-summary,.energy-app .care-note,.energy-app .battery-type select,.energy-app .remote-alert,.energy-app .buddy-dialog,.energy-app .prompt-options button{border-radius:0}.energy-app>.ask-buddy{min-height:44px;color:var(--app-accent);border-top:1px solid var(--app-line);border-bottom:1px solid var(--app-line);background:0 0;margin:18px 0 0;padding:11px 0}.energy-app>.app-nav{border:0;margin-top:0;padding:12px 0 0}.energy-app .app-nav button{flex-direction:column;align-items:center;gap:6px;min-height:48px;font-size:11px;display:flex}.energy-app .app-nav button[aria-current]{background:var(--app-soft)}.energy-app .app-top p>span{display:none}.solar-heading{justify-content:space-between;align-items:center;gap:12px;padding:3px 0 18px;display:flex}.dashboard-eyebrow{color:var(--app-muted);font-size:12px;line-height:1.5}.solar-heading h2{letter-spacing:-.035em;font-size:27px;line-height:1.12}.solar-heading>svg{color:var(--solar-production);flex:none}@keyframes flow-travel{to{stroke-dashoffset:-42px}}.solar-metrics{border-bottom:1px solid var(--app-line);grid-template-columns:1fr 1fr;gap:12px;padding:18px 0;display:grid}.solar-metrics>div+div{border-left:1px solid var(--app-line);padding-left:18px}.solar-metrics>div>span{color:var(--app-muted);align-items:center;gap:5px;font-size:11px;display:flex}.solar-metrics strong{letter-spacing:-.035em;font-variant-numeric:tabular-nums;margin-top:8px;font-size:31px;font-weight:460;line-height:1.2;display:block}.solar-metrics strong small{letter-spacing:0;font-size:12px;font-weight:400}.solar-metrics .solar-state{font-size:26px;line-height:1.43}.solar-metrics p{color:var(--app-muted);margin-top:5px;font-size:11px}.power-history{margin-top:16px}.power-history-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.power-history-heading h3{letter-spacing:-.02em;font-size:16px;line-height:1.2}.history-period{gap:0;display:flex}.history-period button{border-bottom:1px solid var(--app-line);min-width:44px;min-height:44px;color:var(--app-muted);background:0 0;padding:0 10px;font-size:11px}.history-period button[aria-pressed=true]{border-bottom:2px solid var(--app-accent);color:var(--app-ink)}.history-readout{font-variant-numeric:tabular-nums;align-items:baseline;gap:16px;min-height:40px;padding:10px 0 6px;display:flex}.history-time{color:var(--app-muted);margin-right:auto;font:10px Technical,monospace}.history-time small{margin-left:4px;font:11px Concept,sans-serif}.history-value{white-space:nowrap;align-items:center;gap:4px;font-size:15px;display:flex}.history-value small{color:var(--app-muted);font-size:11px}.history-value i,.history-legend i{background:var(--solar-production);width:5px;height:5px;display:inline-block}.history-use i{background:var(--solar-use)}.history-plot{color:var(--solar-production);padding-top:14px;position:relative}.history-scale{color:var(--app-muted);font:10px Technical,monospace;position:absolute;top:0;left:0}.history-plot svg{width:100%;height:128px;display:block;overflow:visible}.history-grid{stroke:var(--app-line);stroke-width:.6px;stroke-dasharray:2 4}.history-production{stroke:var(--solar-production);fill:none;stroke-width:2px;stroke-linejoin:round}.history-consumption{stroke:var(--solar-use);fill:none;stroke-width:1.6px;stroke-dasharray:4 3;stroke-linejoin:round}.history-cursor{stroke:var(--app-muted);stroke-width:.6px;stroke-dasharray:2 3}.history-dot{fill:var(--solar-production);stroke:var(--app-bg);stroke-width:1.5px}.history-use-dot{fill:var(--solar-use)}.history-plot input{opacity:0;cursor:ew-resize;width:100%;height:100%;margin:0;position:absolute;inset:0}.history-plot:has(input:focus-visible){outline:2px solid var(--app-accent);outline-offset:4px}.history-axis{color:var(--app-muted);justify-content:space-between;padding-top:4px;font:10px Technical,monospace;display:flex}.history-legend{color:var(--app-muted);align-items:center;gap:16px;margin-top:14px;font-size:11px;display:flex}.history-legend>span{align-items:center;gap:6px;display:flex}.history-legend .legend-use{background:var(--solar-use)}.history-legend>small{margin-left:auto;font-size:11px}.history-stale{color:var(--app-muted);border-bottom:1px dashed var(--app-muted);font-size:11px}.history-gap{color:var(--app-muted);border-top:1px dashed var(--app-line);margin-top:12px;padding-top:10px;font-size:11px;line-height:1.5}@container (width<=340px){.solar-heading h2{font-size:24px}.solar-heading>svg{display:none}.solar-metrics>div>span{font-size:11px}.solar-metrics>div+div{padding-left:12px}.solar-metrics strong{font-size:28px}.solar-metrics .solar-state{font-size:24px}.history-readout{gap:8px}.history-time small{display:none}.history-value{font-size:13px}.history-legend{gap:10px;font-size:11px}}@media (max-width:760px){.buddy-app.energy-app.app-preview{padding:18px}}.energy-outlook{border:1px solid var(--app-line);margin-top:22px;padding:20px}.outlook-heading{color:var(--app-accent);justify-content:space-between;align-items:center;display:flex}.energy-outlook h3{letter-spacing:-.035em;color:var(--app-ink);font-size:23px;line-height:1.1}.outlook-intro{color:var(--app-muted);margin-top:7px;font-size:11px}.outlook-estimate{font-variant-numeric:tabular-nums;align-items:center;gap:18px;padding:20px 0 15px;display:flex}.outlook-estimate>strong{letter-spacing:-.05em;white-space:nowrap;font-size:38px;font-weight:440;line-height:1}.outlook-estimate>strong small{color:var(--app-muted);margin-left:1px;font-size:15px}.outlook-estimate>span{font-size:11px}.outlook-estimate>span small{color:var(--app-muted);margin-top:4px;font-size:11px;display:block}.outlook-reserve{background:var(--app-line);height:7px;display:flex;position:relative}.outlook-reserve-floor{background:repeating-linear-gradient(110deg, transparent 0 3px, var(--app-muted) 3px 4px);opacity:.5;width:20%;height:100%}.outlook-available{background:var(--app-accent);width:56%}.outlook-reserve>span{border-left:1px solid var(--app-ink);height:13px;position:absolute;top:-3px;left:76%}.outlook-reserve-labels{color:var(--app-muted);justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.outlook-scenarios{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.outlook-scenarios button{min-height:44px;color:var(--app-ink);border:1px solid var(--app-line);background:0 0;justify-content:center;align-items:center;gap:6px;padding:8px 5px;font-size:11px;display:flex}.outlook-scenarios button[aria-pressed=true]{border-color:var(--app-accent);background:var(--app-surface);color:var(--app-accent)}.outlook-evidence{border-top:1px solid var(--app-line);margin-top:12px}.outlook-evidence summary{justify-content:space-between;align-items:center;gap:8px;min-height:44px;font-size:11px;list-style:none;display:flex}.outlook-evidence summary::-webkit-details-marker{display:none}.outlook-evidence[open] summary>svg{transform:rotate(45deg)}.outlook-evidence dl{margin:0}.outlook-evidence dl>div{border-top:1px solid var(--app-line);justify-content:space-between;gap:14px;padding:9px 0;font-size:11px;display:flex}.outlook-evidence dt{color:var(--app-muted)}.outlook-evidence dd{white-space:nowrap;margin:0}.outlook-evidence>p{color:var(--app-muted);margin-top:12px;font-size:11px;line-height:1.6}.outlook-evidence a{text-underline-offset:3px;min-height:44px;color:var(--app-accent);justify-content:space-between;align-items:center;gap:10px;font-size:11px;text-decoration:underline;display:flex}.outlook-disclosure{color:var(--app-muted);font-size:11px;line-height:1.5}@container (width>=500px){.solar-dashboard{grid-template-columns:1fr 1fr;column-gap:20px;display:grid}.solar-heading{grid-column:1/-1}.solar-metrics{grid-area:2/2;padding-top:0}.solar-dashboard>.power-history{grid-area:3/2}.solar-dashboard>.energy-outlook{grid-column:1/-1}.energy-outlook{grid-template-columns:1fr 1fr;gap:0 24px;display:grid}.outlook-heading{grid-column:1/-1}.energy-outlook h3,.outlook-intro{grid-column:1}.outlook-estimate{grid-area:2/2/4;padding:12px 0 0}.outlook-reserve{grid-column:2;margin-top:18px}.outlook-reserve-labels{grid-column:2}.outlook-scenarios{grid-area:4/1/6}.outlook-evidence,.outlook-disclosure{grid-column:1/-1}}@container (width<=340px){.energy-outlook{padding:15px}.outlook-estimate{gap:12px}.outlook-estimate>strong{font-size:32px}.outlook-estimate>span{font-size:11px}}.history-period,.outlook-scenarios{border:0;min-width:0;margin-inline:0;padding:0}.energy-app.app-preview .buddy-tip{display:flex}.solar-history .history-readout{grid-template-columns:1fr 1fr;gap:12px;padding:18px 0 8px;display:grid}.solar-history-metric>span{color:var(--solar-production);line-height:1.5;display:block}.solar-history-metric>strong{letter-spacing:-.055em;margin-top:7px;font-size:35px;font-weight:440;line-height:1.15;display:block}.solar-history-metric>strong small{color:var(--app-muted);letter-spacing:0;margin-left:4px;font:10px Concept,sans-serif}.solar-history-load>span{color:var(--solar-use)}.solar-history .history-plot{padding-top:12px}.solar-chart-caption{color:var(--app-muted);justify-content:space-between;align-items:center;gap:8px;padding-bottom:12px;font-size:11px;line-height:1.5;display:flex}.solar-chart-caption>span:last-child{color:var(--app-ink)}.solar-history .solar-balance-chart{height:170px}.solar-grid{stroke:var(--app-line);stroke-width:.5px}.solar-night{fill:var(--app-line);fill-opacity:.2}.solar-scale-label,.solar-zero-label{fill:var(--app-muted);font:10px Technical,monospace}.solar-night-label{fill:var(--app-muted);font:11px Concept,sans-serif}.solar-bar{fill:var(--solar-production);opacity:.55}.solar-load-bar{fill:var(--solar-use);opacity:.35}.solar-load-texture{color:var(--solar-use);opacity:.6}.solar-bar-pair[data-selected=true] .solar-bar,.solar-bar-pair[data-selected=true] .solar-load-bar{opacity:1}.solar-zero{stroke:var(--app-muted);stroke-width:.7px}.solar-reading-line{stroke:var(--app-ink);stroke-width:.65px;stroke-dasharray:1 3;opacity:.6}.solar-history .history-axis{padding-top:0;font-size:11px}.solar-chart-footer{border-top:1px solid var(--app-line);color:var(--app-muted);justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:13px;font-size:11px;display:flex}.solar-chart-footer>span:last-child{color:var(--app-ink)}@container (width>=500px){.solar-history .power-history-heading h3{font-size:15px}.solar-history-metric>strong{font-size:31px}.solar-history .solar-balance-chart{height:150px}}@container (width<=340px){.solar-history-metric>strong{font-size:32px}.solar-chart-footer{font-size:11px}}.solar-peak-tick{fill:none;stroke:var(--solar-production);stroke-width:.7px}.solar-peak-label{fill:var(--solar-production);letter-spacing:.03em;font:10px Technical,monospace}.solar-bar{opacity:.7}.solar-load-bar{opacity:.48}.solar-history-metric>span{align-items:center;gap:3px;display:flex}.solar-chart-footer>span:last-child{align-items:center;gap:5px;display:flex}.solar-history-metric>span{color:var(--app-muted);font-size:12px}.solar-history-metric>span svg{color:var(--solar-production)}.solar-history-load>span svg{color:var(--solar-use)}.solar-peak-label{fill:var(--app-ink);font-size:11px}.energy-app [data-panel=energy]>.app-insight{margin-top:20px}.equipment-drawing{--equipment-fill:var(--o89-surface-raised);--equipment-line:color-mix(in srgb, var(--o89-fg) 45%, var(--o89-surface));overflow:visible}.equipment-shadow{fill:#000;opacity:.35}.equipment-face{fill:var(--equipment-fill);stroke:var(--equipment-line);stroke-width:.7px}.equipment-side{fill:var(--o89-line);stroke:var(--equipment-line);stroke-width:.7px}.equipment-top{fill:var(--o89-line-strong);stroke:var(--equipment-line);stroke-width:.7px}.equipment-edge{fill:none;stroke:var(--equipment-line);stroke-width:.8px;stroke-linejoin:bevel}.equipment-panel{fill:var(--o89-action);fill-opacity:.9;stroke:var(--o89-signal);stroke-width:.7px}.equipment-panel-grid{fill:none;stroke:var(--o89-signal);stroke-width:.5px;opacity:.55}.equipment-window{fill:var(--o89-page);stroke:var(--equipment-line);stroke-width:.7px}.energy-outlook,.energy-app .app-nav button[aria-current]{background:color-mix(in srgb, var(--app-accent) 4%, var(--app-bg))}.solar-flow{color:var(--app-ink);border-block:1px solid var(--app-line);background:0 0;flex-direction:column;padding:0;display:flex;container-type:inline-size}.flow-topline{color:var(--app-muted);justify-content:space-between;align-items:center;gap:6px;font-size:11px;line-height:1.5;display:flex}.flow-topline>span{align-items:center;gap:6px;display:flex}.flow-topline i{background:currentColor;width:4px;height:4px;display:inline-block}.flow-map{flex:none;width:100%;max-width:430px;height:320px;min-height:320px;max-height:320px;margin:4px auto 0;position:relative}.flow-wires{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.flow-track{stroke:var(--app-line);fill:none;stroke-width:1px}.flow-current{stroke:var(--app-accent);stroke-opacity:.7;fill:none;stroke-width:1.5px;stroke-dasharray:3 22;animation:3s linear infinite flow-travel}.flow-standby{stroke:var(--app-muted);stroke-opacity:.45;stroke-width:1px;fill:none}.flow-node{background:var(--app-bg);width:108px;color:var(--app-ink);border:0;border-bottom:1px solid #0000;flex-direction:column;align-items:center;padding:4px 3px 8px;transition:border-color .15s;display:flex;position:absolute}.flow-node:hover,.flow-node[aria-pressed=true]{border-bottom-color:var(--app-accent)}.flow-node:focus-visible{outline-color:var(--app-accent);outline-offset:3px}.flow-node>.equipment-drawing{width:88px;height:62px;margin-bottom:5px}.flow-node strong{letter-spacing:-.05em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:26px;font-weight:450;line-height:1.1}.flow-node small{letter-spacing:0;font:11px Concept,sans-serif}.flow-node>span{color:var(--app-muted);margin-top:4px;font-size:11px}.flow-node .flow-state{letter-spacing:-.025em;font-size:20px;line-height:1.43}.flow-solar{top:0;left:25%;transform:translate(-50%)}.flow-generator{top:0;left:75%;transform:translate(-50%)}.flow-home{bottom:0;left:25%;transform:translate(-50%)}.flow-battery{bottom:0;left:75%;transform:translate(-50%)}.flow-junction{background:var(--app-bg);color:var(--app-muted);white-space:nowrap;padding:7px 9px;font-size:11px;line-height:1.3;position:absolute;top:52.5%;left:50%;transform:translate(-50%,-50%)}.flow-detail{border-top:1px solid var(--app-line);min-height:76px;margin-top:auto;padding-block:12px}.flow-detail>span{color:var(--app-ink);font-size:12px;font-weight:600}.flow-detail p{color:var(--app-muted);margin-top:4px;font-size:11px;line-height:1.5}@container (width>=500px){.solar-dashboard>.solar-flow{grid-area:2/1/4;align-self:stretch}}@container (width<=340px){.flow-node{width:88px}.flow-node>.equipment-drawing{width:76px}.flow-topline>span{font-size:11px}}@media (prefers-reduced-motion:reduce){.flow-current{animation:none}.flow-node{transition:none}}.equipment-timber{fill:var(--o89-surface-raised);stroke:var(--equipment-line);stroke-width:.7px}.equipment-inspector{border:1px solid var(--app-line-strong);corner-shape:bevel;background:var(--app-surface);width:min(440px,100% - 24px);max-height:calc(100dvh - 32px);color:var(--app-ink);border-radius:14px;margin:auto;padding:26px;position:fixed;inset:0;overflow-y:auto;box-shadow:0 30px 80px #0009}.equipment-inspector::backdrop{background:#030406b8}.equipment-inspector-close{width:44px;height:44px;color:var(--app-ink);background:0 0;place-items:center;display:grid;position:absolute;top:10px;right:10px}.equipment-inspector>.equipment-drawing{width:170px;height:119px;margin:22px auto;display:block}.equipment-inspector h2{font-size:28px;line-height:1.15}.equipment-inspector-source{color:var(--app-muted);margin-top:10px;font-size:11px;line-height:1.5}.equipment-inspector dl{margin:22px 0 0}.equipment-inspector dl>div{border-top:1px solid var(--app-line);justify-content:space-between;align-items:baseline;gap:20px;padding:13px 0;display:flex}.equipment-inspector dt{color:var(--app-muted);font-size:12px}.equipment-inspector dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-size:15px}.equipment-inspector-note{color:var(--app-muted);margin-top:18px;font-size:11px;line-height:1.65}.equipment-inspector>a{min-height:44px;color:var(--app-accent);border-bottom:1px solid var(--app-line);justify-content:space-between;align-items:center;gap:14px;margin-top:16px;font-size:12px;display:flex}.remote-site-model{text-align:left;border-bottom:1px solid var(--app-line);width:100%;color:var(--app-ink);background:0 0;align-items:center;gap:14px;margin-bottom:20px;padding:0 0 18px;display:flex}.remote-site-model>.equipment-drawing{flex:none;width:95px;height:72px}.remote-site-model>span{font-size:14px;line-height:1.4}.remote-site-model small{color:var(--app-muted);margin-bottom:3px;font-size:12px;display:block}.remote-site-model>svg:last-child{flex:none;margin-left:auto}.flow-topline{min-height:44px}.flow-topline>span:last-child{letter-spacing:0;font:11px Concept,sans-serif}.energy-app>.app-nav{grid-template-columns:repeat(4,1fr)}.dashboard-control-link,.control-buddy-help{border-top:1px solid var(--app-line);width:100%;min-height:48px;color:var(--app-accent);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:14px 0;font-size:12px;display:flex}.solar-dashboard>.dashboard-control-link{grid-column:1/-1}.control-intro{padding-bottom:20px}.control-intro h2{font-size:28px;line-height:1.15}.control-intro>p{color:var(--app-muted);margin-top:10px;font-size:13px;line-height:1.6}.control-intro>small{color:var(--app-muted);margin-top:12px;font-size:11px;display:block}.control-switch-row{border-block:1px solid var(--app-line);align-items:center;gap:13px;padding:18px 0;display:flex}.control-switch-row>svg{flex:none}.control-switch-row>div{flex:1;min-width:0}.control-switch-row strong{font-size:14px;font-weight:500;display:block}.control-switch-row>div>span{color:var(--app-muted);margin-top:4px;font-size:11px;line-height:1.5;display:block}.square-switch{min-height:44px;color:var(--app-ink);background:0 0;align-items:center;gap:8px;padding:0;font-size:11px;display:flex}.square-switch>i{border:1px solid var(--app-muted);width:38px;height:22px;display:block;position:relative}.square-switch>i:after{content:"";background:var(--app-muted);width:14px;height:14px;position:absolute;top:3px;left:3px}.square-switch[aria-checked=true]>i{border-color:var(--app-accent)}.square-switch[aria-checked=true]>i:after{background:var(--app-accent);left:19px}.square-switch:disabled{cursor:not-allowed}.square-switch:disabled>i{opacity:.5;border-style:dashed}.square-switch:disabled>i:after{display:none}.control-section-heading{justify-content:space-between;align-items:baseline;gap:14px;margin:24px 0 13px;display:flex}.control-section-heading h3{letter-spacing:-.025em;font-size:18px;line-height:1.2}.control-section-heading>span{color:var(--app-muted);font-size:11px}.camera-frame{background:var(--o89-page);text-align:left;width:100%;color:var(--o89-on-fill);border:0;padding:0;display:block;position:relative;overflow:hidden}.camera-frame>img{object-fit:cover;width:100%;height:180px}.camera-frame-top,.camera-frame-bottom{background:#0000009e;justify-content:space-between;align-items:center;gap:8px;padding:12px;display:flex;position:absolute;left:0;right:0}.camera-frame-top{font:10px Technical,monospace;top:0}.camera-frame-bottom{font-size:11px;bottom:0}.camera-inspector{border:1px solid var(--app-line-strong);corner-shape:bevel;background:var(--app-surface);width:min(820px,100% - 24px);max-height:calc(100dvh - 24px);color:var(--app-ink);border-radius:14px;margin:auto;padding:22px;position:fixed;inset:0;overflow:auto;box-shadow:0 30px 80px #0009}.camera-inspector::backdrop{background:#030406c7}.camera-inspector>header{justify-content:space-between;align-items:start;gap:15px;margin-bottom:20px;display:flex}.camera-inspector h2{margin-top:8px;font-size:25px;line-height:1.2}.camera-inspector>header>button{width:44px;height:44px;color:inherit;background:0 0;flex:none;place-items:center;display:grid}.camera-inspector-image{background:var(--app-line);height:min(50dvh,440px);overflow:auto}.camera-inspector-image img{object-fit:cover;width:100%;height:100%;display:block}.camera-inspector-image[data-zoom=true] img{width:180%;max-width:none;height:180%}.camera-inspector-tools{justify-content:space-between;align-items:center;gap:14px;margin-top:12px;display:flex}.camera-inspector-tools>span{color:var(--app-muted);font-size:11px;line-height:1.5}.camera-inspector-tools button{min-height:44px;color:var(--app-accent);background:0 0;align-items:center;gap:8px;font-size:12px;display:flex}.camera-inspector>p{color:var(--app-muted);margin-top:10px;font-size:11px;line-height:1.6}.automation-rule{border-top:1px solid var(--app-line);padding:16px 0 20px}.automation-rule-title{align-items:center;gap:8px;display:flex}.automation-rule-title>svg{flex:none}.automation-rule-title h4{margin:0;font-size:13px;font-weight:600;line-height:1.4}.automation-rule-title>span{color:var(--app-muted);text-align:right;margin-left:auto;font-size:11px}.automation-rule-title>span[data-needs-reading=true]{text-underline-offset:4px;-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.automation-rule-condition{grid-template-columns:1fr 16px 1fr;align-items:center;gap:12px;padding:17px 0 13px;font-size:12px;display:grid}.automation-rule-condition small{color:var(--app-muted);margin-bottom:7px;font:10px Technical,monospace;display:block}.rule-evidence{color:var(--app-muted);min-height:36px;font-size:11px;line-height:1.6}.rule-scenarios{border:0;gap:7px;margin:14px 0 0;padding:0;display:flex}.rule-scenarios legend{color:var(--app-muted);margin-bottom:8px;font-size:11px}.rule-scenarios button{min-height:44px;color:var(--app-muted);border:1px solid var(--app-line);background:0 0;flex:1;padding:8px 4px;font-size:11px}.rule-scenarios button[aria-pressed=true]{border-color:var(--app-accent);color:var(--app-accent)}@container (width>=500px){.site-control{grid-template-columns:1fr 1fr;gap:0 24px;display:grid}.control-intro,.control-switch-row,.control-buddy-help{grid-column:1/-1}.site-control>.site-camera{grid-column:1}.site-control>.local-rules{grid-column:2}}@container (width<=340px){.control-switch-row{gap:9px}.control-switch-row>div>span{font-size:11px}.control-switch-row strong{font-size:12px}.camera-frame-top{padding:9px;font-size:11px}.automation-rule-condition{gap:8px;font-size:11px}.automation-rule-title h4{font-size:12px}}.camera-connection{border-bottom:1px solid var(--app-line);color:var(--app-muted);justify-content:space-between;gap:10px;padding:11px 0;font-size:11px;display:flex}.camera-connection>span:first-child{align-items:center;gap:6px;display:flex}.camera-automation{padding:23px 0 0}.camera-rule-heading{align-items:center;gap:12px;display:flex}.camera-rule-heading>svg{color:var(--app-accent);flex:none}.camera-rule-heading h4{letter-spacing:-.035em;margin:5px 0 0;font-size:21px;font-weight:600}.camera-trigger{border-block:1px solid var(--app-line);grid-template-columns:40px 1fr;margin-top:20px;padding:14px 0;display:grid}.camera-trigger small,.camera-rule-actions>small{color:var(--app-muted);font:10px/1.6 Technical,monospace}.camera-trigger strong{font-size:13px;font-weight:500}.camera-trigger>span{color:var(--app-muted);grid-column:2;margin-top:5px;font-size:11px}.camera-rule-actions{border-bottom:1px solid var(--app-line);grid-template-columns:40px 1fr;gap:11px 0;padding:16px 0;display:grid}.camera-rule-actions>small{grid-row:1/3}.camera-rule-actions>span{align-items:center;gap:9px;font-size:11px;display:flex}.camera-rule-actions svg{flex:none}.camera-rule-result{border-top:1px solid var(--app-line);margin-top:13px;padding:14px 0}.camera-rule-result>strong{font-size:12px;font-weight:500}.camera-rule-result[data-triggered=true]>strong{color:var(--app-accent)}.camera-rule-result>p,.camera-concept-note{color:var(--app-muted);margin-top:6px;font-size:11px;line-height:1.6}.camera-event-log{margin:15px 0 0;padding:0;list-style:none}.camera-event-log li{border-top:1px solid var(--app-line);grid-template-columns:58px 1fr;gap:8px;padding:9px 0;font-size:11px;line-height:1.5;display:grid}.camera-event-log time{color:var(--app-muted);font:11px/1.6 Technical,monospace}.buddy-app.energy-app{position:relative}.app-notification-slot{z-index:8;pointer-events:none;position:absolute;top:44px;left:12px;right:12px}.phone-notification{pointer-events:auto;border:1px solid var(--app-line-strong);corner-shape:bevel;background:var(--o89-surface-raised);color:var(--app-ink);border-radius:12px;animation:.24s ease-out notification-arrive;position:relative;box-shadow:0 12px 32px #0000008c}.notification-open{width:100%;color:inherit;text-align:left;background:0 0;padding:13px 15px 15px;display:block}.notification-app{color:var(--app-muted);justify-content:space-between;align-items:center;gap:8px;padding-right:28px;font-size:11px;display:flex}.notification-app>span{align-items:center;gap:7px;display:flex}.notification-app small{font:11px Concept,sans-serif}.notification-content{align-items:center;gap:14px;margin-top:10px;display:flex}.notification-content>span{flex:1;min-width:0}.notification-content strong{letter-spacing:-.02em;font-size:15px;font-weight:550;display:block}.notification-content>span>span{margin-top:3px;font-size:11px;display:block}.notification-content small{color:var(--app-muted);margin-top:5px;font-size:11px;display:block}.notification-content img{object-fit:cover;flex:none;width:54px;height:54px}.notification-dismiss{width:44px;height:40px;color:var(--app-muted);background:0 0;place-items:center;display:grid;position:absolute;top:0;right:0}.app-preview>.app-notification-slot{flex:none;width:min(370px,100%);height:0;margin-left:auto;position:sticky;top:16px;left:auto;right:auto}@keyframes notification-arrive{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.phone-notification{animation:none}}*{box-sizing:border-box}html{scroll-behavior:smooth}body.concept{color:var(--o89-fg);background:var(--o89-page);-webkit-font-smoothing:antialiased;margin:0;font-family:Concept,Arial,sans-serif;font-size:16px;line-height:1.5}h1,h2,h3,p,figure{margin:0}h1,h2,h3{letter-spacing:-.035em;font-weight:700;line-height:1.05}@layer base{a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{background-color:#0000;border:0}}button,a,summary,select{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}img{object-fit:contain;max-width:100%;display:block}[hidden]{display:none!important}.skip-link{z-index:100;padding:10px 14px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:12px}.micro{font:12px/1.65 Technical,monospace}.buddy-app,.mini-app{--app-bg:var(--o89-surface);--app-surface:var(--o89-surface-raised);--app-ink:var(--o89-fg);--app-muted:var(--o89-muted);--app-line:var(--o89-line);--app-line-strong:var(--o89-line-strong);--app-accent:var(--o89-signal);--app-action:var(--o89-action);--app-soft:var(--o89-surface-raised)}.buddy-app{border:1px solid var(--app-line-strong);background:var(--app-bg);width:390px;max-width:100%;color:var(--app-ink);isolation:isolate;border-radius:30px;padding:17px 22px 9px;font-family:Concept,sans-serif;font-size:14px;line-height:1.5;position:relative;container-type:inline-size}.phone-status{justify-content:space-between;padding:0 7px 21px;font-size:12px;font-weight:600;display:flex}.app-top{justify-content:space-between;align-items:center;display:flex}.app-wordmark{font-size:11px;font-weight:700}.app-wordmark b{color:var(--app-muted);margin-left:4px;font-weight:500}.app-top p{letter-spacing:-.02em;margin-top:4px;font-size:21px;font-weight:600}.app-top p span{color:var(--app-muted);margin-left:9px;font-size:18px}.site-avatar{border:1px solid var(--app-line-strong);width:34px;height:34px;color:var(--app-muted);border-radius:50%;justify-content:center;align-items:center;font:10px Technical;display:flex}.app-demo{color:var(--app-muted);border-bottom:1px solid var(--app-line);align-items:center;gap:8px;padding:12px 0 18px;font-size:11px;display:flex}.live-dot{background:var(--o89-nominal);border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.app-demo.is-stale .live-dot{border:1px dashed var(--o89-warning);background:0 0;border-radius:1px;width:8px;height:8px}.app-content{min-height:520px;padding-top:20px}.buddy-intro{align-items:center;gap:13px;margin-bottom:23px;display:flex}.buddy-intro img{object-fit:contain;background:var(--app-soft);border-radius:50%;width:74px;height:74px}.buddy-intro strong{letter-spacing:-.02em;font-size:22px;font-weight:600;line-height:1.2;display:block}.buddy-intro p{color:var(--app-muted);margin-top:4px;font-size:12px}.app-panel>h2{letter-spacing:-.035em;font-size:33px;font-weight:700;line-height:1.08}.buddy-explanation{color:var(--app-muted);margin-top:13px;font-size:14px;line-height:1.6}.battery-summary{background:var(--app-surface);border:1px solid var(--app-line);margin-top:22px;padding:18px 18px 15px}.battery-summary.last-known{border:1px dashed var(--app-line-strong);background:0 0}.metric-heading{color:var(--app-muted);justify-content:space-between;gap:15px;font-size:11px;display:flex}.battery-number{letter-spacing:-.05em;font-variant-numeric:tabular-nums;margin:13px 0 14px;font-size:64px;font-weight:600;line-height:1.05}.battery-number>span{color:var(--app-muted);margin-left:4px;font-size:29px;font-weight:500}.last-known .battery-number{color:var(--app-muted)}.battery-track{background:var(--app-line);height:4px;margin-bottom:19px;overflow:hidden}.battery-track i{background:var(--app-accent);width:76%;height:100%;display:block}.last-known .battery-track i{background:var(--app-line-strong)}.energy-pair{grid-template-columns:1fr 1fr;display:grid}.energy-pair>div:last-child{border-left:1px solid var(--app-line);padding-left:24px}.energy-pair span{color:var(--app-muted);font-size:11px;display:block}.energy-pair strong{letter-spacing:-.025em;font-size:23px;font-weight:600}.energy-pair small{letter-spacing:0;font-size:11px;font-weight:400}.buddy-tip{text-align:left;width:100%;color:var(--app-ink);background:0 0;align-items:center;gap:12px;padding:20px 0;display:flex}.tip-symbol{background:var(--app-soft);width:29px;height:29px;color:var(--app-accent);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.buddy-tip small{color:var(--app-accent);font-size:11px;display:block}.buddy-tip strong{letter-spacing:-.015em;margin-top:2px;font-size:15px;font-weight:600;display:block}.buddy-tip>span>span{color:var(--app-muted);font-size:11px}.buddy-tip>b{color:var(--app-accent);margin-left:auto;font-weight:400}.ask-buddy{background:var(--app-action);width:100%;color:var(--o89-on-fill);justify-content:space-between;min-height:50px;margin:12px 0 13px;padding:15px 16px;font-size:14px;display:flex}.app-nav{border-top:1px solid var(--app-line);grid-template-columns:repeat(3,1fr);gap:8px;padding-top:10px;display:grid}.app-nav button{color:var(--app-muted);background:0 0;min-height:47px;padding:4px;font-size:11px}.app-nav button[aria-current]{color:var(--app-ink);font-weight:600}.home-indicator{background:var(--app-ink);opacity:.7;border-radius:5px;width:96px;height:4px;margin:16px auto 0}.app-insight{color:var(--app-muted);border-top:1px solid var(--app-line);padding-top:12px;font-size:12px;line-height:1.65}.app-insight strong{color:var(--app-ink);font-weight:600}.inline-question{border-bottom:1px solid var(--app-line);text-align:left;width:100%;color:var(--app-accent);background:0 0;justify-content:space-between;gap:10px;min-height:44px;margin-top:7px;padding:14px 0;font-size:12px;display:flex}.battery-type{color:var(--app-muted);margin-top:23px;font-size:12px;display:block}.battery-type select{border:1px solid var(--app-line-strong);background:var(--app-surface);width:100%;color:var(--app-ink);margin-top:8px;padding:12px 10px;font-size:13px;display:block}.care-note{background:var(--app-soft);border:1px solid var(--app-line);margin-top:17px;padding:18px}.care-tag{color:var(--app-accent);font-size:12px}.care-note h3{margin:0 0 10px;font-size:23px;line-height:1.12}.care-note p{color:var(--app-muted);font-size:12px;line-height:1.65}.care-reminder{color:var(--app-muted);align-items:start;gap:12px;padding:19px 0 2px;display:flex}.care-reminder>svg{flex:none;margin-top:2px}.care-reminder p{color:var(--app-muted);font-size:12px;line-height:1.7}.care-reminder strong{color:var(--app-ink);font-weight:600}.buddy-dialog{border:1px solid var(--o89-line-strong);corner-shape:bevel;background:var(--o89-surface-raised);width:min(370px,100% - 24px);max-height:calc(100dvh - 30px);color:var(--o89-fg);border-radius:16px;margin:auto;padding:27px;position:fixed;inset:0;overflow-y:auto;box-shadow:0 30px 80px #0009}.buddy-dialog::backdrop{background:#030406b8}.dialog-close{width:40px;height:40px;color:var(--o89-muted);background:0 0;place-items:center;display:grid;position:absolute;top:12px;right:12px}.dialog-close:hover{color:var(--o89-fg)}.buddy-dialog img{background:var(--o89-surface);border-radius:50%;margin-bottom:17px}.buddy-dialog h2{margin:0 0 21px;font-size:29px;line-height:1.1}.prompt-options{flex-direction:column;gap:8px;display:flex}.prompt-options button{background:var(--o89-surface);color:var(--o89-fg);border:1px solid var(--o89-line-strong);text-align:left;min-height:44px;padding:13px;font-size:13px;line-height:1.45}.prompt-options button:hover{border-color:var(--o89-signal)}.buddy-answer{margin-top:23px;font-size:14px;line-height:1.7}.buddy-dialog>small{color:var(--o89-muted);margin-top:21px;font-size:12px;display:block}.standalone-app{background:var(--o89-page);background-image:radial-gradient(circle, var(--o89-line) 1.2px, transparent 1.6px);background-size:14px 14px;flex-direction:column;justify-content:start;align-items:center;gap:20px;min-height:100vh;padding:28px 20px;display:flex}.app-review-note{text-align:center;color:var(--o89-muted);background:var(--o89-page);flex-direction:column;align-items:center;gap:6px;padding:12px 16px;font-size:13px;display:flex}.app-review-note strong{color:var(--o89-fg);font-weight:600}.app-review-note a{min-height:44px;color:var(--o89-fg);align-items:center;gap:6px;font-weight:600;display:inline-flex}@media (max-width:900px){.buddy-app{padding-inline:18px}.buddy-intro{gap:10px}.buddy-intro img{width:64px;height:64px}.buddy-intro strong{font-size:21px}.app-panel>h2{font-size:31px}.app-content{min-height:540px}}@media (max-width:650px){.standalone-app{gap:0;padding:0}.standalone-app .buddy-app{border:0;width:100%;max-width:430px;padding:17px 24px 10px}.standalone-app .app-content{min-height:520px}.standalone-app .app-review-note{padding:20px}.buddy-app .app-panel>h2{font-size:32px}.app-content{min-height:525px}.buddy-intro img{width:73px;height:73px}.buddy-intro strong{font-size:23px}.app-top p{font-size:22px}.buddy-app .buddy-explanation{font-size:14px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}.buddy-app{flex-direction:column;height:844px;display:flex}.buddy-app>.phone-status,.buddy-app>.app-top,.buddy-app>.app-demo,.buddy-app>.ask-buddy,.buddy-app>.app-nav,.buddy-app>.home-indicator{flex-shrink:0}.buddy-app>.app-content{scrollbar-width:thin;scrollbar-color:var(--app-line-strong) transparent;flex:1;min-height:0;padding-right:3px;overflow-y:auto}.buddy-app .app-panel{padding-bottom:4px}.buddy-app>.ask-buddy{margin-top:14px}.standalone-app .buddy-app{height:844px}.standalone-app .app-content{min-height:0}@media (max-width:650px){.standalone-app .buddy-app{height:100dvh;min-height:660px}.buddy-app>.app-content{min-height:0}.buddy-app{height:810px}}.buddy-app>.phone-status{padding-bottom:14px}.buddy-app>.app-demo{padding-top:10px;padding-bottom:12px}.buddy-app>.app-content{padding-top:14px}.buddy-app .buddy-intro{margin-bottom:17px}.buddy-app .buddy-intro img{width:58px;height:58px}.buddy-app .buddy-intro strong{font-size:21px}.buddy-app .app-panel>h2{font-size:31px}.buddy-app .buddy-explanation{margin-top:11px}.buddy-app .battery-summary{margin-top:18px}.buddy-app .battery-number{margin-top:10px;margin-bottom:12px;font-size:58px}.buddy-app .battery-track{margin-bottom:14px}.buddy-app .buddy-tip{padding-block:15px}.remote-alert{border:1px solid var(--o89-alarm);color:var(--app-ink);align-items:center;gap:11px;margin-top:16px;padding:11px 12px;display:flex}.remote-alert>span{width:22px;height:22px;color:var(--o89-alarm);flex:none;place-items:center;font:15px Technical;display:grid}.remote-alert p{color:var(--app-muted);font-size:11px;line-height:1.6}.remote-alert strong{color:var(--app-ink);font-size:13px;font-weight:600}.remote-alert.remote-stale{border:1px dashed var(--o89-warning)}.remote-alert.remote-stale>span{color:var(--o89-warning)}.remote-readings{margin:20px 0 22px}.remote-readings>div{border-bottom:1px solid var(--app-line);justify-content:space-between;align-items:center;gap:15px;padding:16px 0;display:flex}.remote-readings dt{font-size:13px}.remote-readings dt>small{color:var(--app-muted);margin-top:4px;font-size:11px;display:block}.remote-readings dd{letter-spacing:-.03em;white-space:nowrap;font-variant-numeric:tabular-nums;margin:0;font-size:22px;font-weight:600}.remote-readings dd>small{letter-spacing:0;color:var(--app-muted);font-size:11px;font-weight:400}.metric-alarm{color:var(--o89-alarm);font-size:15px!important}.metric-state{font-size:21px!important}.app-site-telecom .buddy-explanation{font-size:13px;line-height:1.55}.app-site-telecom .remote-alert{margin-top:12px;padding-block:8px}.app-site-telecom .battery-number{margin-block:8px;font-size:48px}.setup-dialog{border:1px solid var(--o89-line-strong);corner-shape:bevel;background:var(--o89-surface);width:min(1220px,100% - 48px);max-width:none;height:min(840px,100dvh - 48px);max-height:none;color:var(--o89-fg);border-radius:18px;margin:auto;padding:0;font-family:Concept,sans-serif;position:fixed;inset:0;overflow:hidden;box-shadow:0 40px 120px #000000a6}.setup-dialog::backdrop{background:#030406c7}.setup-header{border-bottom:1px solid var(--o89-line);background:var(--o89-surface);justify-content:space-between;align-items:center;gap:20px;height:90px;padding:18px 28px;display:flex}.setup-header>div{align-items:center;gap:14px;display:flex}.setup-header img{background:var(--o89-surface-raised);border-radius:50%;flex-shrink:0}.setup-header h2{margin:0 0 6px;font-size:23px;line-height:1.15}.setup-header span{color:var(--o89-muted);font-size:13px}.setup-close{width:42px;height:42px;color:var(--o89-muted)}.setup-view-switch{display:none}.setup-workspace{grid-template-columns:minmax(330px,.82fr) minmax(0,1.18fr);height:calc(100% - 90px);display:grid}.setup-conversation{background:var(--o89-surface);flex-direction:column;min-height:0;padding:28px 28px 15px;display:flex;overflow:hidden}.chat-message{flex-shrink:0;max-width:92%;animation:.2s ease-out chat-appear}.chat-message p{letter-spacing:-.015em;overflow-wrap:anywhere;font-size:17px;line-height:1.5}.chat-speaker{color:var(--o89-muted);margin-bottom:9px;font-size:13px;display:block}.chat-welcome{background:var(--o89-surface-raised);border-radius:50%;width:56px;height:56px;margin-bottom:15px}.setup-quick-replies{flex-wrap:wrap;flex-shrink:0;gap:8px;padding:16px 0 19px;display:flex}.chat-footnote{color:var(--o89-muted);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;margin-top:6px;font-size:12px;display:flex}.chat-footnote button{color:var(--o89-fg);background:0 0;min-height:44px;padding:11px 0;font-size:12px}.setup-error{color:var(--o89-alarm);font-size:13px;line-height:1.5}.setup-error:empty{display:none}.setup-plan{border-left:1px solid var(--o89-line);background:var(--o89-page);scrollbar-width:thin;flex-direction:column;min-width:0;min-height:0;padding:30px 27px 20px;display:flex;position:relative;overflow-y:auto}.map-heading{z-index:1;justify-content:space-between;align-items:flex-start;gap:20px;display:flex;position:relative}.map-heading h3{font-size:32px;line-height:1.05}.map-status{color:var(--o89-muted);text-align:right;align-items:flex-start;gap:8px;padding-top:6px;font-size:13px;display:inline-flex}.map-status:before{content:"";border:1px dashed var(--o89-warning);border-radius:1px;flex:none;width:7px;height:7px;margin-top:.55em}.system-map{background-image:radial-gradient(circle, var(--o89-line) 1.1px, transparent 1.5px);isolation:isolate;background-size:16px 16px;flex:1;width:100%;min-height:430px;max-height:630px;margin:0 auto;position:relative}.map-connections{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.map-line{fill:none;stroke:var(--o89-line-strong);stroke-width:1.2px;vector-effect:non-scaling-stroke;stroke-dasharray:4 5;stroke-linecap:round}.map-line.panel-link{stroke:var(--o89-line-strong);stroke-dasharray:0}.map-line.app-link{stroke:var(--o89-signal);stroke-dasharray:0}.system-map[data-connected=true] .primary-link{stroke:var(--o89-signal);stroke-dasharray:0;stroke-width:1.6px}.signal-point{fill:var(--o89-signal);stroke:var(--o89-page);stroke-width:4px;opacity:.45}.system-map[data-connected=true] .signal-point{opacity:1;animation:3s ease-in-out infinite map-pulse}.map-device,.map-hub{text-align:center;color:var(--o89-fg);corner-shape:bevel;z-index:2;background:0 0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:26%;max-width:160px;padding:6px 4px;line-height:1.2;transition:background .18s,color .18s;display:flex;position:absolute;transform:translate(-50%,-50%)}.map-device:hover,.map-device[aria-expanded=true]{background:var(--o89-surface-raised)}.map-device>svg{fill:none;width:clamp(50px,6.3vw,88px);height:72px;stroke:var(--o89-muted);stroke-width:1.15px;stroke-linecap:round;stroke-linejoin:round}.map-device>strong,.map-hub>strong{color:var(--o89-fg);letter-spacing:-.015em;margin-top:9px;font-size:14px;font-weight:600;display:block}.map-device>small,.map-hub>small{color:var(--o89-muted);overflow-wrap:anywhere;max-width:145px;margin-top:4px;font-size:12px;line-height:1.4;display:block}.map-device[data-state=pending]>svg{stroke:var(--o89-line-strong)}.map-device[data-state=pending]>strong{color:var(--o89-muted)}.map-device[data-state=active]>svg{stroke:var(--o89-fg)}.node-marker{width:18px;height:18px;color:var(--o89-muted);background:var(--o89-page);border:1px solid var(--o89-line-strong);border-radius:50%;place-items:center;font:10px Technical;display:grid;position:absolute;top:10px;right:15px}.map-device[data-state=question] .node-marker{color:var(--o89-warning);border:1px dashed var(--o89-warning)}.map-device[data-state=active] .node-marker{color:var(--o89-signal);border-color:var(--o89-signal)}.map-panels{top:16%;left:29%}.map-primary{top:45%;left:19%}.map-battery{top:75%;left:21%}.map-other{top:75%;left:82%}.map-app{top:22%;left:80%}.map-hub{z-index:3;width:33%;max-width:195px;top:55%;left:52%}.map-hub>svg{filter:drop-shadow(0 18px 18px #0000008c);width:100%;height:auto}.hub-bottom{fill:color-mix(in srgb, var(--o89-action) 55%, var(--o89-page));stroke:var(--o89-action);stroke-width:1px}.hub-mid{fill:var(--o89-action);stroke:var(--o89-action-lit);stroke-width:1px}.hub-top{fill:var(--o89-surface-raised);stroke:var(--o89-signal);stroke-width:1px}.hub-edge{fill:none;stroke:var(--o89-signal);stroke-width:1px}.map-hub>img{width:30%;height:auto;position:absolute;top:24%;left:44%;transform:translate(-50%,-50%)rotate(-19deg)skew(22deg,4deg)}.map-hub>strong{margin-top:0;font-size:19px}.map-hub>small{font-size:12px}.hub-halo{border:1px solid var(--o89-line-strong);z-index:-1;border-radius:50%;position:absolute;inset:10% -6% 17%;transform:rotate(-20deg)}.map-hub:hover .hub-halo,.map-hub[aria-expanded=true] .hub-halo{border-color:var(--o89-signal)}.map-phone{border:1.3px solid var(--o89-signal);background:var(--o89-surface);border-radius:10px;flex-direction:column;align-items:center;gap:5px;width:53px;height:93px;padding:12px 6px 9px;display:flex;position:relative;transform:rotate(7deg)}.map-phone:before{content:"";background:var(--o89-line-strong);border-radius:2px;height:2px;position:absolute;top:4px;left:20px;right:20px}.map-phone img{background:var(--o89-surface-raised);border-radius:50%;width:26px;height:26px}.map-phone i,.map-phone b,.map-phone em{background:var(--o89-line-strong);border-radius:3px;width:30px;height:3px;display:block}.map-phone b{width:21px;margin-bottom:3px}.map-phone em{background:var(--o89-action);height:10px;margin-top:auto}.map-inline-label{color:var(--o89-muted);white-space:nowrap;font-size:12px;position:absolute;bottom:6%;left:49%;transform:translate(-50%)}.map-legend{color:var(--o89-muted);border-top:1px solid var(--o89-line);flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:8px 21px;padding:14px 0 10px;font-size:12px;display:flex}.map-legend>span{align-items:center;gap:6px;display:flex}.map-legend i{background:var(--o89-muted);border-radius:50%;width:7px;height:7px;display:inline-block}.map-legend .legend-blue{background:var(--o89-signal)}.map-legend b{border:1px dashed var(--o89-warning);width:15px;height:15px;color:var(--o89-warning);border-radius:50%;place-items:center;font:9px Technical;display:inline-grid}.map-instruction{text-align:center;color:var(--o89-muted);justify-content:center;align-items:center;gap:8px;padding-top:4px;font-size:13px;display:flex}.map-detail{z-index:5;background:var(--o89-surface-raised);border:1px solid var(--o89-line-strong);corner-shape:bevel;border-radius:14px;padding:24px 27px 20px;animation:.2s ease-out chat-appear;position:absolute;bottom:18px;left:18px;right:18px;box-shadow:0 24px 60px #0000008c}.map-detail-close{width:40px;height:40px;color:var(--o89-muted);background:0 0;font-size:24px;position:absolute;top:8px;right:8px}.map-detail-close:hover{color:var(--o89-fg)}.map-detail .micro{color:var(--o89-signal);font-size:12px}.map-detail h4{letter-spacing:-.03em;margin:8px 40px 12px 0;font-size:23px;font-weight:700;line-height:1.15}.map-detail p{color:var(--o89-muted);font-size:14px;line-height:1.6}.map-detail>a{color:var(--o89-fg);border-bottom:1px solid var(--o89-line-strong);margin-top:16px;padding-bottom:3px;font-size:14px;display:inline-block}.map-detail>small{border-top:1px solid var(--o89-line);color:var(--o89-muted);margin-top:18px;padding-top:12px;font-size:12px;display:block}.map-device>svg.map-icon-hidden{display:none}@keyframes chat-appear{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes map-pulse{50%{stroke-width:7px}}@media (max-width:1050px){.setup-conversation{padding-inline:20px}.setup-plan{padding-inline:18px}.map-heading h3{font-size:28px}.map-heading{gap:10px}.map-status{max-width:120px;font-size:12px}.map-device>strong{font-size:13px}.map-device>small{font-size:11px}.map-legend{gap:8px 14px}}@media (max-width:760px){.setup-dialog{border:0;border-radius:0;width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0}.setup-header{gap:8px;height:83px;padding:14px 16px}.setup-header h2{letter-spacing:-.03em;margin-bottom:5px;font-size:18px}.setup-header img{width:37px;height:37px}.setup-header>div{gap:10px}.setup-header span{max-width:230px;font-size:12px;display:block}.setup-close{flex-shrink:0;width:35px}.setup-view-switch{background:var(--o89-surface);border-bottom:1px solid var(--o89-line);grid-template-columns:1fr 1fr;gap:18px;height:51px;padding:0 18px;display:grid}.setup-view-switch button{color:var(--o89-muted);background:0 0;border-bottom:2px solid #0000;padding:13px 4px;font-size:14px}.setup-view-switch button[aria-pressed=true]{border-color:var(--o89-signal);color:var(--o89-fg)}.setup-view-switch span{margin-left:10px}.setup-workspace{height:calc(100% - 134px);display:block}.setup-conversation,.setup-plan{height:100%}.setup-conversation{padding:19px 20px 12px}.setup-dialog[data-mobile-view=chat] .setup-plan,.setup-dialog[data-mobile-view=map] .setup-conversation{display:none}.chat-message p{font-size:17px}.setup-plan{border-left:0;padding:24px 18px 18px}.map-heading h3{font-size:28px}.map-status{max-width:110px;font-size:12px}.system-map{min-height:400px;max-height:610px}.map-device{width:29%}.map-device>svg{width:64px;height:62px}.map-device>strong{margin-top:9px;font-size:12px}.map-device>small{font-size:11px}.node-marker{width:17px;height:17px;top:4px;right:8px}.map-hub{width:35%}.map-hub>strong{font-size:17px}.map-hub>small{font-size:11px}.map-phone{width:47px;height:82px;padding-top:10px}.map-phone img{width:23px;height:23px}.map-phone i{width:27px}.map-phone em{height:8px}.map-inline-label{font-size:11px;bottom:7%}.map-legend{gap:8px 16px;padding-top:14px}.map-detail{padding:24px 22px 20px;bottom:14px;left:12px;right:12px}}@media (prefers-reduced-motion:reduce){.chat-message,.signal-point,.map-detail{animation:none}.map-device,.map-hub{transition:none}}.buddy-workspace{background:var(--o89-surface);height:100%;color:var(--o89-fg);flex-direction:column;display:flex}.buddy-workspace>.setup-header,.buddy-workspace>.setup-view-switch{flex-shrink:0}.buddy-workspace>.setup-workspace{flex:1;height:auto;min-height:0}.buddy-conversation{flex:1;min-height:0;position:relative;overflow:hidden}.buddy-conversation>div{scrollbar-width:thin;scrollbar-color:var(--o89-line-strong) transparent;height:100%}.buddy-log{flex-direction:column;gap:24px;min-height:100%;padding:10px 4px 22px;display:flex}.buddy-log:has(>.chat-message:only-child){justify-content:center;padding-bottom:60px}.buddy-log:has(>.chat-message:only-child) .chat-message{max-width:290px;animation:none}.buddy-log:has(>.chat-message:only-child) p{letter-spacing:-.035em;font-size:34px;line-height:1.15}.buddy-log:has(>.chat-message:only-child) .chat-welcome{width:108px;height:108px;margin-bottom:28px}.buddy-log:has(>.chat-message:only-child) .chat-speaker{display:none}.buddy-log .chat-message{width:-moz-fit-content;width:fit-content;max-width:92%;animation:none}.buddy-log .chat-user{background:0 0;border:0;align-self:flex-end;max-width:86%;padding:0}.buddy-log .chat-user>div{background:var(--o89-surface-raised);border:1px solid var(--o89-line-strong);border-radius:15px 15px 3px;padding:12px 16px}.buddy-log .chat-buddy>div{padding:0}.buddy-log .chat-photo{object-fit:cover;border-radius:8px;width:156px;max-height:145px;margin-bottom:5px}.buddy-thinking{color:var(--o89-muted);padding:10px 0;font-size:13px}.buddy-connection-note{border:1px dashed var(--o89-warning);corner-shape:bevel;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:8px 12px;display:flex}.buddy-connection-note p{color:var(--o89-fg);font-size:13px}.buddy-connection-note button{min-height:40px;color:var(--o89-fg);background:0 0;padding:8px 0;font-size:13px}.buddy-connection-note svg{width:12px;height:12px}.buddy-ui [data-slot=button]{font-family:inherit}.buddy-ui .setup-quick-replies button{border:1px solid var(--o89-line-strong);box-shadow:none}.buddy-ui .setup-quick-replies button:disabled{opacity:.4;cursor:wait}.buddy-prompt{background:var(--o89-page);border:1px solid var(--o89-line-strong);corner-shape:bevel;border-radius:14px;flex-shrink:0;overflow:hidden}.buddy-prompt>[data-slot=input-group]{box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;align-items:stretch;width:100%;height:auto;display:flex}.buddy-prompt textarea{resize:none;box-shadow:none;color:var(--o89-fg);field-sizing:content;background:0 0;border:0;outline:0;width:100%;min-height:52px;max-height:130px;padding:15px 16px 8px;font-family:inherit;font-size:15px;line-height:1.5}.buddy-prompt textarea::placeholder{color:var(--o89-muted)}.buddy-prompt textarea:focus-visible{outline:0}.buddy-prompt:focus-within{border-color:var(--o89-signal)}.buddy-prompt [data-slot=input-group-addon]{order:1;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:6px 10px 10px;display:flex}.buddy-prompt [data-align=block-start]{order:-1;justify-content:start;padding-top:10px;padding-bottom:0}.buddy-prompt [data-slot=input-group-button]{min-width:36px;height:36px;color:var(--o89-muted);background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:8px;display:inline-flex}.buddy-prompt [data-slot=input-group-button][type=submit],.buddy-prompt [aria-label=Stop\ reply]{background:var(--o89-action);color:var(--o89-on-fill);box-shadow:inset 0 0 0 1px #ffffffd9}.buddy-prompt button:disabled{opacity:.4;cursor:default}.buddy-prompt svg{width:18px;height:18px}.composer-hint{color:var(--o89-muted);font-size:12px}.buddy-prompt [data-slot=input-group-addon]>div{align-items:center;gap:8px;display:flex}@media (max-width:760px){.buddy-workspace[data-mobile-view=chat] .setup-plan,.buddy-workspace[data-mobile-view=map] .setup-conversation{display:none}.buddy-workspace .setup-conversation,.buddy-workspace .setup-plan{height:100%}.buddy-log:has(>.chat-message:only-child){padding-bottom:30px}.buddy-log:has(>.chat-message:only-child) p{font-size:34px}.buddy-log:has(>.chat-message:only-child) .chat-welcome{width:95px;height:95px}.buddy-prompt textarea{font-size:16px}.buddy-workspace>.setup-workspace{height:calc(100% - 134px)}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-muted:var(--muted)}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-\[50\%\]{left:50%}.order-first{order:-9999}.order-last{order:9999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-full{width:100%;height:100%}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-22{height:calc(var(--spacing) * 22)}.h-auto{height:auto}.max-h-48{max-height:calc(var(--spacing) * 48)}.min-h-16{min-height:calc(var(--spacing) * 16)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-\[95\%\]{max-width:95%}.max-w-full{max-width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-8{gap:calc(var(--spacing) * 8)}.overflow-hidden{overflow:hidden}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-\[calc\(var\(--radius\)-5px\)\]{border-radius:calc(var(--radius) - 5px)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-input{border-color:var(--input)}.bg-background,.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--background) 80%, transparent)}}.bg-destructive{background-color:var(--destructive)}.bg-muted{background-color:var(--muted)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.object-cover{object-fit:cover}.p-0{padding:0}.p-4{padding:calc(var(--spacing) * 4)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-end{text-align:end}.text-start{text-align:start}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-has-\[\>input\]\/input-group\:pt-2\.5:is(:where(.group\/input-group):has(>input) *){padding-top:calc(var(--spacing) * 2.5)}.group-has-\[\>input\]\/input-group\:pb-2\.5:is(:where(.group\/input-group):has(>input) *){padding-bottom:calc(var(--spacing) * 2.5)}.group-data-\[disabled\=true\]\/input-group\:opacity-50:is(:where(.group\/input-group)[data-disabled=true] *){opacity:.5}.group-\[\.is-assistant\]\:text-foreground:is(:where(.group).is-assistant *){color:var(--foreground)}.group-\[\.is-user\]\:ml-auto:is(:where(.group).is-user *){margin-left:auto}.group-\[\.is-user\]\:rounded-lg:is(:where(.group).is-user *){border-radius:var(--radius)}.group-\[\.is-user\]\:bg-secondary:is(:where(.group).is-user *){background-color:var(--secondary)}.group-\[\.is-user\]\:px-4:is(:where(.group).is-user *){padding-inline:calc(var(--spacing) * 4)}.group-\[\.is-user\]\:py-3:is(:where(.group).is-user *){padding-block:calc(var(--spacing) * 3)}.group-\[\.is-user\]\:text-foreground:is(:where(.group).is-user *){color:var(--foreground)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-background:hover{background-color:var(--background)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-muted:disabled{background-color:var(--muted)}.disabled\:text-muted-foreground:disabled{color:var(--muted-foreground)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:shadow-none:disabled{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has([data-slot=input-group-control]:focus-visible){border-color:var(--ring)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-\[3px\]:has([data-slot=input-group-control]:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]){border-color:var(--destructive)}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]){height:auto}.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]){flex-direction:column}.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]){height:auto}.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]){flex-direction:column}.has-\[\>button\]\:mr-\[-0\.45rem\]:has(>button){margin-right:-.45rem}.has-\[\>button\]\:ml-\[-0\.45rem\]:has(>button){margin-left:-.45rem}.has-\[\>kbd\]\:mr-\[-0\.35rem\]:has(>kbd){margin-right:-.35rem}.has-\[\>kbd\]\:ml-\[-0\.35rem\]:has(>kbd){margin-left:-.35rem}.has-\[\>svg\]\:p-0:has(>svg){padding:0}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2:has(>svg){padding-inline:calc(var(--spacing) * 2)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.has-\[\>textarea\]\:h-auto:has(>textarea){height:auto}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}@media (min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (prefers-color-scheme:dark){.dark\:border-input{border-color:var(--input)}.dark\:bg-background{background-color:var(--background)}.dark\:bg-destructive\/60{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60{background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-input\/30{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:bg-transparent{background-color:#0000}@media (hover:hover){.dark\:hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-input\/50:hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:bg-muted:hover{background-color:var(--muted)}}.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]){--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\.border-b\]\:pb-3.border-b{padding-bottom:calc(var(--spacing) * 3)}.\[\.border-t\]\:pt-3.border-t{padding-top:calc(var(--spacing) * 3)}.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3:has(>[data-align=block-end])>input{padding-top:calc(var(--spacing) * 3)}.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3:has(>[data-align=block-start])>input{padding-bottom:calc(var(--spacing) * 3)}.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-2:has(>[data-align=inline-end])>input{padding-right:calc(var(--spacing) * 2)}.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-2:has(>[data-align=inline-start])>input{padding-left:calc(var(--spacing) * 2)}.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd{border-radius:calc(var(--radius) - 5px)}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5>svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}@media (pointer:coarse){.\[\@media\(pointer\:coarse\)\]\:opacity-100{opacity:1}}}:root,.buddy-ui{--background:var(--o89-page);--foreground:var(--o89-fg);--card:var(--o89-surface);--card-foreground:var(--o89-fg);--popover:var(--o89-surface-raised);--popover-foreground:var(--o89-fg);--primary:var(--o89-action);--primary-foreground:var(--o89-on-fill);--secondary:var(--o89-surface-raised);--secondary-foreground:var(--o89-fg);--muted:var(--o89-surface-raised);--muted-foreground:var(--o89-muted);--accent:var(--o89-surface-raised);--accent-foreground:var(--o89-fg);--destructive:var(--o89-alarm);--border:var(--o89-line-strong);--input:var(--o89-line-strong);--ring:var(--o89-signal);--radius:.625rem}[data-slot=button]:not(.rounded-full){corner-shape:bevel}[data-slot=button][data-variant=default]:not(:disabled){box-shadow:inset 0 0 0 1px #ffffffd9}[data-slot=button][data-variant=default]:not(:disabled):hover{background:var(--o89-action-lit)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@font-face{font-family:Concept;src:url(/brand/fonts/InterTight-Variable.ttf)format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:Technical;src:url(/brand/fonts/IBMPlexMono-Regular.ttf)format("truetype");font-weight:400;font-display:swap}html{scroll-padding-top:96px}body{margin:0}.website-concept{--site-inset:var(--o89-gutter);--site-gutter:max(var(--o89-gutter), (100% - var(--o89-max)) / 2);--section-space:clamp(72px, 9vw, 136px);min-height:100vh}.buddy-app.app-preview{width:100%;max-width:none;height:auto;box-shadow:none;border-radius:10px;padding:24px}.app-preview>.phone-status,.app-preview .buddy-intro,.app-preview>.home-indicator,.app-preview .buddy-tip{display:none}.app-preview>.app-top{padding-bottom:14px}.app-preview .app-top p{font-size:22px}.app-preview .app-top p>span{display:none}.app-preview>.app-content{flex:none;min-height:350px;padding:14px 0 0;overflow:visible}.app-preview .app-panel>h2{font-size:26px}.app-preview .buddy-explanation{font-size:14px}.app-preview .battery-number{font-size:44px}.app-preview .battery-summary{margin-top:16px;padding:18px}.app-preview .battery-track{margin-bottom:12px}.app-preview .energy-pair strong{font-size:24px}.app-preview>.ask-buddy,.app-preview>.app-nav{margin-top:16px}@media (max-width:1100px){.source-projects-compact .source-project{grid-template-columns:1fr;gap:10px 16px}}@media (max-width:760px){.buddy-app.app-preview{padding:18px}.app-preview>.app-content{min-height:0}.app-preview .app-panel>h2{font-size:25px}.app-preview .energy-pair strong{font-size:21px}}.chat-loading{color:var(--o89-muted);padding:40px;font-size:17px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important}}.page-actions{flex-wrap:wrap;align-items:center;gap:12px 28px;margin-top:32px;display:flex}.lede{color:var(--o89-muted);max-width:56ch;font-size:clamp(17px,1.35vw,20px);line-height:1.55}.text-action{min-height:44px;color:var(--o89-fg);align-items:center;gap:8px;font-size:15px;font-weight:600;display:inline-flex}.text-action>svg,.o89-text-link>svg{flex:none}.o89-text-link:hover svg[class*=arrow-up-right]{transform:translate(2px,-2px)}.o89-text-link:hover svg:first-child:not(:last-child){transform:none}.github-action>svg:first-child{width:18px;height:18px}.status-word{border:1px solid var(--o89-line-strong);white-space:nowrap;color:var(--o89-muted);border-radius:999px;align-items:center;gap:8px;padding:3px 10px;font-size:13px;line-height:1.4;display:inline-flex}.status-word[data-status=published]{color:var(--o89-fg)}.status-word[data-status=specified]{color:var(--o89-signal);border-color:#7f9ce073}.status-word[data-status=planned],.status-word[data-status=pending]{color:var(--o89-warning);border-style:dashed;border-color:#e9a13c80}.render-stage{isolation:isolate;place-items:center;margin:0;display:grid;position:relative}.render-stage:before{content:"";z-index:-1;background-image:radial-gradient(circle, var(--o89-line-strong) 1.2px, transparent 1.6px);background-size:14px 14px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 70%,#000 40%,#0000 100%);mask-image:radial-gradient(70% 70%,#000 40%,#0000 100%)}.render-stage figcaption{color:var(--o89-muted);text-align:center;justify-self:center;margin-top:12px;font-size:13px}.site-page-intro{padding:clamp(64px, 8vw, 120px) var(--site-gutter) clamp(48px, 6vw, 88px);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:end;gap:32px clamp(32px,6vw,96px);display:grid}.site-page-intro h1{max-width:16ch;font-size:clamp(44px,5.6vw,84px);line-height:.98}.page-intro-copy{max-width:540px;padding-bottom:6px}.page-intro-copy>p{color:var(--o89-muted);font-size:clamp(17px,1.35vw,20px);line-height:1.55}.page-intro-copy>.o89-text-link,.page-intro-copy>.page-actions{margin-top:20px}.content-section{padding:var(--section-space) var(--site-gutter) 0}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 40px;display:flex}.section-heading h2{max-width:20ch;font-size:clamp(34px,3.8vw,56px);line-height:1.02}.section-heading .lede{margin-top:18px}.site-cta{width:min(100% - 2 * var(--o89-gutter), var(--o89-max));margin:var(--section-space) auto 0;background:var(--o89-surface);border:1px solid var(--o89-line);corner-shape:bevel;border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 45px;padding:clamp(28px,4vw,56px);display:flex}.site-cta h2{max-width:18ch;font-size:clamp(30px,3vw,44px);line-height:1.05}.website-concept main>.site-cta:last-child{margin-bottom:0}.product-family{padding:var(--section-space) var(--site-gutter) 0}.product-family-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 40px;display:flex}.product-family-heading h2{max-width:18ch;font-size:clamp(34px,3.8vw,56px);line-height:1.02}.product-family-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);margin-top:clamp(40px,5vw,72px);display:grid}.family-card{flex-direction:column;display:flex;position:relative}.family-art{aspect-ratio:5/4;margin-bottom:28px;position:relative;overflow:hidden;container-type:inline-size}.family-art:before{content:"";background-image:radial-gradient(circle, var(--o89-line) 1.2px, transparent 1.6px);background-size:14px 14px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(75% 80% at 50% 60%,#000 50%,#0000 100%);mask-image:radial-gradient(75% 80% at 50% 60%,#000 50%,#0000 100%)}.family-art>*{position:absolute;left:50%;transform:translate(-50%)}.family-controller>img{width:56%;height:auto;top:9%}.family-offgrid>.mini-app{top:9%}.family-buddy>img{width:80%;height:auto;bottom:-5.4%;left:47.5%}.family-card h3{letter-spacing:-.03em;font-size:clamp(24px,2.2vw,30px)}.family-card p{color:var(--o89-muted);max-width:38ch;margin-top:12px;font-size:16px;line-height:1.55}.family-link{min-height:44px;color:var(--o89-fg);align-items:center;gap:8px;margin-top:auto;padding-top:16px;font-size:15px;font-weight:600;display:inline-flex}.family-link>svg{transition:transform .3s var(--o89-ease)}.family-link:after{content:"";position:absolute;inset:0}@supports selector(:has(*)){.family-link:focus-visible{outline:none}.family-card:has(.family-link:focus-visible){outline:2px solid var(--o89-focus);outline-offset:6px}}@media (hover:hover){.family-card:hover .family-link>svg{transform:translate(4px)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.family-art>*{transition:transform 1s var(--o89-ease)}.family-card:hover .family-art>*{transform:translate(-50%,-6px)}}.mini-app{border:1px solid var(--app-line-strong);background:var(--app-bg);width:56%;height:100cqi;color:var(--app-ink);border-radius:7cqi;padding:4.5cqi 5cqi;box-shadow:0 5cqi 10cqi #0000008c}.mini-app-top{justify-content:space-between;align-items:center;display:flex}.mini-app-wordmark{font-size:2.2cqi;font-weight:700;display:block}.mini-app-wordmark b{color:var(--app-muted);margin-left:.8cqi;font-weight:500}.mini-app-site{letter-spacing:-.02em;margin-top:.6cqi;font-size:4.4cqi;font-weight:600;line-height:1.15;display:block}.mini-app-avatar{border:1px solid var(--app-line-strong);width:7cqi;height:7cqi;color:var(--app-muted);border-radius:50%;place-items:center;font:1.9cqi Technical,monospace;display:grid}.mini-app-fresh{border-bottom:1px solid var(--app-line);color:var(--app-muted);align-items:center;gap:1.2cqi;padding:2.4cqi 0 3.2cqi;font-size:2.2cqi;display:flex}.mini-app-fresh .live-dot{width:1.2cqi;height:1.2cqi}.mini-app-title{letter-spacing:-.035em;margin-top:3.8cqi;font-size:5.2cqi;font-weight:700;line-height:1.12;display:block}.mini-app-flow{border-top:1px solid var(--app-line);grid-template-columns:1fr 1fr;gap:4.5cqi 2cqi;margin-top:4cqi;padding-top:3.5cqi;display:grid}.mini-app-flow>div{flex-direction:column;align-items:center;display:flex}.mini-app-flow .equipment-drawing{width:17cqi;height:11.9cqi;margin-bottom:1cqi}.mini-app-flow strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:5.4cqi;font-weight:600;line-height:1.1}.mini-app-flow .mini-app-state{letter-spacing:-.025em;font-size:4.2cqi;line-height:1.41}.mini-app-flow small{letter-spacing:0;color:var(--app-muted);margin-left:.4cqi;font-size:2.2cqi}.mini-app-flow span{color:var(--app-muted);margin-top:.8cqi;font-size:2.2cqi}.system-map-showcase{width:min(100% - 2 * var(--o89-gutter), var(--o89-max));border:1px solid var(--o89-line);corner-shape:bevel;border-radius:24px;height:680px;margin:0 auto;overflow:hidden}.system-map-showcase>.setup-plan{border:0;width:100%;height:100%}.table-scroll{border:1px solid var(--o89-line);corner-shape:bevel;scrollbar-width:thin;border-radius:16px;margin-top:clamp(32px,4vw,48px);overflow:auto}.table-scroll table{border-collapse:collapse;text-align:left;width:100%;min-width:620px;font-size:15px}.table-scroll th,.table-scroll td{border-top:1px solid var(--o89-line);vertical-align:top;padding:16px 20px;line-height:1.55}.table-scroll thead th{background:var(--o89-surface);color:var(--o89-muted);border-top:0;font-size:14px;font-weight:600}.table-scroll tbody th{width:18%;color:var(--o89-fg);font-weight:600}.table-scroll td{color:var(--o89-muted)}.product-intro{padding:clamp(48px, 6vw, 96px) var(--site-gutter) clamp(40px, 5vw, 72px);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:48px clamp(32px,6vw,96px);min-height:600px;display:grid}.product-intro h1{max-width:13ch;font-size:clamp(44px,5.6vw,84px);line-height:.98}.product-intro-copy>p{color:var(--o89-muted);max-width:46ch;margin-top:24px;font-size:clamp(17px,1.35vw,20px);line-height:1.55}.product-intro-copy>.product-status{align-items:center;gap:10px;margin-top:28px;font-size:14px;display:flex}.product-status>i{background:var(--o89-warning);border-radius:50%;flex:none;width:8px;height:8px}.product-hero-art{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-width:0;display:flex}.product-hero-controller>.render-stage{width:100%;min-height:460px}.product-hero-controller img{object-fit:contain;filter:drop-shadow(0 30px 40px #0009);width:100%;height:440px}.product-hero-buddy{gap:20px}.product-hero-buddy>.render-stage{width:min(100%,460px)}.product-hero-buddy img{object-fit:contain;width:min(100%,360px);height:auto}.buddy-hero-question{letter-spacing:-.035em;text-align:center;font-size:clamp(26px,2.4vw,34px);font-weight:700;line-height:1.1}.product-hero-offgrid{padding-block:12px}.product-hero-offgrid>.buddy-app{width:100%;max-width:390px}.site-switch-row{margin:0 var(--site-gutter) 16px;flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.feature-rows{display:grid}.feature-rows article{border-top:1px solid var(--o89-line);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px clamp(32px,6vw,96px);padding:clamp(28px,3vw,40px) 0;display:grid}.feature-rows article:last-child{border-bottom:1px solid var(--o89-line)}.feature-rows h2{max-width:20ch;font-size:clamp(26px,2.4vw,36px);line-height:1.08}.feature-rows p{color:var(--o89-muted);max-width:58ch;font-size:17px;line-height:1.65}.hardware-open-section{padding:var(--section-space) var(--site-gutter) 0;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:40px clamp(32px,6vw,96px);display:grid}.hardware-open-section .render-stage{min-height:420px}.hardware-open-section img{object-fit:contain;filter:drop-shadow(0 30px 40px #0009);width:100%;max-height:520px}.hardware-open-section h2{font-size:clamp(34px,3.8vw,56px);line-height:1.02}.hardware-open-section p{color:var(--o89-muted);max-width:48ch;margin-top:20px;font-size:17px;line-height:1.65}.hardware-open-section .o89-text-link{margin-top:20px}.hardware-open-section small{border-top:1px solid var(--o89-line);max-width:46ch;color:var(--o89-muted);margin-top:20px;padding-top:16px;font-size:13px;line-height:1.6;display:block}.multi-site-note{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px clamp(32px,6vw,96px);display:grid}.multi-site-note h2{font-size:clamp(34px,3.8vw,56px);line-height:1.02}.multi-site-note .status-word{margin-top:20px}.multi-site-note p{color:var(--o89-muted);max-width:52ch;font-size:17px;line-height:1.65}.multi-site-note .multi-site-local{color:var(--o89-fg);margin-top:16px}.multi-site-note .o89-text-link{margin-top:16px}.catalogue-summary{width:min(100% - 2 * var(--o89-gutter), var(--o89-max));border-block:1px solid var(--o89-line);align-items:center;gap:16px clamp(24px,4vw,56px);margin:0 auto;padding-block:clamp(28px,3vw,40px);display:flex}.catalogue-summary>strong{letter-spacing:-.05em;font-size:clamp(64px,8vw,120px);font-weight:600;line-height:.9}.catalogue-summary h2{letter-spacing:-.03em;margin-bottom:10px;font-size:clamp(24px,2.2vw,32px)}.catalogue-summary p{color:var(--o89-muted);font:13px/1.7 Technical,monospace}.catalogue-summary small{color:var(--o89-muted);margin-top:6px;font-size:14px;line-height:1.5;display:block}.catalogue-section{padding-top:clamp(40px,5vw,64px)}.catalogue-controls{grid-template-columns:1.7fr 1fr 1fr;gap:16px;display:grid}.catalogue-controls>div,.contact-form>div{color:var(--o89-muted);flex-direction:column;gap:8px;font-size:14px;display:flex}.catalogue-controls input,.catalogue-controls select,.contact-form select,.contact-form textarea{border:1px solid var(--o89-line-strong);corner-shape:bevel;background:var(--o89-surface);width:100%;min-height:48px;color:var(--o89-fg);border-radius:10px;padding:12px 14px;font:16px/1.5 Concept,Arial,sans-serif;transition:border-color .2s}.catalogue-controls input::placeholder,.contact-form textarea::placeholder{color:var(--o89-muted)}.catalogue-controls :is(input,select):hover,.contact-form :is(select,textarea):hover{border-color:var(--o89-muted)}.catalogue-controls :is(input,select):focus-visible,.contact-form :is(select,textarea):focus-visible{border-color:var(--o89-signal);outline-offset:2px}.catalogue-result-count{color:var(--o89-muted);padding:28px 0 16px;font:13px/1.7 Technical,monospace}.catalogue-rows article{border-top:1px solid var(--o89-line);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,.8fr) auto;align-items:center;gap:12px 24px;padding:22px 0;display:grid}.catalogue-rows h2{letter-spacing:-.015em;overflow-wrap:anywhere;font-size:19px;font-weight:600;line-height:1.35}.catalogue-rows code{color:var(--o89-signal);overflow-wrap:anywhere;margin-top:6px;font:12.5px/1.6 Technical,monospace;display:block}.catalogue-rows article>div:nth-child(2){font-size:14px}.catalogue-rows small{color:var(--o89-muted);margin-top:4px;font-size:13px;display:block}.catalogue-evidence{border:1px solid var(--o89-line-strong);color:var(--o89-muted);white-space:nowrap;border-radius:999px;justify-self:start;padding:3px 10px;font-size:13px}.catalogue-rows article>a{min-height:44px;color:var(--o89-fg);white-space:nowrap;justify-self:end;align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.catalogue-rows article>a:hover{color:var(--o89-signal)}.catalogue-more{width:100%;margin-top:24px}.catalogue-empty{border:1px dashed var(--o89-line-strong);corner-shape:bevel;border-radius:16px;padding:clamp(32px,4vw,48px)}.catalogue-empty h2{font-size:clamp(28px,2.6vw,38px)}.catalogue-empty p{max-width:54ch;color:var(--o89-muted);margin:14px 0 24px}.catalogue-note{max-width:76ch;color:var(--o89-muted);margin-top:32px;font-size:14px;line-height:1.7}.site-stories-list{padding:clamp(16px, 2vw, 32px) var(--site-gutter) 0;gap:clamp(64px,8vw,120px);display:grid}.site-story{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:32px clamp(32px,6vw,96px);display:grid}.site-story-image img,.site-detail-image img{aspect-ratio:3/2;object-fit:cover;corner-shape:bevel;border-radius:16px;width:100%;height:auto}.site-story-copy h2{font-size:clamp(34px,3.8vw,56px);line-height:1.02}.site-story-copy .site-story-lead{letter-spacing:-.01em;color:var(--o89-fg);max-width:34ch;margin-top:20px;font-size:clamp(19px,1.6vw,23px);line-height:1.4}.site-story-copy p{color:var(--o89-muted);max-width:48ch;margin-top:14px;font-size:17px;line-height:1.6}.equipment-chips{flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none;display:flex}.equipment-chips li{border:1px solid var(--o89-line-strong);color:var(--o89-muted);border-radius:999px;padding:5px 12px;font-size:14px}.site-story-copy .o89-text-link{margin-top:16px}.other-site h2{max-width:20ch;font-size:clamp(34px,3.8vw,56px);line-height:1.02}.other-site p{max-width:60ch;color:var(--o89-muted);margin-top:20px;font-size:18px;line-height:1.6}.other-site .o89-text-link{margin-top:16px}.site-detail-hero{padding:clamp(48px, 6vw, 96px) var(--site-gutter) clamp(40px, 5vw, 72px);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:40px clamp(32px,6vw,96px);display:grid}.site-detail-copy h1{max-width:13ch;font-size:clamp(44px,5.6vw,84px);line-height:.98}.site-detail-copy>p{color:var(--o89-muted);max-width:44ch;margin-top:24px;font-size:clamp(17px,1.35vw,20px);line-height:1.55}.site-story-image,.site-detail-image{margin:0}.site-story-image figcaption,.site-detail-image figcaption{color:var(--o89-muted);margin-top:12px;font-size:13px;line-height:1.5}.site-equipment{width:min(100% - 2 * var(--o89-gutter), var(--o89-max));border-block:1px solid var(--o89-line);flex-wrap:wrap;align-items:center;gap:12px 32px;margin:0 auto;padding-block:20px;display:flex}.site-equipment h2{letter-spacing:-.01em;font-size:16px;font-weight:600}.site-equipment .equipment-chips{margin:0}.site-equipment .o89-text-link{margin-left:auto}.site-app-section{padding:var(--section-space) var(--site-gutter) 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:48px clamp(32px,6vw,96px);display:grid}.site-app-copy h2{max-width:16ch;font-size:clamp(34px,3.8vw,56px);line-height:1.02}.site-app-copy>p{color:var(--o89-muted);max-width:46ch;margin-top:20px;font-size:18px;line-height:1.6}.site-app-proof{border-top:1px solid var(--o89-line);max-width:46ch;margin-top:32px;padding-top:20px}.site-app-proof strong{font-weight:600;display:block}.site-app-proof p{color:var(--o89-muted);margin-top:6px;font-size:15px;line-height:1.6}.site-app-copy .o89-text-link{margin-top:20px}.site-app-visual{flex-direction:column;align-items:center;gap:16px;margin:0;padding:32px 0;display:flex}.site-app-visual>figcaption{color:var(--o89-muted);font-size:13px}.contact-layout{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px clamp(40px,8vw,128px);padding-top:clamp(16px,2vw,24px);display:grid}.contact-form{flex-direction:column;gap:24px;display:flex}.contact-form label{color:var(--o89-fg);font-weight:500}.contact-form textarea{resize:vertical;min-height:128px}.contact-form>.o89-plate{align-self:start}.contact-layout aside{border:1px solid var(--o89-line);corner-shape:bevel;background:var(--o89-surface);border-radius:20px;align-self:start;padding:clamp(24px,3vw,40px)}.contact-layout aside h2{font-size:clamp(28px,2.6vw,38px);line-height:1.05}.contact-layout aside>p{color:var(--o89-muted);margin-top:16px;font-size:16px;line-height:1.65}.contact-layout aside .o89-text-link{margin-top:12px}.contact-direct{border-top:1px solid var(--o89-line);flex-direction:column;gap:6px;margin:28px 0 24px;padding-top:24px;display:flex}.contact-direct>span{color:var(--o89-muted);font-size:14px}.contact-direct>a{letter-spacing:-.02em;text-decoration:underline;-webkit-text-decoration-color:var(--o89-line-strong);text-decoration-color:var(--o89-line-strong);text-underline-offset:.22em;font-size:clamp(20px,1.8vw,24px);font-weight:600}.contact-direct>a:hover{-webkit-text-decoration-color:var(--o89-fg);text-decoration-color:var(--o89-fg)}.form-disclosure,.contact-layout aside>.form-disclosure{color:var(--o89-muted);font-size:13px;line-height:1.65}.form-feedback{color:var(--o89-fg);font-size:15px;line-height:1.6}.form-feedback:empty{display:none}.source-section,.developer-toolbox{padding:var(--section-space) var(--site-gutter) 0}.source-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 24px;margin-bottom:clamp(24px,3vw,40px);display:flex}.source-section-heading h2{font-size:clamp(34px,3.8vw,56px);line-height:1.02}.source-project{border-top:1px solid var(--o89-line);grid-template-columns:minmax(180px,.8fr) minmax(0,1.5fr) minmax(200px,.7fr);gap:16px clamp(24px,3vw,48px);padding:32px 0;display:grid}.source-project:last-child{border-bottom:1px solid var(--o89-line)}.source-project h3{letter-spacing:-.03em;font-size:clamp(24px,2.2vw,30px);line-height:1.1}.source-project h3 a{align-items:baseline;gap:10px;display:inline-flex}.source-project h3 svg{color:var(--o89-muted);transition:transform .3s var(--o89-ease);flex:none}.source-project h3 a:hover svg{color:var(--o89-fg);transform:translate(2px,-2px)}.source-kind{color:var(--o89-muted);margin-top:10px;font-size:14px}.source-project-detail>p{max-width:56ch;font-size:17px;line-height:1.55}.source-project-detail>.source-contents{color:var(--o89-muted);margin-top:8px;font-size:15px}.source-file-links{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.source-file-links a{border:1px solid var(--o89-line-strong);corner-shape:bevel;min-height:36px;color:var(--o89-fg);border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:14px;transition:border-color .2s;display:inline-flex}.source-file-links a:hover{border-color:var(--o89-muted)}.source-file-links a svg{color:var(--o89-muted)}.source-project-meta{align-content:start;margin:0;display:grid}.source-project-meta>div{border-top:1px solid var(--o89-line);grid-template-columns:84px 1fr;gap:12px;padding:8px 0;font-size:13px;display:grid}.source-project-meta>div:first-child{border-top:0;padding-top:0}.source-project-meta dt{color:var(--o89-muted)}.source-project-meta dd{overflow-wrap:anywhere;margin:0;font-family:Technical,monospace;font-size:12.5px}.source-project-meta a{color:var(--o89-fg);align-items:center;gap:6px;display:inline-flex}.source-project-meta a:hover{color:var(--o89-signal)}.developer-resources{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.developer-resources>a{border:1px solid var(--o89-line);corner-shape:bevel;background:var(--o89-surface);min-height:190px;transition:border-color .25s var(--o89-ease);border-radius:16px;flex-direction:column;padding:22px;display:flex}.developer-resources>a:hover{border-color:var(--o89-line-strong)}.developer-resources h3{letter-spacing:-.02em;justify-content:space-between;align-items:start;gap:10px;font-size:20px;line-height:1.2;display:flex}.developer-resources h3 svg{color:var(--o89-muted);transition:transform .3s var(--o89-ease);flex:none;margin-top:2px}.developer-resources>a:hover h3 svg{color:var(--o89-fg);transform:translate(2px,-2px)}.developer-resources p{color:var(--o89-muted);margin-top:auto;padding-top:24px;font-size:15px;line-height:1.55}.contribution-note,.open-principles{padding:var(--section-space) var(--site-gutter) 0;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px clamp(32px,6vw,96px);display:grid}.contribution-note h2,.open-principles h2{max-width:16ch;font-size:clamp(34px,3.8vw,56px);line-height:1.02}.contribution-note p{color:var(--o89-muted);max-width:56ch;font-size:18px;line-height:1.6}.contribution-note .o89-text-link{margin-top:16px}.open-principle-rows{display:grid}.open-principle-rows article{border-top:1px solid var(--o89-line);padding:24px 0}.open-principle-rows article:first-child{border-top:0;padding-top:0}.open-principle-rows h3{letter-spacing:-.025em;font-size:clamp(22px,1.9vw,26px)}.open-principle-rows p{color:var(--o89-muted);max-width:56ch;margin-top:10px;font-size:16px;line-height:1.6}.open-principle-rows .o89-text-link{margin-top:10px}.source-release-notes{width:min(100% - 2 * var(--o89-gutter), var(--o89-max));margin:var(--section-space) auto 0;border-top:1px solid var(--o89-line);grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:32px clamp(32px,6vw,96px);padding-top:32px;display:grid}.source-release-notes h2{letter-spacing:-.015em;font-size:18px;line-height:1.3}.source-release-notes p{max-width:76ch;color:var(--o89-muted);margin-top:12px;font-size:15px;line-height:1.7}.source-release-notes ul{margin:8px 0 0;padding:0;list-style:none;display:grid}.guide-layout{padding:clamp(16px, 2vw, 32px) var(--site-gutter) 0;grid-template-columns:200px minmax(0,880px);justify-content:space-between;gap:clamp(32px,5vw,80px);display:grid}.guide-toc{flex-direction:column;align-self:start;font-size:14px;display:flex;position:sticky;top:108px}.guide-toc a{border-left:1px solid var(--o89-line);min-height:36px;color:var(--o89-muted);align-items:center;padding-left:16px;transition:color .2s,border-color .2s;display:flex}.guide-toc a:hover{color:var(--o89-fg);border-color:var(--o89-signal)}.guide-content>section{border-bottom:1px solid var(--o89-line);margin-bottom:clamp(56px,7vw,96px);padding:0 0 clamp(56px,7vw,96px);scroll-margin-top:108px}.guide-content>section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.guide-content h2{max-width:20ch;margin-bottom:24px;font-size:clamp(34px,3.8vw,56px);line-height:1.02}.guide-content h3{letter-spacing:-.02em;font-size:20px;line-height:1.2}.guide-content section>p,.guide-two-columns p{color:var(--o89-muted);max-width:68ch;margin-block:16px;font-size:17px;line-height:1.65}.guide-content code{overflow-wrap:anywhere;font:.86em/1.6 Technical,monospace}.guide-content p code,.guide-content li code{color:var(--o89-fg)}.guide-content ul{color:var(--o89-muted);gap:10px;max-width:68ch;margin:24px 0 0;padding:0;font-size:16px;line-height:1.6;list-style:none;display:grid}.guide-content ul:not(.equipment-chips) li{padding-left:17px;position:relative}.guide-content ul:not(.equipment-chips) li:before{content:"";background:var(--o89-signal);width:5px;height:5px;position:absolute;top:.62em;left:0}.guide-content .guide-note{border-top:1px solid var(--o89-line);padding-top:14px;font-size:14px;line-height:1.65}.guide-logo{border:1px solid var(--o89-line);corner-shape:bevel;background:var(--o89-surface);border-radius:16px;place-items:center;margin:28px 0;padding:clamp(40px,6vw,72px) 24px;display:grid}.guide-logo img{width:min(100%,340px);height:auto}.guide-two-columns{grid-template-columns:1fr 1fr;gap:8px 40px;margin-top:32px;display:grid}.guide-two-columns p{margin-top:8px;font-size:15px}.guide-swatches{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:32px 0;display:grid}.guide-swatch{border-top:1px solid var(--o89-line);grid-template-columns:56px minmax(0,1fr);gap:16px;padding:16px 0;display:grid}.guide-swatch>i{border:1px solid var(--o89-line-strong);corner-shape:bevel;border-radius:10px;width:56px;height:56px}.guide-swatch strong{font-size:15px;font-weight:600;display:block}.guide-swatch code{color:var(--o89-signal);margin:4px 12px 0 0;font-size:12.5px;display:inline-block}.guide-swatch code.guide-hex{color:var(--o89-muted)}.guide-swatch p{color:var(--o89-muted);margin-top:6px;font-size:14px;line-height:1.5}.code-sample{border:1px solid var(--o89-line);corner-shape:bevel;background:var(--o89-surface);border-radius:14px;margin:28px 0 0;overflow:hidden}.code-sample-bar{border-bottom:1px solid var(--o89-line);justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 18px;display:flex}.code-sample-bar>code{color:var(--o89-muted);font-size:13px}.code-sample pre,.guide-snippet{white-space:pre;color:color-mix(in srgb, var(--o89-fg) 85%, var(--o89-muted));scrollbar-width:thin;margin:0;padding:18px;font:13.5px/1.7 Technical,monospace;overflow:auto}.code-sample pre code,.guide-snippet code{font-size:inherit}.code-sample>span{color:var(--o89-muted);padding:0 18px;font-size:13px;display:block}.code-sample>span:not(:empty){padding-bottom:14px}.guide-type-sample{border-top:1px solid var(--o89-line);margin-top:28px;padding:28px 0}.guide-type-sample>strong{letter-spacing:-.035em;font-size:clamp(44px,5.4vw,76px);font-weight:700;line-height:.98;display:block}.guide-type-sample>p{color:var(--o89-muted);max-width:60ch;margin-top:20px;font-size:18px;line-height:1.6}.guide-spec{max-width:560px;margin:8px 0 24px;display:grid}.guide-spec>div{border-top:1px solid var(--o89-line);grid-template-columns:38% 1fr;gap:12px;padding:10px 0;font-size:15px;display:grid}.guide-spec dt{color:var(--o89-muted)}.guide-spec dd{font-variant-numeric:tabular-nums;margin:0;font:14px/1.5 Technical,monospace}.guide-buttons{flex-wrap:wrap;align-items:center;gap:12px;margin:28px 0 16px;display:flex}.guide-snippet{border:1px solid var(--o89-line);corner-shape:bevel;background:var(--o89-surface);border-radius:12px;font-size:13px}.guide-frame-sample{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px 40px;margin-top:28px;display:grid}.guide-frame{border:1px solid var(--o89-line-strong);corner-shape:bevel;background:var(--o89-surface);border-radius:14px;padding:24px}.guide-frame strong{font-weight:600}.guide-frame p{color:var(--o89-muted);margin-top:6px;font-size:15px;line-height:1.6}.guide-frame-sample .equipment-chips{margin:0}.guide-content section>.o89-text-link{margin-top:24px}.reading-examples{border:1px solid var(--o89-line);corner-shape:bevel;background:var(--o89-surface);border-radius:14px;margin:28px 0}.reading-examples>div{border-top:1px solid var(--o89-line);grid-template-columns:minmax(0,.9fr) minmax(0,.7fr) minmax(0,1.6fr);align-items:center;gap:16px;margin:0 20px;padding:18px 0;display:grid}.reading-examples>div:first-child{border-top:0}.reading-examples span{color:var(--o89-muted);font-size:14px}.reading-examples strong{font-variant-numeric:tabular-nums;justify-self:start;font:26px/1.2 Technical,monospace}.reading-examples small{color:var(--o89-muted);font-size:13px;line-height:1.5}.reading-estimated strong{color:var(--o89-info)}.reading-stale strong{color:var(--o89-muted);border-bottom:1px dashed var(--o89-line-strong)}.reading-missing strong{color:var(--o89-faint);letter-spacing:.08em}.guide-status{margin:14px 0 0;display:grid}.guide-status>div{border-top:1px solid var(--o89-line);grid-template-columns:160px minmax(0,1fr);align-items:center;gap:16px;padding:12px 0;display:grid}.guide-status dt{display:flex}.guide-status dd{color:var(--o89-muted);margin:0;font-size:15px;line-height:1.55}.guide-renders{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.guide-renders .render-stage{min-height:300px}.guide-renders img{object-fit:contain;filter:drop-shadow(0 24px 30px #0009);width:100%;height:280px}.guide-buddy{align-items:center;gap:28px;display:flex}.guide-buddy img{flex:none;width:100px}.guide-buddy p{letter-spacing:-.02em;color:var(--o89-fg);font-size:clamp(20px,2vw,26px);font-weight:500;line-height:1.3}.guide-downloads{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin-top:8px;display:grid}.guide-downloads a{border-top:1px solid var(--o89-line);min-height:56px;color:var(--o89-fg);justify-content:space-between;align-items:center;gap:20px;font-size:15px;display:flex}.guide-downloads a svg{color:var(--o89-muted);transition:transform .3s var(--o89-ease);flex:none}.guide-downloads a:hover svg{color:var(--o89-fg);transform:translateY(2px)}.guide-note a{color:var(--o89-link);text-underline-offset:.22em;text-decoration:underline}@media (max-width:900px){.guide-layout{display:block}.guide-toc{border-bottom:1px solid var(--o89-line);flex-flow:wrap;gap:4px 20px;margin-bottom:48px;padding-bottom:16px;position:static}.guide-toc a{border:0;min-height:40px;padding:0}}@media (max-width:760px){.guide-two-columns,.guide-swatches,.guide-renders,.guide-downloads,.guide-frame-sample{grid-template-columns:minmax(0,1fr)}.reading-examples>div{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;margin:0 16px}.reading-examples small{grid-column:1/-1}.guide-status>div{grid-template-columns:minmax(0,1fr);gap:8px}.guide-buddy{gap:18px}.guide-buddy img{width:78px}.code-sample pre,.guide-snippet{font-size:12px}}.blog-index{padding:0 var(--site-gutter)}.blog-list article{border-top:1px solid var(--o89-line);grid-template-columns:150px minmax(0,1fr) auto;align-items:start;gap:12px clamp(24px,4vw,64px);padding-block:clamp(28px,3vw,40px);display:grid;position:relative}.blog-list article:last-child{border-bottom:1px solid var(--o89-line)}.blog-list article :is(h2,h3){letter-spacing:-.03em;max-width:28ch;font-size:clamp(26px,2.2vw,32px);line-height:1.1}.blog-list article :is(h2,h3) a:after{content:"";position:absolute;inset:0}.blog-list article p{max-width:62ch;color:var(--o89-muted);margin-top:12px}.blog-list time{grid-area:1/1;padding-top:.6em}.blog-list article>svg{color:var(--o89-muted);transition:transform .3s var(--o89-ease), color .2s;margin-top:.4em}.blog-list article:hover>svg{color:var(--o89-fg);transform:translate(4px)}.home-posts .blog-list{margin-top:clamp(40px,5vw,72px)}.home-posts .blog-list+.o89-text-link{margin-top:20px}.blog-empty{border-top:1px solid var(--o89-line);color:var(--o89-muted);padding-block:32px}.blog-post{width:min(100% - 2 * var(--o89-gutter), 720px);margin-inline:auto;padding:clamp(56px,7vw,104px) 0 0}.blog-post-body{line-height:1.7}.blog-post>header{border-bottom:1px solid var(--o89-line);margin-bottom:clamp(32px,4vw,48px);padding-bottom:clamp(32px,4vw,48px)}.blog-post h1{font-size:clamp(40px,4.4vw,64px);line-height:1.02}.blog-post>header>p{max-width:60ch;color:var(--o89-muted);margin-top:20px;font-size:clamp(17px,1.35vw,20px)}.blog-post>header>time{margin-top:16px;display:block}.blog-post-body>*+*{margin-top:1.1em}.blog-post-body h2{letter-spacing:-.03em;margin-top:2em;font-size:clamp(26px,2.2vw,32px);line-height:1.1}.blog-post-body h3{letter-spacing:-.02em;margin-top:1.7em;font-size:21px;line-height:1.2}.blog-post-body :is(h2,h3)+*{margin-top:.7em}.blog-post-body a{color:var(--o89-link);text-underline-offset:3px;text-decoration:underline}.blog-post-body a:hover{color:var(--o89-fg)}.blog-post-body strong{font-weight:600}.blog-post-body :is(ul,ol){margin-bottom:0;padding-left:1.3em}.blog-post-body li+li{margin-top:.35em}.blog-post-body li::marker{color:var(--o89-faint)}.blog-post-body blockquote{margin-inline:0;border-left:1px solid var(--o89-line-strong);color:var(--o89-muted);margin-bottom:0;padding-left:20px}.blog-post-body code{background:var(--o89-surface-raised);font-family:var(--font-data);font-variant-numeric:tabular-nums;border-radius:4px;padding:.1em .35em;font-size:.82em}.blog-post-body pre{border:1px solid var(--o89-line);corner-shape:bevel;background:var(--o89-surface);border-radius:10px;margin-bottom:0;padding:16px 20px;font-size:14px;line-height:1.6;overflow-x:auto}.blog-post-body pre code{font-size:inherit;background:0 0;padding:0}.blog-post-body img{border:1px solid var(--o89-line);corner-shape:bevel;border-radius:14px;max-width:100%;height:auto;display:block}.blog-post-body hr{border:0;border-top:1px solid var(--o89-line);margin-block:2.5em}.post-table{border:1px solid var(--o89-line);corner-shape:bevel;scrollbar-width:thin;border-radius:14px;overflow-x:auto}.post-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:560px;font-size:14px;line-height:1.5}.post-table :is(th,td){border-top:1px solid var(--o89-line);vertical-align:top;padding:12px 16px}.post-table :is(th,td):not([align]){text-align:left}.post-table thead th{background:var(--o89-surface);color:var(--o89-muted);white-space:nowrap;border-top:0;font-size:14px;font-weight:600}.post-table td{color:var(--o89-muted)}.post-table td:first-child{color:var(--o89-fg)}.blog-post>footer{border-top:1px solid var(--o89-line);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:clamp(48px,6vw,80px);padding-top:16px;display:flex}@media (max-width:760px){.blog-list article{grid-template-columns:minmax(0,1fr)}.blog-list time{grid-row:auto;padding-top:0}.blog-list article>svg{display:none}}.not-found{min-height:60vh;padding:clamp(80px, 12vw, 180px) var(--site-gutter) 0}.not-found h1{max-width:14ch;font-size:clamp(44px,5.6vw,84px);line-height:.98}.not-found p{max-width:48ch;color:var(--o89-muted);margin-top:24px;font-size:clamp(17px,1.35vw,20px)}@media (max-width:1100px){.source-project{grid-template-columns:minmax(170px,.8fr) minmax(0,1.5fr)}.source-project-meta{grid-column:2}.developer-resources{grid-template-columns:repeat(2,minmax(0,1fr))}.catalogue-rows article{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto}.catalogue-evidence{display:none}}@media (max-width:900px){.site-page-intro,.product-intro,.site-detail-hero,.site-story,.site-app-section,.hardware-open-section,.contact-layout,.contribution-note,.open-principles,.multi-site-note,.source-release-notes{grid-template-columns:minmax(0,1fr)}.product-intro,.product-hero-controller>.render-stage{min-height:0}.product-hero-controller img{height:min(80vw,420px)}.hardware-open-section .render-stage{order:2;min-height:0}.product-family-grid{grid-template-columns:minmax(0,1fr);gap:56px}.family-art{max-width:520px}.feature-rows article{grid-template-columns:minmax(0,1fr)}.site-equipment .o89-text-link{margin-left:0}.system-map-showcase{height:600px}}@media (max-width:760px){html{scroll-padding-top:80px}.site-page-intro{padding-top:48px}.page-intro-copy{padding-bottom:0}.system-map-showcase{border-radius:16px;height:560px}.site-cta .o89-plate{width:100%}.catalogue-summary{display:block}.catalogue-summary>strong{margin-bottom:16px;display:block}.catalogue-controls{grid-template-columns:1fr 1fr;gap:14px}.catalogue-controls>div:first-child{grid-column:1/-1}.catalogue-controls select{font-size:15px}.catalogue-rows article{grid-template-columns:minmax(0,1fr);gap:10px}.catalogue-rows article>div:nth-child(2){flex-wrap:wrap;justify-content:space-between;gap:4px 18px;display:flex}.catalogue-rows small{margin:0}.catalogue-rows article>a{justify-self:start;min-height:40px}.source-project{grid-template-columns:minmax(0,1fr);padding-block:28px}.source-project-meta{grid-column:auto}.developer-resources{grid-template-columns:minmax(0,1fr)}.developer-resources>a{min-height:0}.product-hero-offgrid>.buddy-app{min-height:660px}.site-app-visual{padding:0}.contact-form>.o89-plate{align-self:stretch}}@media (max-width:380px){.catalogue-controls{grid-template-columns:minmax(0,1fr)}}:root{--color-page:#07090c;--color-surface:#0d1116;--color-surface-raised:#12171e;--color-chrome-glass:#0a0d11cc;--color-chrome-hairline:#ffffff12;--color-line:#1e252e;--color-line-strong:#2b343f;--color-focus:#fff;--color-fg:#e7eaee;--color-muted:#9aa5b1;--color-faint:#707b87;--color-action:#2b4a97;--color-action-lit:#3f61b3;--color-link:#6279ad;--color-on-fill:#fff;--color-signal:#7f9ce0;--color-nominal:#2f9d64;--color-warning:#e9a13c;--color-nominal-deep:#168c54;--color-warning-deep:#b1721f;--color-alarm:#e05a3c;--color-alarm-deep:#a63b25;--color-info:#7fb0d4;--color-mtq-green:#04653a;--color-mtq-green-lit:#0a7d49;--color-mtq-blue:#2b4a97;--color-action-rim:#ffffffd9}@media (prefers-color-scheme:light){:root{--color-page:#fbfcfa;--color-surface:#f1f3f0;--color-surface-raised:#fff;--color-chrome-glass:#f6f8f5cc;--color-chrome-hairline:#07090c12;--color-line:#dfe3e6;--color-line-strong:#c4ccd2;--color-focus:#2b4a97;--color-fg:#11161a;--color-muted:#4b5761;--color-faint:#69747d;--color-action:#2b4a97;--color-action-lit:#3f61b3;--color-link:#2b4a97;--color-on-fill:#fff;--color-signal:#5771b2;--color-nominal:#4c7d5f;--color-warning:#9f6601;--color-nominal-deep:#4c7d5f;--color-warning-deep:#a26405;--color-alarm:#ca4628;--color-alarm-deep:#a63b25;--color-info:#487899}}:root[data-theme=light]{--color-page:#fbfcfa;--color-surface:#f1f3f0;--color-surface-raised:#fff;--color-chrome-glass:#f6f8f5cc;--color-chrome-hairline:#07090c12;--color-line:#dfe3e6;--color-line-strong:#c4ccd2;--color-focus:#2b4a97;--color-fg:#11161a;--color-muted:#4b5761;--color-faint:#69747d;--color-action:#2b4a97;--color-action-lit:#3f61b3;--color-link:#2b4a97;--color-on-fill:#fff;--color-signal:#5771b2;--color-nominal:#4c7d5f;--color-warning:#9f6601;--color-nominal-deep:#4c7d5f;--color-warning-deep:#a26405;--color-alarm:#ca4628;--color-alarm-deep:#a63b25;--color-info:#487899}:root[data-theme=dark]{--color-page:#07090c;--color-surface:#0d1116;--color-surface-raised:#12171e;--color-chrome-glass:#0a0d11cc;--color-chrome-hairline:#ffffff12;--color-line:#1e252e;--color-line-strong:#2b343f;--color-focus:#fff;--color-fg:#e7eaee;--color-muted:#9aa5b1;--color-faint:#707b87;--color-action:#2b4a97;--color-action-lit:#3f61b3;--color-link:#6279ad;--color-on-fill:#fff;--color-signal:#7f9ce0;--color-nominal:#2f9d64;--color-warning:#e9a13c;--color-nominal-deep:#168c54;--color-warning-deep:#b1721f;--color-alarm:#e05a3c;--color-alarm-deep:#a63b25;--color-info:#7fb0d4}.o89-counted{color:var(--color-fg)}.o89-estimated{color:var(--color-info)}.o89-stale{color:var(--color-muted);border-bottom:1px dashed var(--color-line-strong)}.o89-missing{color:var(--color-faint);letter-spacing:.08em}.o89-estimated:before{content:"≈ "}.o89-missing:after{content:"——"}:root{--o89-max:1320px;--o89-gutter:clamp(16px, 4vw, 56px);--o89-cut:10px;--o89-ease:cubic-bezier(.16, 1, .3, 1)}.o89-wrap{width:min(100% - 2 * var(--o89-gutter), var(--o89-max));margin-inline:auto}.o89-plate{--c:var(--o89-cut);isolation:isolate;cursor:pointer;white-space:nowrap;min-height:48px;clip-path:polygon(var(--c) 0, calc(100% - var(--c)) 0, 100% var(--c), 100% calc(100% - var(--c)), calc(100% - var(--c)) 100%, var(--c) 100%, 0 calc(100% - var(--c)), 0 var(--c));transition:background .22s var(--o89-ease);border:0;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.o89-plate:before{content:"";z-index:-1;clip-path:inherit;transition:background .22s var(--o89-ease);position:absolute;inset:1px}.o89-plate-action{background:var(--color-action-rim);color:var(--color-on-fill)}.o89-plate-action:before{background:var(--color-action)}.o89-plate-action:hover:before{background:var(--color-action-lit)}.o89-plate-ghost{background:var(--color-line-strong);color:var(--color-fg)}.o89-plate-ghost:before{background:var(--color-page)}.o89-plate-ghost:hover{background:var(--color-muted)}.o89-plate-ghost:is([aria-pressed=true],[aria-selected=true]){background:var(--color-fg)}.o89-plate-ghost:is([aria-pressed=true],[aria-selected=true]):before{background:var(--color-surface-raised)}.o89-plate-sm{--c:7px;min-height:40px;padding:0 16px;font-size:14px}.o89-plate:disabled{opacity:.45;cursor:not-allowed}@media (pointer:coarse){.o89-plate-sm{min-height:44px}}.o89-frame{border:1px solid var(--color-line-strong);corner-shape:bevel;background:var(--color-surface);border-radius:14px}.o89-text-link{min-height:44px;color:var(--color-fg);align-items:center;gap:8px;font-size:15px;font-weight:600;display:inline-flex}.o89-text-link svg{transition:transform .24s var(--o89-ease)}.o89-text-link:hover{color:var(--color-link)}.o89-text-link:hover svg{transform:translate(4px)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (prefers-reduced-motion:reduce){.o89-plate,.o89-plate:before,.o89-text-link svg{transition:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--o89-page:var(--color-page);--o89-surface:var(--color-surface);--o89-surface-raised:var(--color-surface-raised);--o89-line:var(--color-line);--o89-line-strong:var(--color-line-strong);--o89-focus:var(--color-focus);--o89-fg:var(--color-fg);--o89-muted:var(--color-muted);--o89-faint:var(--color-faint);--o89-action:var(--color-action);--o89-action-lit:var(--color-action-lit);--o89-link:var(--color-link);--o89-signal:var(--color-signal);--o89-on-fill:var(--color-on-fill);--o89-nominal:var(--color-nominal);--o89-warning:var(--color-warning);--o89-alarm:var(--color-alarm);--o89-info:var(--color-info);--font-text:Concept, "Helvetica Neue", Arial, sans-serif;--font-data:Technical, ui-monospace, "SF Mono", Menlo, monospace}html{background:var(--o89-page);scrollbar-color:var(--o89-line-strong) var(--o89-page)}body.concept{background:var(--o89-page);color:var(--o89-fg);font-family:var(--font-text);font-size:17px;line-height:1.55}::selection{background:var(--o89-action-lit);color:var(--o89-on-fill)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--o89-focus);outline-offset:3px}h1,h2,h3,h4{letter-spacing:-.035em;text-wrap:balance;font-weight:700;line-height:1}p,li,figcaption,blockquote{text-wrap:pretty}dd,.buddy-hero-question{text-wrap:balance}.skip-link{background:var(--o89-surface-raised);color:var(--o89-fg)}.micro{font-family:var(--font-data);color:var(--o89-faint);font-size:12px}.web-journal,.web-journal[data-active-site=mining],.web-journal[data-active-site=telecom]{--journal-paper:var(--o89-page);--journal-ink:var(--o89-fg);--journal-muted:var(--o89-muted);--journal-line:var(--o89-line-strong);--journal-field:var(--o89-surface);--journal-weight:700;background:var(--o89-page);color:var(--o89-fg)}.o89-pending{color:var(--o89-warning)}.o89-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.o89-nav{z-index:50;top:calc(env(safe-area-inset-top,0px) + 12px);width:min(100% - 2 * var(--o89-gutter) + 24px, calc(var(--o89-max) + 24px));background:var(--color-chrome-glass);border:1px solid var(--color-chrome-hairline);corner-shape:bevel;-webkit-backdrop-filter:blur(14px)saturate(1.2);border-radius:14px;align-items:center;gap:28px;margin:12px auto 0;padding:10px 10px 10px 20px;display:flex;position:sticky}.o89-nav-logo img{width:auto;height:22px;display:block}.o89-nav>nav{gap:22px;margin-right:auto;display:flex}.o89-nav>nav a{color:var(--color-muted);align-items:center;gap:5px;font-size:14px;font-weight:500;transition:color .2s;display:inline-flex;position:relative}.o89-nav>nav a:hover,.o89-nav>nav a[data-current],.o89-nav>nav a[aria-current=page]{color:var(--color-fg)}.o89-nav>nav a[data-current]:after,.o89-nav>nav a[aria-current=page]:after{content:"";background:var(--color-signal);height:1.5px;position:absolute;bottom:-7px;left:0;right:0}.o89-nav-github{width:40px;height:40px;color:var(--color-muted);border-radius:10px;place-items:center;display:grid}.o89-nav-github:hover{color:var(--color-fg);background:var(--color-surface-raised)}.o89-nav-github svg{width:20px;height:20px}.o89-footer{border-top:1px solid var(--color-line);padding-block:64px calc(64px + env(safe-area-inset-bottom,0px));color:var(--color-muted);margin-top:clamp(64px,8vw,120px);font-size:14px}.o89-footer-grid{grid-template-columns:1.3fr repeat(3,1fr);gap:40px 24px;display:grid}.o89-footer-brand{align-content:start;gap:16px;display:grid}.o89-footer-brand img{width:auto;height:28px;display:block}.o89-footer-brand p{max-width:36ch;margin:0}.o89-footer-status{align-items:flex-start;gap:10px;font-size:13px;display:flex}.o89-footer-status i{background:var(--o89-chrome-status,var(--color-muted));border-radius:50%;flex:none;width:7px;height:7px;margin-top:.55lh;translate:0 -50%}.o89-footer nav{align-content:start;gap:10px;display:grid}.o89-footer nav b{color:var(--color-fg);margin-bottom:4px;font-weight:600}.o89-footer nav a:hover{color:var(--color-fg)}@media (max-width:800px){.o89-footer-grid{grid-template-columns:1fr 1fr}.o89-footer-brand{grid-column:1/-1}}.o89-nav-menu>button{color:var(--o89-muted);align-items:center;gap:5px;font-size:14px;font-weight:500;transition:color .2s;display:inline-flex;position:relative}.o89-nav-menu>button:hover,.o89-nav-menu>button[data-current],.o89-nav-menu>button[aria-expanded=true]{color:var(--o89-fg)}.o89-nav-menu>button[data-current]:after{content:"";background:var(--o89-signal);height:1.5px;position:absolute;bottom:-7px;left:0;right:0}.o89-nav-menu{position:relative}.o89-nav-menu>button svg{transition:rotate .2s var(--o89-ease)}.o89-nav-menu>button[aria-expanded=true] svg{rotate:180deg}.o89-nav-panel{z-index:1;background:var(--o89-surface);border:1px solid var(--o89-line-strong);corner-shape:bevel;opacity:0;visibility:hidden;pointer-events:none;width:420px;transition:opacity .18s var(--o89-ease), translate .18s var(--o89-ease), visibility 0s .18s;border-radius:14px;gap:4px;padding:10px;display:grid;position:absolute;top:calc(100% + 14px);left:-14px;translate:0 -6px;box-shadow:0 24px 48px -20px #000000bf}.o89-nav-panel:before{content:"";position:absolute;inset:-14px 0 100%}.o89-nav-panel[data-open=true]{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s var(--o89-ease), translate .18s var(--o89-ease), visibility 0s;translate:0}.o89-nav-panel>a{corner-shape:bevel;transition:background .18s var(--o89-ease);border-radius:10px;grid-template-columns:42px 1fr;align-items:center;gap:14px;padding:10px;display:grid}.o89-nav-panel>a:hover{background:#ffffff0d}.o89-nav-panel>a strong{color:var(--o89-fg);font-size:15px;font-weight:600;display:block}.o89-nav-panel>a small{color:var(--o89-muted);margin-top:2px;font-size:13px;line-height:1.4;display:block}.o89-nav-panel-mark{background:var(--o89-surface-raised);border:1px solid var(--o89-line-strong);corner-shape:bevel;width:42px;height:42px;color:var(--o89-signal);transition:color .18s var(--o89-ease), border-color .18s var(--o89-ease);border-radius:9px;place-items:center;display:grid}.o89-nav-panel>a:hover .o89-nav-panel-mark{border-color:var(--o89-line-strong);color:var(--o89-fg)}.o89-nav-panel-foot{border-top:1px solid var(--o89-line);gap:4px;margin-top:6px;padding-top:10px;display:flex}.o89-nav-panel-foot a{corner-shape:bevel;color:var(--o89-muted);border-radius:8px;align-items:center;gap:7px;padding:8px 10px;font-size:13px;font-weight:600;display:inline-flex}.o89-nav-panel-foot a:hover{color:var(--o89-fg);background:#ffffff0d}.o89-nav-panel-foot svg{transition:translate .25s var(--o89-ease)}.o89-nav-panel-foot a:hover svg{translate:3px}@media (prefers-reduced-motion:reduce){.o89-nav-panel,.o89-nav-panel[data-open=true]{transition:opacity 10ms,visibility;translate:none}.o89-nav-menu>button svg,.o89-nav-panel-foot svg{transition:none}}.o89-nav .concept-menu{display:none}@media (max-width:900px){.o89-nav{gap:8px;padding-left:14px}.o89-nav>nav,.o89-nav-github,.o89-nav-cta{display:none}.o89-nav-logo{margin-right:auto}.o89-nav .concept-menu{display:block}.o89-nav .concept-menu summary{border:1px solid var(--o89-line-strong);corner-shape:bevel;border-radius:8px;align-items:center;gap:10px;min-height:40px;padding:0 12px;font-size:14px;list-style:none;display:flex}.o89-nav .concept-menu summary::-webkit-details-marker{display:none}.o89-nav .concept-menu nav{background:var(--o89-surface-raised);border:1px solid var(--o89-line-strong);corner-shape:bevel;border-radius:14px;flex-direction:column;padding:10px;display:flex;position:absolute;top:calc(100% + 8px);left:0;right:0}.o89-nav .concept-menu nav a{corner-shape:bevel;border-radius:8px;justify-content:space-between;align-items:center;min-height:48px;padding:0 12px;font-size:16px;display:flex}.o89-nav .concept-menu nav a[aria-current=page]{background:var(--o89-surface)}.o89-nav .concept-menu nav a.o89-nav-sub{border-left:1px solid var(--o89-line-strong);min-height:42px;color:var(--o89-muted);border-radius:0 8px 8px 0;margin-left:12px;padding-left:16px;font-size:14px}.o89-nav .concept-menu nav a.o89-nav-sub[aria-current=page]{color:var(--o89-fg)}}.o89-footer-status{--o89-chrome-status:var(--color-warning)}.home .mono{font-family:var(--font-data);letter-spacing:.01em;font-variant-numeric:tabular-nums;font-size:.82em}.home .section{padding-block:clamp(96px,13vw,190px)}.home .section+.section{padding-top:0}.home .lede{color:var(--o89-muted);max-width:60ch;font-size:clamp(17px,1.35vw,20px)}.home .h-xl{font-size:clamp(44px,6.4vw,104px)}.home .h-l{font-size:clamp(38px,4.9vw,78px)}.home h1,.home h2,.home h3,.home h4{margin:0;line-height:.98}.home p{margin:0}.home :is(.artifact,.explorer-stage,.port-panel,.node,.composer,.sketch,.app,.spec-group,.bench,.mcu-link,.on-wall,.table-scroll,.boundary,.pin,.seg,.seg button,.pick select,.panel-code,.panel-close,.waitlist input){corner-shape:bevel}.home :is(.artifact header,.panel-kind,.port-panel .spec dt,.spec-group .spec dt,.node span,.rule-facts dt,.reading .age,.app-top small,.bench-head span,.sketch-note,.explorer-hint,.on-wall b,.pin .n,.app-tabbar,.budget-fig .mono,.temps .mono){color:var(--o89-muted)}@property --gx{syntax:"<percentage>";inherits:false;initial-value:30%}@property --gy{syntax:"<percentage>";inherits:false;initial-value:30%}@property --hx{syntax:"<percentage>";inherits:false;initial-value:70%}@property --hy{syntax:"<percentage>";inherits:false;initial-value:70%}.home .traces{pointer-events:none;-webkit-mask:var(--mask) center / cover no-repeat;-webkit-mask:var(--mask) center / cover no-repeat;mask:var(--mask) center / cover no-repeat;background:radial-gradient(circle at var(--gx) var(--gy), #d6e2fff2 0, #7f9ce08c 5%, #3f61b300 18%), radial-gradient(circle at var(--hx) var(--hy), #d6e2ffcc 0, #7f9ce066 4%, #3f61b300 14%), #2b4a9733;animation:11s cubic-bezier(.45,0,.55,1) infinite alternate trace-a,7s cubic-bezier(.45,0,.55,1) infinite alternate trace-b;position:absolute;inset:0}@keyframes trace-a{0%{--gx:12%;--gy:18%}35%{--gx:64%;--gy:30%}70%{--gx:40%;--gy:72%}to{--gx:82%;--gy:88%}}@keyframes trace-b{0%{--hx:88%;--hy:12%}50%{--hx:28%;--hy:50%}to{--hx:60%;--hy:94%}}@media (prefers-reduced-motion:reduce){.home .traces{animation:none}}.home .artifact,.home .explorer-stage,.home .port-panel,.home .node,.home .composer,.home .sketch,.home .app,.home .spec-group,.home .bench,.home .mcu-link,.home .on-wall,.home .table-scroll,.home .boundary,.home .pin,.home .seg,.home .seg button,.home .pick select,.home .panel-code,.home .panel-close,.home .waitlist input{corner-shape:bevel}.home .hero{background:var(--o89-page);height:max(620px,100svh);position:relative;overflow:hidden}.home .hero video,.home .hero .poster{object-fit:cover;opacity:.86;width:100%;height:100%;position:absolute;inset:0}.home .hero:after{content:"";pointer-events:none;--copy:max(var(--o89-gutter), (100% - var(--o89-max)) / 2);background:linear-gradient(to top, var(--o89-page) 0%, #07090ce6 20%, #07090c8c 40%, transparent 62%), linear-gradient(to right, #07090cb3 0%, #07090c80 calc(var(--copy) + 420px), transparent calc(var(--copy) + 900px));position:absolute;inset:0}.home .hero-copy{z-index:3;position:absolute;bottom:clamp(36px,6vh,80px);left:0;right:0}.home .hero-copy .o89-wrap{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main side";align-items:end;gap:0 clamp(32px,5vw,96px);display:grid}.home .hero-main{grid-area:main;min-width:0}.home .hero-side{grid-area:side;justify-items:end;gap:22px;padding-bottom:6px;display:grid}.home .hero h1{text-wrap:balance;text-shadow:0 2px 28px #07090c8c;max-width:12ch;font-size:clamp(44px,5.4vw,96px);line-height:.96}.home .hero h1 span{display:inline}.home .hero h1 span+span{color:#aab4be}.home .hero .lede{color:#d3d9df;text-shadow:0 1px 16px #07090cb3;max-width:54ch;margin-top:24px;font-size:clamp(17px,1.25vw,20px);line-height:1.55}.home .hero-actions{flex-wrap:wrap;align-items:center;gap:12px 26px;display:flex}.home .status{color:var(--o89-muted);align-items:center;gap:10px;font-size:14px;display:inline-flex}.home .status b{color:var(--o89-fg);font-weight:600}.home .status i{background:var(--o89-warning);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #e9a13c24}@media (prefers-reduced-motion:no-preference){.home .hero-copy :is(.hero-main>*,.hero-side){animation:hero-rise .9s var(--o89-ease) both}.home .hero-copy .lede{animation-delay:.1s}.home .hero-copy .hero-side{animation-delay:.2s}}@keyframes hero-rise{0%{opacity:.35;transform:translateY(18px)}}@media (max-width:1100px){.home .hero-copy .o89-wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"main""side"}.home .hero-side{justify-items:start;gap:24px;margin-top:30px}}.home .film-toggle{z-index:4;right:max(var(--o89-gutter), (100% - var(--o89-max)) / 2);border:1px solid var(--o89-line-strong);cursor:pointer;background:#07090c80;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:100px}.home .film-toggle:hover{border-color:var(--o89-muted)}@media (max-width:900px){.home .hero video,.home .hero .poster{object-position:62% 50%}.home .hero:after{background:linear-gradient(to top, var(--o89-page) 0%, #07090ceb 38%, #07090cb3 56%, transparent 80%)}.home .film-toggle{top:84px;right:var(--o89-gutter)}}@media (max-width:600px){.home .hero h1{font-size:clamp(38px,11.6vw,56px)}}.home .statement{position:relative;overflow:hidden}.home .statement-field{z-index:0;aspect-ratio:4/5;opacity:.9;pointer-events:none;width:min(58%,760px);position:absolute;top:50%;right:-4%;transform:translateY(-50%)rotate(-8deg);-webkit-mask-image:radial-gradient(60% 55% at 55%,#000 30%,#0000 75%);mask-image:radial-gradient(60% 55% at 55%,#000 30%,#0000 75%)}.home .statement-field img{object-fit:cover;opacity:.55;width:100%;height:100%;position:absolute;inset:0}.home .statement-inner{position:relative}.home .statement-inner>:not(.statement-field){z-index:1;position:relative}.home .statement h2{gap:.04em;font-size:clamp(46px,8.2vw,138px);display:grid}.home .statement h2 span:nth-child(2){padding-left:1.6em}.home .statement h2 span:nth-child(3){color:var(--o89-faint);padding-left:.6em}.home .statement h2 span:nth-child(4){color:var(--o89-faint);padding-left:2.2em}.home .statement .lede{max-width:52ch;margin-top:clamp(40px,5vw,64px)}.home .bus-line{border-top:1px solid var(--o89-line);flex-wrap:wrap;gap:16px clamp(20px,2.6vw,40px);max-width:920px;margin-top:40px;padding-top:24px;display:flex}.home .bus-line div{gap:2px;display:grid}.home .bus-line b{letter-spacing:-.03em;font-size:clamp(24px,2.2vw,32px);font-weight:600}.home .bus-line span{color:var(--o89-faint);font-size:13px}.home .field-note{color:var(--o89-faint);margin-top:28px;font-size:13px}@media (max-width:900px){.home .statement h2 span{padding-left:0!important}.home .statement-field{opacity:.5;width:120vw;top:30%;right:-40vw}}.home .center-head{text-align:center;justify-items:center;gap:20px;display:grid}.home .audiences{grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);margin-top:clamp(48px,6vw,80px);display:grid}.home .audience{align-content:start;display:grid}.home .audience figure{background-image:radial-gradient(circle, var(--o89-line) 1.2px, transparent 1.6px);background-size:14px 14px;place-items:end center;height:clamp(260px,24vw,360px);margin:0 0 28px;display:grid;position:relative;-webkit-mask-image:radial-gradient(75% 80% at 50% 60%,#000 50%,#0000 100%);mask-image:radial-gradient(75% 80% at 50% 60%,#000 50%,#0000 100%)}.home .audience .mini{width:100%;height:100%;transition:transform 1s var(--o89-ease);display:block;overflow:visible}.home .audience:hover .mini{transform:translateY(-6px)}.home .audience .pulse{fill:none;stroke:#e8efff;stroke-width:9px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:11 89;stroke-dashoffset:100px;animation:3.2s linear infinite signal-flow}.home .audience .pulse.glow{stroke:#7f9ce080;stroke-width:26px;stroke-dasharray:15 85;stroke-dashoffset:102px}.home .audience:hover .pulse{animation-duration:1.6s}@keyframes signal-flow{to{stroke-dashoffset:0}}.home .audience .pulse.glow{animation-name:signal-flow-glow}@keyframes signal-flow-glow{0%{stroke-dashoffset:102px}to{stroke-dashoffset:2px}}@media (prefers-reduced-motion:reduce){.home .audience .pulse{opacity:0;animation:none}}.home .audience h3{letter-spacing:-.03em;font-size:clamp(26px,2.2vw,32px)}.home .audience p{color:var(--o89-muted);max-width:38ch;margin-top:12px;font-size:16px}.home .audience ul{border-top:1px solid var(--o89-line);color:var(--o89-muted);gap:8px;margin:20px 0 0;padding:16px 0 0;font-size:14px;list-style:none;display:grid}.home .audience li{gap:10px;display:flex}.home .audience li:before{content:"";background:var(--o89-signal);flex:none;width:5px;height:5px;margin-top:9px}@media (max-width:980px){.home .audiences{grid-template-columns:1fr;gap:56px}.home .audience figure{height:auto}.home .audience .mini{height:auto;max-height:300px}}.home .open{position:relative}.home .open-grid{grid-template-columns:repeat(12,1fr);align-items:start;gap:16px;display:grid}.home .open-copy{grid-column:1/span 6;position:sticky;top:120px}.home .open-copy .lede{margin-top:26px}.home .open-copy p+p{margin-top:16px}.home .artifacts{grid-column:8/span 5;gap:16px;display:grid}.home .artifact{background:var(--o89-surface);border:1px solid var(--o89-line);border-radius:14px;overflow:hidden}.home .artifact header{border-bottom:1px solid var(--o89-line);color:var(--o89-faint);flex-wrap:wrap;justify-content:space-between;gap:2px 12px;padding:12px 16px;font-size:13px;display:flex}.home .artifact header .mono{font-size:12px}.home .artifact header b{color:var(--o89-muted);font-weight:500}.home .artifact .body{padding:16px}.home .artifact pre{font-family:var(--font-data);color:var(--o89-muted);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.6}.home .artifact pre em{color:var(--o89-fg);font-style:normal}.home .artifact table{border-collapse:collapse;width:100%;font-family:var(--font-data);font-size:12.5px}.home .artifact td{border-top:1px solid var(--o89-line);color:var(--o89-muted);padding:7px 0}.home .artifact tr:first-child td{border-top:0}.home .artifact td:first-child{color:var(--o89-signal);width:64px}.home .artifact .issues{margin:0;padding:0;list-style:none;display:grid}.home .artifact .issues li{border-top:1px solid var(--o89-line);color:var(--o89-muted);grid-template-columns:44px 1fr;gap:8px;padding:9px 0;font-size:14px;display:grid}.home .artifact .issues li:first-child{border-top:0;padding-top:0}.home .artifact .issues .rule-id{color:var(--o89-signal);font-size:12.5px}.home .artifact .issues a{font-family:var(--font-data);color:var(--o89-warning);font-size:13px;text-decoration:none}.home .artifact img{width:100%}.home .budget p{color:var(--o89-muted);font-size:15px}.home .budget p b{color:var(--o89-fg);font-weight:600}.home .budget-fig{border-top:1px solid var(--o89-line);justify-content:space-between;align-items:baseline;margin-top:14px;padding-top:12px;display:flex}.home .budget-fig .mono{color:var(--o89-faint);font-size:12.5px}.home .budget-fig b{letter-spacing:-.02em;font-size:22px;font-weight:600}.home .gerber-glow{position:relative}.home .gerber-glow .traces{mix-blend-mode:screen}@media (max-width:980px){.home .open-copy,.home .artifacts{grid-column:1/-1;position:static}}.home .device-head{grid-template-columns:1fr 1fr;align-items:end;gap:32px 64px;display:grid}.home .explorer{margin-top:clamp(40px,5vw,64px);position:relative}.home .explorer-stage{background:radial-gradient(60% 70% at 50% 45%, #1a212a 0%, var(--o89-surface) 55%, var(--o89-page) 100%);border:1px solid var(--o89-line);border-radius:24px;min-height:clamp(420px,56vw,720px);position:relative;overflow:hidden}.home .explorer-visual{transition:transform .7s var(--o89-ease), opacity .5s var(--o89-ease);place-items:center;display:grid;position:absolute;inset:0}.home .explorer-visual svg{width:100%;height:100%}.home .explorer-visual{transform-origin:0%}.home .explorer[data-active] .explorer-visual{transform:translate(2%)scale(.58)}.home .port{transition:opacity .35s var(--o89-ease)}.home .explorer[data-active] .port:not(.is-active){opacity:.32}.home .explorer[data-active] .port:not(.is-active):hover{opacity:.8}.home .port polyline{fill:none;stroke:var(--o89-line-strong);stroke-width:2px;transition:stroke .25s}.home .port .node{fill:var(--o89-page);stroke:var(--o89-muted);stroke-width:3px;transition:fill .25s,stroke .25s}.home .port .pulse{fill:none;stroke:var(--o89-signal);stroke-width:2px;opacity:0}.home .port text{fill:var(--o89-fg);font:600 30px var(--font-text);letter-spacing:-.01em}.home .port text .role{fill:var(--o89-faint);font-weight:500}.home .port .hit{fill:#0000}.home .port{cursor:pointer;outline:none}.home .port:is(:hover,.home :focus-visible,.home .is-active) polyline:not(.hit){stroke:var(--o89-signal)}.home .port:is(:hover,.home :focus-visible,.home .is-active) .node{fill:var(--o89-signal);stroke:var(--o89-signal)}.home .port:focus-visible text{text-decoration:underline}.home .port.is-active .pulse{animation:pulse 1.6s var(--o89-ease) infinite}@keyframes pulse{0%{opacity:.9;r:8}to{opacity:0;r:34}}.home .port-panel{border:1px solid var(--o89-line-strong);opacity:0;pointer-events:none;width:min(480px,40%);max-height:calc(100% - 32px);transform:translateY(-50%) translateX(var(--from,24px));transition:opacity .35s var(--o89-ease), transform .55s var(--o89-ease);scrollbar-width:thin;background:#0d1116f5;border-radius:16px;padding:24px;position:absolute;top:50%;overflow:auto}.home .explorer .port-panel{--from:28px;right:24px}.home .explorer[data-active] .port-panel{opacity:1;pointer-events:auto;transform:translateY(-50%)translate(0)}.home .panel-top{z-index:2;border-bottom:1px solid var(--o89-line);background:#0d1116f7;justify-content:space-between;align-items:center;gap:12px;margin:-24px -24px 0;padding:18px 24px 14px;display:flex;position:sticky;top:-24px}.home .panel-kind{color:var(--o89-faint);font-size:13px}.home .panel-code{font-family:var(--font-data);color:var(--o89-signal);border:1px solid var(--o89-line-strong);border-radius:6px;padding:3px 8px;font-size:12px}.home .panel-close{border:1px solid var(--o89-line-strong);cursor:pointer;background:0 0;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.home .port-panel h3{font-family:var(--font-text);letter-spacing:-.03em;margin:14px 0 10px;font-size:28px;line-height:1.05}.home .port-panel .summary{color:var(--o89-muted);font-size:15px}.home .on-wall{background:var(--o89-surface-raised);border-radius:10px;gap:2px;margin-top:16px;padding:12px 14px;font-size:14px;display:grid}.home .on-wall b{color:var(--o89-faint);font-size:13px;font-weight:600}.home .panel-block{margin-top:20px}.home .panel-block>.panel-kind{margin-bottom:8px;display:block}.home .pins{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px;display:grid}.home .pin{background:var(--o89-surface-raised);border-radius:8px;gap:4px;padding:8px;display:grid}.home .pin .n{font-family:var(--font-data);color:var(--o89-faint);font-size:11px}.home .pin .name{font-family:var(--font-data);font-size:13px}.home .pin .wire{border-radius:2px;height:4px}.home .port-panel dl{margin:0;display:grid}.home .spec{border-top:1px solid var(--o89-line);grid-template-columns:38% 1fr;gap:12px;padding:8px 0;font-size:14px;display:grid}.home .spec dt{color:var(--o89-faint)}.home .spec dd{margin:0}.home .chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.home .chips li{border:1px solid var(--o89-line-strong);color:var(--o89-muted);border-radius:999px;padding:4px 10px;font-size:13px}.home .limits,.home .notes{color:var(--o89-muted);gap:6px;margin:0;padding-left:18px;font-size:14px;display:grid}.home .notes a{font-family:var(--font-data);color:var(--o89-warning);text-decoration:none}.home .panel-stage{border-top:1px solid var(--o89-line);color:var(--o89-warning);margin-top:20px;padding-top:14px;font-size:13px}.home .explorer-hint{color:var(--o89-faint);font-size:13px;transition:opacity .3s;position:absolute;bottom:16px;left:20px}.home .explorer[data-active] .explorer-hint{opacity:0}@media (max-width:900px){.home .device-head{grid-template-columns:1fr}.home .explorer[data-side] .explorer-visual{transform:none}.home .port-panel{z-index:60;width:auto;max-height:76vh;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;position:fixed;inset:auto 0 0;transform:translateY(100%)}.home .explorer[data-active] .port-panel{transform:translateY(0)}.home .port text,.home .port polyline:not(.hit){display:none}.home .port .node{r:12;stroke-width:4px}.home .explorer-stage{min-height:300px}.home .explorer-visual svg{transform:scale(1.35)}.home .explorer-hint{display:none}.home .port-list{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}}@media (min-width:901px){.home .port-list{display:none}}.home .port-list button{font-family:var(--font-data);border:1px solid var(--o89-line-strong);background:var(--o89-surface);color:var(--o89-muted);cursor:pointer;border-radius:999px;padding:8px 12px;font-size:12.5px}.home .port-list button[aria-pressed=true]{color:var(--o89-fg);border-color:var(--o89-signal)}.home .mcu{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start;gap:clamp(32px,6vw,96px);display:grid}.home .mcu-board{position:sticky;top:96px}.home .chip-stage{background-image:radial-gradient(circle, var(--o89-line-strong) 1.2px, transparent 1.6px);background-size:14px 14px;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,40px);padding:clamp(24px,4vw,56px) clamp(8px,2vw,24px);display:grid;position:relative;-webkit-mask-image:radial-gradient(75% 70%,#000 45%,#0000 100%);mask-image:radial-gradient(75% 70%,#000 45%,#0000 100%)}.home .chip-card{cursor:pointer;opacity:.5;filter:saturate(.6);transition:opacity .5s var(--o89-ease), filter .5s var(--o89-ease), transform .6s var(--o89-ease);background:0 0;border:0;justify-items:center;gap:14px;padding:3% 3% 0;display:grid;position:relative}.home .chip-card:hover{opacity:.75}.home .chip-card[aria-pressed=true]{opacity:1;filter:none;transform:translateY(-6px)}.home .chip-card img{filter:drop-shadow(0 24px 30px #000000b3);width:100%;height:auto}.home .chip-card .brackets{width:104%;height:88%;position:absolute;top:-2%;left:-2%;overflow:visible}.home .chip-card .brackets path{fill:none;stroke:var(--o89-line-strong);stroke-width:1.5px;vector-effect:non-scaling-stroke;transition:stroke .4s var(--o89-ease)}.home .chip-card[aria-pressed=true] .brackets path{stroke:var(--o89-signal);filter:drop-shadow(0 0 6px #7f9ce099)}.home .chip-name{color:var(--o89-fg);align-items:baseline;gap:8px;font-size:15px;font-weight:600;display:inline-flex}.home .chip-name .mono{color:var(--o89-signal);font-weight:400}.home .chip-link{color:var(--o89-faint);grid-column:1/-1;justify-content:center;align-items:center;gap:12px;margin:8px 0 0;font-size:13px;display:flex}.home .chip-link span{border-top:1px dashed var(--o89-line-strong);flex:1;max-width:120px}.home .mcu-copy .lede{margin-top:24px}.home .mcu-tabs{flex-wrap:wrap;gap:8px;margin-top:32px;display:flex}.home .mcu-tabs .plate{font-family:var(--font-data);font-size:14px;font-weight:400}.home .mcu-detail{margin-top:28px}.home .mcu-detail[hidden]{display:none}.home .mcu-role{letter-spacing:-.03em;font-size:clamp(24px,2.3vw,32px);font-weight:600;line-height:1.15}.home .mcu-core{color:var(--o89-faint);margin-top:10px;font-size:14px}.home .duties{margin:24px 0 0;padding:0;list-style:none;display:grid}.home .duties li{border-top:1px solid var(--o89-line);color:var(--o89-muted);grid-template-columns:64px 1fr;gap:16px;padding:14px 0;font-size:15px;display:grid}.home .duties li .mono{color:var(--o89-signal);padding-top:2px}.home .duties li b{color:var(--o89-fg);font-weight:600}.home .mcu-link{background:var(--o89-surface);border:1px solid var(--o89-line);color:var(--o89-muted);border-radius:14px;margin-top:28px;padding:18px 20px;font-size:15px}.home .mcu-link b{color:var(--o89-fg);font-weight:600}@media (max-width:980px){.home .mcu{grid-template-columns:1fr}.home .mcu-board{position:static}}.home .connect-tabs{flex-wrap:wrap;gap:8px;margin-top:36px;display:flex}.home .connect-stage{width:min(100% - 2 * var(--o89-gutter), var(--o89-max));align-items:center;min-height:clamp(560px,46vw,720px);margin:clamp(24px,4vw,56px) auto 0;display:flex;position:relative}.home .connect-grid{z-index:2;width:auto;margin:0;padding:0;position:relative}.home .connect-copy{width:min(100%,540px)}.home .connect-copy h3{font-size:clamp(38px,4.4vw,68px)}.home .connect-copy>p{color:var(--o89-muted);max-width:42ch;margin-top:18px;font-size:18px}.home .connect-render{z-index:1;pointer-events:none;margin:0;position:absolute;top:50%;left:34%;right:max(-8vw,-180px);transform:translateY(-50%)}.home .connect-render:before{content:"";filter:blur(10px);z-index:-1;background:radial-gradient(closest-side,#2b4a9759,#0000);position:absolute;inset:10% 5% 5% 15%}.home .connect-render img{width:100%;height:auto;transition:opacity .6s var(--o89-ease), transform 1.2s var(--o89-ease);-webkit-mask-composite:source-in;-webkit-mask-image:radial-gradient(62% 58% at 58%,#000 42%,#0000 96%),linear-gradient(#000 64%,#0000 94%);mask-image:radial-gradient(62% 58% at 58%,#000 42%,#0000 96%),linear-gradient(#000 64%,#0000 94%);-webkit-mask-composite:source-in;mask-composite:intersect}.home .connect-render img.swap{opacity:0;transform:translate(24px)scale(.99)}.home .connect-render figcaption{font-family:var(--font-data);color:var(--o89-muted);align-items:center;gap:10px;font-size:13px;display:flex;position:absolute;bottom:6%;right:12%}.home .connect-render figcaption:before{content:"";background:var(--o89-line-strong);width:36px;height:1px}.home .big{letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:clamp(64px,7.4vw,116px);font-weight:600;line-height:.9}.home .big small{letter-spacing:-.01em;color:var(--o89-muted);margin-left:.3em;font-size:.32em;font-weight:500}.home .inst{margin-top:36px}.home .seg{background:var(--o89-surface);border:1px solid var(--o89-line-strong);border-radius:12px;padding:4px;display:inline-flex}.home .seg button{color:var(--o89-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:500}.home .seg button[aria-pressed=true]{background:var(--o89-surface-raised);color:var(--o89-fg);box-shadow:inset 0 0 0 1px var(--o89-line-strong)}.home .inst-row{flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:22px;display:flex}.home .inst-note{color:var(--o89-faint);max-width:48ch;margin-top:18px;font-size:13px}.home .versus{gap:12px;max-width:460px;margin-top:26px;display:grid}.home .versus div{color:var(--o89-muted);grid-template-columns:1fr auto;gap:6px 12px;font-size:14px;display:grid}.home .versus i{background:var(--o89-line);grid-column:1/-1;height:3px;position:relative}.home .versus i:after{content:"";width:var(--w);background:var(--c,var(--o89-signal));transition:width .8s var(--o89-ease);box-shadow:0 0 12px var(--c,#7f9ce0b3);position:absolute;inset:0 auto 0 0}.home .versus .mono{color:var(--o89-fg)}.home .state{align-items:center;gap:.25em;display:flex}.home .state i{background:var(--o89-nominal);border-radius:50%;width:.28em;height:.28em;transition:background .3s,box-shadow .3s;box-shadow:0 0 0 .1em #2f9d642e,0 0 30px #2f9d6480}.home .state.open i{background:var(--o89-warning);box-shadow:0 0 0 .1em #e9a13c2e,0 0 30px #e9a13c80}.home .wd-meter{max-width:460px;margin-top:22px}.home .wd-meter .track{background:var(--o89-line);height:4px}.home .wd-meter .track i{background:var(--o89-signal);transform-origin:0;height:100%;display:block;box-shadow:0 0 14px #7f9ce0b3}.home .wd-meter .labels{font-family:var(--font-data);color:var(--o89-muted);justify-content:space-between;margin-top:10px;font-size:13px;display:flex}.home .sig{align-items:center;gap:8px;display:inline-flex}.home .sig i{background:var(--o89-line-strong);border-radius:50%;width:9px;height:9px;transition:background .12s,box-shadow .12s}.home .sig i.on{background:var(--o89-signal);box-shadow:0 0 12px #7f9ce0e6}.home .frames{font-family:var(--font-data);gap:14px;min-height:170px;margin-top:30px;font-size:15px;display:grid}.home .frames div{color:var(--o89-muted);animation:frame-in .6s var(--o89-ease);grid-template-columns:20px 1fr;gap:10px;display:grid}.home .frames div:first-child{color:var(--o89-fg)}.home .frames div:first-child .dir{text-shadow:0 0 12px #7f9ce0e6}.home .frames .dir{color:var(--o89-signal)}.home .frames .meaning{font-family:var(--font-text);color:var(--o89-faint);margin-top:2px;font-size:14px;display:block}@keyframes frame-in{0%{opacity:0;transform:translateY(-8px)}}.home .temps{max-width:480px;margin-top:30px;display:grid}.home .temps div{border-top:1px solid var(--o89-line);grid-template-columns:1fr auto;align-items:baseline;gap:2px 16px;padding:14px 0;display:grid}.home .temps div:first-child{border-top:0}.home .temps b{letter-spacing:-.03em;font-variant-numeric:tabular-nums;grid-area:1/2/span 2;align-self:center;font-size:34px;font-weight:600}.home .temps span{font-size:16px}.home .temps .mono{color:var(--o89-faint);font-size:12px}.home .decode{grid-template-columns:repeat(3,auto);justify-content:start;gap:8px 36px;margin-top:30px;display:grid}.home .decode b{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:40px;font-weight:600;display:block}.home .decode span{font-family:var(--font-data);color:var(--o89-faint);font-size:12.5px}@media (max-width:980px){.home .connect-stage{min-height:0;display:block}.home .connect-render{width:100%;margin-top:8px;position:relative;top:auto;left:auto;right:auto;transform:none}.home .connect-render img{-webkit-mask-image:linear-gradient(#000 68%,#0000 96%);mask-image:linear-gradient(#000 68%,#0000 96%)}.home .connect-render figcaption{bottom:0;right:16px}.home .decode{grid-template-columns:repeat(2,auto)}}.home .integrate-head{grid-template-columns:1fr 1fr;align-items:end;gap:24px 64px;display:grid}.home .hub{grid-template-columns:minmax(0,.9fr) minmax(260px,1.2fr) minmax(0,.9fr);align-items:center;gap:24px;margin-top:clamp(40px,6vw,80px);display:grid;position:relative}.home .hub-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.home .hub-lines path{fill:none;stroke:var(--o89-line-strong);stroke-width:1px}.home .hub-lines path.pulse{stroke:var(--o89-signal);stroke-width:1.5px;stroke-dasharray:10 400;filter:drop-shadow(0 0 4px #7f9ce0e6);animation:3.2s linear infinite pulse-run}.home .hub-lines path.pulse.planned{stroke:#e9a13ccc;filter:drop-shadow(0 0 4px #e9a13c99)}@keyframes pulse-run{0%{stroke-dashoffset:410px}to{stroke-dashoffset:0}}.home .hub-side{gap:16px;margin:0;padding:0;list-style:none;display:grid;position:relative}.home .node{background:var(--o89-surface);border:1px solid var(--o89-line-strong);border-radius:14px;gap:4px;padding:16px 18px;display:grid;position:relative}.home .node b{letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex}.home .node b svg{width:20px;height:20px;color:var(--o89-muted);flex:none}.home .node[data-status=planned] b svg{opacity:.5}.home .node span{color:var(--o89-muted);font-size:14px}.home .node span.mono{font-size:12.5px}.home .node em{border:1px solid;border-radius:999px;justify-self:start;margin-top:6px;padding:2px 8px;font-size:12px;font-style:normal}.home .node[data-status=planned] em{color:var(--o89-warning);border-style:dashed;border-color:#e9a13c73}.home .node[data-status=specified] em{color:var(--o89-signal);border-color:#7f9ce073}.home .node[data-status=published] em{color:var(--o89-fg);border-color:var(--o89-line-strong)}.home .hub-core{justify-items:center;gap:12px;margin:0;display:grid;position:relative}.home .hub-core:before{content:"";filter:blur(8px);background:radial-gradient(closest-side,#2b4a9766,#0000);position:absolute;inset:12% 8%}.home .hub-core img{filter:drop-shadow(0 40px 60px #000c);width:min(100%,420px);position:relative}.home .hub-core figcaption{color:var(--o89-faint);text-align:center;font-size:13px;position:relative}.home .hub-core figcaption .mono{color:var(--o89-signal)}.home .automate{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:16px;margin-top:clamp(48px,7vw,96px);display:grid}.home .composer,.home .sketch{background:var(--o89-surface);border:1px solid var(--o89-line);border-radius:20px;margin:0;padding:clamp(22px,3vw,36px)}.home .sentence{letter-spacing:-.02em;color:var(--o89-muted);margin-top:0;font-size:clamp(24px,2.4vw,34px);font-weight:500;line-height:1.5}.home .sentence .rule-cond{color:var(--o89-fg);white-space:nowrap}.home .pick{display:inline-block;position:relative}.home .pick select{field-sizing:content;appearance:none;font:inherit;color:var(--o89-fg);background:var(--o89-surface-raised);border:1px solid var(--o89-line-strong);cursor:pointer;border-radius:10px;max-width:100%;padding:0 34px 2px 12px;line-height:1.3}.home .pick:after{content:"";border-right:1.5px solid var(--o89-muted);border-bottom:1.5px solid var(--o89-muted);pointer-events:none;width:7px;height:7px;position:absolute;top:50%;right:13px;transform:translateY(-70%)rotate(45deg)}.home .pick select:hover{border-color:var(--o89-muted)}.home .pick select:focus-visible{outline-offset:2px;outline:2px solid #fff}.home .sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.home .rule-facts{border-top:1px solid var(--o89-line);grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0 0;padding-top:22px;display:grid}.home .rule-facts div{gap:4px;display:grid}.home .rule-facts dt{color:var(--o89-faint);font-size:13px}.home .rule-facts dd{margin:0;font-size:16px;font-weight:600}.home .rule-facts dd.yes{color:var(--o89-fg)}.home .rule-facts dd.planned{color:var(--o89-warning)}.home .rule-facts .wide{grid-column:1/-1}.home .rule-facts .wide dd{color:var(--o89-muted);font-size:14px;font-weight:400}.home .sketch figcaption{color:var(--o89-faint);justify-content:space-between;font-size:13px;display:flex}.home .sketch pre{font-family:var(--font-data);color:#c9d1da;margin:0;font-size:13.5px;line-height:1.7;overflow-x:auto}.home .sketch .k{color:#9fb6ff}.home .sketch .str{color:#8fd1a8}.home .sketch .c{color:var(--o89-faint)}.home .sketch-note .mono,.home .sketch figcaption .mono,.home .hub-core figcaption .mono{font-size:12px}.home .sketch-note{border-top:1px solid var(--o89-line);color:var(--o89-faint);margin-top:16px;padding-top:14px;font-size:13px}@media (max-width:980px){.home .integrate-head,.home .automate,.home .hub{grid-template-columns:1fr}.home .hub-core{order:-1}.home .hub-lines{display:none}.home .hub-side{grid-template-columns:1fr 1fr;gap:10px}.home .hub-side>:last-child:nth-child(odd){grid-column:1/-1}.home .node{padding:14px}.home .node b{gap:8px;font-size:16px}.home .node b svg{width:18px;height:18px}.home .node span{font-size:13px}.home .rule-facts{grid-template-columns:1fr 1fr}}.home .automate>*{min-width:0}@media (max-width:600px){.home .sentence{font-size:22px}.home .sketch pre{font-size:12px}.home .sentence .rule-cond{white-space:normal}}.home .compare-head{flex-wrap:wrap;align-items:end;gap:16px 40px;display:flex}.home .compare-head .lede{max-width:60ch;font-size:16px}.home .table-scroll{border:1px solid var(--o89-line);scrollbar-width:thin;border-radius:16px;margin-top:44px;overflow-x:auto}.home .compare{border-collapse:collapse;width:100%;min-width:920px;font-size:14.5px}.home .compare th,.home .compare td{text-align:left;vertical-align:top;border-top:1px solid var(--o89-line);padding:16px 18px}.home .compare thead th{background:var(--o89-surface);border-top:0;font-size:15px;font-weight:600}.home .compare thead th.us{background:var(--o89-action);color:#fff}.home .compare tbody th{color:var(--o89-muted);background:var(--o89-surface);width:17%;font-weight:500;position:sticky;left:0}.home .compare td{color:var(--o89-muted);width:20.75%}.home .compare td.us{color:var(--o89-fg);background:#2b4a9724}.home .compare .mark{align-items:flex-start;gap:8px;display:inline-flex}.home .compare .mark svg{flex:none;margin-top:1px}.home .compare .note{margin-top:4px;display:block}.home .compare tbody tr.group th{width:auto;color:var(--o89-fg);letter-spacing:-.01em;background:0 0;border-top:0;padding:30px 18px 12px;font-size:17px;font-weight:600;position:static}.home .compare tbody:first-of-type tr.group th{padding-top:22px}.home .compare tbody tr.group+tr>*{border-top-color:var(--o89-line-strong)}.home .compare-notes{color:var(--o89-faint);gap:6px;max-width:110ch;margin-top:18px;font-size:13px;display:grid}.home .compare-notes a{color:var(--o89-muted)}.home .app{background:radial-gradient(90% 120% at 0% 0%, #2b4a976b, #2b4a9700 60%), var(--o89-surface);border:1px solid var(--o89-line);border-radius:28px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(32px,6vw,96px);padding:clamp(28px,5vw,72px) clamp(28px,5vw,72px) calc(clamp(28px,5vw,72px) + 28px);display:grid;position:relative}.home .phone{aspect-ratio:9/19;background:#1b2027;border-radius:48px;width:min(100%,360px);margin-inline:auto;padding:12px;position:relative;box-shadow:inset 0 0 0 1px #2e353e,0 50px 90px -30px #000000e6}.home .screen{background:#07090c;border-radius:38px;flex-direction:column;height:100%;font-size:13px;display:flex;position:relative;overflow:hidden}.home .screen .notch{background:#000;border-radius:20px;flex:none;width:110px;height:30px;margin:10px auto 0}.home .app-top{justify-content:space-between;align-items:end;padding:16px 18px 8px;display:flex}.home .app-top small{color:var(--o89-faint);font-size:11px;display:block}.home .app-top b{letter-spacing:-.02em;font-size:19px}.home .app-top .sync{color:var(--o89-nominal);align-items:center;gap:6px;font-size:11px;display:inline-flex}.home .app-top .sync:before{content:"";background:var(--o89-nominal);border-radius:50%;width:6px;height:6px}.home .readings{gap:8px;padding:8px 12px;display:grid;overflow:hidden}.home .reading{background:var(--o89-surface-raised);border:1px solid #0000;border-radius:14px;grid-template-columns:1fr auto;gap:2px 8px;padding:12px 14px;display:grid}.home .reading .what{color:var(--o89-muted);font-size:12px}.home .reading .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.home .reading .age{text-align:right;font-family:var(--font-data);color:var(--o89-faint);grid-area:1/2/span 2;align-self:center;font-size:11px}.home .reading.stale{border:1px dashed var(--o89-line-strong);background:0 0}.home .reading.stale .value{color:var(--o89-muted)}.home .reading.missing{border:1px solid var(--o89-line);background:0 0}.home .reading.missing .value{color:var(--o89-faint);padding-top:4px;font-size:15px;font-weight:500}.home .rule{color:#cfd7ea;background:#2b4a9740;border:1px solid #7f9ce059;border-radius:14px;margin:4px 12px 0;padding:12px 14px;font-size:12px}.home .rule b{color:#fff;margin-bottom:2px;font-size:13px;display:block}.home .app-tabbar{border-top:1px solid var(--o89-line);color:var(--o89-faint);justify-content:space-around;margin-top:auto;padding:12px 16px 22px;font-size:11px;display:flex}.home .app-tabbar span{justify-items:center;gap:4px;display:grid}.home .app-tabbar span.on{color:var(--o89-fg)}.home .sample-tag{text-align:center;color:var(--o89-faint);white-space:nowrap;font-size:13px;position:absolute;bottom:-34px;left:0;right:0}.home .app-copy .lede{margin-top:24px}.home .app-points{grid-template-columns:1fr 1fr;gap:24px 32px;margin:32px 0 0;padding:0;list-style:none;display:grid}.home .app-points b{margin-bottom:4px;font-weight:600;display:block}.home .app-points li{color:var(--o89-muted);border-top:1px solid var(--o89-line-strong);padding-top:16px;font-size:15px}.home .app-status{color:var(--o89-warning);margin-top:28px;font-size:14px}@media (max-width:980px){.home .app{grid-template-columns:1fr;padding-bottom:72px}.home .app-copy{order:-1}.home .app-points{grid-template-columns:1fr}}.home .buddy{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(32px,6vw,96px);display:grid}.home .buddy-stage{justify-content:flex-end;align-items:center;min-height:620px;display:flex;position:relative}.home .buddy-portrait{filter:drop-shadow(0 30px 40px #0009);width:58%;position:absolute;top:50%;left:-8%;transform:translateY(-50%);-webkit-mask-image:radial-gradient(closest-side,#000 72%,#0000 100%);mask-image:radial-gradient(closest-side,#000 72%,#0000 100%)}.home .chat{gap:12px;width:min(64%,440px);display:grid;position:relative}.home .bubble{border-radius:16px;max-width:92%;padding:14px 16px;font-size:15px;line-height:1.5}.home .bubble.you{background:var(--o89-action);color:#fff;border-bottom-right-radius:4px;justify-self:end}.home .bubble.buddy-says{background:var(--o89-surface-raised);border:1px solid var(--o89-line-strong);color:#d5dbe1;border-bottom-left-radius:4px}.home .bubble .src{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.home .bubble .src span{font-family:var(--font-data);color:var(--o89-muted);border:1px solid var(--o89-line-strong);border-radius:6px;padding:2px 7px;font-size:11.5px}.home .bubble .src span.old{color:var(--o89-warning);border-color:#e9a13c66}.home .buddy-copy .lede{margin-top:24px}.home .buddy-copy .boundary{border:1px solid var(--o89-line-strong);color:var(--o89-muted);border-radius:14px;gap:14px;margin-top:28px;padding:18px 20px;font-size:15px;display:flex}.home .buddy-copy .boundary b{color:var(--o89-fg)}.home .buddy-copy .text-link{margin-top:28px}@media (max-width:980px){.home .buddy{grid-template-columns:1fr}.home .buddy-copy{order:-1}.home .buddy-stage{min-height:0;padding-top:200px;display:block}.home .buddy-portrait{width:240px;top:0;left:-20px;transform:none}.home .chat{width:100%}}.home .spec-grid{columns:3 340px;column-gap:16px;margin-top:clamp(40px,5vw,64px)}.home .spec-group{break-inside:avoid;background:var(--o89-surface);border:1px solid var(--o89-line);border-radius:16px;margin-bottom:16px;padding:22px}.home .spec-group h3{font-family:var(--font-text);letter-spacing:-.02em;align-items:center;gap:12px;font-size:20px;line-height:1.2;display:flex}.home .spec-group h3 svg{color:var(--o89-signal);flex:none}.home .spec-group dl{margin:16px 0 0;display:grid}.home .spec-group .spec{grid-template-columns:40% 1fr;font-size:14px}.home .spec-group .spec dd .mono{color:var(--o89-muted)}.home .spec-foot{color:var(--o89-faint);margin-top:12px;font-size:14px}.home .bench{border:1px solid var(--o89-line-strong);background:linear-gradient(90deg, #2f9d6414, transparent 40%), var(--o89-surface);border-radius:16px;margin-top:32px;padding:22px 24px}.home .bench-head{flex-wrap:wrap;justify-content:space-between;gap:8px 24px;display:flex}.home .bench-head b{letter-spacing:-.02em;font-size:18px;font-weight:600}.home .bench-head span{color:var(--o89-faint);font-size:13px}.home .bench-list{grid-template-columns:repeat(3,1fr);gap:14px 24px;margin:18px 0 0;padding:0;list-style:none;display:grid}.home .bench-list li{color:var(--o89-muted);grid-template-columns:18px 1fr;gap:10px;font-size:14px;display:grid}.home .bench-list li b{color:var(--o89-fg);font-weight:600;display:block}.home .bench-list i{border:1.5px dashed var(--o89-warning);border-radius:50%;width:14px;height:14px;margin-top:3px}.home .bench-list li.done i{background:var(--o89-nominal);border:0;box-shadow:0 0 0 4px #2f9d6429}@media (max-width:900px){.home .bench-list{grid-template-columns:1fr}}.home .close{text-align:center;position:relative;overflow:hidden}.home .close-inner{justify-items:center;gap:24px;display:grid}.home .close img.plate-mark{opacity:.9;width:96px}.home .waitlist{flex-wrap:wrap;justify-content:center;gap:10px;width:min(100%,520px);margin-top:12px;display:flex}.home .waitlist input{border:1px solid var(--o89-line-strong);background:var(--o89-surface);min-height:48px;color:var(--o89-fg);font:inherit;border-radius:10px;flex:260px;padding:0 16px;font-size:15px}.home .waitlist input::placeholder{color:var(--o89-faint)}.home .waitlist input:focus-visible{outline-offset:2px;outline:2px solid #fff}.home .waitlist-note{color:var(--o89-faint);text-wrap:balance;max-width:60ch;font-size:14px}.home .waitlist-note[data-state=done]{color:var(--o89-nominal)}.home .waitlist-note[data-state=error]{color:var(--o89-warning)}.home .waitlist-check:empty{display:none}.home .reveal{transition:opacity .9s var(--o89-ease), transform .9s var(--o89-ease)}.home .reveal.pre{opacity:.001;transform:translateY(28px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.home .reveal,.home .reveal.pre{opacity:1;transition:none;transform:none}.home .explorer-visual,.home .port-panel,.home .chip-box,.home .connect-visual img,.home .audience .mini{transition:opacity .2s linear}.home .port.is-active .pulse{animation:none}}.home .film-toggle{color:var(--o89-fg)}.home .inst-watts{color:var(--o89-muted);font-size:14px}.home .connect-render img{animation:render-in .6s var(--o89-ease)}@keyframes render-in{0%{opacity:0;transform:translate(24px)scale(.99)}}@media (prefers-reduced-motion:reduce){.home .connect-render img{animation:none}}.website-concept.home .o89-nav{margin:0 auto;position:fixed;left:0;right:0}.website-concept.home .o89-footer{margin-top:0}.website-concept.home{overflow-x:clip}.home .buddy-actions{flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:28px;display:flex}.home fieldset{border:0;min-inline-size:0;margin:0;padding:0}.home .seg{border:1px solid var(--o89-line-strong);padding:4px}.home .mcu-sub{letter-spacing:-.03em;color:var(--o89-muted);text-wrap:balance;margin-top:18px;font-size:clamp(26px,2.6vw,40px);font-weight:600;line-height:1.1}.home .mcu-copy .mcu-sub+.lede{margin-top:22px}.home .mcu-compare{border-left:1px solid var(--o89-line-strong);color:var(--o89-faint);max-width:60ch;margin-top:16px;padding-left:14px;font-size:13px}
