.cad-body{background:var(--bg-0);color:var(--ink);--cad-blue:#5b8def;--cad-paper:#f6f7f9;--cad-paper-ink:#1a1f29}.cad{box-sizing:border-box;width:100%;max-width:1440px;padding:var(--space-lg,24px) var(--space-md,16px) var(--space-2xl,64px);margin:0 auto}.cad-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.cad-hero{max-width:860px;margin:var(--space-xl,40px) auto var(--space-2xl,56px);text-align:center}.cad-eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 var(--space-sm,12px);align-items:center;gap:8px;font-size:12px;display:inline-flex}.cad-eyebrow__mark{border:1.5px solid var(--cad-blue);background:linear-gradient(135deg, transparent 45%, var(--cad-blue) 45% 55%, transparent 55%);border-radius:3px;width:14px;height:14px}.cad-hero h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink-bright,var(--ink));margin:0 0 var(--space-md,16px);font-size:clamp(32px,5.4vw,56px);line-height:1.05}.cad-lede{color:var(--ink-dim);max-width:680px;margin:0 auto var(--space-lg,28px);font-size:17px;line-height:1.55}.cad-lede a,.cad-note a,.cad-lineage a,.cad-meta a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--stroke-strong);text-decoration-color:var(--stroke-strong);text-underline-offset:3px}.cad-form{text-align:left;border:1px solid var(--stroke-strong);background:var(--surface-1);border-radius:var(--radius-lg,14px);padding:var(--space-sm,12px);transition:border-color var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard)}.cad-form:focus-within{border-color:var(--cad-blue);box-shadow:0 0 0 4px color-mix(in srgb, var(--cad-blue) 18%, transparent)}.cad-form textarea{resize:vertical;width:100%;min-height:84px;color:var(--ink);font:16px/1.5 var(--font-body);background:0 0;border:0;outline:0;padding:6px 8px}.cad-form__foot{justify-content:space-between;align-items:center;gap:var(--space-sm,12px);padding-top:6px;display:flex}.cad-hint{color:var(--ink-faint);font-size:13px}.cad-hint kbd{font-family:var(--font-mono);border:1px solid var(--stroke);border-radius:4px;padding:1px 5px;font-size:11px}.cad-notice{margin:var(--space-sm,12px) 0 0;border-radius:var(--radius-md,10px);border:1px solid color-mix(in srgb, var(--warn) 45%, transparent);color:var(--warn);padding:10px 14px;font-size:14px}.cad-chips{margin:var(--space-md,16px) 0 0;flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.cad-chip{border:1px solid var(--stroke);color:var(--ink-dim);border-radius:var(--radius-pill,999px);font:13px var(--font-body);cursor:pointer;transition:color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);background:0 0;padding:7px 13px}.cad-chip:hover{color:var(--ink);border-color:var(--stroke-strong);background:var(--surface-1)}.cad-chip:active{transform:scale(.97)}.cad-proof{margin:var(--space-xl,40px) 0 0;gap:var(--space-md,16px);text-align:left;grid-template-columns:repeat(3,1fr);padding:0;list-style:none;display:grid}.cad-proof li{border-top:1px solid var(--stroke);padding-top:var(--space-sm,12px);gap:4px;display:grid}.cad-proof strong{font-family:var(--font-display);color:var(--ink-bright,var(--ink))}.cad-proof span{color:var(--ink-dim);font-size:14px;line-height:1.5}.cad-btn{border-radius:var(--radius-md,10px);border:1px solid var(--stroke-strong);background:var(--surface-2);min-height:38px;color:var(--ink);font:600 14px var(--font-body);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard), opacity var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:inline-flex}.cad-btn:hover{background:var(--surface-3)}.cad-btn:active{transform:translateY(1px)}.cad-btn:focus-visible,.cad-chip:focus-visible,.cad-link:focus-visible,.cad-card:focus-visible,.cad-dl:focus-visible,.cad-mass:focus-visible,.cad-seg button:focus-visible,.cad-icon-btn:focus-visible{outline:2px solid var(--cad-blue);outline-offset:2px}.cad-btn:disabled{opacity:.5;cursor:not-allowed}.cad-btn--primary{background:var(--ink-bright,#fff);color:var(--bg-0);border-color:#0000}.cad-btn--primary:hover{background:var(--ink)}.cad-btn--ghost{background:0 0}.cad-btn__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite cad-spin;display:none}.cad-btn.is-busy .cad-btn__spinner{display:inline-block}.cad-link{color:var(--ink-dim);font:13px var(--font-body);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.cad-link:hover{color:var(--ink)}@keyframes cad-spin{to{transform:rotate(360deg)}}.cad-progress-host{margin-top:var(--space-md,16px);text-align:left}.cad-progress{border:1px solid var(--stroke);border-radius:var(--radius-lg,14px);background:var(--surface-1);padding:var(--space-md,16px);animation:.25s cad-rise}.cad-progress__head{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.cad-progress__title{font-family:var(--font-display);color:var(--ink-bright,var(--ink));font-weight:600}.cad-progress__clock{font:12px var(--font-mono);color:var(--ink-faint)}.cad-steps{gap:8px;margin:0;padding:0;list-style:none;display:grid}.cad-step{color:var(--ink-dim);grid-template-columns:14px 1fr;align-items:center;gap:4px 10px;font-size:14px;animation:.2s cad-rise;display:grid}.cad-step__dot{border:2px solid var(--stroke-strong);border-radius:50%;justify-self:center;width:10px;height:10px}.cad-step.is-active{color:var(--ink)}.cad-step.is-active .cad-step__dot{border-color:var(--cad-blue);border-right-color:#0000;animation:.9s linear infinite cad-spin}.cad-step.is-done .cad-step__dot{background:var(--success);border-color:var(--success)}.cad-step.is-warn .cad-step__dot{background:var(--warn);border-color:var(--warn)}.cad-step.is-failed .cad-step__dot{background:var(--danger);border-color:var(--danger)}.cad-step__detail{font:12px/1.45 var(--font-mono);color:var(--ink-faint);white-space:pre-wrap;word-break:break-word;grid-column:2}.cad-progress__error{color:var(--danger);margin:12px 0 0;font-size:14px;line-height:1.5}@keyframes cad-rise{0%{opacity:0;transform:translateY(4px)}}.cad-gallery__head{margin-bottom:var(--space-md,16px);justify-content:space-between;align-items:baseline;display:flex}.cad-gallery h2{font-family:var(--font-display);margin:0;font-size:22px}.cad-grid{gap:var(--space-md,16px);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.cad-card{border:1px solid var(--stroke);border-radius:var(--radius-lg,14px);color:inherit;background:var(--surface-1);transition:transform var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);grid-template-rows:auto 1fr;align-content:start;text-decoration:none;display:grid;overflow:hidden}.cad-card:hover{border-color:var(--stroke-strong);transform:translateY(-2px);box-shadow:0 10px 30px #0000002e}.cad-card__paper{aspect-ratio:4/3;background-color:var(--cad-paper);background-image:repeating-linear-gradient(0deg,#5b8def14 0 1px,#0000 1px 16px),repeating-linear-gradient(90deg,#5b8def14 0 1px,#0000 1px 16px);place-items:center;display:grid;position:relative;overflow:hidden}.cad-card__paper img{object-fit:contain;width:calc(100% - 24px);height:calc(100% - 24px);transition:transform var(--duration-base) var(--ease-standard);position:absolute;inset:12px}.cad-card:hover .cad-card__paper img{transform:scale(1.04)}.cad-card__nothumb{color:#8a94a6;font:12px var(--font-mono)}.cad-card__meta{gap:2px;padding:10px 12px 12px;display:grid}.cad-card__meta strong{color:var(--ink-bright,var(--ink));text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.cad-card__meta span{font:12px var(--font-mono);color:var(--ink-faint)}.cad-card--skeleton{background:linear-gradient(90deg, var(--surface-1), var(--surface-2), var(--surface-1));background-size:200% 100%;min-height:240px;animation:1.4s ease-in-out infinite cad-shimmer}@keyframes cad-shimmer{to{background-position:-200% 0}}.cad-empty{border:1px dashed var(--stroke-strong);border-radius:var(--radius-lg,14px);padding:var(--space-lg,24px);text-align:center;color:var(--ink-dim);justify-items:center;gap:12px;display:grid}.cad-empty p{margin:0}.cad-empty--page{max-width:560px;margin:var(--space-2xl,64px) auto}.cad-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.cad-design__body{gap:var(--space-md,16px);transition:opacity var(--duration-base) var(--ease-standard);grid-template-columns:minmax(0,1fr) 420px;align-items:start;display:grid}.cad-design__body.is-loading{pointer-events:none}.cad-design__body.is-loading .cad-panel__head,.cad-design__body.is-loading .cad-section{background:linear-gradient(90deg, var(--surface-1), var(--surface-2), var(--surface-1));background-size:200% 100%;min-height:120px;animation:1.4s ease-in-out infinite cad-shimmer}.cad-design__body.is-loading .cad-panel__head>*,.cad-design__body.is-loading .cad-section>*{visibility:hidden}.cad-stage{border:1px solid var(--stroke);border-radius:var(--radius-lg,14px);background:radial-gradient(ellipse at 50% 35%, color-mix(in srgb, var(--surface-2) 70%, transparent), transparent 70%), var(--bg-1,var(--bg-0));height:calc(100vh - 100px);min-height:420px;position:sticky;top:76px;overflow:hidden}.cad-viewport{touch-action:none;position:absolute;inset:0}.cad-viewport canvas{width:100%;height:100%;display:block}.cad-viewport__error{border-radius:var(--radius-md,10px);background:var(--scrim);color:var(--on-scrim-bright,#fff);margin:0;padding:10px 14px;font-size:14px;position:absolute;inset:auto 16px 16px}.cad-dims{pointer-events:none;position:absolute;inset:0;overflow:hidden}.cad-dim{font:600 12px var(--font-mono);color:#fff;background:var(--cad-blue);white-space:nowrap;border-radius:6px;padding:2px 7px;position:absolute;top:0;left:0;box-shadow:0 2px 8px #00000040}.cad-drawing{background:var(--cad-paper);background-image:repeating-linear-gradient(0deg,#5b8def12 0 1px,#0000 1px 20px),repeating-linear-gradient(90deg,#5b8def12 0 1px,#0000 1px 20px);place-items:center;padding:56px 24px 24px;display:grid;position:absolute;inset:0}.cad-drawing img{max-width:100%;max-height:100%}.cad-tools{z-index:2;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.cad-tools.is-drawing .cad-toggle,.cad-tools.is-drawing .cad-icon-btn{display:none}.cad-seg{border:1px solid var(--stroke-strong);border-radius:var(--radius-md,10px);background:var(--scrim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:inline-flex;overflow:hidden}.cad-seg button{color:var(--on-scrim,#ddd);font:600 13px var(--font-body);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;padding:7px 12px}.cad-seg button:hover:not(:disabled):not([aria-pressed=true]){background:var(--scrim-strong);color:var(--on-scrim-bright,#fff)}.cad-seg button:active:not(:disabled){transform:scale(.97)}.cad-seg button[aria-pressed=true]{background:var(--on-scrim-bright,#fff);color:#111}.cad-seg button:disabled{opacity:.45;cursor:not-allowed}.cad-toggle{color:var(--on-scrim,#ddd);background:var(--scrim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--on-scrim-stroke,#ffffff2e);border-radius:var(--radius-md,10px);cursor:pointer;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:inline-flex}.cad-toggle:hover{background:var(--scrim-strong)}.cad-toggle:focus-within{outline:2px solid var(--cad-blue);outline-offset:2px}.cad-toggle input{accent-color:var(--cad-blue)}.cad-icon-btn{border-radius:var(--radius-md,10px);border:1px solid var(--on-scrim-stroke,#ffffff2e);background:var(--scrim);width:34px;height:34px;color:var(--on-scrim-bright,#fff);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard);place-items:center;margin-left:auto;display:inline-grid}.cad-icon-btn:hover{background:var(--scrim-strong)}.cad-icon-btn:active,.cad-mass:active,.cad-card:active{transform:scale(.97)}.cad-link:active,.cad-back:active{opacity:.7}.cad-back:focus-visible{outline:2px solid var(--cad-blue);outline-offset:2px;border-radius:4px}.cad-param input[type=range]:focus-visible{outline:2px solid var(--cad-blue);outline-offset:4px;border-radius:4px}.cad-badge{z-index:2;border-radius:var(--radius-pill,999px);background:var(--scrim-strong);color:var(--on-scrim-bright,#fff);align-items:center;gap:8px;padding:7px 14px;font-size:13px;animation:.2s cad-rise;display:inline-flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.cad-badge:before{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;width:10px;height:10px;animation:.8s linear infinite cad-spin}.cad-panel{gap:var(--space-md,16px);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.cad-panel__head,.cad-section{border:1px solid var(--stroke);border-radius:var(--radius-lg,14px);background:var(--surface-1);padding:var(--space-md,16px)}.cad-back{font:12px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);text-decoration:none}.cad-back:before{content:"← "}.cad-back:hover{color:var(--ink)}.cad-title{font-family:var(--font-display);color:var(--ink-bright,var(--ink));overflow-wrap:anywhere;margin:6px 0;font-size:26px;line-height:1.15}.cad-summary{color:var(--ink-dim);margin:0 0 10px;line-height:1.5}.cad-asked{border-left:2px solid var(--cad-blue);background:var(--surface-2);border-radius:0 var(--radius-sm,6px) var(--radius-sm,6px) 0;color:var(--ink);overflow-wrap:anywhere;margin:0;padding:8px 12px;font-size:14px}.cad-asked span{font:11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:2px;display:block}.cad-meta{font:12px var(--font-mono);color:var(--ink-faint);flex-wrap:wrap;gap:4px 14px;margin-top:10px;display:flex}.cad-lineage{color:var(--ink-dim);gap:4px;margin:8px 0 0;font-size:13px;display:grid}.cad-section h2{font-family:var(--font-display);margin:0 0 12px;font-size:16px}.cad-section__head{justify-content:space-between;align-items:baseline;display:flex}.cad-sub{color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;margin:14px 0 8px;font-size:12px;font-weight:600}.cad-params{gap:14px;display:grid}.cad-param__label{color:var(--ink);justify-content:space-between;gap:8px;margin-bottom:4px;font-size:14px;display:flex}.cad-param__label code{font:11px var(--font-mono);color:var(--ink-faint)}.cad-param__controls{grid-template-columns:minmax(0,1fr) 76px minmax(30px,auto);align-items:center;gap:8px;display:grid}.cad-param input[type=range]{width:100%;accent-color:var(--cad-blue)}.cad-param__num{border:1px solid var(--stroke);border-radius:var(--radius-sm,6px);background:var(--surface-2);width:100%;min-height:32px;color:var(--ink);font:13px var(--font-mono);padding:0 8px}.cad-param__num:focus{outline:2px solid var(--cad-blue);outline-offset:0}.cad-param__unit{font:12px var(--font-mono);color:var(--ink-faint)}.cad-inline-error{color:var(--danger);margin:12px 0 0;font-size:13px;line-height:1.5}.cad-metrics{gap:6px;margin:0;display:grid}.cad-metric{justify-content:space-between;gap:12px;font-size:14px;display:flex}.cad-metric dt{color:var(--ink-dim)}.cad-metric dd{font-family:var(--font-mono);text-align:right;color:var(--ink);margin:0;font-size:13px}.cad-metric.is-ok dd{color:var(--success)}.cad-metric.is-warn dd{color:var(--warn)}.cad-metric-note{color:var(--warn);margin:2px 0 0;font-size:12px;line-height:1.5}.cad-masses{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.cad-mass{text-align:left;border:1px solid var(--stroke);border-radius:var(--radius-md,10px);color:var(--ink-dim);font:12px var(--font-body);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);background:0 0;gap:2px;padding:8px 10px;display:grid}.cad-mass strong{font:600 13px var(--font-mono);color:var(--ink)}.cad-mass:hover{border-color:var(--stroke-strong)}.cad-mass.is-on{border-color:var(--cad-blue);background:color-mix(in srgb, var(--cad-blue) 12%, transparent)}.cad-adjustments{color:var(--ink-dim);margin:0;padding-left:18px;font-size:13px;line-height:1.5}.cad-downloads{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cad-dl{border:1px solid var(--stroke);border-radius:var(--radius-md,10px);color:var(--ink);transition:border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);gap:2px;padding:10px 12px;text-decoration:none;display:grid}.cad-dl:hover{border-color:var(--stroke-strong);background:var(--surface-2)}.cad-dl:active{transform:translateY(1px)}.cad-dl strong{font-size:14px}.cad-dl strong:after{content:" ↓";color:var(--ink-faint)}.cad-dl span{color:var(--ink-faint);font-size:12px}.cad-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.cad-refine{gap:8px;display:flex}.cad-refine input{border:1px solid var(--stroke-strong);border-radius:var(--radius-md,10px);background:var(--surface-2);min-width:0;min-height:38px;color:var(--ink);font:14px var(--font-body);flex:1;padding:0 12px}.cad-refine input:focus{outline:2px solid var(--cad-blue);outline-offset:0}.cad-note{color:var(--ink-dim);margin:0 0 10px;font-size:13px;line-height:1.5}.cad-note code{font:12px var(--font-mono)}.cad-code{border-radius:var(--radius-md,10px);background:var(--bg-0);border:1px solid var(--stroke);max-height:420px;font:12px/1.55 var(--font-mono);color:var(--ink);tab-size:4;margin:0;padding:12px;overflow:auto}.cad-toast{opacity:0;z-index:50;border-radius:var(--radius-pill,999px);background:var(--scrim-strong);color:var(--on-scrim-bright,#fff);transition:opacity var(--duration-base) var(--ease-standard), transform var(--duration-base) var(--ease-standard);max-width:calc(100vw - 32px);padding:10px 16px;font-size:14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%,8px)}.cad-toast.is-on{opacity:1;transform:translate(-50%)}@media (width<=980px){.cad-design__body{grid-template-columns:1fr}.cad-stage{height:62vh;min-height:340px;position:relative;top:0}}@media (width<=640px){.cad-hero{margin-top:var(--space-md,16px)}.cad-proof{grid-template-columns:1fr}.cad-form__foot{flex-direction:column;align-items:stretch}.cad-hint{display:none}.cad-masses,.cad-downloads{grid-template-columns:1fr 1fr}.cad-refine{flex-direction:column}}@media (prefers-reduced-motion:reduce){.cad-card,.cad-btn,.cad-chip,.cad-step,.cad-progress,.cad-badge{transition:none;animation:none}}
