:root{--red:#ef452f;--blue:#1535a8;--ink:#171413;--cream:#f4ebd5;--line:rgba(23,20,19,.25)}
body.is-loading{overflow:hidden}.loader{position:fixed;inset:0;z-index:100;background:var(--ink);color:var(--cream);overflow:hidden;transition:visibility 0s 1.15s,opacity 1.1s cubic-bezier(.4,0,.2,1)}.loader:after{content:"";position:absolute;z-index:1;width:38vw;height:140vh;left:-45vw;top:-20vh;background:linear-gradient(90deg,transparent,rgba(239,69,47,.13),transparent);transform:rotate(18deg);animation:loaderGlow 2.4s ease-in-out infinite}.loader.is-leaving{opacity:0;pointer-events:none}.loader.is-done{visibility:hidden}.loader-panel{position:absolute;inset:0;width:100%;background:radial-gradient(circle at 50% 45%,#302825 0,var(--ink) 58%);transition:transform 1.2s cubic-bezier(.4,0,.2,1)}.loader-panel-right{display:none}.loader.is-leaving .loader-panel-left{transform:scale(1.035)}.loader-top,.loader-bottom{position:absolute;z-index:3;left:3vw;right:3vw;display:flex;align-items:center;justify-content:space-between;text-transform:uppercase;font-size:8px;font-weight:600;letter-spacing:2.5px;opacity:.55;transition:opacity .55s}.loader-top{top:3vw}.loader-bottom{bottom:3vw}.loader.is-leaving .loader-top,.loader.is-leaving .loader-bottom{opacity:0}.loader-center{position:absolute;z-index:3;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none;animation:loaderBreathe 1.5s ease-out both}.loader-center p,.loader-center small{text-transform:uppercase;font-size:8px;letter-spacing:3px;font-weight:500;opacity:.55;z-index:2}.loader-center p{margin:0 0 3vh}.loader-center small{margin-top:3vh}.loader-word{position:relative;z-index:2;width:100vw;font-size:clamp(68px,13vw,200px);font-weight:700;letter-spacing:-.075em;line-height:.8;text-transform:uppercase}.loader-word span{display:inline-block;animation:loaderPor 1.3s ease-in-out infinite alternate}.loader-word em{display:inline-block;font-family:Playfair Display,serif;color:var(--red);font-weight:700;animation:loaderFavor 1.3s ease-in-out infinite alternate}.loader-orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(244,235,213,.12);border-radius:50%;transform:translate(-50%,-50%);animation:orbitSpin 7s linear infinite}.loader-orbit-one{width:min(62vw,600px);height:min(62vw,600px)}.loader-orbit-two{width:min(82vw,800px);height:min(82vw,800px);animation-duration:11s;animation-direction:reverse;border-style:dashed}.loader-orbit i{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--red);top:12%;left:15%;box-shadow:0 0 25px var(--red)}.loader-orbit-two i{width:5px;height:5px;background:var(--cream);top:auto;left:auto;right:8%;bottom:24%;box-shadow:0 0 20px var(--cream)}.loader.is-leaving .loader-center{transform:translateY(-8px);opacity:0;transition:opacity .65s,transform .8s}.loader-line{height:1px;background:rgba(255,255,255,.13);flex:1;margin:0 25px;overflow:hidden}.loader-line i{display:block;height:100%;background:rgba(244,235,213,.7);width:0;transition:width .35s ease}.loader-count{font-variant-numeric:tabular-nums}@keyframes loaderBreathe{from{opacity:.35;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes loaderGlow{50%{left:110vw}}@keyframes orbitSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes loaderPor{to{transform:translateX(-10px)}}@keyframes loaderFavor{to{transform:translateX(10px)}}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--cream);color:var(--ink);font-family:Manrope,sans-serif;overflow-x:hidden}.grain{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.12;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='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}.cursor-dot{position:fixed;width:18px;height:18px;border-radius:50%;background:var(--red);z-index:50;pointer-events:none;mix-blend-mode:difference;transition:transform .2s;transform:translate(-50%,-50%)}
button,a{font:inherit;color:inherit}button{cursor:pointer}.site-header{height:82px;position:absolute;z-index:10;top:0;left:0;right:0;display:flex;align-items:center;gap:48px;padding:0 3vw;color:var(--cream);border-bottom:1px solid rgba(255,255,255,.25)}.logo{font-weight:800;font-size:25px;letter-spacing:-2px;text-decoration:none}.logo i{font-family:Playfair Display,serif;color:var(--red);font-size:1.25em}.site-header nav{display:flex;gap:30px;margin:auto}.site-header nav a{text-decoration:none;font-size:12px;text-transform:uppercase;letter-spacing:1.5px}.book{border:0;background:var(--red);padding:17px 23px;text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:1px;display:flex;gap:35px;align-items:center}.book span{font-size:18px}
.hero{min-height:100svh;background:var(--ink);color:var(--cream);display:grid;grid-template-columns:56% 44%;position:relative;overflow:hidden}.hero-copy{padding:16vh 3vw 5vh;z-index:2;display:flex;flex-direction:column}.eyebrow,.section-no{text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:700}.hero h1,.story h2,.menu h2{font-size:clamp(78px,11vw,176px);line-height:.77;letter-spacing:-.085em;text-transform:uppercase;margin:7vh 0 3vh}.hero h1 em,.story h2 em,.menu h2 em{font-family:Playfair Display,serif;color:var(--red);text-transform:none;font-weight:700}.hero-bottom{display:flex;align-items:end;justify-content:space-between;margin-top:auto;padding-right:4vw}.hero-bottom p{max-width:280px;font-size:13px;line-height:1.6}.round-book{width:128px;height:128px;border-radius:50%;border:1px solid rgba(255,255,255,.4);color:var(--cream);background:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;text-transform:uppercase;font-size:9px;letter-spacing:1px;transition:.4s}.round-book b{font-size:25px}.round-book:hover{background:var(--red);border-color:var(--red);transform:rotate(-12deg)}.hero-image{position:relative;overflow:hidden}.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink),transparent 35%),linear-gradient(0deg,rgba(0,0,0,.5),transparent 50%)}.hero-image img{width:100%;height:110%;object-fit:cover}.image-tag{position:absolute;right:2vw;bottom:3vw;z-index:2;text-transform:uppercase;font-size:10px;letter-spacing:2px;line-height:1.7;text-align:right}.sun{position:absolute;z-index:2;top:16%;left:5%;width:95px;height:95px;border-radius:50%;display:grid;place-items:center;background:var(--red);font-family:Playfair Display;font-style:italic;font-size:27px;transform:rotate(-12deg);box-shadow:0 0 0 12px rgba(239,69,47,.18)}.hero-side{position:absolute;right:11px;top:50%;z-index:4;writing-mode:vertical-rl;text-transform:uppercase;font-size:8px;letter-spacing:4px}
.ticker{background:var(--red);color:var(--cream);overflow:hidden;transform:rotate(-1.5deg) scale(1.02);position:relative;z-index:3}.ticker-track{display:flex;width:max-content;align-items:center;gap:30px;padding:13px 0;animation:marquee 18s linear infinite}.ticker span{font-size:16px;font-weight:700;letter-spacing:1px}.ticker i{font-size:20px}@keyframes marquee{to{transform:translateX(-50%)}}
.section-pad{padding:10vw 5vw}.story{min-height:100vh;position:relative;display:grid;grid-template-columns:1fr 3fr;gap:3vw;align-content:start}.story-copy h2{margin:0;font-size:clamp(70px,10vw,150px)}.story-copy p{font-size:18px;line-height:1.8;max-width:650px;margin:7vh 0 5vh auto}.story-notes{grid-column:2;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:25px}.story-notes span{text-transform:uppercase;font-size:9px;letter-spacing:1.5px;line-height:2}.story-notes b{font-size:11px}.story-stamp{position:absolute;left:-70px;bottom:10%;width:175px;height:175px;border-radius:50%;border:1px solid var(--red);color:var(--red);display:grid;place-items:center;text-align:center;font-size:9px;letter-spacing:2px;line-height:2}.spin{animation:spin 16s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.menu{background:var(--blue);color:var(--cream)}.menu-head{display:flex;justify-content:space-between;align-items:end}.menu h2{font-size:clamp(75px,10vw,150px);margin:2vh 0 6vh}.menu h2 em{color:var(--red)}.menu-tabs{display:flex;gap:5px;margin-bottom:6vh}.menu-tabs button{border:1px solid rgba(255,255,255,.3);background:transparent;color:var(--cream);padding:12px 17px;text-transform:uppercase;font-size:9px;letter-spacing:1px}.menu-tabs button.active{background:var(--red);border-color:var(--red)}.menu-list article{display:grid;grid-template-columns:50px 2fr 2fr 100px;gap:20px;align-items:center;border-top:1px solid rgba(255,255,255,.25);padding:22px 0;transition:.4s}.menu-list article:last-child{border-bottom:1px solid rgba(255,255,255,.25)}.menu-list article:hover{padding-left:15px;background:rgba(255,255,255,.06)}.menu-list article.hide{display:none}.menu-list span{font-size:10px;opacity:.5}.menu-list h3{margin:0;font-size:clamp(22px,3vw,47px);font-weight:500;letter-spacing:-2px}.menu-list p{font-size:11px;opacity:.7}.menu-list b{text-align:right;color:var(--red);font-size:18px}.menu-note{font-size:9px;text-transform:uppercase;letter-spacing:1px;opacity:.5;margin-top:24px}
.mood{height:90vh;background:var(--red);position:relative;overflow:hidden;display:grid;place-items:center}.mood-word{font-size:40vw;font-weight:800;letter-spacing:-.12em;color:transparent;-webkit-text-stroke:2px rgba(244,235,213,.3);position:absolute;line-height:1}.mood-card{position:relative;z-index:2;width:min(440px,80vw);background:var(--cream);padding:45px;box-shadow:22px 22px 0 var(--blue);transform:rotate(-4deg);transition:transform .2s}.mood-card p{font-size:10px;text-transform:uppercase;letter-spacing:2px}.mood-card h2{font-size:clamp(38px,5vw,65px);letter-spacing:-4px;line-height:.95;margin:40px 0}.mood-card button{background:var(--ink);color:var(--cream);border:0;padding:15px 20px;font-size:10px;text-transform:uppercase;letter-spacing:1px}.orb{position:absolute;border-radius:50%;filter:blur(2px);background:var(--blue)}.orb-one{width:120px;height:120px;left:12%;top:18%}.orb-two{width:55px;height:55px;right:15%;bottom:15%}.mood-caption{position:absolute;bottom:4vw;right:4vw;color:var(--cream);text-transform:uppercase;letter-spacing:2px;text-align:right;font-size:9px;line-height:2}
footer{background:var(--ink);color:var(--cream);display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:30px;padding:5vw}footer p{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;line-height:1.8}footer div{display:flex;gap:20px}footer div a{font-size:10px;text-transform:uppercase}
.booking{width:min(1000px,94vw);border:0;padding:0;background:var(--cream);color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.5)}.booking::backdrop{background:rgba(10,8,7,.8);backdrop-filter:blur(8px)}.booking-close{position:absolute;right:20px;top:15px;border:0;background:none;font-size:35px;z-index:2}.booking[open]{display:grid;grid-template-columns:1fr 1fr}.booking-intro{background:var(--red);color:var(--cream);padding:55px;display:flex;flex-direction:column;justify-content:center}.booking-intro p{font-size:9px;letter-spacing:2px}.booking-intro h2{font-size:65px;line-height:.9;letter-spacing:-5px;margin:50px 0}.booking-intro em{font-family:Playfair Display}.booking-intro span{font-size:11px;line-height:1.7;max-width:230px}.booking form{padding:55px;display:flex;flex-direction:column;gap:20px}.booking label{font-size:9px;text-transform:uppercase;letter-spacing:1.5px}.booking input,.booking select{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:12px 0;font-size:15px;border-radius:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.booking form>button{margin-top:15px;border:0;background:var(--blue);color:white;padding:18px;display:flex;justify-content:space-between;text-transform:uppercase;font-size:10px;letter-spacing:1px}.form-success{display:none;color:var(--blue);font-weight:700;font-size:12px}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){.loader-top,.loader-bottom{left:18px;right:18px}.loader-top{top:22px}.loader-bottom{bottom:22px}.loader-word{font-size:22vw}.loader-stamp{width:60px;height:60px;right:10%;top:24%;font-size:20px}.cursor-dot,.site-header nav{display:none}.site-header{height:65px;padding:0 18px}.book-small{margin-left:auto;padding:12px}.hero{grid-template-columns:1fr;min-height:930px}.hero-copy{padding:110px 18px 25px}.hero h1{font-size:25vw;margin:9vh 0 4vh}.hero-bottom{padding:0}.hero-image{position:absolute;inset:55% 0 0}.sun{width:70px;height:70px}.round-book{width:95px;height:95px}.section-pad{padding:90px 18px}.story{grid-template-columns:1fr;min-height:auto}.story-copy h2,.menu h2{font-size:20vw}.story-copy p{font-size:15px}.story-notes{grid-column:1;grid-template-columns:1fr;gap:15px}.story-stamp{display:none}.menu-head{display:block}.menu-tabs{overflow:auto}.menu-list article{grid-template-columns:25px 1fr 55px;gap:8px}.menu-list article p{display:none}.menu-list h3{font-size:22px;letter-spacing:-1px}.mood{height:75vh}.mood-card{padding:30px}.mood-card h2{letter-spacing:-3px}.booking[open]{display:block}.booking-intro{padding:35px}.booking-intro h2{font-size:50px;margin:25px 0}.booking form{padding:30px}footer{grid-template-columns:1fr 1fr;padding:50px 18px}footer .book{grid-column:1/-1;justify-content:space-between}}
