/* Phone application canvas. The desktop viewport is only a preview host. */
:root{--app-width:480px;--nav-height:64px;--app-bar:56px;--motion-fast:120ms;--motion-base:200ms;--motion-medium:280ms;--motion-slow:400ms}
html{background:#d8dbd1;scroll-padding-top:72px;scroll-padding-bottom:170px}
body{max-width:var(--app-width);min-height:100dvh;margin-inline:auto;font-size:14px;background:#f3efE3;box-shadow:0 0 70px #234e4314}
.app-header{height:calc(var(--app-bar) + env(safe-area-inset-top));position:sticky;top:0;z-index:20;margin:0;padding:env(safe-area-inset-top) 16px 0;border:0;background:#f3efe3;gap:8px;max-width:none}
.brand{display:flex;align-items:center;min-height:44px}.brand img{width:144px;height:44px;object-fit:contain}.app-tools{display:flex;gap:2px;margin-left:auto}
.app-tools a,.app-back{display:flex;align-items:center;justify-content:center;position:relative;width:44px;height:44px;text-decoration:none;border-radius:50%}.app-tools svg,.app-back svg{width:22px;height:22px}
.app-back[hidden],.app-badge[hidden]{display:none}#app-title{display:none;font-size:16px;font-weight:600}
body[data-focus-title=true] .brand{display:none}body[data-focus-title=true] #app-title{display:block}.app-badge{position:absolute;right:2px;top:2px;min-width:16px;height:16px;padding:0 4px;border-radius:10px;background:var(--green);color:var(--white);font-size:10px;line-height:16px;text-align:center}
main{margin:0;padding:12px 16px 16px;min-height:calc(100dvh - 180px);max-width:none}
h1{font-size:25px;line-height:1.4;letter-spacing:-.025em}h2{font-size:19px}h3{font-size:16px}.lead{font-size:14px}.small{font-size:12px}
.primary,.secondary{font-size:14px;border-radius:12px;min-height:48px;padding:12px 18px;gap:10px}.button-icon{width:22px;height:22px}.button-icon svg{width:17px;height:17px}
.store-context{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 0 18px}.store-caption{font-size:11px;color:var(--muted)}.store-context h1{font-size:22px;margin:5px 0 0;text-wrap:initial}.pickup-tag{white-space:nowrap;font-size:11px;background:#e4e9dd;color:var(--green);padding:6px 10px;border-radius:7px}
.scent-invite{min-height:90px;height:90px;border-radius:14px;padding:14px 18px;gap:10px;background:var(--green)}.invite-copy{gap:2px}.invite-copy strong{font-size:15px;line-height:1.4}.invite-copy>span{font-size:10px}.invite-copy .invite-link{font-size:10px;margin-top:4px;gap:14px}.invite-link>span{font-size:17px}.card-fan{min-width:72px;height:66px}.card-fan img{width:46px;height:62px}.fan-front{top:5px;left:1px}.fan-back{top:-4px;right:3px}
.shelf-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0 0}.shelf-heading h2{font-size:18px;margin:0}.shelf-heading>span{font-size:11px;color:var(--muted)}
.filters{position:sticky!important;top:var(--app-bar);z-index:10;display:flex;overflow-x:auto;border:0;background:#f3efe3;gap:8px;padding:10px 16px 12px;margin:0 -16px 6px;scroll-padding-inline:16px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.chip{min-height:44px;padding:9px 14px;background:#e8e6d9;border-radius:22px;font-size:12px;line-height:1.2}.chip.active{background:var(--green);color:var(--white);font-weight:500}.chip.active:after,.filter-indicator{display:none!important}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product{border-radius:14px;background:#fcfaf3;padding:5px;box-shadow:0 3px 8px #234e4305}.product .photo{border-radius:10px;aspect-ratio:1.12}.product .photo img{padding:8px 0 14px}.product .photo:before{right:10px;bottom:10px;width:23px;height:23px;border-width:4px;border-radius:0 0 8px 0;opacity:.6}.shelf-number{font-size:10px;top:8px;left:9px}.product-info{padding:9px 7px 6px}.product-meta{margin:0 0 5px}.product-meta .taste-label{display:inline;font-size:10px;padding:0;background:none;color:var(--muted)}.product-meta>span:last-child{display:none}.product h3{font-size:15px;line-height:1.5;text-wrap:initial}.product-bottom{display:flex;margin-top:5px;gap:4px}.product .price{font-size:19px}.quick-pick{border-radius:50%;width:44px;min-width:44px;height:44px;padding:0;gap:0;background:var(--green);color:var(--white)}.quick-pick span{display:none}.quick-pick svg{width:18px;height:18px}.sold{font-size:10px;left:8px;bottom:8px}
.bottom-nav{display:flex;position:fixed;z-index:22;bottom:0;left:50%;right:auto;transform:translateX(-50%);width:min(100%,var(--app-width));height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:4px 12px calc(4px + env(safe-area-inset-bottom));background:#fcfaf3;border:0;box-shadow:0 -6px 24px #234e4308}
.bottom-nav a{position:relative;display:flex;flex:1;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-height:52px;font-size:11px;text-decoration:none;color:var(--muted)}.bottom-nav svg{width:22px;height:22px;position:relative;z-index:1}.bottom-nav a[aria-current]{color:var(--green);font-weight:600}.bottom-nav a[aria-current]:after{display:none}.bottom-nav a[aria-current]:before{content:'';position:absolute;width:48px;height:29px;border-radius:16px;top:2px;background:#e8eddf}
.focused .bottom-nav{display:none}.site-foot{margin:12px 16px 0;max-width:none;padding:0 0 calc(var(--nav-height) + 24px + env(safe-area-inset-bottom));border:0;font-size:11px}.site-foot details{border:0;padding:0;margin:0}.site-foot summary{font-size:11px;font-weight:400;text-align:center;color:var(--muted);list-style:none}.site-foot summary::-webkit-details-marker{display:none}.site-foot summary:after{content:' ＋'}.site-foot details[open] summary:after{content:' −'}.site-foot p{font-size:11px}.site-foot button{font-size:11px}
body[data-page=product] main,body[data-page=checkout] main{padding-bottom:110px}body.has-bag[data-page=bag] main{padding-bottom:105px}
body[data-page=product] .site-foot,body[data-page=checkout] .site-foot{padding-bottom:110px}body.has-bag[data-page=bag] .site-foot{padding-bottom:calc(var(--nav-height) + 110px)}
.back{min-height:44px;font-size:13px;margin:0 0 8px}body[data-page=product] main>.back,.checkout-page>.back{display:none}
.detail,.order-layout,.aroma-layout,.result-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.detail-image{aspect-ratio:1.23;border-radius:16px}.detail-image img{padding:18px 10px 34px}.detail-image:before{width:34px;height:34px;border-width:5px;right:18px;bottom:18px}.detail-image .image-caption{font-size:11px;left:12px;bottom:12px}.detail-info{padding:0}.detail-heading{flex-wrap:nowrap;align-items:center;gap:8px}.detail-heading h1{font-size:24px}.detail-heading .price{font-size:23px}.detail .lead{font-size:14px;margin:10px 0 16px}.notice{border:0;background:#eae7da;padding:12px 14px;border-radius:10px;font-size:12px;margin:16px 0}.product-notice{font-size:11px}.product-choices{background:#fcfaf3;padding:18px;border-radius:14px}.product-choices fieldset{margin-bottom:16px}.quantity-row{margin:16px 0 0;gap:12px}.quantity-row .small{font-size:10px}.quantity-row .field-label{font-size:13px}.quantity{border:0;background:#edece1;border-radius:10px}.quantity button{width:44px;min-height:44px}.quantity output{min-width:25px}.quantity-row .small{max-width:160px}.product-choices .spec{background:#f6f3e9}.spec{font-size:14px;min-height:48px;border-radius:10px}.spec.active{background:#e4eadf}.selection-mark{flex-shrink:0}
.purchase-bar,.flow-dock{position:fixed;z-index:21;left:50%;right:auto;transform:translateX(-50%);bottom:0;width:min(100%,var(--app-width));padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fcfaf3;border:0;box-shadow:0 -5px 24px #234e4309}
.purchase-inner,.flow-dock>div{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px}.purchase-inner .primary,.flow-dock .primary{flex:1;min-width:0;max-width:240px;justify-content:center}.purchase-total strong,.flow-dock strong{font-size:23px;color:var(--green);font-variant-numeric:tabular-nums;display:block}.purchase-total small,.flow-dock small{font-size:10px;color:var(--muted);display:block}.purchase-errors .error,.flow-dock .error{font-size:12px;margin:0 0 8px;padding:8px 12px}.bag-page .flow-dock{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:12px}
.added-note{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:4px;background:#e3eadc;border-radius:9px;padding:8px 12px;font-size:12px;margin:14px 0 4px;color:var(--green)}.added-note a{min-height:44px;display:inline-flex;align-items:center;font-weight:600;text-decoration:none}.demo-note{font-size:11px;margin-top:12px}
.journey{font-size:10px;margin:4px 0 20px;gap:0}.journey li{gap:5px}.journey li:not(:last-child):after{margin:0 6px}.step-dot{width:22px;height:22px;font-size:10px}.bag-page>.journey{display:none}.flow-heading{display:block;margin:4px 0 18px}.flow-heading h1{font-size:24px}.flow-heading p{font-size:12px;margin-top:6px}.order-layout{gap:18px}.bag-items{border:0}.bag-line{grid-template-columns:82px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid #dddccd}.bag-photo{border-radius:10px}.bag-photo img{height:90px;padding:3px}.bag-line h3{font-size:15px}.bag-line p{font-size:11px;margin:3px 0 6px}.bag-line-end{grid-column:2;flex-direction:row;align-items:center;justify-content:space-between;margin-top:-10px}.bag-line-end strong{font-size:15px}.bag-line-end .text-button{font-size:11px}.bag-item-info .quantity{width:max-content}.continue-link{margin-top:4px}.order-summary{padding:18px;border-radius:14px;box-shadow:none}.order-summary:after{display:none}.order-summary h2{font-size:16px;margin:0 0 14px}.check-label{font-size:12px;padding:10px;background:#eeeee3}.check-label small{font-size:10px}.amounts{margin:16px 0 0;border:0;padding:0}.amounts>div{font-size:12px;margin:8px 0}.amounts .total{font-size:18px;border-color:#dedfd2;padding-top:12px;margin-top:12px}.summary-note{font-size:10px;margin-top:12px}.checkout-items p{font-size:12px}.pickup-options{background:#fcfaf3;padding:16px;border-radius:14px}.pickup-options .notice{margin:0 0 20px;font-size:11px}.pickup-options fieldset:last-child{margin-bottom:0}.checkout-date{gap:10px}.slot{gap:8px}.slot .spec{justify-content:center}.receipt{padding:22px 18px;border-top:4px solid var(--green)}.receipt h1{font-size:24px}.receipt p{font-size:12px}.actions{gap:10px;margin:20px 0}.actions>*{flex-grow:1}
dialog.quick-dialog{position:fixed;inset:auto 0 0;max-height:92dvh;width:min(100%,var(--app-width));max-width:var(--app-width);margin:0 auto;border-radius:22px 22px 0 0;padding:0 0 env(safe-area-inset-bottom);background:#f3efe3}.quick-dialog #dialog-content{display:block;min-height:0}.quick-dialog .quick-image{height:175px;border-radius:22px 22px 0 0;background-position:center}.quick-image img{height:100%;width:100%;padding:8px 48px;object-fit:contain}.quick-taste{left:18px;bottom:12px;font-size:11px}.quick-content{padding:18px 18px 10px}.quick-content h2,.quick-content .detail-heading h2{font-size:22px}.quick-content .detail-heading .price{font-size:21px}.quick-note{font-size:12px;margin:7px 0}.quick-content>.small{font-size:10px;border:0;padding:0;margin:0 0 16px}.quick-content fieldset{margin-bottom:12px}.quick-content legend{font-size:13px;margin-bottom:8px}.quick-content .quantity-row{margin:12px 0 18px}.quick-content .quantity-row .small{font-size:10px}.quick-content .purchase-inner .primary{font-size:14px;max-width:none;min-height:48px}.quick-content .purchase-total strong{font-size:21px}.quick-content>.text-button{font-size:11px;margin:4px 0 0}.quick-content .added-note{font-size:11px;margin:10px 0 0}.quick-dialog .error{font-size:12px;margin:10px 0}
.aroma-layout{gap:12px}.aroma-intro{text-align:center;padding-top:4px}.aroma-kicker{font-size:11px;color:var(--muted);letter-spacing:.12em;margin:0 0 8px}.aroma-intro h1{font-size:24px;margin:0 0 8px;max-width:none;line-height:1.4}.aroma-intro .lead{font-size:12px;margin:0;max-width:none}.aroma-deck{display:block;width:100%;padding:0;border:0;background:none;color:var(--muted);margin:6px 0 10px;overflow:hidden;border-radius:12px}.deck-cards{display:block;position:relative;height:276px;margin:0 auto;width:100%;pointer-events:none}.deck-cards img{position:absolute;width:148px;height:197px;object-fit:cover;top:36px;left:calc(50% - 74px);border-radius:4px;box-shadow:0 6px 16px #234e4321;transform-origin:50% 90%;transition:transform 720ms cubic-bezier(.22,.7,.18,1)}.deck-cards img:nth-child(1){transform:translateX(-14px) rotate(-12deg)}.deck-cards img:nth-child(2){transform:translateX(14px) rotate(12deg)}.deck-cards img:nth-child(3){transform:translateY(3px)}.aroma-deck.is-open img:nth-child(1){transform:translate(-82px,6px) rotate(-19deg);transition-delay:0ms}.aroma-deck.is-open img:nth-child(2){transform:translate(82px,6px) rotate(19deg);transition-delay:40ms}.aroma-deck.is-open img:nth-child(3){transform:translateY(-12px);transition-delay:80ms}#deck-caption{font-size:11px;display:block;padding:0 0 10px}
.selection-summary{padding:18px 94px 18px 16px;background:#e6e9dc;color:var(--green);border-radius:12px;margin-bottom:22px;min-height:103px;position:sticky;top:calc(var(--app-bar) + env(safe-area-inset-top) + 6px);z-index:8;box-shadow:0 6px 18px #234e4310;transition:background-color var(--motion-base)}.selection-summary[data-progress="2"]{background:#d7e3ce}.selection-summary>span,.selection-summary small{font-size:10px;color:var(--muted)}.selection-summary strong{font-size:14px;gap:7px;margin:4px 0}.selection-summary i{font-size:12px;color:var(--muted)}.choice-progress{position:absolute;right:15px;top:50%;transform:translateY(-50%);width:64px;height:64px}.choice-progress svg{width:64px;height:64px;transform:rotate(-90deg);fill:none;stroke:#bac9b5;stroke-width:2.5}.choice-progress .progress-arc{stroke:var(--green);stroke-linecap:round}.choice-progress>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:2px;font-size:13px;overflow:hidden}.choice-progress small{font-size:10px}.progress-number{display:inline-block;font-weight:600;font-variant-numeric:tabular-nums}
.options{gap:9px}.option{padding:14px;border-radius:11px}.option strong{font-size:14px}.option small{font-size:11px;margin-top:3px}.options .option{box-shadow:none}.options .option[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--green)}.taste-options{gap:9px}.taste-options img{height:55px}.taste-options .option{font-size:12px;padding:8px 4px 12px}.aroma-form fieldset{margin-bottom:22px}.aroma-form legend,.field>label{font-size:14px;margin-bottom:10px}.field{margin:20px 0}.field textarea{font-size:16px;min-height:82px;border-color:#d1d3c4}.field .row.small{font-size:10px;gap:10px}.aroma-form>.small{font-size:10px}.result-layout{gap:22px}.reveal-stage{max-width:320px;margin:auto}.result-layout h1{font-size:27px}.result-layout .lead{font-size:14px}.result-card{max-width:320px}.result-id{font-size:11px}.replay-button{margin:8px auto}.export-options button{padding:12px 14px}.export-options small{font-size:10px}.coupon{margin-top:20px}.state-grid{grid-template-columns:1fr}.event-list{font-size:11px}.empty{border:0;padding:48px 8px;margin:0}.empty h1{font-size:25px}.empty h2{font-size:22px}.empty p{font-size:13px}
.hero{display:flex;flex-direction:column;gap:18px}.hero>div{width:100%}.hero h1{font-size:32px;margin:0 0 12px}.hero .lead{font-size:14px;margin:0 0 14px}.hero .actions{margin:14px 0 10px}.hero .actions a{font-size:13px;padding:12px}.hero-art{height:270px}.hero-art img{top:16%}.turn{border-width:38px;bottom:12%;height:65%}.art-caption{font-size:11px;left:16px;bottom:16px}.section-head{margin-top:28px;padding-top:0;border:0;margin-bottom:16px}.section-head h2{font-size:20px}.intro-band{display:block;margin-top:24px;padding-top:24px}.intro-band h2{font-size:23px}.intro-band p{font-size:13px}
#toast{max-width:min(90vw,420px);bottom:calc(var(--nav-height) + 14px + env(safe-area-inset-bottom));font-size:12px;padding:11px 16px;z-index:50}body[data-page=product] #toast,.focused #toast{bottom:calc(94px + env(safe-area-inset-bottom))}body.has-bag[data-page=bag] #toast{bottom:calc(var(--nav-height) + 94px + env(safe-area-inset-bottom))}
/* Completion is visual only. The durable added-note and bag count carry the state. */
.completion-active{background:transparent!important;isolation:isolate;overflow:visible;opacity:1!important}.completion-bg{position:absolute;inset:0;background:var(--green);border-radius:12px;z-index:-1;pointer-events:none}.completion-check{position:absolute;width:32px;height:32px;left:calc(50% - 16px);top:calc(50% - 16px);fill:none;stroke:var(--white);stroke-width:2.2;pointer-events:none}.completion-dot{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:var(--orange);pointer-events:none}
@media(min-width:701px){body{border-inline:1px solid #cbd0c5}.filters{top:var(--app-bar)}}
@media(max-width:360px){.store-context h1{font-size:20px}.store-caption{font-size:10px}.pickup-tag{font-size:10px;padding:5px 8px}.product h3{font-size:14px}.product .price{font-size:17px}.product-info{padding-inline:5px}.scent-invite{padding:12px 14px}.invite-copy strong{font-size:14px}.card-fan{min-width:59px}.quick-dialog .quick-image{height:135px}.quick-content{padding:16px}.deck-cards{height:248px}.deck-cards img{width:130px;height:173px;left:calc(50% - 65px)}.aroma-deck.is-open img:nth-child(1){transform:translate(-62px,6px) rotate(-17deg)}.aroma-deck.is-open img:nth-child(2){transform:translate(62px,6px) rotate(17deg)}.selection-summary{padding-left:12px;padding-right:82px}.selection-summary strong{font-size:13px;gap:4px}.choice-progress{right:12px;width:58px;height:58px}.choice-progress svg{width:58px;height:58px}.detail-heading h1{font-size:22px}}
@media(prefers-reduced-motion:reduce){.deck-cards img{transition:none!important}}

.aroma-deck{background:radial-gradient(ellipse at 50% 65%,#e5e7d6 0,transparent 70%)}
.aroma-motion{display:flex;justify-content:center;margin:-4px 0 16px}.aroma-motion button{border:0;background:none;color:var(--muted);font-size:11px;min-height:36px;padding:6px 12px;text-decoration:underline;text-underline-offset:4px}
.added-note{display:flex;flex-wrap:wrap;gap:4px 12px;padding:13px 15px;background:#e1ead8;border-left:3px solid var(--green);border-radius:8px;font-size:12px}.added-note strong{display:block;width:100%;font-size:15px}.added-note a{margin-left:auto}
.activity-note{padding:12px 14px;border-radius:10px;background:#e6e9dc;font-size:12px;line-height:1.7}
.activity-gate{text-align:center;padding:20px 4px}.activity-gate h1{font-size:25px;line-height:1.45;margin:20px 0 12px}.activity-gate>p{font-size:14px;line-height:1.8}.activity-gate .small{font-size:11px}.activity-gate .primary{width:100%;margin:8px 0 12px}.activity-gate .text-button{display:flex;justify-content:center}.gate-art{height:190px;position:relative;margin:20px 0}.gate-art img{position:absolute;width:112px;height:149px;left:calc(50% - 78px);top:20px;transform:rotate(-12deg);box-shadow:0 8px 20px #234e4322;border-radius:4px}.gate-art img+img{left:calc(50% - 30px);transform:rotate(12deg)}
.reservation-return{padding:16px;background:#e1ead8;border-radius:12px;margin:12px 0 20px}.reservation-return>span{display:block;font-size:12px;margin-bottom:10px}.reservation-return a{width:100%}
html[data-motion=reduced] .deck-cards img{transition:none!important}
.aroma-form button,.aroma-form textarea{scroll-margin-top:180px;scroll-margin-bottom:90px}
@media(min-width:361px) and (max-width:420px){.aroma-deck.is-open img:nth-child(1){transform:translate(-64px,6px) rotate(-17deg)}.aroma-deck.is-open img:nth-child(2){transform:translate(64px,6px) rotate(17deg)}}
@media(max-width:360px){.aroma-deck.is-open img:nth-child(1){transform:translate(-48px,6px) rotate(-17deg)}.aroma-deck.is-open img:nth-child(2){transform:translate(48px,6px) rotate(17deg)}}
