:root{color:#f5f7fb;background:#10101f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#10101f}button,input,select{font:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#1a1a2e,#10101f)}.app-header{height:64px;display:flex;align-items:center;padding:0 28px;border-bottom:1px solid rgba(255,255,255,.08)}.app-header h1{margin:0;font-size:20px;font-weight:700;letter-spacing:0}.app-layout{min-height:0;flex:1;display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.side-panel{padding:18px;border-right:1px solid rgba(255,255,255,.08);background:#10101fb3;display:flex;flex-direction:column;gap:16px}.work-panel{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(320px,1fr) minmax(300px,42vh)}.work-panel-landing{grid-template-rows:1fr;overflow:auto}.lp-hero{min-height:100%;display:grid;grid-template-columns:minmax(0,.92fr) minmax(260px,1.08fr);align-items:center;gap:clamp(24px,4vw,56px);padding:clamp(24px,5vw,64px);background:linear-gradient(135deg,#ffffff0e,#68d7c50d 46%,#f1c76a0d)}.lp-hero-copy{max-width:720px;display:flex;flex-direction:column;gap:18px}.lp-kicker{margin:0;color:#68d7c5;font-size:13px;font-weight:800;letter-spacing:0;text-transform:uppercase}.lp-hero h2{margin:0;color:#fff;font-size:48px;line-height:1.12;letter-spacing:0}.lp-privacy,.lp-note{margin:0;color:#d8def2;line-height:1.75}.lp-privacy{max-width:620px;font-size:16px}.lp-note{color:#f1c76a;font-size:13px}.lp-steps{margin:6px 0 0;padding-left:24px;color:#f5f7fb;line-height:1.6}.lp-steps li{padding-left:6px;margin-bottom:8px}.lp-steps li::marker{color:#68d7c5;font-weight:800}.lp-hero-media{min-width:0}.lp-hero-media img{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover;border:1px solid rgba(255,255,255,.14);border-radius:8px;box-shadow:0 24px 64px #00000052}.viewer-panel{min-width:0;min-height:0;position:relative}.pattern-work-panel{min-width:0;min-height:0;overflow:auto;border-top:1px solid rgba(255,255,255,.08);background:#10101fd1}.panel-section{display:flex;flex-direction:column;gap:14px}.sample-gallery{display:flex;flex-direction:column;gap:12px}.sample-gallery-buttons{display:grid;grid-template-columns:1fr;gap:8px}.drop-zone{width:100%;min-height:150px;border:1px dashed rgba(143,184,255,.68);border-radius:8px;color:#f5f7fb;background:#ffffff0b;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px;text-align:center}.drop-zone:hover,.drop-zone.is-dragging{border-color:#68d7c5;background:#68d7c51c}.drop-title{font-weight:700}.drop-copy,.file-name,.status-muted{color:#aeb7d4;font-size:13px}.file-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-input{display:none}.warning-box,.error-box{border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.45}.warning-box{color:#2e2100;background:#ffd86a}.warning-box p{margin:0}.warning-box p+p{margin-top:6px}.error-box{color:#ffe8e8;background:#ff5c7a2e;border:1px solid rgba(255,92,122,.35)}.section-heading,.control-label,.metrics-row,.checkbox-row{display:flex;align-items:center}.section-heading,.control-label,.metrics-row{justify-content:space-between;gap:12px}.section-heading h2{margin:0;font-size:16px}.control-label{font-size:14px;color:#d8def2}.control-value{color:#f1c76a;font-weight:700}input[type=range]{width:100%;accent-color:#68d7c5}input[type=number],select{width:132px;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:7px 9px;color:#f5f7fb;background:#ffffff12}select{width:168px}button{border:0;border-radius:8px;padding:9px 12px;color:#062018;background:#68d7c5;font-weight:800;cursor:pointer}button:hover:not(:disabled){background:#80e4d5}button:disabled,input:disabled{cursor:not-allowed;opacity:.55}.metric{display:flex;flex-direction:column;gap:4px;color:#aeb7d4;font-size:12px}.metric strong{color:#f5f7fb;font-size:20px}.badge{min-width:48px;border-radius:999px;padding:5px 10px;text-align:center;font-size:12px;font-weight:800}.badge-ok{color:#062018;background:#68d783}.badge-ng{color:#2a060d;background:#ff5c7a}.checkbox-row{gap:8px;color:#d8def2;font-size:14px}.viewer-wrap{position:absolute;inset:0;overflow:hidden}.viewer-wrap canvas{display:block;width:100%;height:100%}.viewer-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#aeb7d4;font-size:15px;pointer-events:none}.pattern-panel{height:100%;padding:18px}.pattern-preview{min-height:220px;flex:1;overflow:auto;border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:12px;background:#fff}.pattern-empty{min-height:196px;display:flex;align-items:center;justify-content:center;color:#667085;font-size:14px}.pattern-svg svg{display:block;width:100%;height:auto}.pattern-actions{display:grid;grid-template-columns:68px 1fr 68px;align-items:center;gap:10px}.pattern-actions .status-muted{text-align:center}.pattern-support-panels{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);gap:16px;align-items:stretch}.instructions-panel,.assembly-panel{min-height:320px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff0b}.instructions-list{min-height:0;max-height:420px;margin:0;padding:0 0 0 28px;overflow:auto}.instruction-step{margin:0 0 8px;padding:9px 10px;border-left:4px solid rgba(255,255,255,.2);border-radius:6px;color:#f5f7fb;background:#10101f94;line-height:1.45}.instruction-cut{border-left-color:#ff6b7d}.instruction-fold{border-left-color:#6ca8ff}.instruction-glue{border-left-color:#68d783}.assembly-controls{display:grid;grid-template-columns:minmax(180px,1fr) 96px;gap:12px;align-items:center}.assembly-progress{margin-top:2px}.assembly-viewer{position:relative;min-height:260px;flex:1;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#11131c}.assembly-viewer canvas{display:block;width:100%;height:100%}@media(max-width:1080px){.lp-hero{grid-template-columns:1fr;align-content:start}.lp-hero h2{font-size:40px}.lp-hero-media{order:-1}}@media(max-width:760px){.app-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(720px,1fr)}.side-panel{border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.work-panel{grid-template-rows:minmax(360px,45vh) minmax(360px,1fr)}.work-panel-landing{grid-template-rows:1fr}.lp-hero{padding:24px 18px 32px}.lp-hero h2{font-size:32px}.pattern-support-panels,.assembly-controls{grid-template-columns:1fr}}
