/* Hallmark · pre-emit critique: P4 H5 E4 S5 R4 V4
 * genre: playful · macrostructure: Ecosystem Index · theme: Brutal / brand green
 * nav: N7 Brutal slab · footer: Ft8 Marquee · enrichment: supplied brand artwork */
:root{--color-paper:#f7f7ef;--color-white:#fff;--color-ink:#191c18;--color-muted:#62665d;--color-accent:#c5f34b;--color-accent-ink:#191c18;--color-green:#056947;--color-rule:#dedfd5;--color-soft:#eeefe7;--color-lilac:#e7dff3;--color-peach:#f1dfcf;--color-pink:#f0cce0;--color-error:#a52c2c;--color-focus:#4f36bd;--color-overlay:#11170fa6;--font-display:'Arial Black','PingFang SC','Microsoft YaHei',sans-serif;--font-body:'PingFang SC','Microsoft YaHei',sans-serif;--space-sm:12px;--space-md:24px;--space-lg:40px}
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font:14px/1.6 var(--font-body)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0;background:none;color:inherit;cursor:pointer;min-height:44px;white-space:nowrap}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}a{color:inherit}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);font-style:normal;overflow-wrap:anywhere;min-width:0}h2{font-size:26px;letter-spacing:-1px}h3{font-size:17px;line-height:1.5}svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle}.demo-strip{background:var(--color-ink);color:var(--color-paper);padding:6px max(24px,calc((100% - 1200px)/2));display:flex;justify-content:space-between;font-size:10px;letter-spacing:.08em;gap:10px}.demo-strip span:first-child{color:var(--color-accent);font-weight:800}.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:16px max(24px,calc((100% - 1200px)/2));background:var(--color-paper);border-bottom:1px solid var(--color-rule)}.brand{display:flex;align-items:center;gap:9px;text-align:left;font-size:24px;font-weight:900;line-height:1.1;letter-spacing:-1px;padding:0}.brand small{display:block;font-size:9px;letter-spacing:1.2px;margin-top:5px}.brand-symbol{display:grid;place-items:center;background:var(--color-accent);width:44px;height:44px;border:2px solid var(--color-ink);font-family:var(--font-display);font-size:28px;transform:rotate(-7deg)}.desktop-nav{display:flex;gap:28px;align-items:center}.desktop-nav button{position:relative;font-weight:600;padding:0 4px;color:var(--color-muted)}.desktop-nav .active{color:var(--color-ink)}.desktop-nav .active:after{content:'';position:absolute;bottom:0;left:25%;width:50%;height:4px;background:var(--color-accent)}.header-actions{display:flex;gap:12px;align-items:center}.city{font-size:12px}.city span{margin-left:8px}.icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--color-rule);border-radius:50%;background:var(--color-white)}.bag-button{position:relative}.bag-button b{position:absolute;right:-4px;top:-4px;font-size:10px;min-width:18px;height:18px;border-radius:50%;background:var(--color-ink);color:var(--color-accent);line-height:18px}#app{max-width:1200px;margin:auto;padding:28px 24px 60px;min-height:75dvh}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800}.welcome{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.welcome p{font-size:13px;color:var(--color-muted)}.welcome h1{font-size:24px;margin-top:2px}.welcome .edition{font-size:10px;letter-spacing:2px;border-bottom:1px solid var(--color-ink);padding-bottom:5px}.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px}.hero-main{background:var(--color-accent);position:relative;min-height:355px;overflow:clip;padding:32px;isolation:isolate;border-radius:8px}.hero-main:before{content:'HAJOYAA';position:absolute;bottom:-20px;left:-5px;font-family:var(--font-display);font-weight:900;font-size:clamp(60px,8vw,105px);letter-spacing:-8px;opacity:.09;z-index:-1}.hero-copy{position:relative;z-index:2;width:63%}.hero-copy h2{font-size:45px;line-height:1.2;letter-spacing:-2px;margin:18px 0 12px}.hero-copy p{font-size:12px;max-width:210px}.hero-main .hero-duck{position:absolute;height:350px;width:270px;object-fit:contain;right:-5px;bottom:-8px;transform:rotate(7deg);filter:drop-shadow(4px 14px 9px var(--color-overlay));z-index:1}.hero-stamp{position:absolute;right:18px;top:22px;transform:rotate(12deg);font-size:10px;font-weight:800;border:1px solid var(--color-ink);border-radius:50%;height:62px;width:62px;display:grid;place-content:center;text-align:center;line-height:1.4;z-index:3}.primary{background:var(--color-ink);color:var(--color-paper);padding:11px 20px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:24px;border-radius:3px}.primary.lime{background:var(--color-accent);color:var(--color-accent-ink)}.hero-copy .primary{margin-top:23px;font-size:12px}.arrow{font-size:22px;line-height:1}.hero-side{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px}.event-teaser{background:var(--color-ink);color:var(--color-paper);position:relative;overflow:clip;border-radius:8px;text-align:left;padding:0;width:100%}.event-teaser img{width:100%;height:205px;object-fit:cover;opacity:.88;transition:transform .3s}.event-teaser-caption{padding:12px 18px;display:flex;justify-content:space-between;align-items:center}.event-teaser-caption span{color:var(--color-accent);font-size:10px;letter-spacing:1px}.event-teaser-caption strong{display:block;font-size:17px}.mini-pass{display:flex;align-items:center;justify-content:space-between;background:var(--color-lilac);color:var(--color-ink);padding:13px 18px;border-radius:8px;text-align:left;gap:12px}.mini-pass strong{display:block;font-size:15px}.mini-pass small{color:var(--color-muted);font-size:11px}.round-arrow{width:32px;height:32px;border:1px solid var(--color-ink);border-radius:50%;display:grid;place-items:center}.quick-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:20px 0 22px;border-bottom:1px solid var(--color-rule);gap:10px}.quick-link{display:flex;align-items:center;justify-content:center;gap:12px;border-right:1px solid var(--color-rule);text-align:left}.quick-link:last-child{border:0}.quick-link strong{display:block;font-size:13px}.quick-link small{font-size:10px;color:var(--color-muted)}.quick-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--color-soft)}.section{margin-top:32px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px}.section-heading h2{font-size:23px;display:flex;gap:12px;align-items:baseline}.section-heading h2 span{font-family:var(--font-body);font-size:10px;letter-spacing:2px;font-weight:500;color:var(--color-muted)}.text-link{font-size:12px;display:inline-flex;align-items:center;gap:10px;padding:0}.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.product{min-width:0;position:relative}.product-image{aspect-ratio:1/1;position:relative;border-radius:6px;overflow:clip;display:block;width:100%;padding:16px;background:var(--color-soft)}.product-image img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform .25s}.product-image img.bag{mix-blend-mode:normal}.product-tag{position:absolute;left:12px;top:12px;z-index:1;font-size:9px;background:var(--color-ink);color:var(--color-paper);padding:3px 8px;font-weight:600;letter-spacing:1px}.product:nth-child(4n+1) .product-image{background:var(--color-lilac)}.product:nth-child(4n+2) .product-image{background:var(--color-peach)}.product:nth-child(4n+3) .product-image{background:var(--color-soft)}.product:nth-child(4n+4) .product-image{background:var(--color-pink)}.product-copy{padding:12px 2px 0}.product-copy h3{font-family:var(--font-body);font-size:14px;font-weight:700;line-height:1.5}.product-copy p{font-size:10px;color:var(--color-muted);margin:2px 0 8px}.product-bottom{display:flex;justify-content:space-between;align-items:center}.price{font-weight:800;font-size:20px;letter-spacing:-.5px}.price small{font-size:12px;margin-right:2px}.demo-price{font-size:9px;color:var(--color-muted);font-weight:400;margin-left:6px;letter-spacing:0}.add-btn{width:34px;min-height:34px;border:1px solid var(--color-rule);border-radius:50%;font-size:22px;display:grid;place-items:center;background:var(--color-white)}.add-btn:before{content:'';position:absolute;width:44px;height:44px}.culture{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px}.quote-card{background:var(--color-green);color:var(--color-paper);padding:26px;border-radius:6px;position:relative}.quote-card .eyebrow{color:var(--color-accent)}.quote-card blockquote{font-size:28px;font-weight:700;line-height:1.5;margin:16px 0 20px;letter-spacing:1px}.quote-card .quote-bottom{display:flex;align-items:center;justify-content:space-between}.quote-card small{font-size:10px}.quote-card button{color:var(--color-accent);font-size:12px}.culture-photo{position:relative;border-radius:6px;overflow:clip;background:var(--color-ink);color:var(--color-white);text-align:left;padding:0}.culture-photo img{width:100%;height:245px;object-fit:cover;opacity:.7}.culture-photo div{position:absolute;bottom:20px;left:22px}.culture-photo h3{font-size:25px;margin-top:6px}.marquee{margin-top:45px;border-block:1px solid var(--color-ink);padding:14px 0;overflow:clip;display:flex;gap:40px;white-space:nowrap;font-weight:900;font-size:18px;letter-spacing:2px}.marquee span{animation:marquee 30s linear infinite;flex-shrink:0}.footer-note{font-size:10px;color:var(--color-muted);text-align:center;padding-top:20px}.bottom-nav{display:none}.page-heading{display:flex;align-items:end;justify-content:space-between;margin:8px 0 25px}.page-heading h1{font-size:36px;letter-spacing:-2px}.page-heading p{color:var(--color-muted);margin-top:6px;font-size:12px}.shop-banner{padding:26px 30px;background:var(--color-lilac);border-radius:6px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.shop-banner h2{font-size:25px}.shop-banner p{font-size:12px;margin-top:5px}.search{display:flex;gap:10px;align-items:center;border:1px solid var(--color-rule);background:var(--color-white);padding:0 14px;border-radius:4px;margin-bottom:20px}.search input{border:0;background:none;min-height:46px;width:100%;outline-offset:0}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 24px}.filter{padding:8px 18px;border:1px solid var(--color-rule);border-radius:3px;font-size:12px;background:var(--color-paper)}.filter.active{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}.shop-products{row-gap:32px}.empty{padding:65px 20px;text-align:center;border:1px dashed var(--color-rule);border-radius:8px}.empty p{color:var(--color-muted);margin:12px 0 20px}.empty svg{width:40px;height:40px}.event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.event-card{border:1px solid var(--color-rule);border-radius:7px;overflow:clip;background:var(--color-white)}.event-card>img{width:100%;aspect-ratio:1.8;object-fit:cover}.event-card-content{padding:22px}.event-card-content h2{font-size:23px;margin:10px 0}.event-meta{font-size:12px;color:var(--color-muted);margin:10px 0 20px}.event-bottom{display:flex;justify-content:space-between;align-items:center}.badge{font-size:10px;padding:4px 8px;background:var(--color-accent);color:var(--color-ink);display:inline-block}.badge.soft{background:var(--color-soft);color:var(--color-muted)}.passport{background:var(--color-lilac);border:1px solid var(--color-ink);border-radius:9px;padding:32px;max-width:850px;margin:auto;position:relative}.passport-top{display:flex;justify-content:space-between;border-bottom:1px dashed var(--color-ink);padding-bottom:22px}.passport h2{font-size:35px;margin:9px 0}.passport p{font-size:12px}.passport-number{font-size:10px;writing-mode:vertical-rl;letter-spacing:3px}.progress{height:7px;background:var(--color-white);margin:22px 0 8px;border-radius:6px;overflow:clip}.progress div{height:100%;background:var(--color-green);transition:width .2s}.stamps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:30px 0}.stamp{border:2px dashed var(--color-muted);aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:.7;background:var(--color-paper);padding:8px}.stamp svg{width:30px;height:30px;margin-bottom:5px}.stamp strong{font-size:15px}.stamp small{font-size:9px}.stamp.done{border:3px double var(--color-green);color:var(--color-green);opacity:1;transform:rotate(-9deg);background:var(--color-accent)}.task{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid var(--color-rule)}.task p{color:var(--color-muted);font-size:12px}.task strong{font-size:14px}.task button{font-size:12px;min-width:86px}.redeem{margin-top:26px;padding:22px;background:var(--color-white);border-radius:5px}.redeem h3{margin-bottom:14px}.reward{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--color-rule);padding:14px 0;gap:15px}.reward p{font-size:12px;color:var(--color-muted)}.profile{background:var(--color-accent);padding:30px;border-radius:7px;display:flex;gap:20px;align-items:center}.avatar{width:70px;height:70px;border-radius:50%;background:var(--color-white);overflow:clip}.avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}.profile h1{font-size:26px}.profile p{font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px;border:1px solid var(--color-rule);border-radius:6px;padding:20px 0}.stats button{border-right:1px solid var(--color-rule);font-size:12px}.stats button:last-child{border:0}.stats strong{display:block;font-size:25px}.order-card{border:1px solid var(--color-rule);background:var(--color-white);padding:20px;border-radius:6px;margin-bottom:14px}.order-head{display:flex;justify-content:space-between;font-size:11px;color:var(--color-muted);gap:12px}.order-body{display:flex;gap:16px;margin-top:16px;align-items:center}.order-body img{width:66px;height:66px;object-fit:contain;background:var(--color-soft);border-radius:5px}.order-body h3{font-size:14px}.order-body p{font-size:11px;color:var(--color-muted)}.order-body>div{flex:1}.order-body strong{font-size:18px}.menu-list{margin-top:24px;border-top:1px solid var(--color-rule)}.menu-list button{display:flex;width:100%;justify-content:space-between;align-items:center;padding:18px 4px;border-bottom:1px solid var(--color-rule);font-size:13px}.menu-list svg{margin-right:10px}.ticket-code{border:1px dashed var(--color-muted);padding:16px;margin-top:15px;text-align:center;background:var(--color-paper)}.ticket-code strong{font-size:20px;letter-spacing:4px}.ticket-code p{font-size:10px;color:var(--color-muted)}
/* Dialog and transactional flows */
dialog{position:fixed;inset:0;margin:auto;width:min(570px,calc(100% - 32px));max-height:88dvh;padding:0;border:0;border-radius:10px;background:var(--color-paper);color:var(--color-ink);overscroll-behavior:contain}dialog::backdrop{background:var(--color-overlay)}.modal-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:16px 22px;background:var(--color-paper);border-bottom:1px solid var(--color-rule)}.modal-head h2{font-size:19px}.close{font-size:26px;min-width:44px;line-height:1}.modal-body{padding:24px}.modal-product-img{height:260px;background:var(--color-lilac);padding:20px;border-radius:6px;position:relative}.modal-product-img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.modal-body h3{font-size:23px;margin-top:18px}.modal-body .description{font-size:12px;color:var(--color-muted);margin:10px 0 20px}.option-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.option{border:1px solid var(--color-rule);padding:7px 14px;border-radius:4px;font-size:12px}.option.active{border-color:var(--color-ink);background:var(--color-accent)}.field-label{font-size:12px;display:block;margin:18px 0 6px}.stepper{display:inline-flex;border:1px solid var(--color-rule);border-radius:3px;align-items:center;background:var(--color-white)}.stepper button{width:40px;font-size:18px}.stepper span{min-width:32px;text-align:center;font-size:13px}.modal-actions{display:flex;gap:12px;margin-top:24px}.modal-actions button{flex:1;font-size:13px}.secondary{border:1px solid var(--color-ink);border-radius:3px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:10px}.cart-item{display:flex;gap:14px;border-bottom:1px solid var(--color-rule);padding:16px 0}.cart-item img{width:80px;height:90px;object-fit:contain;background:var(--color-soft);border-radius:4px}.cart-item-info{flex:1;min-width:0}.cart-item h3{font-size:14px;margin:0}.cart-item p{font-size:10px;color:var(--color-muted)}.cart-item-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:9px}.cart-item .stepper button{width:30px;min-height:32px}.cart-item .stepper span{min-width:25px}.cart-total{display:flex;justify-content:space-between;margin:20px 0;align-items:center}.cart-total strong{font-size:25px}.notice{background:var(--color-soft);padding:12px 14px;font-size:11px;color:var(--color-muted);margin:16px 0;border-radius:4px}.field{margin:14px 0}.field label{display:block;font-size:12px;margin-bottom:5px}.field input,.field textarea,.field select{width:100%;min-height:46px;padding:10px 12px;background:var(--color-white);border:1px solid var(--color-rule);border-radius:4px;color:var(--color-ink)}.field textarea{min-height:100px;resize:vertical}.field [aria-invalid=true]{border-color:var(--color-error)}.error{min-height:20px;color:var(--color-error);font-size:11px;margin-top:6px}.checkline{display:flex;align-items:start;gap:8px;font-size:11px;margin:16px 0}.checkline input{margin-top:4px;accent-color:var(--color-green);width:16px;height:16px;flex-shrink:0}.full{width:100%}.success{text-align:center;padding:30px 0}.success .success-icon{margin:auto;width:75px;height:75px;display:grid;place-items:center;border-radius:50%;background:var(--color-accent);font-size:40px}.success h3{font-size:26px;margin-top:20px}.success p{color:var(--color-muted);font-size:12px;margin:12px 0 25px}.ticket-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ticket-option{border:1px solid var(--color-rule);text-align:left;padding:13px;border-radius:5px;white-space:normal}.ticket-option.active{border-color:var(--color-ink);background:var(--color-accent)}.ticket-option strong{display:block;font-size:14px}.ticket-option small{font-size:10px;display:block;margin:4px 0}.ticket-option b{font-size:22px}.event-detail-img{width:100%;border-radius:5px}.schedule{margin:20px 0}.schedule p{border-bottom:1px solid var(--color-rule);padding:10px 0;font-size:12px}.schedule b{display:inline-block;width:65px}.city-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.city-options button{border:1px solid var(--color-rule);border-radius:5px;padding:16px}.city-options small{display:block;color:var(--color-muted);font-size:10px}#toast{position:fixed;z-index:100;left:50%;bottom:30px;transform:translate(-50%,15px);background:var(--color-ink);color:var(--color-paper);padding:12px 22px;border-radius:5px;font-size:13px;pointer-events:none;opacity:0;transition:opacity .2s,transform .2s;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.like-btn{border:1px solid var(--color-rule);padding:7px 14px;border-radius:4px;display:flex;align-items:center;gap:6px;font-size:12px}.like-btn.liked{background:var(--color-accent)}.quote-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.quote-entry{border:1px solid var(--color-rule);padding:26px;background:var(--color-white);border-radius:5px}.quote-entry blockquote{margin:0 0 20px;font-size:22px;font-weight:700}.quote-entry footer{display:flex;justify-content:space-between;align-items:center;color:var(--color-muted);font-size:11px}.submitted{padding:18px;background:var(--color-lilac);margin-bottom:20px}.desktop-only{display:block}@keyframes marquee{to{transform:translateX(-30%)}}@media(hover:hover){.product-image:hover img{transform:scale(1.05)}.event-teaser:hover img{transform:scale(1.03)}.primary:hover{background:var(--color-green);color:var(--color-white)}.primary.lime:hover{background:var(--color-accent);color:var(--color-ink);filter:brightness(.94)}.text-link:hover{text-decoration:underline}.add-btn:hover{background:var(--color-accent)}}
@media(max-width:760px){.demo-strip{padding:5px 16px;justify-content:center;font-size:9px;letter-spacing:0}.demo-strip span:first-child{display:none}.header{padding:12px 18px;gap:12px}.brand{font-size:21px}.brand-symbol{width:38px;height:38px;font-size:25px}.brand small{font-size:8px}.desktop-nav{display:none}.header-actions{gap:5px}.icon-button{width:40px;height:40px}.city{font-size:11px}#app{padding:22px 16px 105px}.welcome{margin-bottom:18px}.welcome h1{font-size:20px}.welcome p{font-size:11px}.welcome .edition{font-size:8px}.hero{grid-template-columns:minmax(0,1fr);gap:12px}.hero-main{min-height:310px;padding:25px}.hero-copy{width:65%}.hero-copy h2{font-size:37px;line-height:1.25;margin-top:18px;letter-spacing:-1.5px}.hero-copy p{font-size:11px;max-width:175px}.hero-main .hero-duck{height:295px;width:220px;right:-30px;bottom:-5px}.hero-stamp{width:50px;height:50px;font-size:8px;right:15px;top:18px}.hero-copy .primary{margin-top:23px;padding:10px 16px;gap:15px;font-size:11px}.hero-side{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-rows:auto;gap:10px}.event-teaser img{height:104px;opacity:.9}.event-teaser-caption{padding:9px 11px}.event-teaser-caption strong{font-size:12px}.event-teaser-caption span{font-size:8px;letter-spacing:0}.event-teaser-caption .arrow{font-size:18px}.mini-pass{flex-direction:column;align-items:start;justify-content:center;gap:8px;padding:14px}.mini-pass strong{font-size:14px}.mini-pass small{font-size:10px;display:block;line-height:1.5}.mini-pass .round-arrow{align-self:end;width:26px;height:26px}.quick-links{padding:20px 0;gap:0}.quick-link{flex-direction:column;gap:8px;border:0;text-align:center;padding:0}.quick-link strong{font-size:11px}.quick-link small{display:none}.quick-icon{width:42px;height:42px;background:var(--color-white);border:1px solid var(--color-rule)}.section{margin-top:25px}.section-heading{margin-bottom:15px}.section-heading h2{font-size:21px;gap:8px}.section-heading h2 span{font-size:8px;letter-spacing:1px}.text-link{font-size:10px;gap:5px}.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.product-image{padding:14px;aspect-ratio:1/1.05}.product-copy h3{font-size:12px}.product-copy p{font-size:9px}.product-tag{left:9px;top:9px;font-size:8px;padding:2px 6px}.price{font-size:18px}.demo-price{font-size:8px;margin-left:4px}.culture{grid-template-columns:minmax(0,1fr)}.quote-card{padding:23px}.quote-card blockquote{font-size:24px}.culture-photo img{height:200px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:25;background:var(--color-paper);border-top:1px solid var(--color-rule);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:6px 5px calc(7px + env(safe-area-inset-bottom))}.bottom-nav button{font-size:9px;color:var(--color-muted);display:flex;align-items:center;flex-direction:column;gap:3px;padding:4px 0;min-height:49px}.bottom-nav svg{width:21px;height:21px}.bottom-nav .active{color:var(--color-ink);font-weight:800}.bottom-nav .active span{background:var(--color-accent);border-radius:10px;padding:0 11px}.marquee{margin-top:30px;font-size:15px;padding:10px 0}.footer-note{font-size:9px}#toast{bottom:90px;font-size:12px;width:max-content;max-width:90%}.page-heading{margin:0 0 22px}.page-heading h1{font-size:29px}.page-heading p{font-size:11px}.shop-banner{padding:20px;gap:12px;margin-bottom:20px}.shop-banner h2{font-size:20px}.shop-banner p{font-size:10px}.shop-banner svg{width:34px;height:34px;flex-shrink:0}.filter-row{gap:6px}.filter{padding:6px 12px;font-size:11px;min-height:40px}.event-list{grid-template-columns:minmax(0,1fr);gap:18px}.event-card-content{padding:20px}.event-card-content h2{font-size:22px}.event-bottom .primary{font-size:12px;padding:10px 16px}.passport{padding:22px 18px}.passport h2{font-size:28px}.passport p{font-size:11px}.stamps{gap:8px;margin:24px 0}.stamp{padding:5px}.stamp svg{width:23px;height:23px;margin-bottom:3px}.stamp strong{font-size:12px}.stamp small{font-size:7px}.task{gap:12px;padding:16px 0}.task p{font-size:10px}.task strong{font-size:13px}.task button{min-width:70px;padding:8px 10px;font-size:11px}.redeem{padding:16px}.reward{gap:10px}.reward strong{font-size:12px}.reward p{font-size:10px}.reward button{font-size:11px;padding:9px 12px}.profile{padding:23px;gap:15px}.profile h1{font-size:23px}.stats{padding:15px 0}.stats strong{font-size:22px}.quote-list{grid-template-columns:minmax(0,1fr)}.quote-entry blockquote{font-size:20px}.desktop-only{display:none}dialog{width:calc(100% - 24px);max-height:90dvh}.modal-head{padding:12px 18px}.modal-body{padding:18px}.modal-product-img{height:220px}.modal-body h3{font-size:21px}.modal-actions{gap:8px}.modal-actions button{padding:10px;font-size:12px}.order-card{padding:16px}.order-body{gap:10px}.order-body h3{font-size:12px}.order-body strong{font-size:16px}.order-head{font-size:9px}}
@media(max-width:350px){.hero-copy h2{font-size:32px}.hero-main .hero-duck{right:-42px;width:200px}.hero-main{padding:22px;min-height:300px}.hero-copy p{max-width:145px}.section-heading h2 span{display:none}.mini-pass strong{font-size:12px}.event-teaser-caption strong{font-size:10px}.event-teaser-caption span{font-size:7px}.product-copy h3{font-size:11px}.demo-price{display:none}.stamp small{display:none}.stamp strong{font-size:10px}.passport{padding:20px 14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.event-card>img{height:auto;aspect-ratio:1.8;object-fit:cover}.progress div{transition:none}
@media(min-width:761px) and (max-width:1000px){.hero{grid-template-columns:minmax(0,1fr)}.hero-main{min-height:340px}.hero-copy h2{font-size:45px}.hero-main .hero-duck{right:45px;height:340px;width:270px}.hero-side{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-rows:auto}.event-teaser img{height:150px}.mini-pass{padding:24px}.mini-pass strong{font-size:19px}}

/* One continuous track; touch/hover never implicitly pauses the ticker. */
.marquee{position:relative;gap:0;padding:0;align-items:center;overflow:hidden}
.marquee-window{flex:1;min-width:0;overflow:hidden;padding-block:14px}
.marquee .marquee-track{display:flex;width:max-content;will-change:transform;-webkit-animation:hajoyaa-ticker 64s linear infinite;animation:hajoyaa-ticker 64s linear infinite!important}
.marquee .marquee-track span{display:block;flex:0 0 auto;padding-inline-end:40px;white-space:nowrap;animation:none!important;-webkit-animation:none}
.marquee.is-paused .marquee-track{-webkit-animation-play-state:paused;animation-play-state:paused!important}
.marquee-toggle{flex:0 0 44px;align-self:stretch;min-width:44px;border-inline-start:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink);font-size:15px}
@-webkit-keyframes hajoyaa-ticker{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-50%,0,0)}}
@keyframes hajoyaa-ticker{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){.marquee:not(.motion-enabled) .marquee-track{animation:none!important}}

/* Vector marks retain the same monochrome shape on Apple and WeChat. */
.marquee .marquee-track span{display:flex;align-items:center;gap:28px;line-height:1.4}
.marquee-track svg{flex:0 0 22px;width:22px;height:22px;stroke-width:2.2}
.marquee-toggle{display:grid;place-items:center}
.marquee-toggle svg{width:18px;height:18px;stroke-width:1.8}
.arrow svg,.round-arrow svg{width:20px;height:20px}
.text-link svg,.quote-bottom button svg,.menu-list button>span:last-child svg{width:15px;height:15px}
.quote-bottom button{display:inline-flex;align-items:center;gap:8px}
.hero-stamp svg{width:11px;height:11px;margin:auto}
@media(max-width:760px){.marquee .marquee-track span{gap:22px}.marquee-track svg{flex-basis:18px;width:18px;height:18px}}

/* Every UI control uses SVG, never font glyphs or platform emoji. */
.city span{display:inline-flex;align-items:center;vertical-align:middle}
.city svg{width:13px;height:13px}
.add-btn svg{width:18px;height:18px}
.stepper button{display:inline-flex;align-items:center;justify-content:center}
.stepper button svg{width:14px;height:14px}
.close{display:grid;place-items:center}
.close svg{width:22px;height:22px}
.success-icon svg{width:38px;height:38px;stroke-width:2.2}
.task button svg{width:14px;height:14px;margin-left:5px}
