#root{max-width:980px;padding-bottom:calc(120px + env(safe-area-inset-bottom));margin:0 auto}.demo-banner{text-align:center;color:var(--muted);padding:6px 16px;font-size:.75rem}.demo-banner a{color:var(--accent);font-weight:600}.top{z-index:15;border-radius:var(--radius-lg);gap:10px;margin:0 12px;padding:12px;display:grid;position:sticky;top:8px}.top-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand>div{min-width:0}.greeting{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.brand-name{letter-spacing:-.02em;color:var(--accent);white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;font-weight:800;overflow:hidden}.logo{background:var(--primary);width:44px;height:44px;color:var(--primary-text);box-shadow:0 6px 16px -6px var(--primary);border-radius:16px;flex:none;place-items:center;font-weight:800;display:grid}.icon-btn{cursor:pointer;width:48px;height:48px;color:var(--text);border-radius:18px;flex:none;place-items:center;font-size:1.3rem;display:grid}.badge{background:var(--accent);min-width:20px;height:20px;color:var(--bg);z-index:2;border-radius:999px;place-items:center;padding:0 5px;font-size:.7rem;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.search{border-radius:999px;align-items:center;gap:8px;padding:0 14px;display:flex}.search input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:12px 0;font-size:1rem}.search:focus-within{outline:2px solid var(--primary);outline-offset:1px}.bento{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px 12px 4px;display:grid}.tile{border-radius:var(--radius);padding:14px;overflow:hidden}.tile-hero{grid-column:span 2;align-items:flex-end;min-height:340px;padding:0;display:flex}.tile-hero-media{z-index:-1;position:absolute;inset:0}.tile-hero-media img{object-fit:cover;width:100%;height:100%}.tile-hero-media.placeholder{background:radial-gradient(90% 80% at 85% 20%, color-mix(in srgb, var(--primary) 55%, transparent), transparent 70%), radial-gradient(60% 60% at 10% 100%, color-mix(in srgb, var(--blob-b) 35%, transparent), transparent 70%);place-items:start end;padding:20px;font-size:5.5rem;display:grid}.tile-hero-body{background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--bg) 70%, transparent) 45%);gap:10px;width:100%;padding:20px;display:grid}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:.7rem;font-weight:700}.hero-title{letter-spacing:-.035em;font-size:clamp(1.9rem,8.5vw,2.8rem);font-weight:800;line-height:1.02}.hero-sub{color:var(--muted);max-width:34ch;font-size:.92rem;line-height:1.45}.tile-small{align-content:start;gap:4px;font-size:.9rem;display:grid}.tile-icon{background:var(--soft);border-radius:12px;place-items:center;width:38px;height:38px;margin-bottom:4px;font-size:1.2rem;display:grid}.tile-info{color:var(--muted);align-content:center;gap:6px;font-size:.8rem;display:grid}.tile-promo{grid-column:span 2;grid-template-columns:1fr 120px;align-items:center;gap:12px;display:grid}.tile-promo-body{justify-items:start;gap:6px;display:grid}.promo-title{letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.tile-promo-media{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--soft);place-items:center;font-size:3rem;display:grid;overflow:hidden}.tile-promo-media img{object-fit:cover;width:100%;height:100%}@media (width>=760px){.bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(130px,auto)}.tile-hero{grid-row:span 2}.tile-promo{grid-column:span 4}}.anchor{scroll-margin-top:150px}.rail{scrollbar-width:none;scroll-snap-type:x proximity;gap:14px;padding:18px 16px 6px;display:flex;overflow-x:auto}.rail-item{color:var(--muted);cursor:pointer;scroll-snap-align:start;background:0 0;border:0;flex:none;justify-items:center;gap:6px;padding:0;font-size:.78rem;font-weight:600;display:grid}.rail-media{border-radius:50%;place-items:center;width:64px;height:64px;font-size:1.7rem;transition:transform .2s;display:grid;overflow:hidden}.rail-media img{object-fit:cover;width:100%;height:100%}.rail-item.active{color:var(--accent)}.rail-item.active .rail-media{outline:2px solid var(--primary);outline-offset:2px;transform:translateY(-2px)}.block{padding:18px 12px 0}.block-title{letter-spacing:-.02em;margin:0 4px 12px;font-size:1.15rem;font-weight:800}.result-count{color:var(--muted);padding:16px 16px 0;font-size:.85rem}.h-rail{scrollbar-width:none;scroll-snap-type:x mandatory;gap:10px;margin:0 -12px;padding:2px 12px 12px;display:flex;overflow-x:auto}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width>=640px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=880px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.card{border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.card-rail{scroll-snap-align:start;flex:none;width:min(44vw,190px)}.card-rail .card-media{aspect-ratio:4/3;font-size:2.4rem}.card-media-wrap{padding:8px 8px 0;position:relative}.card-media{aspect-ratio:1;border-radius:var(--radius-sm);place-items:center;font-size:3rem;display:grid;overflow:hidden}.card-media img{object-fit:cover;width:100%;height:100%}.placeholder{background:radial-gradient(70% 70% at 30% 20%, #ffffff8c, transparent 70%), color-mix(in srgb, var(--primary) 16%, var(--soft))}.badge-tag{letter-spacing:.03em;text-transform:uppercase;background:var(--accent);color:var(--bg);border-radius:999px;padding:4px 9px;font-size:.66rem;font-weight:700;position:absolute;top:16px;left:16px}.card-body{flex-direction:column;flex:1;gap:6px;padding:10px 12px 12px;display:flex}.card-title{letter-spacing:-.01em;font-size:.9rem;font-weight:700;line-height:1.25}.card-desc{color:var(--muted);font-size:.75rem}.card-select{width:100%;color:var(--text);background:var(--field-bg);border:1px solid var(--glass-border);border-radius:10px;padding:7px 8px;font-size:.78rem}.card-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:4px;display:flex}.card-price{letter-spacing:-.02em;font-size:1.05rem;font-weight:800;line-height:1.1;display:grid}.card-price span{color:var(--muted);font-size:.7rem;font-weight:500}.add-btn{background:var(--primary);width:38px;height:38px;color:var(--primary-text);cursor:pointer;box-shadow:0 6px 14px -6px var(--primary);border:0;border-radius:50%;flex:none;font-size:1.4rem;font-weight:600;line-height:1}.add-btn.pulse{animation:.35s ease-out pop}@keyframes pop{40%{transform:scale(1.25)}}.bottom-nav{z-index:18;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));border-radius:26px;grid-template-columns:1fr 1fr auto 1fr 1fr;align-items:end;width:min(560px,100% - 24px);padding:8px 10px;display:grid;position:fixed;transform:translate(-50%)}.nav-item{color:var(--muted);cursor:pointer;background:0 0;border:0;justify-items:center;gap:2px;padding:4px 0;font-size:.68rem;font-weight:600;text-decoration:none;display:grid}.nav-item>span{font-size:1.2rem}.nav-item.disabled{opacity:.4;cursor:default}.nav-fab{border:4px solid var(--bg);background:var(--primary);cursor:pointer;width:60px;height:60px;box-shadow:0 10px 24px -8px var(--primary);border-radius:50%;place-items:center;margin:-30px 8px 0;font-size:1.5rem;display:grid;position:relative}.toast{left:50%;bottom:calc(96px + env(safe-area-inset-bottom));z-index:19;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:calc(100% - 32px);padding:9px 16px;font-size:.85rem;font-weight:600;animation:.25s ease-out rise;position:fixed;overflow:hidden;transform:translate(-50%)}@keyframes rise{0%{opacity:0;transform:translate(-50%,8px)}}.sheet-backdrop{z-index:30;background:#0000004d;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:min(640px,100%);max-height:92dvh;padding:20px 16px calc(24px + env(safe-area-inset-bottom));border-radius:30px 30px 0 0;gap:14px;animation:.28s cubic-bezier(.2,.8,.2,1) sheet-in;display:grid;overflow-y:auto}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.sheet-header{justify-content:space-between;align-items:center;display:flex}.sheet-header h2{letter-spacing:-.02em;font-size:1.4rem;font-weight:800}.lines{gap:12px;margin:0;padding:0;list-style:none;display:grid}.line{border-bottom:1px solid var(--glass-border);grid-template-columns:56px 1fr auto;align-items:start;gap:12px;padding-bottom:12px;display:grid}.line-media{border-radius:14px;place-items:center;width:56px;height:56px;font-size:1.8rem;display:grid;overflow:hidden}.line-media img{object-fit:cover;width:100%;height:100%}.line-info{gap:3px;min-width:0;font-size:.88rem;display:grid}.line-price{color:var(--accent);font-size:.82rem;font-weight:700}.line-controls{align-items:center;gap:12px;margin-top:4px;display:flex}.line-subtotal{white-space:nowrap;font-size:.95rem}.stepper{align-items:center;gap:4px;display:inline-flex}.stepper button{border:1px solid var(--glass-border);background:var(--field-bg);width:28px;height:28px;color:var(--text);cursor:pointer;border-radius:50%;line-height:1}.stepper input{text-align:center;width:36px;height:28px;color:var(--text);-moz-appearance:textfield;background:0 0;border:0}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}.total{justify-content:space-between;align-items:baseline;display:flex}.total strong{letter-spacing:-.03em;color:var(--accent);font-size:1.6rem;font-weight:800}.checkout{gap:12px;display:grid}.field{border:0;gap:6px;margin:0;padding:0;font-size:.88rem;display:grid}.field input,.field textarea{width:100%;color:var(--text);background:var(--field-bg);border:1px solid var(--glass-border);border-radius:14px;padding:11px 14px;font-size:1rem}.field legend{margin-bottom:6px;padding:0}.radio{align-items:center;gap:8px;display:flex}.field .radio input{width:20px;height:20px;accent-color:var(--primary);margin:0;padding:0}.errors{color:var(--danger);border:1px solid;border-radius:14px;margin:0;padding:10px 12px 10px 28px;font-size:.85rem}.disclaimer{color:var(--muted);text-align:center;font-size:.76rem}.sheet-actions{gap:4px;display:grid}.empty{text-align:center;color:var(--muted);padding:32px 16px}.foot{text-align:center;padding:28px 16px 8px}.sent-notice{background:color-mix(in srgb, var(--wsp) 14%, transparent);border:1px solid color-mix(in srgb, var(--wsp) 40%, transparent);border-radius:14px;padding:10px 14px;font-size:.85rem;font-weight:600}
