:root{--cream: #f6efe4;--cream-deep: #efe4d4;--paper: #fbf6ee;--beige: #d9c7a8;--beige-strong: #c4ad88;--brown: #3c2a1e;--brown-soft: #5c4332;--brown-muted: #7a5c45;--nav-bg: rgba(246, 239, 228, .94);--chip-active-bg: #3c2a1e;--chip-active-text: #f6efe4;--shadow: 0 10px 28px rgba(60, 42, 30, .12);--nav-height: 3.5rem;--lightbox-bg: #201610;--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: Georgia, "Palatino Linotype", Palatino, "Times New Roman", serif}html[data-theme=dark]{--cream: #1a120c;--cream-deep: #241910;--paper: #2a1d14;--beige: #5c4332;--beige-strong: #8a6a4e;--brown: #f3e6d4;--brown-soft: #e4d2bb;--brown-muted: #c4ad88;--nav-bg: rgba(26, 18, 12, .94);--chip-active-bg: #f3e6d4;--chip-active-text: #1a120c;--shadow: 0 10px 28px rgba(0, 0, 0, .35);--lightbox-bg: #100c09}*,*:before,*:after{box-sizing:border-box}html{height:100%;overflow:hidden;overscroll-behavior:none}html,body,#root{height:100%;height:100dvh;max-height:100dvh}body{margin:0;overflow:hidden;overscroll-behavior:none;background:var(--cream);color:var(--brown);font-family:var(--font-ui);line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.page{display:flex;flex-direction:column;height:100%;overflow:hidden;overscroll-behavior:none;background:radial-gradient(1200px 420px at 50% -80px,rgba(196,173,136,.28),transparent 70%),var(--cream)}.site-header{flex-shrink:0;padding:calc(.7rem + env(safe-area-inset-top)) 1.25rem .55rem;text-align:center}.brand{margin:0;font-family:var(--font-display);font-size:clamp(1.55rem,6.5vw,2.35rem);font-weight:700;letter-spacing:.01em;color:var(--brown)}.page-title{margin:.2rem 0 0;font-family:var(--font-ui);font-size:.95rem;font-weight:500;letter-spacing:.02em;color:var(--brown-muted)}.category-nav{flex-shrink:0;z-index:20;background:var(--nav-bg);border-bottom:1px solid var(--beige)}.category-nav-inner{display:flex;gap:.55rem;overflow-x:auto;overscroll-behavior:contain;padding:.55rem 1rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}.category-nav-inner::-webkit-scrollbar{display:none}.category-chip{flex:0 0 auto;margin:0;padding:.55rem .95rem;border:1px solid var(--beige);border-radius:999px;background:var(--paper);color:var(--brown-soft);font:inherit;font-size:.92rem;font-weight:600;white-space:nowrap;cursor:pointer}.category-chip.is-active{background:var(--chip-active-bg);border-color:var(--chip-active-bg);color:var(--chip-active-text)}.theme-toggle{display:inline-flex;margin-top:.65rem;padding:.18rem;border:1px solid var(--beige);border-radius:999px;background:var(--paper)}.theme-btn{margin:0;min-width:4.6rem;padding:.4rem .85rem;border:0;border-radius:999px;background:transparent;color:var(--brown-muted);font:inherit;font-size:.88rem;font-weight:700;cursor:pointer}.theme-btn.is-active{background:var(--chip-active-bg);color:var(--chip-active-text)}.menu{flex:1;min-height:0;display:flex;flex-direction:column;width:min(42rem,calc(100% - 1.5rem));margin:0 auto;padding:.55rem 0 calc(.7rem + env(safe-area-inset-bottom))}.section-title{flex-shrink:0;margin:0 0 .45rem;font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--brown)}.carousel{flex:1;min-height:0;display:flex;flex-direction:column}.carousel-stage{flex:1;min-height:0;display:grid;grid-template-columns:1fr;align-items:stretch;gap:.35rem}.carousel-viewport{width:100%;min-width:0;min-height:0;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:pan-x;background:transparent;cursor:zoom-in;-webkit-user-select:none;user-select:none}.carousel-track{display:flex;width:100%;height:100%;will-change:transform}.carousel-slide{flex:0 0 100%;min-width:100%;max-width:100%;height:100%;display:flex;align-items:flex-start;justify-content:center}.carousel-card{position:relative;flex:0 0 auto;overflow:hidden;border-radius:1rem;background:var(--paper);box-shadow:var(--shadow),0 0 0 1px var(--beige)}.carousel-card img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:transparent;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.carousel-arrow{display:none;width:2.4rem;height:2.4rem;margin:0;padding:0;border:1px solid var(--beige);border-radius:50%;background:var(--paper);color:var(--brown);font:inherit;font-size:1.6rem;line-height:1;cursor:pointer}.carousel-arrow:disabled{opacity:.28;cursor:default}.carousel-meta{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-top:.65rem}.carousel-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem}.carousel-dot{width:.55rem;height:.55rem;margin:0;padding:0;border:0;border-radius:50%;background:var(--beige-strong);cursor:pointer}.carousel-dot.is-active{background:var(--brown);transform:scale(1.15)}.carousel-count{margin:0;color:var(--brown-muted);font-size:.92rem;font-weight:600}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;isolation:isolate;background:var(--lightbox-bg);display:flex;flex-direction:column;overscroll-behavior:contain;touch-action:none}body:has(.lightbox) .carousel{pointer-events:none}.lightbox-close{position:absolute;top:calc(.75rem + env(safe-area-inset-top));right:calc(.75rem + env(safe-area-inset-right));z-index:2;display:inline-flex;align-items:center;gap:.35rem;min-height:2.75rem;padding:.45rem .9rem .45rem .65rem;border:0;border-radius:999px;background:var(--paper);color:var(--brown);font:inherit;font-size:1rem;font-weight:700;box-shadow:0 8px 20px #00000047;cursor:pointer}.lightbox-close-icon{display:inline-flex;width:1.6rem;height:1.6rem;align-items:center;justify-content:center;font-size:1.6rem;line-height:1}.lightbox-frame{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;padding:4.5rem .75rem 1.25rem}.lightbox-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transform-origin:center center;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(hover:hover)and (pointer:fine){.carousel-stage{grid-template-columns:auto 1fr auto;gap:.6rem}.carousel-arrow{display:inline-flex;align-items:center;justify-content:center}}@media(min-width:720px){.menu{width:min(46rem,calc(100% - 3rem))}}@media(prefers-reduced-motion:reduce){.carousel-track{transition:none}}
