.builder{min-height:100dvh;padding-bottom:calc(96px + env(safe-area-inset-bottom));background:var(--bg);color:var(--text-primary)}.builder-header{z-index:20;padding-top:env(safe-area-inset-top);background:var(--nav-bg);-webkit-backdrop-filter:saturate(160%)blur(12px);backdrop-filter:saturate(160%)blur(12px);position:sticky;top:0}.builder-header-inner{align-items:center;height:52px;padding:0 14px;display:flex}.builder-back{justify-content:center;align-items:center;width:32px;height:44px;font-size:20px;text-decoration:none;display:inline-flex}.builder-title{text-align:center;font-family:var(--font-chrome);color:var(--text-primary);flex:1;font-size:15px;font-weight:600}.builder-clear{min-width:44px;min-height:44px;font-family:var(--font-chrome);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0 8px;font-size:12px;font-weight:500}.builder-preview{top:calc(52px + env(safe-area-inset-top));z-index:10;background-color:var(--surface-raised);background-image:radial-gradient(var(--dot-grid) 1px, transparent 1px);border-bottom:var(--hairline) solid var(--border);background-size:22px 22px;padding:20px 22px 14px;position:sticky}.stack-preview{flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;min-height:90px;display:flex}.stack-brick{width:var(--brick-w);background-color:var(--brick-color);height:15px;transform:rotate(var(--brick-rot));animation:brick-land var(--duration-land) var(--ease-land) both;border-radius:7px}.stack-brick-base{height:20px;box-shadow:var(--shadow-brick-base);border-radius:10px}.stack-brick:first-child{border-radius:10px;height:20px}@keyframes brick-land{0%{opacity:0;transform:translateY(6px) rotate(var(--brick-rot))}to{opacity:1;transform:translateY(0) rotate(var(--brick-rot))}}.preview-meta{border-top:var(--hairline) solid var(--border);justify-content:space-between;align-items:baseline;margin-top:14px;padding-top:10px;display:flex}.preview-count{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-secondary);font-size:11px}.preview-total{font-family:var(--font-content);color:var(--text-primary);font-size:17px;font-style:italic;font-weight:600}.ing-group{padding:20px 22px 8px}.ing-group-head{align-items:baseline;gap:10px;margin:0 0 12px;display:flex}.ing-group-label{font-family:var(--font-content);color:var(--text-primary);font-size:19px;font-style:italic;font-weight:600}.ing-group-note{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-tertiary);font-size:11px}.ing-pills{flex-wrap:wrap;gap:8px;display:flex}.pill{border:var(--hairline) solid var(--border-strong);border-radius:var(--radius-pill);background-color:var(--surface);cursor:pointer;height:44px;transition:background-color var(--duration-state) var(--ease-standard), border-color var(--duration-state) var(--ease-standard);align-items:center;gap:8px;padding:0 14px 0 11px;display:inline-flex}.pill-on{background-color:var(--primary-tint);border-color:var(--primary-tint-border)}.pill-swatch{background-color:var(--brick-color);border-radius:3px;width:12px;height:12px}.pill-name{font-family:var(--font-chrome);color:var(--text-primary);font-size:13px;font-weight:500}.pill-price{font-family:var(--font-chrome);color:var(--text-tertiary);font-size:12px;font-weight:400}.pill-check{font-family:var(--font-chrome);color:var(--primary-deep);font-size:12px;font-weight:600}.builder-dock{z-index:30;padding:14px 22px 10px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:var(--nav-bg);-webkit-backdrop-filter:saturate(160%)blur(12px);backdrop-filter:saturate(160%)blur(12px);border-top:var(--hairline) solid var(--border);align-items:center;gap:14px;display:flex;position:fixed;bottom:0;left:0;right:0}.dock-total{flex-direction:column;display:flex}.dock-total-cap{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-secondary);font-size:11px}.dock-total-val{font-family:var(--font-content);color:var(--text-primary);font-size:26px;font-style:italic;font-weight:600}.dock-add{border-radius:10px;flex:1.2;min-height:52px;margin-left:auto;font-size:15px}.builder a.builder-back{color:var(--text-primary)}.builder .builder-back:focus-visible,.builder .builder-clear:focus-visible,.builder .pill:focus-visible,.builder .dock-add:focus-visible{box-shadow:var(--focus-ring-shadow);outline:none}@media (prefers-reduced-motion:reduce){.stack-brick{animation:none}}@media (min-width:640px){.builder{max-width:560px;margin:0 auto}.builder-dock{padding-inline:max(22px,50% - 280px)}}
