.public-root{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.public-root img,.public-root picture,.public-root svg{max-width:100%;display:block}.public-root input,.public-root button,.public-root textarea,.public-root select{font:inherit}.public-root button{cursor:pointer}.public-root button:not(.btn){background:0 0;border:none}.public-root a{text-decoration:none}.public-root a:not(.btn){color:inherit}.public-root ul,.public-root ol{margin:0;padding:0;list-style:none}.public-root :focus-visible{outline:2px solid var(--seaweed);outline-offset:3px;border-radius:var(--radius-xs)}.public-root :focus:not(:focus-visible){outline:none}.t-display{font-family:var(--font-display);font-size:var(--text-5xl);line-height:var(--leading-none);letter-spacing:var(--tracking-tight);color:var(--ink)}.public-root h1,.h1{font-family:var(--font-display);font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--ink);margin:0}.public-root h2,.h2{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:700;line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);color:var(--ink);margin:0}.public-root h3,.h3{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:600;line-height:var(--leading-snug);color:var(--ink);margin:0}.public-root h4,.h4{font-family:var(--font-sans);font-size:var(--text-xl);font-weight:700;line-height:var(--leading-snug);color:var(--ink);margin:0}.public-root p{margin:0}.t-body-lg{font-size:var(--text-lg);line-height:var(--leading-relaxed)}.t-body{font-size:var(--text-base);line-height:var(--leading-relaxed)}.t-body-sm{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.t-label{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--seaweed);font-weight:700}.t-mono{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.t-jp{font-family:var(--font-serif);letter-spacing:.05em}.t-muted{color:var(--ink-40)}.t-subtle{color:var(--ink-20)}.t-red{color:var(--red)}.t-green{color:var(--seaweed)}.container{width:100%;max-width:var(--max-w);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(20px,3vw,40px)}.section-sm{padding-block:clamp(12px,2vw,24px)}.divider{background:var(--border);width:100%;height:1px;margin-block:var(--sp-8);border:none}.btn{justify-content:center;align-items:center;gap:var(--sp-2);font-family:var(--font-sans);font-size:var(--text-sm);letter-spacing:var(--tracking-wider);text-transform:uppercase;padding:14px var(--sp-6);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:2px solid #0000;border-radius:0;font-weight:700;line-height:1;display:inline-flex;position:relative;overflow:hidden}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-primary:hover{background:var(--ink-80);border-color:var(--ink-80)}.btn-green{background:var(--seaweed);color:var(--surface);border-color:var(--seaweed)}.btn-green:hover{background:var(--seaweed-mid);border-color:var(--seaweed-mid);box-shadow:var(--shadow-green)}.btn-red{background:var(--seaweed);color:var(--surface);border-color:var(--seaweed)}.btn-red:hover{background:var(--seaweed-mid);border-color:var(--seaweed-mid);box-shadow:var(--shadow-green)}.btn-outline{color:var(--ink);border-color:var(--ink);background:0 0}.btn-outline:hover{background:var(--ink);color:var(--paper)}.btn-outline-green{color:var(--seaweed);border-color:var(--seaweed);background:0 0}.btn-outline-green:hover{background:var(--seaweed);color:var(--surface)}.btn-ghost{color:var(--ink-60);padding-inline:var(--sp-3);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--paper-warm);color:var(--ink)}.btn-sm{font-size:var(--text-2xs);padding:10px var(--sp-4);letter-spacing:var(--tracking-widest)}.btn-lg{font-size:var(--text-base);padding:18px var(--sp-10)}.btn-xl{font-size:var(--text-lg);padding:22px var(--sp-12)}.btn-full{width:100%}.btn.loading{color:#0000;pointer-events:none}.btn.loading:after{content:"";border:2px solid #fff9;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin;position:absolute}.form-group{gap:var(--sp-2);flex-direction:column;display:flex}.form-label{font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--ink-60);font-weight:700}.form-label-required:after{content:" *";color:var(--red)}.form-hint{font-size:var(--text-xs);color:var(--ink-40);line-height:var(--leading-relaxed)}.form-error{font-size:var(--text-xs);color:var(--error)}.input,.textarea,.select{background:var(--surface);width:100%;color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);padding:12px var(--sp-4);border:1.5px solid var(--border);appearance:none;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);border-radius:0;outline:none}.input::placeholder,.textarea::placeholder{color:var(--ink-20)}.input:hover,.textarea:hover,.select:hover{border-color:var(--ink-20)}.input:focus,.textarea:focus,.select:focus{border-color:var(--seaweed);box-shadow:0 0 0 3px #1e3a1e1a}.input.error{border-color:var(--error);background:var(--error-bg)}.input.success{border-color:var(--success)}.textarea{resize:vertical;min-height:100px}.select-wrap{position:relative}.select-wrap:after{content:"";border-right:2px solid var(--ink-40);border-bottom:2px solid var(--ink-40);pointer-events:none;width:8px;height:8px;margin-top:-2px;position:absolute;top:50%;right:16px;transform:translateY(-50%)rotate(45deg)}.stepper{border:1.5px solid var(--border);background:var(--surface);align-items:center;display:inline-flex}.stepper-btn{width:44px;height:48px;color:var(--ink-40);cursor:pointer;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:0 0;border:none;justify-content:center;align-items:center;font-size:20px;font-weight:300;display:flex}.stepper-btn:hover{background:var(--paper-warm);color:var(--ink)}.stepper-value{text-align:center;width:56px;font-family:var(--font-mono);font-size:var(--text-base);color:var(--ink);border-inline:1.5px solid var(--border);font-weight:700;line-height:48px}.check-group{align-items:center;gap:var(--sp-3);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.check-input{border:1.5px solid var(--border);background:var(--surface);border-radius:var(--radius-xs);appearance:none;cursor:pointer;width:18px;height:18px;transition:all var(--dur-fast) var(--ease);flex-shrink:0;position:relative}.check-input:checked{background:var(--seaweed);border-color:var(--seaweed)}.check-input:checked:after{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat;position:absolute;inset:3px}.radio-input{border-radius:50%}.radio-input:checked:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:3px}.check-label{font-size:var(--text-base);color:var(--ink)}.toggle{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-track{background:var(--border);border-radius:var(--radius-full);transition:background var(--dur-fast) var(--ease);cursor:pointer;position:absolute;inset:0}.toggle input:checked+.toggle-track{background:var(--seaweed)}.toggle-track:before{content:"";background:var(--surface);width:18px;height:18px;transition:transform var(--dur-base) var(--ease-spring);box-shadow:var(--shadow-sm);border-radius:50%;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track:before{transform:translate(20px)}.badge{align-items:center;gap:var(--sp-1);font-size:var(--text-2xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;border-radius:var(--radius-xs);white-space:nowrap;padding:4px 8px;font-weight:700;line-height:1;display:inline-flex}.badge-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-green{background:var(--success-bg);color:var(--success)}.badge-red{background:var(--error-bg);color:var(--error)}.badge-gold{background:var(--sesame-light);color:var(--sesame)}.badge-ink{background:var(--ink);color:var(--paper)}.badge-paper{background:var(--paper-tint);color:var(--ink-60)}.allergen-tag{align-items:center;gap:var(--sp-1);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--red);border:1px solid var(--red-mid);background:var(--red-light);border-radius:var(--radius-xs);padding:3px 7px;font-weight:700;display:inline-flex}.status{font-size:var(--text-xs);align-items:center;gap:6px;font-weight:600;display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-live{color:var(--success)}.status-live .status-dot{background:var(--success);animation:2s ease-in-out infinite pulse-dot}.status-out{color:var(--ink-40)}.status-out .status-dot{background:var(--ink-20)}.status-pending{color:var(--warning)}.status-pending .status-dot{background:var(--warning)}.notice{gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);font-size:var(--text-sm);line-height:var(--leading-relaxed);border-left:3px solid;display:flex}.notice-red{background:var(--error-bg);color:var(--error)}.notice-green{background:var(--success-bg);color:var(--success)}.notice-gold{background:var(--sesame-light);color:var(--sesame)}.notice-ink{background:var(--paper-warm);color:var(--ink-60)}.pub-nav{z-index:var(--z-nav);-webkit-backdrop-filter:blur(12px)saturate(160%);border-bottom:1.5px solid var(--border);transition:box-shadow var(--dur-base) var(--ease);background:#faf8f3f0;position:fixed;top:0;left:0;right:0}.pub-nav.scrolled{box-shadow:var(--shadow-sm)}.pub-nav-inner{height:60px;padding-inline:var(--gutter);max-width:var(--max-w);justify-content:space-between;align-items:center;margin-inline:auto;display:flex}@media (min-width:768px){.pub-nav-inner{height:70px}}.pub-nav-brand{align-items:center;gap:var(--sp-3);flex-shrink:0;text-decoration:none;display:flex}.pub-nav-logo{object-fit:contain;width:52px;height:52px}.pub-nav-name{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);font-size:22px;line-height:1}.pub-nav-name span{color:var(--seaweed)}.pub-nav-links{align-items:center;gap:var(--sp-8);display:none}@media (min-width:768px){.pub-nav-links{display:flex}}.pub-nav-link{font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--ink-40);transition:color var(--dur-fast) var(--ease);padding-bottom:2px;font-weight:700;position:relative}.pub-nav-link:after{content:"";background:var(--seaweed);width:0;height:2px;transition:width var(--dur-base) var(--ease-spring);position:absolute;bottom:-2px;left:0}.pub-nav-link:hover{color:var(--ink)}.pub-nav-link:hover:after{width:100%}.pub-nav-link.active{color:var(--ink)}.pub-nav-link.active:after{width:100%}.pub-nav-hamburger{padding:var(--sp-2);cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;display:flex}@media (min-width:768px){.pub-nav-hamburger{display:none}}.pub-nav-cta-desktop{display:none}@media (min-width:768px){.pub-nav-cta-desktop{display:inline-flex}}.pub-nav-hamburger span{background:var(--ink);width:24px;height:2px;transition:transform var(--dur-base) var(--ease), opacity var(--dur-fast) var(--ease);transform-origin:50%;border-radius:2px;display:block}.pub-nav-hamburger.open span:first-child{transform:translateY(7px)rotate(45deg)}.pub-nav-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.pub-nav-hamburger.open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.pub-nav-drawer{background:var(--paper);z-index:calc(var(--z-nav) - 1);padding:var(--sp-8) var(--gutter);border-top:1.5px solid var(--border);animation:slide-down var(--dur-base) var(--ease-out);flex-direction:column;display:none;position:fixed;inset:60px 0 0;overflow-y:auto}.pub-nav-drawer.open{display:flex}.pub-nav-drawer-link{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--ink);padding-block:var(--sp-4);border-bottom:1px solid var(--border);transition:color var(--dur-fast) var(--ease), padding-left var(--dur-fast) var(--ease)}.pub-nav-drawer-link:hover{color:var(--seaweed);padding-left:var(--sp-3)}.pub-footer{background:var(--ink);color:var(--paper);padding-block:var(--sp-16)}.pub-footer-inner{max-width:var(--max-w);padding-inline:var(--gutter);gap:var(--sp-12);grid-template-columns:1fr;margin-inline:auto;display:grid}@media (min-width:768px){.pub-footer-inner{grid-template-columns:1fr 1fr 1fr}}.pub-footer-logo{object-fit:contain;opacity:.7;filter:invert();width:48px;margin-bottom:var(--sp-4)}.pub-footer-brand{font-family:var(--font-display);letter-spacing:.1em;color:var(--paper);font-size:18px}.pub-footer-brand span{color:var(--seaweed-mid)}.pub-footer-tagline{font-family:var(--font-serif);font-size:var(--text-sm);color:#faf8f373;margin-top:var(--sp-2)}.pub-footer-heading{font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:#faf8f359;margin-bottom:var(--sp-4);font-weight:700}.pub-footer-link{font-size:var(--text-sm);color:#faf8f38c;padding-block:var(--sp-1);transition:color var(--dur-fast) var(--ease);display:block}.pub-footer-link:hover{color:var(--paper)}.pub-footer-bottom{max-width:var(--max-w);padding-inline:var(--gutter);padding-top:var(--sp-8);margin-inline:auto;margin-top:var(--sp-8);justify-content:space-between;align-items:center;gap:var(--sp-4);border-top:1px solid #faf8f314;flex-wrap:wrap;display:flex}.pub-footer-copy{font-size:var(--text-xs);color:#faf8f340;font-family:var(--font-mono)}.hero{text-align:center;min-height:100svh;padding:calc(60px + var(--sp-14)) var(--gutter) var(--sp-12);background:0 0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}@media (min-width:768px){.hero{padding-top:var(--sp-16)}}.hero-halal{margin-inline:auto;display:block}.hero-grid{background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);opacity:.5;pointer-events:none;background-size:48px 48px;position:absolute;inset:0}.hero-mark{pointer-events:none;background:radial-gradient(circle,#1e3a1e12 0%,#0000 70%);border-radius:50%;width:clamp(200px,40vw,480px);height:clamp(200px,40vw,480px);position:absolute}.hero-eyebrow{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-6);white-space:nowrap;max-width:100%;display:flex}.hero-eyebrow-line{background:var(--seaweed);flex-shrink:0;width:32px;height:1.5px}@media (max-width:767px){.hero-eyebrow .hero-eyebrow-line{display:none}.hero-eyebrow .t-label{letter-spacing:.18em;font-size:.8125rem}}.hero-ctas{gap:var(--sp-3);width:100%;max-width:320px;margin-bottom:var(--sp-4);flex-direction:column;display:flex}@media (min-width:480px){.hero-ctas{flex-direction:row;width:auto;max-width:none}}.hero-headline{font-family:var(--font-display);font-size:clamp(2.75rem,7vw,5rem);line-height:var(--leading-none);letter-spacing:var(--tracking-tight);margin-bottom:var(--sp-2);color:var(--ink)}.hero-jp{font-size:var(--text-lg);margin-bottom:var(--sp-2);color:var(--ink-60)}.hero-mascot{object-fit:contain;width:115px;height:115px;margin-bottom:var(--sp-2);animation:3s ease-in-out infinite mascot-float}.hero-tagline{margin-bottom:var(--sp-4)}.hero-halal{object-fit:contain;width:160px;height:160px;margin:0 auto var(--sp-4);display:block;transform:translate(16px)}.hero-stats{align-items:center;gap:var(--sp-8);flex-wrap:nowrap;justify-content:center;display:flex}@media (max-width:767px){.hero{justify-content:center;padding-top:60px}.hero-eyebrow{margin-bottom:var(--sp-3)}.hero-mascot{width:80px;height:80px;margin-bottom:var(--sp-1)}.hero-halal{width:112px;height:112px;margin-bottom:var(--sp-2)}.hero-stats{gap:var(--sp-4)}.hero-tagline{margin-bottom:var(--sp-3);font-size:var(--text-sm)}.hero-headline{margin-bottom:var(--sp-1);font-size:clamp(2.25rem,11vw,3rem)}.hero-jp{font-size:var(--text-base);margin-bottom:var(--sp-2)}.hero-ctas{margin-bottom:var(--sp-3)}}.flavor-card{background:var(--surface);border:1.5px solid var(--border);transition:border-color var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease), transform var(--dur-base) var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.flavor-card:hover{border-color:var(--ink);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.flavor-card.sold-out{opacity:.6;pointer-events:none}.flavor-card-thumb{aspect-ratio:4/3;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.flavor-card-num{font-family:var(--font-display);color:#0a0a0a12;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:64px;line-height:1;position:absolute;bottom:12px;right:12px}.flavor-card-label-strip{height:4px;position:absolute;bottom:0;left:0;right:0}.flavor-card-body{padding:var(--sp-5);gap:var(--sp-3);flex-direction:column;flex:1;display:flex}.flavor-card-top{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.flavor-card-name{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--ink);font-weight:700;line-height:var(--leading-snug)}.flavor-card-price{font-family:var(--font-mono);font-size:var(--text-lg);color:var(--ink);white-space:nowrap;font-weight:700}.flavor-card-desc{font-size:var(--text-sm);color:var(--ink-60);line-height:var(--leading-relaxed)}.ingredients-toggle{align-items:center;gap:var(--sp-2);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--ink-40);cursor:pointer;transition:color var(--dur-fast) var(--ease);background:0 0;border:none;padding:0;font-weight:700;display:flex}.ingredients-toggle:hover{color:var(--ink)}.ingredients-toggle-icon{transition:transform var(--dur-fast) var(--ease)}.ingredients-toggle.open .ingredients-toggle-icon{transform:rotate(90deg)}.ingredients-body{font-size:var(--text-xs);color:var(--ink-60);line-height:var(--leading-relaxed);padding-top:var(--sp-2);border-top:1px solid var(--border);display:none}.ingredients-body.open{display:block}.allergen-row{gap:var(--sp-1);flex-wrap:wrap;display:flex}.flavor-card-footer{padding-top:var(--sp-3);border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.order-summary{background:var(--surface);border:1.5px solid var(--border);padding:var(--sp-4);font-size:var(--text-sm);position:sticky;top:86px}.order-row{justify-content:space-between;align-items:center;gap:var(--sp-4);padding-block:var(--sp-3);border-bottom:1px solid var(--border);display:flex}.order-row:last-child{border-bottom:none}.order-row-name{font-weight:600;font-size:var(--text-sm)}.order-row-qty{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-40)}.order-row-price{font-family:var(--font-mono);white-space:nowrap;font-weight:700}.order-total{padding-top:var(--sp-4);margin-top:var(--sp-2);border-top:2px solid var(--ink);justify-content:space-between;align-items:center;display:flex}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes mascot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.reveal{opacity:0;transition:opacity var(--dur-slower) var(--ease-out), transform var(--dur-slower) var(--ease-out);transform:translateY(24px)}.reveal.visible{opacity:1;transform:none}.skeleton{background:linear-gradient(90deg, var(--paper-warm) 25%, var(--paper-tint) 50%, var(--paper-warm) 75%);border-radius:var(--radius-xs);background-size:200%;animation:1.4s linear infinite shimmer}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
