:root{--color-canvas:#f5f5f7;--color-card:#fff;--color-label:#1d1d1f;--color-secondary:#6e6e73;--color-tertiary:#aeaeb2;--color-fill:#ececf0;--color-ink:#1d1d1f;--color-ink-hover:#3a3a3c;--color-green:#248a3d;--color-red:#ff3b30;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", system-ui, sans-serif;--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--ease-glide:cubic-bezier(.22, 1, .36, 1);--ease-pop:cubic-bezier(.2, .7, .2, 1);--shadow-card:0 1px 2px #0000000a, 0 10px 30px #0000000f;--shadow-float:0 1px 2px #0000000d, 0 20px 50px #00000024;--glass:#ffffffc2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{background:var(--color-canvas);color:var(--color-label);font:15px/1.45 var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}button,input{font:inherit;color:inherit}img,svg{display:block}h1,h2,p,ol,ul{margin:0}a{color:var(--color-label);text-underline-offset:3px;-webkit-text-decoration:underline #0003;text-decoration:underline #0003}code{font:13px var(--font-mono)}.button{background:var(--color-fill);min-height:40px;color:var(--color-label);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .16s var(--ease-glide), background-color .2s ease;border:0;border-radius:980px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:500;display:inline-flex}.button.primary{background:var(--color-ink);color:#fff}.button.wide{width:100%;min-height:46px}.button:disabled{opacity:.5;cursor:default}.button:not(:disabled):active,.nav:not(:disabled):active,.icon:not(:disabled):active{transform:scale(.97)}.button:focus-visible,.nav:focus-visible,.icon:focus-visible,.link-button:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #1d1d1f4d}@media (hover:hover) and (pointer:fine){.button:hover{background:#e2e2e7}.button.primary:hover{background:var(--color-ink-hover)}}.link-button{color:var(--color-label);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:15px;font-weight:500;-webkit-text-decoration:underline #0003;text-decoration:underline #0003}.link-button.quiet{color:var(--color-tertiary);font:12px var(--font-mono);text-decoration:none}.icon{width:28px;height:28px;color:var(--color-secondary);cursor:pointer;transition:transform .16s var(--ease-glide), background-color .2s ease;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:18px;line-height:1;display:grid}.icon:disabled{opacity:.3;cursor:default}@media (hover:hover) and (pointer:fine){.icon:not(:disabled):hover{background:#0000000d}}input[type=password],input[type=text]{background:var(--color-canvas);border:0;border-radius:14px;width:100%;min-width:0;min-height:44px;padding:0 16px;font-size:16px;transition:box-shadow .16s}input::placeholder{color:var(--color-tertiary)}input:focus{outline:none;box-shadow:0 0 0 4px #1d1d1f24}.hint{color:var(--color-secondary);font-size:13px;line-height:1.4}.error{color:var(--color-red);font-size:14px}.error:empty{display:none}.landing{box-sizing:content-box;max-width:42rem;margin:0 auto;padding:56px 24px 72px}.landing .eyebrow{color:var(--color-secondary);font-size:16px;font-weight:600}.landing h1{font:700 clamp(36px, 6.4vw, 56px) / 1.05 var(--font-display);letter-spacing:-.025em;margin:12px 0 16px}.landing .lede{color:var(--color-secondary);letter-spacing:-.01em;font-size:19px}.how{counter-reset:how;gap:12px;margin:40px 0 28px;padding:0;list-style:none;display:grid}.how li{background:var(--color-card);min-width:0;box-shadow:var(--shadow-card);counter-increment:how;border-radius:24px;grid-template-columns:minmax(0,1fr);gap:8px;padding:20px 22px 20px 62px;display:grid;position:relative}.how li:before{content:counter(how);background:var(--color-label);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:13px;font-weight:600;display:grid;position:absolute;top:19px;left:22px}.how h2{font:600 17px/1.5 var(--font-display);letter-spacing:-.015em}.how p{color:var(--color-secondary)}.how .hint code{overflow-wrap:anywhere}.command{background:var(--color-canvas);border-radius:14px;align-items:center;gap:8px;min-width:0;padding:6px 6px 6px 14px;display:flex}.command code{white-space:nowrap;scrollbar-width:none;flex:1;min-width:0;overflow-x:auto}.command .button{background:var(--color-card);min-height:32px;padding:0 14px;font-size:13px}.missing{min-height:100svh;color:var(--color-secondary);text-align:center;align-content:center;place-items:center;gap:16px;padding:24px;display:grid}.manual{padding:12px;position:fixed;inset:0}.frame{isolation:isolate;background:var(--color-card);height:100%;box-shadow:var(--shadow-card);border-radius:28px;position:relative;overflow:hidden}.viewport{position:absolute;inset:0;overflow:hidden}.viewport canvas{touch-action:none;display:block}.sheet-title{pointer-events:none;max-width:min(440px,45%);position:absolute;top:22px;left:28px}.wordmark{color:var(--color-secondary);pointer-events:auto;margin-bottom:10px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.sheet-title h1{font:700 22px/1.15 var(--font-display);letter-spacing:-.02em}.sheet-title>p{color:var(--color-secondary);margin-top:4px;font-size:13px;line-height:1.4}.page-step{--row:80px;align-items:center;gap:16px;margin-top:22px;display:flex}.step-number{min-width:1ch;font:700 calc(var(--row) / .705) / .705 var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums}@supports (text-box:trim-both cap alphabetic){.step-number{text-box:trim-both cap alphabetic;line-height:1}}.callout{height:var(--row);align-items:stretch;gap:10px;display:flex}.callout[hidden]{display:none}.parts-box{background:#eef0f3;border-radius:16px;gap:14px;margin:0;padding:6px 14px;list-style:none;display:flex;box-shadow:inset 0 0 0 1px #0000000d}.parts-box li{grid-template-rows:1fr auto;place-items:center;display:grid}.parts-box img,.parts-box svg{width:48px;height:48px}.parts-box img:not([src]){visibility:hidden}.parts-box svg{fill:none;stroke:var(--color-label);stroke-width:1.3px;stroke-linejoin:round;padding:10px}.parts-box b{font:600 13px/1.2 var(--font-sans)}.parts-box small{color:var(--color-secondary);font:10px/1 var(--font-mono)}.parts-box .fastener{grid-template-rows:1fr auto auto}.repeat{min-width:var(--row);background:var(--color-ink);color:#fff;font:700 28px/1 var(--font-display);border-radius:16px;place-items:center;padding:0 14px;display:grid}.turning{z-index:3;border-radius:inherit;background:var(--color-card);backface-visibility:hidden;pointer-events:none;will-change:transform;position:absolute;inset:0;overflow:hidden;box-shadow:0 0 40px #0000001f}.turning>canvas{width:100%;height:100%;position:absolute;inset:0}.actions,.link{z-index:4}.actions{align-items:flex-start;gap:8px;display:flex;position:absolute;top:18px;right:18px}.actions .button:not(.primary){background:var(--glass);-webkit-backdrop-filter:blur(20px)saturate(180%);box-shadow:inset 0 0 0 .5px #00000014}.camera{box-shadow:0 6px 18px #00000038}.link{opacity:0;background:#34c759;border-radius:50%;width:6px;height:6px;transition:opacity .2s;position:absolute;top:34px;right:6px}.link[data-down]{background:var(--color-red);opacity:1}.phone{position:relative}.phone summary{list-style:none}.phone summary::-webkit-details-marker{display:none}.phone-card{z-index:5;background:var(--color-card);width:232px;box-shadow:var(--shadow-float);transform-origin:100% 0;transition:transform .36s var(--ease-pop);border-radius:22px;gap:8px;padding:18px;display:grid;position:absolute;top:calc(100% + 8px);right:0}@starting-style{.phone[open] .phone-card{transform:translateY(-6px)scale(.975)}}.qr{aspect-ratio:1}.qr svg{width:100%;height:100%}.phone-url{font:12px var(--font-mono);overflow-wrap:anywhere}.verdict{z-index:2;background:var(--glass);-webkit-backdrop-filter:blur(30px)saturate(180%);width:min(380px,100% - 56px);box-shadow:var(--shadow-float), inset 0 0 0 .5px #0000000f;transition:opacity .3s var(--ease-glide), transform .36s var(--ease-glide), filter .36s var(--ease-glide);border-radius:24px;grid-template-columns:72px 1fr;gap:14px;padding:14px 14px 12px;display:grid;position:absolute;bottom:28px;left:28px}@starting-style{.verdict{opacity:0;filter:blur(4px);transform:translateY(8px)}}.verdict[hidden]{display:none}.verdict-photo img{object-fit:cover;background:var(--color-fill);border-radius:14px;width:72px;height:72px}.verdict-body{align-content:start;gap:6px;min-width:0;padding-right:22px;display:grid}.verdict-title{font:600 16px/1.3 var(--font-display);letter-spacing:-.015em;align-items:baseline;gap:8px;display:flex}.verdict-title:before{content:"";background:var(--color-tertiary);border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.verdict[data-state=ok] .verdict-title:before{background:#34c759}.verdict[data-state=wrong] .verdict-title:before,.verdict[data-state=error] .verdict-title:before{background:var(--color-red)}.verdict[data-state=retake] .verdict-title:before,.verdict[data-state=unsure] .verdict-title:before{background:#ff9f0a}.verdict[data-state=waiting] .verdict-title:before{background:var(--color-ink)}.verdict[data-state=reading] .verdict-title{color:var(--color-secondary)}.verdict[data-state=reading] .verdict-title:before{background:var(--color-ink);animation:1.2s ease-in-out infinite reading}@keyframes reading{50%{opacity:.25}}.verdict-title small{color:var(--color-tertiary);font:12px var(--font-mono);margin-left:auto}.verdict-text{font-size:14px;line-height:1.4}.verdict-note{color:var(--color-secondary);font-size:13px}.crops{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.crops img{background:var(--color-fill);border-radius:8px;flex:none;height:44px}.verdict-foot{flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:24px;font-size:13px;display:flex}.verdict-foot .link-button:not(.quiet){white-space:nowrap;font-size:14px;font-weight:500}.verdict-foot .quiet{margin-left:auto}.pager{color:var(--color-secondary);font:12px var(--font-mono);align-items:center;gap:2px;display:inline-flex}.verdict .close{position:absolute;top:8px;right:8px}.backdrop{z-index:20;-webkit-backdrop-filter:blur(6px);background:#0000002e;place-items:center;padding:16px;transition:opacity .2s;display:grid;position:fixed;inset:0}@starting-style{.backdrop{opacity:0}}.backdrop[hidden]{display:none}.connect{background:var(--color-card);width:min(400px,100%);box-shadow:var(--shadow-float);transition:opacity .26s var(--ease-glide), transform .36s var(--ease-glide);border-radius:28px;gap:12px;padding:24px;display:grid}@starting-style{.connect{opacity:0;transform:translateY(8px)scale(.985)}}.connect-photo{object-fit:cover;background:var(--color-fill);border-radius:16px;width:64px;height:64px}.connect h2{font:700 22px/1.2 var(--font-display);letter-spacing:-.02em}.connect p{color:var(--color-secondary);font-size:14px}.connect .button[hidden]{display:none}.connect .link-button{color:var(--color-secondary);justify-self:center;margin-top:4px}.paste{gap:8px;display:flex}body.sheet-open{overflow:hidden}.title-block{z-index:2;background:var(--glass);-webkit-backdrop-filter:blur(30px)saturate(180%);width:360px;max-height:calc(100% - 130px);box-shadow:var(--shadow-float), inset 0 0 0 .5px #0000000f;border-radius:26px;position:absolute;bottom:28px;right:28px;overflow-y:auto}.title-block>*{margin:0;padding:0 20px 12px}.tb-head{align-items:center;gap:10px;padding:16px 16px 10px 20px;display:flex}.tb-label{color:var(--color-secondary);font-size:13px;font-weight:600}.tb-count{color:var(--color-secondary);font:600 13px var(--font-mono)}.tb-nav{gap:8px;margin-left:auto;display:flex}.nav{background:var(--color-ink);color:#fff;cursor:pointer;width:36px;height:36px;transition:transform .16s var(--ease-glide), opacity .2s ease;border:0;border-radius:50%;place-items:center;font-size:17px;display:grid}.nav[data-prev]{color:var(--color-label);background:#0000000f}.nav:disabled{opacity:.3;cursor:default}.title-block h2{font:700 21px/1.2 var(--font-display);letter-spacing:-.02em;padding-bottom:6px}.times{background:var(--color-label);color:#fff;border-radius:980px;justify-self:start;width:fit-content;font-size:12px;font-weight:600;margin:0 20px 10px!important;padding:3px 10px!important}.times[hidden]{display:none}.needs{background:#00000009;border-radius:16px;gap:6px;font-size:14px;list-style:none;display:grid;margin:0 20px 12px!important;padding:10px 12px!important}.needs li{grid-template-columns:30px 1fr auto;align-items:center;gap:6px;display:grid}.needs b{font:600 13px var(--font-mono)}.needs em{color:var(--color-secondary);font-size:12px;font-style:normal}.needs svg{fill:none;width:22px;height:22px;stroke:var(--color-secondary);stroke-width:1.4px;stroke-linejoin:round}.loading{color:var(--color-secondary);pointer-events:none;place-content:center;font-size:14px;display:grid;position:absolute;inset:0}.loading[hidden]{display:none}.instruction{font-size:15px;line-height:1.45}.wires{background:#00000009;border-radius:16px;gap:8px;list-style:none;display:grid;margin:0 20px 12px!important;padding:10px 12px!important}.wires:empty{display:none}.wires li{grid-template-columns:12px 1fr 16px 1fr auto;align-items:center;gap:8px;display:grid}.swatch{background:var(--wire);border-radius:50%;width:12px;height:12px;box-shadow:inset 0 0 0 .5px #0000004d}.wires b{color:var(--color-tertiary);text-align:center;font-weight:400}.wires .end{min-width:0;display:grid}.wires strong{font:600 13px var(--font-mono)}.wires small{color:var(--color-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.wires em{color:var(--color-secondary);font-size:12px;font-style:normal}.caution,.check{border-radius:16px;gap:2px;font-size:14px;line-height:1.4;display:grid;margin:0 20px 12px!important;padding:10px 14px!important}.caution[hidden],.check[hidden]{display:none}.caution b,.check b{font-size:12px;font-weight:600}.caution{color:#c4000f;background:#ff3b301a}.check{color:var(--color-label);background:#0000000b}.title-block>.tb-label{padding-top:4px}.parts summary{cursor:pointer;gap:6px;padding:4px 20px 12px;list-style:none;display:flex}.parts summary::-webkit-details-marker{display:none}.parts summary:after{content:"›";transition:transform .2s var(--ease-glide)}.parts[open] summary:after{transform:rotate(90deg)}.parts summary span{color:var(--color-tertiary)}.parts .bom{padding:0 20px 18px}.bom{gap:6px;font-size:14px;list-style:none;display:grid;padding-bottom:18px!important}.bom li{grid-template-columns:26px 1fr;column-gap:8px;display:grid}.bom b,.balloon{background:var(--color-label);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:600;display:grid}.bom em{color:var(--color-secondary);font:11px var(--font-mono);grid-column:2;font-style:normal}.callouts,.callouts svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.callouts line.part{stroke:var(--color-tertiary);stroke-width:1px}.callouts line.pin{stroke:var(--color-red);stroke-width:1.25px;stroke-linecap:round}.callouts circle.pin{fill:var(--color-red)}.balloon,.pin-callout{will-change:transform;position:absolute;top:0;left:0}.balloon{box-shadow:0 2px 6px #0000002e}.pin-callout{background:var(--color-red);color:#fff;font:600 12px var(--font-mono);white-space:nowrap;border-radius:980px;padding:3px 9px;box-shadow:0 2px 8px #ff3b304d}@media (width<=900px){.manual{gap:12px;padding:10px 10px 24px;display:grid;position:static}.frame{border-radius:24px;height:58svh;min-height:360px}.sheet-title{max-width:calc(100% - 36px);top:16px;left:18px}.wordmark{margin-bottom:4px}.sheet-title h1{max-width:70%;font-size:20px}.sheet-title p{display:none}.actions{top:auto;bottom:12px;right:12px}.phone{display:none}.camera{min-height:46px}.verdict{background:var(--color-card);width:auto;box-shadow:var(--shadow-card);position:relative;bottom:auto;left:auto}.title-block{background:var(--color-card);-webkit-backdrop-filter:none;width:auto;max-height:none;box-shadow:var(--shadow-card);position:static}.backdrop{align-items:end;padding:0}.connect{width:100%;padding-bottom:max(24px, env(safe-area-inset-bottom));border-radius:28px 28px 0 0}@starting-style{.connect{transform:translateY(24px)}}}@media (prefers-reduced-motion:reduce){.verdict,.connect,.phone-card{transition:opacity .18s}@starting-style{.verdict,.connect,.phone[open] .phone-card{filter:none;transform:none}}.verdict[data-state=reading] .verdict-title:before{animation:none}}@media (prefers-reduced-transparency:reduce){.title-block,.verdict,.actions .button:not(.primary){background:var(--color-card);-webkit-backdrop-filter:none}}.title-block>.parts{padding:0}.hover-label,.hover-leader{z-index:2;pointer-events:none;position:absolute;top:0;left:0}.hover-leader{width:100%;height:100%;overflow:visible}.hover-leader line{stroke:var(--color-ink);stroke-width:1.25px}.hover-leader circle{fill:var(--color-ink);stroke:#fff;stroke-width:1.5px}.hover-label{background:var(--color-ink);color:#fff;white-space:nowrap;pointer-events:none;border-radius:12px;padding:6px 11px 7px;font-size:13px;line-height:1.25;display:grid;box-shadow:0 6px 18px #0000002e}.hover-label[hidden],.hover-leader[hidden]{display:none}.hover-label b{font-weight:600}.hover-label small{color:#ffffff9e;font:11px var(--font-mono)}
