  :root{
    --cream:#FAF6F0;
    --bone:#F5EFE6;
    --ember:#8A3C2A;
    --ember-deep:#6E2E1F;
    --ink:#0E0E0E;
    --noir:#14110E;
    --noir-2:#1C1813;
    --muted:#7A7166;
    --line:#E2D9CC;
    --serif:'Playfair Display', Georgia, serif; /* @kind font */
    --sans:'Inter', system-ui, sans-serif; /* @kind font */
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--sans);
    color:var(--ink);
    background:var(--cream);
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
  img{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}

  .wrap{max-width:1320px;margin:0 auto;padding:0 40px;}
  .serif{font-family:var(--serif);font-weight:500;}
  .eyebrow{
    font-size:11px;letter-spacing:.32em;text-transform:uppercase;
    font-weight:500;color:var(--muted);display:inline-flex;align-items:center;gap:12px;
  }
  .eyebrow::before{content:"";width:24px;height:1px;background:currentColor;display:inline-block;}
  .eyebrow.center::after{content:"";width:24px;height:1px;background:currentColor;display:inline-block;}
  .diamond{font-size:8px;vertical-align:middle;}

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
    padding:16px 26px;border-radius:999px;cursor:pointer;border:1px solid transparent;
    transition:all .35s cubic-bezier(.2,.7,.2,1);white-space:nowrap;
  }
  .btn-dark{background:var(--ink);color:var(--cream);}
  .btn-dark:hover{background:var(--ember);}
  .btn-outline{border-color:var(--ink);color:var(--ink);background:transparent;}
  .btn-outline:hover{background:var(--ink);color:var(--cream);}
  .btn-light{background:var(--cream);color:var(--ink);}
  .btn-light:hover{background:var(--ember);color:var(--cream);}
  /* pill with rotating arrow badge */
  .btn-arrow{padding:6px 6px 6px 26px;gap:14px;}
  .btn-arrow .arw{width:38px;height:38px;border-radius:50%;border:1px solid rgba(250,246,240,.42);display:grid;place-items:center;flex:none;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
  .btn-arrow .arw svg{display:block;}
  .btn-arrow:hover .arw{transform:rotate(45deg);}
  .btn-outline.btn-arrow .arw{border-color:rgba(14,14,14,.3);}
  .btn-outline.btn-arrow:hover .arw{border-color:rgba(250,246,240,.42);}
  .btn-ghost{padding:16px 4px;letter-spacing:.22em;position:relative;}
  .btn-ghost::after{content:"";position:absolute;left:4px;bottom:8px;width:0;height:1px;background:currentColor;transition:width .4s ease;}
  .btn-ghost:hover::after{width:calc(100% - 28px);}

  /* ---------- Nav ---------- */
  header{position:sticky;top:0;z-index:50;background:rgba(250,246,240,.82);backdrop-filter:blur(14px);border-bottom:1px solid rgba(226,217,204,.6);}
  .nav{display:flex;align-items:center;justify-content:space-between;height:84px;}
  .brand{display:flex;align-items:center;gap:14px;}
  .brand .mark{width:38px;height:38px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:19px;font-style:italic;overflow:hidden;position:relative;}
  .brand .mark img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}
  .brand .bname{font-family:var(--serif);font-size:21px;line-height:1;letter-spacing:.01em;}
  .brand .bsub{font-size:9px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase;margin-top:4px;}
  .navlinks{display:flex;gap:38px;list-style:none;}
  .navlinks a{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--ink);position:relative;padding:6px 0;}
  .navlinks a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--ember);transition:width .35s ease;}
  .navlinks a:hover::after{width:100%;}
  .navlinks a.active::after{width:100%;}
  .nav-cta{display:flex;align-items:center;gap:26px;}
  .nav-cta form{margin:0;}
  .btn-account{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);position:relative;padding:6px 0;cursor:pointer;background:none;border:none;}
  .btn-account svg{width:15px;height:15px;}
  .btn-account::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--ember);transition:width .35s ease;}
  .btn-account:hover::after{width:100%;}
  .acct-name{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
  .acct-name svg{width:15px;height:15px;}
  @media(max-width:640px){.acct-name{display:none;}}

  /* ---------- Hero ---------- */
  .hero{padding:84px 0 96px;}
  .hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center;}
  .hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(56px,6.6vw,104px);line-height:.92;letter-spacing:-.01em;}
  .hero h1 em{font-style:italic;font-weight:500;}
  .hero p.lede{font-size:16px;line-height:1.7;color:#403a33;max-width:430px;margin:34px 0 38px;}
  .hero-cta{display:flex;align-items:center;gap:22px;}
  .stats{display:flex;gap:54px;margin-top:62px;}
  .stat .num{font-family:var(--serif);font-size:38px;line-height:1;}
  .stat .lbl{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:12px;}

  .hero-media{position:relative;}
  .hero-media .photo{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:5/6;background:var(--bone);}
  .hero-media .photo img{width:100%;height:100%;object-fit:cover;}
  .badge-book{position:absolute;top:22px;left:22px;background:rgba(20,17,14,.78);color:var(--cream);font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:10px 16px;border-radius:999px;backdrop-filter:blur(6px);display:flex;align-items:center;gap:8px;}
  .badge-book .dot{width:6px;height:6px;border-radius:50%;background:#C9A227;box-shadow:0 0 0 0 rgba(201,162,39,.6);animation:pulse 2.4s infinite;}
  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(201,162,39,.55);}70%{box-shadow:0 0 0 8px rgba(201,162,39,0);}100%{box-shadow:0 0 0 0 rgba(201,162,39,0);}}
  .quote-card{position:absolute;right:-26px;bottom:34px;width:230px;background:var(--cream);padding:26px 26px 22px;border-radius:12px;box-shadow:0 30px 60px -24px rgba(20,17,14,.4);}
  .quote-card .q{font-family:var(--serif);font-style:italic;font-size:23px;line-height:1.2;}
  .quote-card .src{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:16px;}

  /* ---------- Marquee ---------- */
  .marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:96px;overflow:hidden;padding:26px 0;}
  .marquee-track{display:flex;width:max-content;animation:scroll 34s linear infinite;}
  .marquee-track span{font-family:var(--serif);font-size:26px;font-style:italic;padding:0 38px;display:inline-flex;align-items:center;gap:38px;white-space:nowrap;color:#2a251f;}
  .marquee-track span::after{content:"·";font-style:normal;color:var(--ember);}
  @keyframes scroll{to{transform:translateX(-50%);}}

  /* ---------- Section shells ---------- */
  section.block{padding:128px 0;}
  .bg-cream{background:var(--cream);}
  .bg-bone{background:var(--bone);}

  /* ---------- Page header (sub-pages) ---------- */
  .page-head{padding:96px 0 0;text-align:center;}
  .page-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(44px,5.4vw,84px);line-height:1;letter-spacing:-.01em;margin-top:24px;}
  .page-head h1 em{font-style:italic;font-weight:500;}
  .page-head .eyebrow{justify-content:center;}
  .page-head p{font-size:16px;line-height:1.7;color:#4a443c;max-width:560px;margin:28px auto 0;}

  /* ---------- Manifesto ---------- */
  .manifesto-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:80px;align-items:center;}
  .manifesto-media{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:4/5;}
  .manifesto-media img{width:100%;height:100%;object-fit:cover;}
  .since-card{position:absolute;left:24px;bottom:24px;background:rgba(250,246,240,.92);padding:16px 22px;border-radius:3px;backdrop-filter:blur(6px);}
  .since-card .yr{font-family:var(--serif);font-size:26px;line-height:1;}
  .since-card .pl{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:8px;}
  .manifesto h2{font-family:var(--serif);font-weight:600;font-size:clamp(40px,4.4vw,66px);line-height:1.02;letter-spacing:-.01em;margin:26px 0 0;}
  .manifesto h2 em{font-style:italic;font-weight:500;}
  .manifesto .cols{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin:38px 0 40px;}
  .manifesto .cols p{font-size:14.5px;line-height:1.75;color:#4a443c;}
  .manifesto .foot{display:flex;align-items:center;gap:30px;}
  .tiny{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}

  /* ---------- Services ---------- */
  .sec-head{display:grid;grid-template-columns:1.15fr 1fr;gap:60px;align-items:end;margin-bottom:64px;}
  .sec-head h2{font-family:var(--serif);font-weight:600;font-size:clamp(40px,4.6vw,68px);line-height:1;letter-spacing:-.01em;margin-top:24px;}
  .sec-head h2 em{font-style:italic;font-weight:500;}
  .sec-head .aside{font-size:14px;line-height:1.7;color:#4a443c;padding-bottom:8px;}

  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .svc{border-radius:16px;overflow:hidden;background:var(--cream);border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s;}
  .svc:hover{transform:translateY(-6px);box-shadow:0 36px 60px -34px rgba(20,17,14,.45);}
  .svc.dark{background:var(--noir);border-color:var(--noir);color:var(--cream);}
  .svc-top{display:flex;justify-content:space-between;align-items:center;padding:22px 24px 18px;}
  .svc-tag{font-size:10px;letter-spacing:.22em;text-transform:uppercase;display:flex;align-items:center;gap:8px;color:var(--muted);}
  .svc.dark .svc-tag{color:#b8a89a;}
  .svc-price{font-family:var(--serif);font-size:22px;}
  .svc-photo{aspect-ratio:1/1;overflow:hidden;background:var(--bone);}
  .svc-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease;}
  .svc:hover .svc-photo img{transform:scale(1.05);}
  .svc-body{padding:22px 24px 8px;}
  .svc-body h3{font-family:var(--serif);font-size:25px;font-weight:500;line-height:1.1;}
  .svc-body .dur{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:10px;}
  .svc.dark .svc-body .dur{color:#b8a89a;}
  .svc-body p{font-size:13.5px;line-height:1.65;color:#4a443c;margin-top:14px;}
  .svc.dark .svc-body p{color:#cdbfb2;}
  .svc-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding:18px 24px 24px;border-top:1px solid var(--line);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
  .svc.dark .svc-foot{border-color:rgba(255,255,255,.12);color:#b8a89a;}
  .svc-foot .exp{display:inline-flex;align-items:center;gap:7px;color:var(--ink);}
  .svc.dark .svc-foot .exp{color:var(--cream);}
  .center-cta{display:flex;justify-content:center;margin-top:58px;}

  /* ---------- Gallery ---------- */
  .gal{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:14px;height:560px;}
  .gtile{position:relative;border-radius:14px;overflow:hidden;background:var(--bone);}
  .gtile img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease;}
  .gtile:hover img{transform:scale(1.06);}
  .gtile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,11,8,.72) 0%,rgba(15,11,8,.12) 45%,transparent 70%);}
  .gtile .meta{position:absolute;left:0;right:0;bottom:0;padding:22px;z-index:2;color:var(--cream);}
  .gtile .gnum{font-size:10px;letter-spacing:.24em;opacity:.8;display:flex;gap:8px;}
  .gtile .gname{font-family:var(--serif);font-size:22px;font-weight:500;margin-top:8px;line-height:1.1;}
  .gtile.big .gname{font-size:34px;}
  .gtile .gdesc{font-size:12px;line-height:1.55;color:rgba(250,246,240,.82);margin-top:10px;max-width:300px;opacity:0;transform:translateY(8px);transition:all .45s ease;}
  .gtile.big:hover .gdesc{opacity:1;transform:none;}
  .gtile .gname.vert{writing-mode:vertical-rl;position:absolute;bottom:22px;left:22px;font-size:20px;}

  /* ---------- Chronicle ---------- */
  .chronicle{background:var(--noir);color:var(--cream);}
  .chr-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:center;}
  .chr-media{border-radius:4px;overflow:hidden;aspect-ratio:4/5;}
  .chr-media img{width:100%;height:100%;object-fit:cover;}
  .chr-q{font-family:var(--serif);font-size:14px;color:var(--ember);}
  .bigquote{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.2vw,46px);line-height:1.22;letter-spacing:-.01em;margin:6px 0 40px;}
  .chr-by{font-family:var(--serif);font-size:22px;}
  .chr-role{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#b8a89a;margin-top:8px;}
  .chr-cta{margin-top:42px;display:flex;align-items:center;gap:32px;}
  .chr-cta .btn-light{background:transparent;border:1px solid rgba(250,246,240,.4);color:var(--cream);}
  .chr-cta .btn-light:hover{background:var(--cream);color:var(--ink);}
  .rating{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#b8a89a;display:flex;align-items:center;gap:12px;}
  .dots{display:flex;gap:6px;}
  .dots i{width:6px;height:6px;border-radius:50%;background:rgba(250,246,240,.3);}
  .dots i:first-child{background:var(--ember);}

  /* ---------- Booking ---------- */
  .booking-media{border-radius:16px;overflow:hidden;aspect-ratio:16/7;position:relative;margin-bottom:64px;}
  .booking-media img{width:100%;height:100%;object-fit:cover;}
  .booking-media .tag{position:absolute;top:24px;left:24px;}
  .booking-center{text-align:center;max-width:760px;margin:0 auto;}
  .booking-center h2{font-family:var(--serif);font-weight:600;font-size:clamp(38px,4.4vw,62px);line-height:1.04;letter-spacing:-.01em;}
  .booking-center h2 em{font-style:italic;font-weight:500;}
  .booking-center p{font-size:14.5px;line-height:1.7;color:#4a443c;margin:26px auto 36px;max-width:520px;}
  .booking-cta{display:flex;justify-content:center;gap:20px;}
  .dates{display:grid;grid-template-columns:repeat(3,minmax(0,260px));gap:18px;justify-content:center;margin-top:54px;}
  .date{border:1px solid var(--line);border-radius:14px;padding:24px 26px;text-align:left;transition:all .35s;cursor:pointer;background:var(--cream);}
  .date:hover{border-color:var(--ink);transform:translateY(-4px);}
  .date .avail{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--ember);display:flex;align-items:center;gap:8px;}
  .date .avail::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ember);}
  .date .d{font-family:var(--serif);font-size:34px;margin:16px 0 6px;}
  .date .t{font-size:11px;letter-spacing:.16em;color:var(--muted);}

  /* ---------- Footer ---------- */
  footer{background:var(--ember);color:var(--cream);padding:56px 0 30px;}
  .foot-top{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;}
  .foot-right{display:flex;align-items:center;gap:28px;}
  .foot-brand-row{display:flex;align-items:center;gap:14px;}
  .foot-brand-row .mark{width:44px;height:44px;border:1px solid rgba(250,246,240,.5);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:22px;overflow:hidden;position:relative;}
  .foot-brand-row .mark img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}
  .foot-brand-row .bname{font-family:var(--serif);font-size:26px;}
  .foot-social{display:flex;gap:18px;}
  .foot-social a{width:44px;height:44px;border:1px solid rgba(250,246,240,.4);border-radius:50%;display:grid;place-items:center;color:var(--cream);transition:all .35s;}
  .foot-social a:hover{background:var(--cream);color:var(--ember);border-color:var(--cream);}
  .foot-legal{display:flex;align-items:center;gap:14px;font-size:12px;letter-spacing:.14em;}
  .foot-legal a{color:rgba(250,246,240,.9);transition:color .3s;}
  .foot-legal a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px;}
  .foot-legal .sep{color:rgba(250,246,240,.5);}
  .foot-bar{display:flex;justify-content:center;align-items:center;margin-top:36px;padding-top:24px;border-top:1px solid rgba(250,246,240,.2);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,246,240,.7);}

  @media(max-width:980px){
    .hero-grid,.manifesto-grid,.chr-grid,.sec-head{grid-template-columns:1fr;gap:48px;}
    .navlinks{display:none;}
    .cards{grid-template-columns:1fr;}
    .gal{grid-template-columns:1fr 1fr;height:auto;grid-auto-rows:300px;}
    .gtile.big{grid-column:1/-1;height:380px;}
    .dates{grid-template-columns:1fr;}
    .quote-card{right:12px;}
  }
