*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:#0e0d0b}body{font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}body.cursor-hidden,body.cursor-hidden *{cursor:none!important}img{max-width:100%}button{font:inherit;cursor:pointer}.util-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3.2vh;background:radial-gradient(120% 120% at 50% 0%,#201c17,#0e0d0b 70%);color:#f2ede4;text-align:center;padding:6vh 6vw}.util-kicker{font-size:1.8vh;letter-spacing:.42em;text-transform:uppercase;color:#d3a55e;font-weight:600}.util-title{font-family:Fraunces,Georgia,serif;font-size:5.4vh;font-weight:600;line-height:1.15}.util-sub{font-size:2.1vh;color:#b5ac9d;max-width:60vw;line-height:1.55}.util-error{font-size:2vh;color:#e06152;min-height:2.6vh}.code-row{display:flex;gap:1.6vh}.code-cell{width:7.2vh;height:9.6vh;border:2px solid rgba(242,237,228,.22);border-radius:1.2vh;background:#ffffff0a;color:#f2ede4;font-family:DM Mono,Menlo,monospace;font-size:5.2vh;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease}.code-cell.active{border-color:#d3a55e;box-shadow:0 0 0 .5vh #d3a55e26}.code-hidden-input{position:absolute;opacity:0;pointer-events:none}.util-button{border:none;background:#d3a55e;color:#141210;font-size:2.3vh;font-weight:600;padding:2vh 5.4vw;border-radius:1.2vh;letter-spacing:.04em}.util-button:disabled{opacity:.4;cursor:default}.util-button.ghost{background:transparent;color:#b5ac9d;border:1px solid rgba(242,237,228,.25)}.screen-choice-list{display:flex;flex-wrap:wrap;gap:2.4vh;justify-content:center}.screen-choice{border:1px solid rgba(242,237,228,.22);background:#ffffff0a;color:#f2ede4;border-radius:1.4vh;padding:3.2vh 4.2vh;min-width:26vh;display:flex;flex-direction:column;gap:1vh;transition:border-color .15s ease,transform .15s ease}.screen-choice:hover,.screen-choice:focus{border-color:#d3a55e;transform:translateY(-.4vh)}.screen-choice .dims{font-family:DM Mono,Menlo,monospace;font-size:1.7vh;color:#7d7568}.screen-choice .name{font-family:Fraunces,Georgia,serif;font-size:3vh}.offline-banner{position:fixed;bottom:2.4vh;right:2.4vh;z-index:60;background:#141210d9;color:#f2ede4;border:1px solid rgba(242,237,228,.2);border-radius:1vh;padding:1.2vh 2vh;font-size:1.7vh;display:flex;align-items:center;gap:1.2vh;backdrop-filter:blur(4px)}.offline-dot{width:1.1vh;height:1.1vh;border-radius:50%;background:#e0a852;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.board-root{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);overflow:hidden;display:flex;flex-direction:column}.board-canvas{flex:1;min-height:0;display:flex;padding:3.4vh 3vw;gap:2.6vw}.board-canvas.root-column{flex-direction:column;gap:var(--section-gap)}.board-canvas.root-row{flex-direction:row}.layout-column{display:flex;flex-direction:column;gap:var(--section-gap);min-width:0;min-height:0}.layout-row{display:flex;flex-direction:row;gap:2.4vw;min-width:0;min-height:0}.rotation-page{animation:pageIn .7s ease both;flex:1;min-height:0;display:flex;flex-direction:column}@keyframes pageIn{0%{opacity:0;transform:translateY(1.2vh)}to{opacity:1;transform:none}}.page-dots{position:fixed;bottom:1.6vh;left:50%;transform:translate(-50%);display:flex;gap:1vh;z-index:50}.page-dots span{width:1vh;height:1vh;border-radius:50%;background:var(--ink-faint);opacity:.4;transition:opacity .3s ease,transform .3s ease}.page-dots span.on{opacity:1;background:var(--accent);transform:scale(1.25)}.sec-header{display:flex;align-items:baseline;gap:2vw;border-bottom:1px solid var(--rule-strong);padding-bottom:1.8vh}.sec-header.center{flex-direction:column;align-items:center;gap:.6vh;text-align:center}.sec-header.space-between{justify-content:space-between}.sec-header .brand-logo{height:6.4vh;width:6.4vh;object-fit:contain;border-radius:.8vh}.sec-header .title{font-family:var(--font-display);font-size:var(--header-title-size);font-weight:600;letter-spacing:-.01em}.sec-header .tagline{font-size:1.9vh;color:var(--ink-soft);letter-spacing:.16em;text-transform:uppercase}.sec-menu-columns{flex:1;min-height:0;display:grid;gap:0 3vw;align-content:start;overflow:hidden}.menu-category{break-inside:avoid;margin-bottom:var(--section-gap)}.menu-category .cat-title{font-family:var(--font-display);font-size:var(--cat-title-size);font-weight:600;letter-spacing:.01em;margin-bottom:1.4vh;display:flex;align-items:baseline;gap:1.2vw}.menu-category .cat-title:after{content:"";flex:1;border-bottom:1px solid var(--rule);transform:translateY(-.55vh)}.menu-item-row{display:flex;align-items:baseline;gap:1vw;padding:calc(var(--item-gap) / 2) 0}.menu-item-row .veg-dot{width:1.5vh;height:1.5vh;border:1.5px solid;border-radius:.3vh;display:inline-flex;align-items:center;justify-content:center;flex:none;transform:translateY(.15vh)}.menu-item-row .veg-dot:after{content:"";width:.7vh;height:.7vh;border-radius:50%;background:currentColor}.menu-item-row .item-name{font-size:var(--item-name-size);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item-row .item-desc{display:block;font-size:var(--item-desc-size);color:var(--ink-soft);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.3vh}.menu-item-row .leader{flex:1;border-bottom:1px dotted var(--rule);min-width:2vw;transform:translateY(-.5vh)}.menu-item-row .price{font-family:var(--font-price);font-size:var(--price-size);font-weight:500;white-space:nowrap}.menu-item-row .price .from{font-size:70%;color:var(--ink-faint);margin-right:.3vw}.menu-item-row.sold-out .item-name,.menu-item-row.sold-out .price{color:var(--ink-faint);text-decoration:line-through}.sold-out-chip{font-size:1.3vh;font-weight:600;letter-spacing:.1em;color:var(--soldout);border:1px solid currentColor;padding:.2vh .8vh;border-radius:.4vh;flex:none}.item-label-chip{font-size:1.25vh;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--chip-bg);padding:.25vh .9vh;border-radius:2vh;flex:none}.sec-menu-grid{flex:1;min-height:0;display:grid;gap:2vh 1.4vw;align-content:start;overflow:hidden}.grid-card{background:var(--bg-raised);border-radius:var(--radius);overflow:hidden;box-shadow:var(--card-shadow, none);display:flex;flex-direction:column}.grid-card .photo-frame{position:relative;flex:1;min-height:0;width:100%;overflow:hidden;background:linear-gradient(140deg,var(--chip-bg) 0%,transparent 70%),var(--bg-raised)}.grid-card .body{flex:none}.grid-card .photo-frame:before{content:attr(data-initial);position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:9vh;font-weight:600;color:var(--accent);opacity:.22}.grid-card .photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.grid-card .body{padding:1.4vh 1.6vh 1.6vh;display:flex;flex-direction:column;gap:.5vh;min-height:0}.grid-card .row{display:flex;align-items:center;justify-content:space-between;gap:1vh}.grid-card .item-name{font-size:var(--item-name-size);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-card .price{font-family:var(--font-price);font-size:var(--price-size);font-weight:600;color:var(--accent)}.grid-card .item-desc{font-size:var(--item-desc-size);color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.grid-card.sold-out .photo{filter:grayscale(1) brightness(.7)}.sec-hero{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--bg-raised);box-shadow:var(--card-shadow, none)}.sec-hero .hero-photo{width:100%;height:30vh;object-fit:cover;display:block;animation:kenburns 24s ease-in-out infinite alternate}@keyframes kenburns{0%{transform:scale(1)}to{transform:scale(1.08)}}.sec-hero .hero-body{padding:2vh 2.2vh 2.4vh}.sec-hero .hero-label{font-size:1.5vh;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:.8vh}.sec-hero .hero-name{font-family:var(--font-display);font-size:3.4vh;font-weight:600;margin-bottom:.6vh}.sec-hero .hero-desc{font-size:1.7vh;color:var(--ink-soft);line-height:1.5}.sec-hero .hero-price{font-family:var(--font-price);font-size:2.8vh;font-weight:600;margin-top:1.2vh}.sec-offer-bar{background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius);padding:1.6vh 2.4vh;display:flex;align-items:center;gap:1.6vh;overflow:hidden;position:relative}.sec-offer-bar .offer-title{font-weight:700;font-size:2.1vh;letter-spacing:.02em}.sec-offer-bar .offer-discount{font-family:var(--font-display);font-size:3vh;font-weight:700;flex:none}.sec-offer-bar .offer-desc{font-size:1.7vh;opacity:.85}.theme-heavy .sec-offer-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.22) 50%,transparent 60%);transform:translate(-100%);animation:shine 5.5s ease-in-out infinite}@keyframes shine{0%,60%{transform:translate(-100%)}to{transform:translate(100%)}}.sec-legend{display:flex;align-items:center;gap:2.4vw;font-size:1.6vh;color:var(--ink-soft);border-top:1px solid var(--rule);padding-top:1.6vh}.sec-legend .legend-item{display:flex;align-items:center;gap:.8vh}.sec-text-block .tb-heading{font-family:var(--font-display);font-weight:600;margin-bottom:.8vh}.sec-text-block .tb-body{color:var(--ink-soft);line-height:1.55;white-space:pre-wrap}.sec-image-banner img{width:100%;border-radius:var(--radius);display:block}.sec-qr{display:flex;align-items:center;gap:1.8vh}.sec-qr img{border-radius:.8vh;background:#fff;padding:.8vh}.sec-qr .qr-label{font-size:1.8vh;color:var(--ink-soft);max-width:22vh;line-height:1.4}.sec-divider{border:none;border-top-style:solid;border-top-color:var(--rule);width:100%}.sec-category-strip{display:flex;gap:1.2vh;flex-wrap:wrap}.sec-category-strip .strip-chip{font-size:1.7vh;font-weight:500;padding:.9vh 1.8vh;border-radius:3vh;border:1px solid var(--rule);color:var(--ink-soft)}.sec-category-strip .strip-chip.hot{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.dark-state{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e0d0b;color:#b5ac9d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.4vh;text-align:center;padding:8vh}.dark-state .title{font-family:Fraunces,Georgia,serif;font-size:4.6vh;color:#f2ede4}.dark-state .sub{font-size:2vh;max-width:52vw;line-height:1.6}
