:root{--ink:#171512;--muted:#77736d;--line:#dfddd8;--paper:#fff;--wash:#f3f1ed;--red:#8d2f2f;--gold:#b28b50;--shadow:0 24px 70px rgba(20,18,15,.13)}
*{box-sizing:border-box}
html{background:var(--wash);color:var(--ink);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;scroll-behavior:smooth}
body{margin:0;min-height:100vh;padding-bottom:84px;background:radial-gradient(circle at 50% 0,#fff 0,#f6f4f0 45%,#eeece7 100%)}
button,input,textarea,select{font:inherit}
button{color:inherit}
.topbar{height:64px;padding:0 max(18px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:rgba(23,21,18,.97);color:#fff;position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:11px}.brand b{display:block;font-family:"Noto Serif SC","Songti SC",serif;letter-spacing:.18em;font-size:18px}.brand small{display:block;color:#bdb7ac;font-size:11px;letter-spacing:.12em;margin-top:3px}
.seal{width:34px;height:42px;border:1px solid #c9ab77;color:#c9ab77;display:grid;place-content:center;line-height:15px;font-family:serif;font-size:12px}
.cart-head{border:1px solid #504a41;background:#25221d;color:#eee8de;border-radius:999px;padding:9px 15px;cursor:pointer}.cart-head strong{color:#d0b17c;margin-left:4px}
.chapters{height:46px;display:flex;gap:2px;align-items:center;padding:0 max(12px,calc((100vw - 1180px)/2));overflow-x:auto;scrollbar-width:none;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);position:sticky;top:64px;z-index:19}.chapters::-webkit-scrollbar{display:none}.chapters button{flex:0 0 auto;border:0;background:transparent;padding:13px 18px 11px;color:#77726b;font-weight:600;font-size:14px;border-bottom:2px solid transparent;cursor:pointer}.chapters button.active{color:var(--ink);border-bottom-color:var(--red)}
main{margin:auto;padding:12px 20px 4px}.menu-stage{margin:auto}.stage-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;letter-spacing:.08em;margin:0 52px 10px}.stage-meta b{color:var(--ink);font-size:15px}
.page-shell{display:flex;align-items:center;justify-content:center;gap:12px}.menu-page{position:relative;flex:0 0 auto;width:min(calc(100vw - 150px),calc((100vh - 236px)*1.414));width:min(calc(100vw - 150px),calc((100dvh - 236px)*1.414));min-width:280px;border:0;padding:0;background:#fff;box-shadow:var(--shadow);cursor:grab;overflow:hidden;aspect-ratio:1.414/1;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline:none}.menu-page.zoomed{touch-action:none;cursor:move}.menu-page:active{cursor:grabbing}.menu-page:focus-visible{box-shadow:0 0 0 3px rgba(141,47,47,.28),var(--shadow)}.page-track{display:flex;width:100%;height:100%;transform:translate3d(-100%,0,0);transition:transform .32s cubic-bezier(.22,.75,.25,1);will-change:transform}.page-track.dragging{transition:none}.page-slide{flex:0 0 var(--slide,100%);height:100%;position:relative}.page-slide.current{transform-origin:0 0}.page-slide.current.zoom-anim{transition:transform .22s ease}.page-slide img{display:block;width:100%;height:100%;object-fit:contain;background:#fff;pointer-events:none}.hotspot-layer{position:absolute;inset:0;z-index:3;transition:opacity .12s}.hotspot-layer.hidden{opacity:0;pointer-events:none}.menu-hit{position:absolute;border:0;border-radius:5px;background:transparent;padding:0;cursor:pointer;pointer-events:auto;outline:none;-webkit-tap-highlight-color:transparent;transition:background .14s,box-shadow .14s}.menu-hit:focus-visible{background:rgba(178,139,80,.11);box-shadow:inset 0 0 0 1px rgba(141,47,47,.28)}.menu-hit:active{background:rgba(141,47,47,.18);box-shadow:inset 0 0 0 1px rgba(141,47,47,.38)}.page-arrow{width:42px;height:42px;border:1px solid #d8d4cd;background:rgba(255,255,255,.82);border-radius:50%;font-size:31px;line-height:1;cursor:pointer;transition:.2s}.page-arrow:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.page-arrow:disabled,.page-bar button:disabled{opacity:.3;cursor:not-allowed}
@media(hover:hover){.menu-hit:hover{background:rgba(178,139,80,.11);box-shadow:inset 0 0 0 1px rgba(141,47,47,.28)}}
.page-bar{display:flex;align-items:center;justify-content:center;gap:8px;margin:8px auto 0;padding:0 10px}.page-bar button{min-height:34px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#57514a;font-size:13px;cursor:pointer}.page-count{min-width:74px;text-align:center;color:var(--muted);font-size:12px;letter-spacing:.06em;white-space:nowrap}.page-count b{color:var(--ink);font-size:14px}.page-count i{display:block;font-style:normal;font-size:8px;letter-spacing:3px;color:#c2b8a8;line-height:1}.page-count i:empty{display:none}.page-bar .view-toggle{border-color:#e2d3b9;background:#faf5eb;color:#6b4e25;font-weight:700}.zoom-reset{position:absolute;right:10px;top:10px;z-index:6;min-height:32px;padding:0 13px;border:0;border-radius:999px;background:rgba(23,21,18,.84);color:#fff;font-size:12px;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer}.zoom-reset[hidden]{display:none}.ghost{background:#fff;border:1px solid var(--line)}.primary{border:0;background:var(--ink);color:#fff;padding:13px 24px;border-radius:999px;cursor:pointer;font-weight:700}.hint{text-align:center;color:#9a948c;font-size:11px;margin:6px 0 0}.add-toast{position:fixed;z-index:38;left:50%;bottom:96px;transform:translate(-50%,12px);max-width:calc(100vw - 32px);padding:10px 16px;border-radius:999px;background:rgba(23,21,18,.94);color:#fff;box-shadow:0 8px 30px rgba(0,0,0,.22);font-size:13px;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap}.add-toast.show{opacity:1;transform:translate(-50%,0)}
.cart-dock{position:fixed;z-index:25;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(560px,calc(100vw - 28px));min-height:60px;border:0;border-radius:18px;background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:15px;padding:0 20px;box-shadow:0 16px 42px rgba(0,0,0,.28);cursor:pointer}.cart-dock[hidden]{display:none}.cart-dock span{font-size:14px}.cart-dock i{font-style:normal;color:#d9bd8c;font-weight:800}.cart-dock strong{color:#e4c996}.cart-dock em{font-style:normal;font-size:13px;border-left:1px solid #504a42;padding-left:15px}
.backdrop{position:fixed;inset:0;background:rgba(10,9,8,.48);z-index:40;backdrop-filter:blur(3px)}.sheet{position:fixed;z-index:41;left:50%;bottom:0;transform:translate(-50%,105%);width:min(620px,100%);max-height:min(82vh,760px);background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -18px 60px rgba(0,0,0,.22);padding:8px 24px max(24px,env(safe-area-inset-bottom));transition:transform .28s ease;overflow:auto}.sheet.open{transform:translate(-50%,0)}.sheet-grip{width:42px;height:4px;border-radius:4px;background:#d7d3cc;margin:2px auto 12px}.sheet header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding:4px 0 14px;position:sticky;top:-8px;background:#fff;z-index:2}.sheet header small,.success small{color:var(--gold);letter-spacing:.15em;font-size:10px}.sheet h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:24px;margin:3px 0 0}.close{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:25px;cursor:pointer}.cart-list{padding:8px 0}.empty{padding:50px 12px;text-align:center;color:var(--muted)}
.cart-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid #eeeae4}.cart-item h3{font-size:15px;margin:0 0 4px}.cart-item p{font-size:13px;color:var(--muted);margin:0}.qty{display:flex;align-items:center;gap:12px}.qty button{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer}.cart-summary{display:flex;justify-content:space-between;font-size:16px;padding:18px 0 8px}.cart-summary strong{font-size:22px}.market-note,.form-note{font-size:12px;color:#896f48;background:#faf5eb;padding:10px 12px;border-radius:8px}.checkout{width:100%;min-height:52px;border:0;background:var(--red);color:#fff;border-radius:12px;font-weight:700;cursor:pointer;margin-top:14px}
.order-error{margin:10px 0 0;padding:10px 12px;border-radius:8px;background:#fff0ee;color:#8b2929;font-size:12px}.site-footer{max-width:1160px;margin:6px auto 0;padding:10px 20px 14px;display:flex;justify-content:space-between;border-top:1px solid var(--line);color:#99928a;font-size:11px}.site-footer a{color:#777069;text-decoration:none}.site-footer a:hover{color:var(--red)}
form{padding-top:15px}form label{display:block;font-size:13px;font-weight:700;margin-bottom:14px}input,textarea,select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:12px 13px;background:#fbfaf8;font-size:16px;color:var(--ink)}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.visit-date,.seafood-choice{border:1px solid #e6d8c4;border-radius:14px;background:#fdf9f2;padding:13px;margin:2px 0 14px}.visit-date legend,.seafood-choice legend{padding:0 7px;font-size:15px;font-weight:800}.visit-date legend strong{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;background:#8d2f2f;color:#fff;font-size:10px;vertical-align:2px}.visit-date>p,.seafood-choice>p{margin:0 0 11px;color:#6f6253;font-size:12px;line-height:1.55}.date-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.date-card{position:relative;margin:0!important}.date-card input,.seafood-options input{position:absolute;opacity:0;pointer-events:none}.date-card span{display:block;min-height:70px;padding:12px 9px;border:1.5px solid #d7cec1;border-radius:11px;background:#fff;cursor:pointer;transition:.15s}.date-card b{display:block;font-size:18px;line-height:1.1}.date-card small{display:block;margin-top:7px;color:#766f67;font-size:11px;font-weight:500}.date-card input:checked+span{border-color:var(--red);background:#fff8f5;box-shadow:inset 0 0 0 1px var(--red)}.date-card input:checked+span b{color:var(--red)}.date-card input:focus-visible+span,.seafood-options input:focus-visible+span{outline:3px solid rgba(141,47,47,.2);outline-offset:2px}.other-date{margin:10px 0 0!important;padding-top:9px;border-top:1px solid #eadfce}.other-date[hidden]{display:none}.visit-time select{min-height:51px;border-width:1.5px}.visit-summary{margin:-4px 0 15px;padding:10px 12px;border-radius:9px;background:#fff1ef;color:#792b2b;font-size:13px;font-weight:700}.visit-summary.ready{background:#f0ede7;color:#3f3932}.seafood-choice[hidden]{display:none}.seafood-options{display:grid;gap:8px}.seafood-options label{position:relative;margin:0!important}.seafood-options span{display:block;padding:11px 12px;border:1.5px solid #d7cec1;border-radius:10px;background:#fff;cursor:pointer}.seafood-options b,.seafood-options small{display:block}.seafood-options b{font-size:14px}.seafood-options small{margin-top:4px;color:#776f65;font-size:12px;font-weight:500}.seafood-options input:checked+span{border-color:var(--red);background:#fff8f5;box-shadow:inset 0 0 0 1px var(--red)}.seafood-options input:checked+span b{color:var(--red)}
dialog{border:0}.success{width:min(430px,calc(100vw - 30px));border-radius:22px;padding:34px;text-align:center;box-shadow:var(--shadow)}.success::backdrop,.zoom::backdrop,.option-dialog::backdrop{background:rgba(10,9,8,.82);backdrop-filter:blur(5px)}.success-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;margin:0 auto 14px;background:#edf3e9;color:#3b6b36;font-size:28px}.success h2{font-family:serif;margin:8px}.success p{color:var(--muted)}.success-copy{font-size:13px;line-height:1.7}.success-summary{margin:-4px 0 10px;padding:9px 12px;border-radius:10px;background:#f4f1eb;color:var(--ink)!important;font-size:14px;font-weight:700}.success-summary:empty{display:none}.visit-time option:disabled{color:#b9b3aa}.zoom{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:54px 14px 18px;background:#151310;overflow:auto}.zoom img{display:block;max-width:none;width:max(100%,1100px);height:auto;margin:auto}.zoom-close{position:fixed;right:16px;top:14px;z-index:2;width:40px;height:40px;border:1px solid #5a554d;border-radius:50%;background:#292621;color:#fff;font-size:25px;cursor:pointer}.option-dialog{width:min(520px,calc(100vw - 28px));max-height:min(82vh,720px);padding:0;border-radius:20px;box-shadow:var(--shadow);overflow:auto}.option-dialog form{position:relative;padding:27px 24px 22px}.option-dialog small{color:var(--gold);font-size:10px;letter-spacing:.14em}.option-dialog h2{margin:5px 45px 6px 0;font-family:"Noto Serif SC","Songti SC",serif;font-size:24px}.option-dialog p{margin:0 0 16px;color:var(--muted);font-size:13px}.option-close{position:absolute;right:18px;top:18px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:23px;cursor:pointer}.option-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.option-list label{position:relative;margin:0}.option-list input{position:absolute;opacity:0;pointer-events:none}.option-list span{display:block;min-height:47px;padding:13px 11px;border:1.5px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:14px;font-weight:700;text-align:center}.option-list input:checked+span{border-color:var(--red);background:#fff6f3;color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}.option-list input:focus-visible+span{outline:3px solid rgba(141,47,47,.2);outline-offset:2px}.option-price{margin:-2px 0 8px!important;color:var(--red)!important;font-size:14px!important;font-weight:800}.option-group{margin:0 0 16px}.option-group h3{display:flex;align-items:center;gap:7px;margin:0 0 9px;font-size:14px}.option-group h3 em{font-style:normal;padding:2px 7px;border-radius:999px;background:#8d2f2f;color:#fff;font-size:10px;font-weight:700}.option-group.locked .option-list{opacity:.42}.option-group.locked label span{cursor:not-allowed}.group-note{margin:0 0 8px!important;color:#8b6d45!important;font-size:12px!important}.option-list span small{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:0}.option-list input:checked+span small{color:var(--red)}.option-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:9px;margin-top:18px}.option-actions button{min-height:48px;border-radius:999px}.option-actions .primary:disabled{opacity:.35;cursor:not-allowed}
@media(max-width:760px){body{padding-bottom:84px}.topbar{height:52px;padding:0 12px}.brand b{font-size:15px}.seal{height:32px;width:27px;font-size:11px;line-height:13px}.cart-head{font-size:13px;padding:7px 13px}.chapters{top:52px;height:42px;padding:0 6px}.chapters button{padding:12px 12px 10px;font-size:13.5px}main{padding:6px 0 0}.page-shell{display:block}.page-arrow{display:none}.menu-page{width:100%;margin:0 auto;box-shadow:0 6px 20px rgba(0,0,0,.08)}.half-view .menu-page{aspect-ratio:.792/1;width:min(100%,calc((100vh - 150px)*.792));width:min(100%,calc((100dvh - 150px)*.792))}.half-view .page-slide{--slide:178.5714%}.page-bar{margin-top:6px;padding:0 8px;gap:6px}.page-bar button{padding:0 12px}.sheet{padding-left:18px;padding-right:18px}.cart-dock{bottom:max(12px,env(safe-area-inset-bottom))}.form-row{grid-template-columns:1fr}}
@media(max-height:560px) and (orientation:landscape){.topbar{height:44px}.brand small{display:none}.seal{height:28px;width:24px;font-size:10px;line-height:12px}.chapters{top:44px;height:36px}.chapters button{padding:9px 14px 8px;font-size:13px}main{padding:4px 12px 0}.menu-page{width:min(calc(100vw - 120px),calc((100vh - 128px)*1.414));width:min(calc(100vw - 120px),calc((100dvh - 128px)*1.414))}.page-bar{margin-top:4px}.page-bar button{min-height:30px}.hint{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
