@font-face{font-family:Outfit;src:url('/fonts/Outfit-Variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--ink:#000000;--paper:#fffdf5;--blue:#c0f7fe;--yellow:#f7cb46;--muted:#686862}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:13px/1.5 Outfit,Arial,sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #147acf;outline-offset:3px}a{color:inherit}button{background:transparent}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.project-header{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:23px 24px;border-bottom:3px solid var(--ink)}.eyebrow,.module-label,footer{font-size:10px;font-weight:700;letter-spacing:.06em}.eyebrow{margin-bottom:5px;color:var(--muted)}h1{font-family:Outfit,Arial,sans-serif;font-size:31px;letter-spacing:-1.3px;line-height:1.1}.subtitle{font-size:12px;margin-top:8px;color:var(--muted)}.project-stats{display:flex;gap:23px}.project-stats div{display:grid;gap:2px}.project-stats strong{font-family:Outfit,Arial,sans-serif;font-size:24px;line-height:1.15;letter-spacing:-.6px}.project-stats span{font-size:10px;color:var(--muted)}main{display:grid;grid-template-columns:minmax(0,1fr) 310px}.workspace{min-width:0;display:flex;flex-direction:column;border-right:3px solid var(--ink)}.chapterbar{display:flex;gap:5px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid #d8d7cf}.chapterbar button{border:1px solid transparent;border-radius:0;padding:7px 10px;font-size:11px;font-weight:600}.chapterbar .current{background:var(--yellow);border-color:var(--ink);box-shadow:3px 3px var(--ink)}#viewport{height:460px;position:relative;overflow:hidden;touch-action:none;background:radial-gradient(ellipse at center,#fffdf9 30%,#f3f1e8 100%)}#viewport canvas{display:block;width:100%;height:100%;position:relative;z-index:1}.viewlabel{position:absolute;top:15px;left:17px;z-index:2;display:flex;align-items:center;gap:6px;color:#66665e;font-size:9px;pointer-events:none}.dot{width:5px;height:5px;border-radius:50%;background:#66665e}#step-watermark{position:absolute;right:20px;top:8px;font:700 72px Outfit,Arial,sans-serif;color:#e6e3d8;pointer-events:none}.camera-tools{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:3px;max-width:calc(100% - 20px);padding:4px;background:#fffdf5ed;border:1px solid var(--ink);border-radius:0}.camera-tools button{border:0;white-space:nowrap;border-radius:0;padding:6px 7px;font-size:10px}.camera-tools .selected{background:var(--blue);font-weight:650}.orbit-hint{position:absolute;bottom:15px;left:0;right:0;text-align:center;font-size:10px;color:var(--muted);pointer-events:none;z-index:2}#loading{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--paper);font-size:12px;padding:30px;text-align:center}#loading.hidden{display:none}.spinner{height:18px;width:18px;border:2px solid #dddacf;border-top-color:var(--ink);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.transport{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:12px 14px;border-top:1px solid #d8d7cf;margin-top:auto}.transport button{border:2px solid var(--ink);border-radius:0;background:white;height:32px;min-width:30px;font-size:11px}.transport #play{background:var(--yellow);font-weight:650;padding:0 11px}#scrubber{flex:1;min-width:70px;accent-color:var(--ink);height:24px}.stepinput{display:flex;align-items:center;gap:4px;font-size:10px;white-space:nowrap}.stepinput input{width:47px;border:1px solid var(--ink);background:white;border-radius:0;height:30px;padding:3px 4px;font-size:11px}.stepinput span{color:var(--muted)}#speed{font-size:10px;border:0;background:transparent;max-width:65px}.tabs{display:flex;border-bottom:3px solid var(--ink);height:56px}.tabs button{border:0;border-right:1px solid #d8d7cf;flex:1;font-size:11px;font-weight:650}.tabs button:last-child{border-right:0}.tabs button[aria-selected=true]{background:var(--blue)}.tabs span{font-size:9px;background:#fff8;padding:1px 4px;border-radius:0}.panel{height:517px;overflow:auto;padding:19px 18px;scrollbar-width:thin}.module-label{color:var(--muted);display:flex;justify-content:space-between;gap:8px;font-size:8px}.saved{font-weight:500;letter-spacing:0;color:#598051}h2{font-family:Outfit,Arial,sans-serif;font-size:22px;letter-spacing:-.65px;line-height:1.15;margin:10px 0}h2 span{font-size:13px;color:var(--muted);font-family:Outfit,Arial,sans-serif;letter-spacing:0;font-weight:400}.panel>p{font-size:11px;color:var(--muted);line-height:1.7}.progress{height:5px;border-radius:0;margin-top:15px;background:#e9e5d9;overflow:hidden}.progress i{display:block;height:100%;width:100%;background:var(--ink)}.progress-meta{display:flex;justify-content:space-between;gap:8px;margin-top:7px;font-size:9px;color:var(--muted)}.progress-meta a{font-weight:650;color:var(--ink);text-decoration:none}.try-step{width:100%;border:2px solid var(--ink);background:var(--yellow);border-radius:0;margin:15px 0 3px;padding:9px;font-size:10px;font-weight:650;box-shadow:3px 3px var(--ink)}.part-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:19px;margin-bottom:9px}.part-heading h3{font-size:11px}.part-heading>span{font-size:9px;color:var(--muted)}#parts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.part{background:white;border:1px solid #dedbd0;border-radius:0;padding:6px;text-align:center}.part img{width:100%;height:42px;object-fit:contain}.numbers{font-size:10px;font-weight:650}.numbers span{font-weight:400;color:var(--muted)}.part .color{font-size:8px;color:var(--muted);margin-top:2px}.assembly-label{grid-column:1/-1;font-size:11px;line-height:1.65;color:var(--muted);padding:11px;background:#ffdc8b;border-radius:0}.view-options{display:grid;grid-template-columns:1fr;gap:6px;margin-top:18px}.view-options button{text-align:left;border:1px solid var(--ink);border-radius:0;padding:7px 8px;font-size:10px;background:white}.view-options button[aria-pressed=true]{background:var(--yellow);border-color:var(--ink)}.check{display:inline-block;width:13px;font-weight:700}.panel>.legend,.panel>.module-note{font-size:9px;margin-top:12px;line-height:1.7}.module-note{border-top:1px solid #d8d7cf;padding-top:11px}.search-label{display:block;font-size:10px;font-weight:650;margin-top:19px}#part-search{display:block;width:100%;padding:10px;border:1px solid #aaa79b;background:white;border-radius:0;margin:6px 0 12px;font-size:11px}.inventory-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #e2ded1}.inventory-row img{width:51px;height:43px;object-fit:contain;background:white;border:1px solid #e2ded1;border-radius:0}.inventory-row div{min-width:0;flex:1}.inventory-row strong{display:block;font-size:11px}.inventory-row small{display:block;color:var(--muted);font-size:9px}.inventory-row b{font-size:12px}#inventory>p{font-size:11px;color:var(--muted)}.guide-card{display:grid;gap:7px;margin:17px 0;padding:16px;background:#fe90e8;border:2px solid var(--ink);border-radius:0}.guide-icon{font:700 28px Outfit,Arial,sans-serif}.guide-card strong{font-size:15px}.guide-card>span:not(.guide-icon){font-size:10px;color:var(--muted)}.primary-link{margin-top:7px;padding:9px 10px;text-align:center;background:var(--ink);color:white;border-radius:0;font-size:10px;text-decoration:none;font-weight:650}.panel ol{padding-left:16px;color:var(--muted);font-size:11px;line-height:1.7}.panel li{margin:8px 0}footer{display:flex;justify-content:space-between;gap:16px;padding:15px 20px;border-top:3px solid var(--ink);color:var(--muted);font-size:8px}footer span:last-child{font-weight:400;letter-spacing:0}@media(min-width:1400px){#viewport{height:540px}.panel{height:597px}}@media(max-width:760px){.project-header{padding:19px 16px;gap:17px;align-items:flex-start}.project-stats{gap:12px;padding-top:4px}.project-stats strong{font-size:19px}.project-stats div:last-child{display:none}h1{font-size:27px}.subtitle{max-width:230px;font-size:11px}main{grid-template-columns:1fr}.workspace{border-right:0;border-bottom:3px solid var(--ink)}#viewport{height:400px}.panel{height:350px}.tabs{height:44px}.chapterbar{justify-content:center;padding:10px}.transport{padding:11px 12px}#speed{display:none}.camera-tools button{padding:6px;font-size:9px}.panel{padding:18px}.view-options{grid-template-columns:1fr 1fr}footer{padding:12px 16px}footer span:last-child{display:none}}@media(max-width:380px){.project-stats{gap:8px}.project-stats strong{font-size:16px}.subtitle{max-width:190px}.chapterbar button{padding:6px 8px}#viewport{height:360px}.transport{gap:4px}.transport #play{padding:0 7px}.stepinput input{width:42px}.stepinput{font-size:9px}}

/* Shared BlockFrame detail: square forms, heavy dividers, pastel surfaces. */
.eyebrow,.module-label,footer,.project-stats span{font-family:Outfit,Arial,sans-serif}.tabs button[aria-selected=true]{box-shadow:inset 0 -3px var(--ink)}.primary-link{border:2px solid var(--ink);box-shadow:3px 3px var(--ink);background:var(--yellow);color:var(--ink)}.guide-card{border-width:3px}.camera-tools{box-shadow:3px 3px var(--ink)}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}

/* The homepage shows just the finished sculpture; the full explorer is unchanged. */
html.showcase, .showcase body { height:100%; overflow:hidden; background:transparent; }
.showcase .project-header,.showcase .chapterbar,.showcase .transport,.showcase aside,.showcase footer,.showcase .camera-tools,.showcase .viewlabel,.showcase #step-watermark,.showcase .orbit-hint { display:none!important; }
.showcase main { display:block; height:100%; }
.showcase .workspace { height:100%; border:0; }
.showcase #viewport { height:100%; min-height:0; background:transparent; }
.showcase #viewport canvas:focus-visible { outline:3px solid #000; outline-offset:-6px; }

/* Match the app when this saved instruction viewer is opened directly. */
:root{--ink:#2c2c2c;--paper:#ffffff;--blue:#f8e4df;--yellow:#fbefc7;--muted:#626262;--line:#d0d0d0;--line-soft:#e8e8e8;--chrome:#f7f7f7;--action:#a51d27}
body{font-family:Outfit,Arial,sans-serif}h1,h2,h3,.project-stats strong{font-family:Outfit,Arial,sans-serif;font-weight:700}
.project-header{border-bottom:1px solid var(--line);background:var(--chrome)}.workspace{border-right:1px solid var(--line)}
.eyebrow,.module-label,footer,.project-stats span{font-family:Outfit,Arial,sans-serif}.chapterbar{border-color:var(--line-soft)}
.chapterbar button,.camera-tools,.camera-tools button,.transport button,.stepinput input,.view-options button,#part-search,.part,.inventory-row img{border-radius:4px}
.chapterbar .current{background:var(--blue);border-color:#a21b25;box-shadow:none;color:var(--action)}
#viewport{background:var(--paper)}.camera-tools{background:var(--chrome);border-color:var(--line);box-shadow:0 2px 0 #e2e2e2}
.transport,.tabs{background:var(--chrome);border-color:var(--line-soft)}.transport button,.view-options button,.stepinput input{border:1px solid var(--line)}
.transport #play,.try-step,.primary-link{background:#c91c28;color:#fffefa;border:1px solid #a21b25;border-radius:4px;box-shadow:0 2px 0 #8f1520}
.tabs{border-bottom:1px solid var(--line)}.tabs button[aria-selected=true]{box-shadow:inset 0 -2px #a21b25}
.view-options button[aria-pressed=true]{background:var(--blue);border-color:#a21b25}.guide-card,.assembly-label{background:var(--yellow);border:1px solid #d8cda5;border-radius:5px}
.part{border-color:var(--line-soft)}.progress i{background:var(--action)}#scrubber{accent-color:var(--action)}
footer{border-top:1px solid var(--line-soft);background:var(--chrome)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--action);outline-offset:3px}
.showcase #viewport canvas:focus-visible{outline-color:var(--action)}
@media(max-width:760px){.workspace{border-right:0;border-bottom:1px solid var(--line)}}
