.bld{max-width:1360px;margin:0 auto;padding:24px var(--gutter,24px) 0;display:flex;flex-direction:column;gap:28px;min-width:0}.bld-top{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}@media (min-width:1024px){.bld-top{grid-template-columns:minmax(0,1fr) 380px;gap:24px}}.bld-stage{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(28,36,32,.1);background:radial-gradient(120% 95% at 50% 22%,#fbf9f4 0,#efe9df 58%,#e2d9cb 100%);height:clamp(340px,82vw,460px)}@media (min-width:1024px){.bld-stage{height:clamp(520px,62vh,640px)}}.bld-stage-head{position:absolute;top:14px;left:18px;right:18px;z-index:2;display:flex;flex-direction:column;gap:2px;pointer-events:none}.bld-canvas{position:relative;flex:1 1;min-height:0}.canvas-wrap,.viewer-skeleton{position:absolute;inset:0}.canvas-wrap canvas{touch-action:none;display:block}.viewer-skeleton{display:grid;place-items:center;color:var(--muted);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase}.viewer-skeleton span{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.viewer-hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);background:var(--forest);color:var(--ivory);padding:8px 16px;font-size:.8rem;border:1px solid var(--line-gold);white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;z-index:2}.viewer-hint .link{color:var(--gold-2)}.bld-tools{flex:none;display:flex;justify-content:center;flex-wrap:wrap;gap:4px;padding:10px;background:rgba(3,28,23,.92)}.tool{border:0;background:transparent;color:var(--ivory);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;border-radius:20px;cursor:pointer;white-space:nowrap;min-height:36px;transition:background .2s}.tool:hover{background:rgba(255,255,255,.1)}.tool[aria-pressed=true]{background:var(--gold);color:var(--forest)}.tool:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.c3d-label{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(6,45,36,.85);color:var(--gold-2);font:500 11px/1 var(--font-sans);border:1px solid rgba(200,164,107,.6)}.fallback-plan{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;gap:12px}.fallback-plan svg{width:min(100%,640px);height:auto;max-height:100%}.bld-panel{background:var(--card,#fffdf8);border:1px solid rgba(28,36,32,.1);box-shadow:0 18px 36px -30px rgba(3,28,23,.45);display:flex;flex-direction:column;scroll-margin-top:calc(var(--header-h, 72px) + 12px)}@media (max-width:1023px){.bld-panel .comps{max-height:min(60vh,460px);overflow-y:auto;overscroll-behavior:contain}}@media (min-width:1024px){.bld-panel{height:clamp(520px,62vh,640px)}.bld-panel .comps{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain}}.bld-panel-sec{padding:16px 18px;border-bottom:1px solid var(--line)}.bld-panel-note{padding:10px 18px 14px;margin:0;border-top:1px solid var(--line)}.bld-h2{font-size:1.5rem;margin:0}.size-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px;margin-top:8px}.size-opt{border:1px solid var(--line);background:#fffdf8;padding:10px 6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;transition:background .25s,color .25s,border-color .25s;border-radius:var(--radius)}.size-opt .serif{font-size:1.15rem}.size-opt .dims{font-size:.64rem;color:var(--muted);letter-spacing:.02em;text-align:center}.size-opt[aria-checked=true]{background:var(--emerald);color:var(--ivory);border-color:var(--emerald)}.size-opt[aria-checked=true] .dims{color:var(--gold-2)}.progress{margin-top:10px}.bar{height:3px;background:rgba(28,36,32,.12);margin-top:6px;overflow:hidden}.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--gold-deep),var(--gold));transition:width .4s ease}.comps{list-style:none;margin:0;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.comp{display:grid;grid-template-columns:28px minmax(0,1fr);grid-column-gap:10px;column-gap:10px;grid-row-gap:8px;row-gap:8px;align-items:center;padding:10px;background:#fffdf8;border:1px solid var(--line);border-radius:var(--radius);transition:border-color .2s,background .2s}.comp.hover,.comp.selected{border-color:var(--gold)}.comp.selected{background:#fbf4e6}.comp.valid{border-style:dashed;border-color:var(--gold)}.comp.invalid{opacity:.55}.comp .code{width:28px;height:28px;border-radius:50%;background:var(--emerald);color:var(--gold-2);display:grid;place-items:center;font-size:.78rem}.c-body,.c-ing{min-width:0}.c-ing{display:flex;align-items:center;gap:8px;cursor:-webkit-grab;cursor:grab;touch-action:pan-y;-moz-user-select:none;user-select:none;-webkit-user-select:none}.c-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.c-actions{grid-column:2;display:flex;gap:6px;align-items:center}.c-actions .select.mini{flex:1 1;width:auto;min-height:36px;padding:6px 8px;font-size:.82rem}.c-actions .icon-btn{width:36px;height:36px;flex:none}.c-actions .btn.small{white-space:nowrap;flex:1 1}.bld-treats{display:flex;flex-direction:column;gap:14px}.bld-treats-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.bld-treats-head p{margin:4px 0 0}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fffdf8;padding:0 12px;min-height:44px;width:min(100%,320px)}.search input{border:0;outline:0;background:transparent;flex:1 1;min-height:42px;min-width:0}.search:focus-within{border-color:var(--gold)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{border:1px solid var(--line);background:transparent;padding:6px 14px;border-radius:20px;font-size:.74rem;cursor:pointer;transition:background .2s,color .2s}.chips button[aria-selected=true]{background:var(--emerald);color:var(--ivory);border-color:var(--emerald)}.bld-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));grid-gap:14px;gap:14px}@media (max-width:600px){.bld-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.bld-grid>li{display:flex;min-width:0}.bld-card{width:100%;display:flex;flex-direction:column;text-align:left;padding:0;overflow:hidden;background:var(--card,#fffdf8);border:1px solid rgba(28,36,32,.12);border-radius:var(--radius);cursor:-webkit-grab;cursor:grab;transition:border-color .2s,box-shadow .2s;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y;color:inherit;font:inherit}.bld-card:hover{border-color:var(--line-gold);box-shadow:0 10px 22px -16px rgba(3,28,23,.5)}.bld-card[aria-pressed=true]{border-color:var(--gold);box-shadow:0 0 0 2px var(--ring,rgba(200,164,107,.35))}.bld-card:disabled{opacity:.45;cursor:not-allowed}.bld-card .swatch{position:relative;display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:0;overflow:hidden;flex:none}.bld-card-body{display:flex;flex-direction:column;gap:2px;padding:10px 12px 12px}.bld-card-name{font-family:var(--font-serif);font-size:1.1rem;line-height:1.2}.bld-card-meta,.bld-card-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bld-card-meta{font-size:.7rem;color:var(--muted);letter-spacing:.06em}.bld-empty{padding:16px;grid-column:1/-1}.tiny-note{font-size:.72rem;color:var(--muted);margin:0}.bld-actions{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;margin:0 calc(-1 * var(--gutter, 24px));display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px var(--gutter,24px) calc(12px + env(safe-area-inset-bottom));background:var(--emerald);color:var(--ivory)}.bld-actions-status{color:var(--gold-2);letter-spacing:.04em}.bld-actions-btns{gap:8px;flex-wrap:nowrap}.bld-actions .btn.ghost-light{color:var(--ivory)}@media (max-width:600px){.bld-actions{padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.bld-actions-status{display:none}.bld-actions-btns{flex:1 1}.bld-actions-btns .btn{flex:1 1;padding:0 10px;min-height:46px}.bld-tools{gap:2px;padding:8px 6px}.tool{padding:8px 9px;letter-spacing:.08em;font-size:.66rem}.search{width:100%}}html:has(.bld){scroll-padding-bottom:96px}.drag-ghost{position:fixed;left:0;top:0;z-index:400;pointer-events:none;display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;background:var(--forest);color:var(--ivory);border:1px solid var(--gold);box-shadow:var(--shadow);margin:-24px 0 0 -24px;font-family:var(--font-serif);font-size:1.05rem;will-change:transform}body.dragging{cursor:-webkit-grabbing;cursor:grabbing;-moz-user-select:none;user-select:none;-webkit-user-select:none}