:root{--bg:#f6efe4;--ink:#12302f;--mut:#5d6f6b;--card:#fffaf1;--acc:#c8623a;--acc2:#e8b04a;--teal:#1d5c58;--line:rgba(18,48,47,.15);
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0d1f1e;--ink:#f3e9d8;--mut:#a9b8b2;--card:#14302e;--line:rgba(243,233,216,.18)}}
:root[data-theme="dark"]{--bg:#0d1f1e;--ink:#f3e9d8;--mut:#a9b8b2;--card:#14302e;--line:rgba(243,233,216,.18)}
html{scroll-behavior:smooth;scroll-padding-top:80px}
*{box-sizing:border-box;margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.65 Inter,system-ui,sans-serif;overflow-x:hidden}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:400;line-height:1.1}
h1{font-size:clamp(2.8rem,7vw,5.6rem)}h2{font-size:clamp(2rem,4.5vw,3.4rem)}
em{color:var(--acc);font-style:italic}
section{padding:90px 6vw;max-width:1250px;margin:auto}
.eyebrow{letter-spacing:.25em;text-transform:uppercase;font-size:.72rem;color:var(--acc);margin-bottom:14px;display:block}
.btn{display:inline-block;background:var(--ink);color:var(--bg);padding:14px 28px;border-radius:99px;border:0;font:500 .95rem Inter,sans-serif;cursor:pointer;text-decoration:none;transition:.3s}
.btn:hover{background:var(--acc);transform:translateY(-3px)}
.btn.ghost{background:none;color:var(--ink);border:1px solid var(--ink)}
nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;display:flex;justify-content:space-between;align-items:center;padding:16px 6vw;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.logo{font:600 1.6rem Fraunces,serif;letter-spacing:.06em}.logo b{color:var(--acc)}
nav ul{display:flex;gap:28px;list-style:none;padding:0;align-items:center}
nav a{color:var(--ink);text-decoration:none;font-size:.9rem}nav a:hover{color:var(--acc)}
#theme{background:none;border:1px solid var(--line);color:var(--ink);width:38px;height:38px;border-radius:50%;cursor:pointer}
@media(max-width:760px){nav ul li:nth-child(-n+4){display:none}}
/* image styles */
.img{overflow:hidden;position:relative;background:var(--teal)}
.img svg{width:100%;height:100%;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.img:hover svg{transform:scale(1.08)}
.arch{border-radius:999px 999px 0 0}
.blob{border-radius:62% 38% 55% 45%/48% 58% 42% 52%}
.circle{border-radius:50%}
.tick{clip-path:polygon(0 0,100% 6%,100% 100%,0 94%)}
.stamp{border-radius:50% 50% 50% 50%/60% 60% 40% 40%}
.frame{outline:3px solid var(--acc2);outline-offset:8px}
/* hero */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;min-height:82vh;padding-top:50px}
.hero p{color:var(--mut);max-width:460px;margin:24px 0 32px;font-size:1.1rem}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-art{position:relative;height:min(640px,72vh)}
.hero-art .a{position:absolute;inset:0 0 0 12%}
.hero-art .b{position:absolute;width:38%;aspect-ratio:1;left:0;bottom:6%;border:8px solid var(--bg)}
.badge{position:absolute;right:-10px;top:8%;width:120px;height:120px;animation:spin 18s linear infinite}
.badge text{font:600 11px Inter;letter-spacing:.2em;fill:var(--ink)}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:860px){.hero{grid-template-columns:1fr}.hero-art{height:460px}}
.stats{display:flex;gap:40px;margin-top:44px;flex-wrap:wrap}.stats b{font:600 2rem Fraunces,serif;display:block}.stats span{font-size:.8rem;color:var(--mut)}
/* about collage */
.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.collage{position:relative;height:540px}
.collage .c1{position:absolute;width:56%;height:78%;left:0;top:0}
.collage .c2{position:absolute;width:46%;aspect-ratio:1;right:0;top:8%}
.collage .c3{position:absolute;width:52%;height:34%;right:6%;bottom:0}
.about p{color:var(--mut);margin:18px 0}
@media(max-width:860px){.about{grid-template-columns:1fr}}
/* rooms */
.tabs{display:flex;gap:10px;margin:30px 0;flex-wrap:wrap}
.tab{padding:10px 22px;border-radius:99px;border:1px solid var(--line);background:none;color:var(--ink);cursor:pointer;font:500 .9rem Inter}
.tab.on{background:var(--ink);color:var(--bg)}
.room{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center;background:var(--card);border-radius:28px;padding:30px;border:1px solid var(--line)}
.room .img{height:400px;border-radius:20px}
.room ul{list-style:none;padding:0;margin:18px 0;display:flex;flex-wrap:wrap;gap:8px}
.room li{padding:5px 14px;border:1px solid var(--line);border-radius:99px;font-size:.82rem}
.price{font:600 2rem Fraunces,serif}.price small{font:400 .85rem Inter;color:var(--mut)}
@media(max-width:860px){.room{grid-template-columns:1fr}}
/* amenities */
.am{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:20px;margin-top:40px}
.am div{padding:28px;border-radius:24px;background:var(--card);border:1px solid var(--line);transition:.3s}
.am div:hover{transform:translateY(-8px) rotate(-1deg);border-color:var(--acc)}
.am i{font-size:1.8rem;font-style:normal;display:block;margin-bottom:10px}
.am p{font-size:.88rem;color:var(--mut)}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:110px;gap:16px;margin-top:40px}
.gal .img{cursor:pointer}
.g1{grid-column:1/4;grid-row:span 4}.g2{grid-column:4/7;grid-row:span 2}.g3{grid-column:4/6;grid-row:span 3}.g4{grid-column:6/7;grid-row:span 2}.g5{grid-column:1/4;grid-row:span 2}
@media(max-width:700px){.gal{grid-template-columns:1fr 1fr}.gal .img{grid-column:auto!important;grid-row:span 2!important}}
/* booking */
.book{background:var(--teal);color:#f6efe4;border-radius:36px;padding:60px;display:grid;grid-template-columns:1fr 1fr;gap:50px}
.book h2 em{color:var(--acc2)}
.book form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.book label{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;opacity:.8;display:block}
.book input,.book select{width:100%;margin-top:6px;padding:13px;border-radius:12px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;font:inherit}
.book select option{color:#12302f}
.book .full{grid-column:1/3}
.book .btn{background:var(--acc2);color:#12302f}
#sum{margin-top:20px;padding:18px;border-radius:14px;background:rgba(255,255,255,.1);font-size:.95rem;min-height:60px}
@media(max-width:860px){.book{grid-template-columns:1fr;padding:32px}.book form{grid-template-columns:1fr}.book .full{grid-column:auto}}
/* reviews */
.rev{text-align:center;max-width:760px}
.rev blockquote{font:italic 1.7rem/1.4 Fraunces,serif;min-height:130px;transition:opacity .4s}
.dots{display:flex;gap:8px;justify-content:center;margin-top:24px}.dots button{width:10px;height:10px;border-radius:50%;border:0;background:var(--line);cursor:pointer}.dots .on{background:var(--acc);width:28px;border-radius:9px}
footer{padding:50px 6vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;color:var(--mut);font-size:.88rem}
.reveal{opacity:0;transform:translateY(40px);transition:1s}.reveal.in{opacity:1;transform:none}
#lb{position:fixed;inset:0;background:rgba(5,15,15,.9);display:none;place-items:center;z-index:100;cursor:pointer}
#lb.open{display:grid}#lb .img{width:min(88vw,720px);height:min(70vh,520px);border-radius:24px}
.page{display:none;padding-top:40px}.page.on{display:block}
.xp{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px;margin-top:40px}
.xp article{background:var(--card);border:1px solid var(--line);border-radius:26px;overflow:hidden;transition:.3s}
.xp article:hover{transform:translateY(-8px)}.xp .img{height:190px}.xp div.t{padding:20px}.xp p{font-size:.88rem;color:var(--mut)}.xp small{color:var(--acc);font-weight:500}
details{border-bottom:1px solid var(--line);padding:18px 0}summary{cursor:pointer;font:400 1.3rem Fraunces,serif;list-style:none;display:flex;justify-content:space-between}
summary::after{content:"+";color:var(--acc);font-size:1.6rem;transition:.3s}details[open] summary::after{transform:rotate(45deg)}
details p,details li{color:var(--mut);margin-top:10px}details ul{padding-left:20px}
.ph{max-width:820px;margin-top:10px}.ph h1{font-size:clamp(2.4rem,6vw,4rem)}
.ct{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:40px}
.ci{display:grid;gap:16px}.ci div{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px 24px}.ci b{display:block;font:400 1.2rem Fraunces,serif}.ci span{color:var(--mut);font-size:.92rem}
.ct form{display:grid;gap:14px}.ct input,.ct select,.ct textarea{width:100%;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit}
#cm{color:var(--acc);min-height:24px}.map{height:230px;border-radius:24px;margin-top:16px}
@media(max-width:860px){.ct{grid-template-columns:1fr}}