:root{--ink:#1e1527;--paper:#f7f0e5;--berry:#9b315c;--gold:#c58f3b;--muted:#6c6270}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Work Sans',sans-serif}
.page-noise{pointer-events:none;position:fixed;inset:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");z-index:5}
.site-header{height:85px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,7vw,112px);position:absolute;top:0;width:100%;z-index:2;color:#fff}
.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-family:'Playfair Display',serif;font-size:18px;line-height:.8}
.brand-mark{border:1px solid #fff;border-radius:50%;display:grid;place-items:center;height:40px;width:40px;font-size:24px}
.header-link{color:inherit;text-decoration:none;font-size:14px;font-weight:600}
.hero{min-height:600px;padding:160px clamp(24px,14vw,220px) 100px;color:#fff;position:relative;overflow:hidden;background:linear-gradient(118deg,#160b20 0%,#30203a 55%,#21102d 100%)}
.hero:before{content:'';position:absolute;inset:18px;border:1px solid rgba(237,189,121,.11);pointer-events:none}
.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,3,12,.23),transparent 67%);pointer-events:none}
.hero>*{position:relative;z-index:1}
.hero-content{position:relative;z-index:2}
.eyebrow{font:500 11px 'DM Mono',monospace;letter-spacing:.16em;color:var(--gold);margin:0 0 17px}
.hero h1,.detail-hero h1{font:700 clamp(46px,6.5vw,91px)/.94 'Playfair Display',serif;margin:0;letter-spacing:-.055em}
.hero h1 em{color:#edbd79;font-style:italic}
.hero-copy{max-width:440px;line-height:1.6;margin:28px 0 33px;color:#eee4e7}
.button{display:inline-flex;gap:18px;align-items:center;justify-content:center;background:var(--gold);color:#25151f;border:0;padding:15px 20px;font-weight:700;text-decoration:none;cursor:pointer;font-family:inherit}
.button:hover{filter:brightness(1.08)}
.button:disabled{opacity:.65;cursor:wait}
.hero .button{transition:transform .24s cubic-bezier(.2,.8,.3,1),box-shadow .24s ease,filter .2s ease}
.hero .button:hover{transform:translateY(-4px) scale(1.045);filter:brightness(1.15) saturate(1.08);box-shadow:0 0 0 6px rgba(237,189,121,.28),0 0 28px rgba(237,189,121,.62),0 16px 32px rgba(0,0,0,.32);animation:hero-button-pop .48s cubic-bezier(.2,.8,.3,1),hero-button-glow 1.15s ease-in-out infinite alternate}
@keyframes hero-button-pop{0%{transform:translateY(0) scale(1)}55%{transform:translateY(-7px) scale(1.08)}100%{transform:translateY(-4px) scale(1.045)}}
@keyframes hero-button-glow{from{box-shadow:0 0 0 5px rgba(237,189,121,.19),0 0 14px rgba(237,189,121,.38),0 16px 32px rgba(0,0,0,.32)}to{box-shadow:0 0 0 8px rgba(237,189,121,.34),0 0 38px rgba(237,189,121,.78),0 16px 32px rgba(0,0,0,.32)}}
.case-file{position:absolute;right:clamp(8%,13vw,210px);top:132px;width:270px;height:338px;padding:31px 29px;background:#eadbc4;color:#2d1b30;transform:rotate(7deg);box-shadow:16px 18px 0 rgba(11,5,17,.19),inset 0 0 0 1px rgba(67,35,52,.24);z-index:1}
.case-file:before{content:'';position:absolute;inset:10px;border:1px solid rgba(100,48,69,.32)}
.case-file>*{position:relative;z-index:1}
.case-file-pin{position:absolute;top:16px;left:50%;width:13px;height:13px;border-radius:50%;background:#9b315c;box-shadow:0 2px 1px rgba(0,0,0,.3);transform:translateX(-50%)}
.case-file-label{display:inline-block;border:1px solid #9b315c;color:#9b315c;padding:4px 7px;font:500 9px 'DM Mono',monospace;letter-spacing:.14em}
.case-file strong{display:block;margin:28px 0 10px;font:700 30px/.9 'Playfair Display',serif;letter-spacing:-.05em}
.case-file-rule{display:block;width:100%;height:1px;background:#8e6a67;margin:0 0 14px}
.case-file-name{display:block;font:500 12px/1.45 'DM Mono',monospace;letter-spacing:.08em}
.case-file-number{position:absolute;bottom:27px;left:29px;font:500 11px 'DM Mono',monospace;letter-spacing:.1em;color:#74435e}
.case-file-seal{position:absolute;right:27px;bottom:21px;display:grid;place-items:center;width:45px;height:45px;border:2px solid #9b315c;border-radius:50%;font:700 28px 'Playfair Display',serif;color:#9b315c}
.dinners-section{padding:90px clamp(24px,8vw,125px) 110px}
.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:35px}
.section-title h2,.feedback-panel h2,.ratings h2{font:700 clamp(34px,4vw,56px)/1 'Playfair Display',serif;letter-spacing:-.04em;margin:0}
.dinner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.dinner-card{min-height:330px;padding:28px;color:#fff;text-decoration:none;position:relative;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,var(--theme),#1a1021);background-size:cover;background-position:center;overflow:hidden;transition:transform .2s}
.dinner-card:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.46),transparent 70%)}
.dinner-card>*{position:relative}
.dinner-card:hover{transform:translateY(-4px)}
.case-number{font:11px 'DM Mono',monospace;letter-spacing:.1em}
.dinner-card h2{font:700 clamp(31px,3.6vw,50px)/.96 'Playfair Display',serif;margin:0 0 13px;letter-spacing:-.05em}
.dinner-card p{max-width:380px;line-height:1.5;margin:0;color:#fffdf8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.card-arrow{position:absolute;right:24px;bottom:23px;font-size:26px}
.loading,.empty,.error{padding:35px 0;color:var(--muted)}
.error{color:#ae2454}
.back-link{display:block;padding:105px clamp(24px,8vw,125px) 22px;color:var(--berry);font-weight:700;text-decoration:none}
.detail-hero{min-height:360px;padding:70px clamp(24px,8vw,125px);display:flex;align-items:end;color:#fff;background:linear-gradient(135deg,var(--theme),#1c1124);background-size:cover;background-position:center}
.detail-hero>div{max-width:700px}
.detail-hero p:not(.eyebrow){max-width:580px;line-height:1.65;margin:24px 0 0;color:#f4edf0}
.detail-content{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:80px;padding:70px clamp(24px,8vw,125px) 110px}
.rating-summary{margin:25px 0 35px;display:flex;align-items:center;gap:16px}
.rating-summary strong{font:700 54px/1 'Playfair Display',serif}
.rating-summary span{color:var(--gold);font-size:18px}
.rating-summary small{color:var(--muted)}
.star{color:#d2c8bd}
.star.filled{color:var(--gold)}
.review{border-top:1px solid #ddcfc0;padding:20px 0}
.review>div:first-child{display:flex;gap:4px;align-items:center}
.review b{margin-left:11px;font-size:14px}
.review p{font:400 18px/1.55 'Playfair Display',serif;margin:12px 0 0}
.category-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 22px;margin:-10px 0 38px;max-width:590px}
.category-breakdown>div{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:center;padding:8px 0;border-bottom:1px solid #dfd2c5;font-size:12px}
.category-breakdown b{font:600 14px 'DM Mono',monospace;color:var(--berry)}
.category-breakdown .star{font-size:12px}
.review-categories{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:13px}
.review-categories span{display:inline-flex;align-items:center;gap:3px;color:var(--gold);font-size:11px}
.review-categories i{color:var(--muted);font:10px 'DM Mono',monospace;font-style:normal}
.review-categories .star{font-size:10px}
.feedback-panel{padding:32px;background:#251730;color:#fff;align-self:start}
.feedback-panel h2{font-size:38px}
.feedback-panel .eyebrow{margin-top:0}
.feedback-panel label,.feedback-panel legend{display:block;font-size:13px;font-weight:600;margin:22px 0 8px}
.feedback-panel input:not([type=radio]),.feedback-panel textarea{width:100%;border:1px solid #68526e;background:transparent;color:#fff;padding:12px;font:inherit}
.feedback-panel textarea{height:112px;resize:vertical}
.feedback-panel fieldset{border:0;padding:0;margin:0}
.ratings-fieldset{margin-top:22px!important}
.ratings-fieldset>legend{margin:0 0 4px!important}
.rating-hint{margin:0 0 15px;color:#cdbbc7;font-size:12px;line-height:1.45}
.category-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.category-input{margin:0!important;padding:10px 0!important;border-top:1px solid #5b435f!important}
.category-input legend{margin:0 0 8px!important;font-size:12px!important}
.rating-input{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:3px}
.rating-input input{position:absolute;opacity:0}
.rating-input label{color:#836d88;font-size:27px;line-height:1;margin:0;cursor:pointer}
.rating-input input:checked~label,.rating-input label:hover,.rating-input label:hover~label{color:var(--gold)}
.form-status{font-size:13px;line-height:1.4;min-height:20px;color:#ead7bf}
.photo-upload{margin-top:22px;padding:14px 15px 2px;border-left:2px solid var(--gold);background:rgba(255,255,255,.045)}
.photo-upload p{margin:0 0 12px;color:#e0d0d9;font-size:12px;line-height:1.5}
.photo-upload label{margin-top:0!important}
.photo-upload input[type=file]{padding:9px;cursor:pointer}
.optional{color:#cdbbc7;font-size:11px;font-weight:400}
.photo-upload label>span:last-child{display:block;margin-top:8px;color:#cdbbc7;font-size:11px;font-weight:400;line-height:1.4}
.feedback-submit{margin-top:26px!important;background:#8c7351!important;opacity:.62;transition:background .25s ease,opacity .25s ease,transform .25s cubic-bezier(.2,.8,.3,1),box-shadow .25s ease,filter .25s ease}
.feedback-panel form.is-ready .feedback-submit:not(:disabled){background:#f2c26d!important;opacity:1;transform:translateY(-2px);box-shadow:0 0 0 5px rgba(242,194,109,.13),0 11px 25px rgba(0,0,0,.25);animation:feedback-ready .65s cubic-bezier(.2,.8,.3,1)}
@keyframes feedback-ready{0%{transform:translateY(0) scale(.96)}60%{transform:translateY(-4px) scale(1.035)}100%{transform:translateY(-2px) scale(1)}}
.review-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:18px;max-width:480px}
.review-photo{display:block;border:0;padding:0;aspect-ratio:1;overflow:hidden;cursor:zoom-in;background:#d9cbbd}
.review-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease,filter .25s ease}
.review-photo:hover img{transform:scale(1.08);filter:brightness(1.06)}
.lightbox[hidden]{display:none}
.lightbox{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:32px;background:rgba(20,12,27,.9);backdrop-filter:blur(8px)}
.lightbox figure{margin:0;max-width:min(950px,100%);max-height:100%;display:grid;gap:12px}
.lightbox img{max-width:100%;max-height:calc(100vh - 120px);display:block;object-fit:contain;box-shadow:0 18px 70px rgba(0,0,0,.42)}
.lightbox figcaption{color:#f7f0e5;text-align:center;font-size:13px}
.lightbox-close{position:fixed;right:24px;top:18px;border:0;background:none;color:#fff;font-size:42px;line-height:1;cursor:pointer}
.lightbox-open{overflow:hidden}
.muted{color:var(--muted);line-height:1.6}
.detail-loading{padding:160px 10%;min-height:60vh}
footer{text-align:center;padding:30px;color:#7d7077;font:11px 'DM Mono',monospace;letter-spacing:.08em;border-top:1px solid #dfd2c5}
.is-detail .site-header{background:#251730}
.rating-input label{transition:color .18s ease,transform .24s cubic-bezier(.2,.8,.3,1),filter .24s ease}
.rating-input label:hover{transform:translateY(-7px) rotate(-6deg) scale(1.14);filter:drop-shadow(0 6px 4px rgba(197,143,59,.26))}
.rating-input label:hover~label{transform:translateY(-3px) scale(1.06)}
.about-section{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:80px;padding:110px clamp(24px,8vw,125px);background:#e9ddcc}
.about-intro h2{font:700 clamp(37px,4.5vw,62px)/1.02 'Playfair Display',serif;letter-spacing:-.05em;margin:0 0 28px}
.about-intro>p{max-width:660px;line-height:1.7;color:#514552;font-size:17px}
.author-card{display:grid;grid-template-columns:180px 1fr;gap:24px;align-items:start}
.author-photo{aspect-ratio:3/4;overflow:hidden;background:#3b2344}
.author-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.author-card h3{font:700 32px/1 'Playfair Display',serif;letter-spacing:-.04em;margin:0 0 14px}
.author-card p:not(.eyebrow){line-height:1.65;color:#514552;margin:0 0 15px}
.author-card .author-note{font:italic 16px 'Playfair Display',serif;color:var(--berry)}
@media(max-width:720px){.about-section{grid-template-columns:1fr;gap:40px;padding:70px 24px}
.author-card{grid-template-columns:120px 1fr;gap:18px}
.author-card h3{font-size:28px}
.header-link{display:none}
.hero{min-height:700px;padding:136px 24px 56px}
.hero:before{inset:10px}
.hero h1{font-size:clamp(44px,13vw,58px)}
.hero-copy{max-width:330px;margin:22px 0 27px;font-size:15px}
.hero .button{padding:14px 17px;gap:14px}
.case-file{right:-28px;top:430px;width:175px;height:215px;padding:20px 18px;transform:rotate(6deg)}
.case-file:before{inset:8px}
.case-file-pin{top:12px;width:10px;height:10px}
.case-file-label{padding:3px 5px;font-size:7px}
.case-file strong{margin:16px 0 6px;font-size:21px}
.case-file-name{font-size:8px}
.case-file-number{bottom:16px;left:18px;font-size:8px}
.case-file-seal{right:17px;bottom:13px;width:30px;height:30px;font-size:18px}
.dinners-section{padding:62px 24px}
.dinner-grid{grid-template-columns:1fr}
.dinner-card{min-height:270px}
.detail-content{grid-template-columns:1fr;gap:50px;padding:55px 24px 80px}
.detail-hero{padding:55px 24px;min-height:330px}
.back-link{padding:105px 24px 20px}
.category-breakdown{grid-template-columns:1fr;margin-bottom:30px}
.category-inputs{grid-template-columns:1fr}
.lightbox{padding:20px}
.lightbox-close{right:14px;top:12px}
}
