@font-face{font-family:DM Sans;src:url(assets/dm-sans.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:Instrument Serif;src:url(assets/instrument-serif.woff2) format("woff2");font-display:swap}
@font-face{font-family:Instrument Serif;src:url(assets/instrument-serif-italic.woff2) format("woff2");font-style:italic;font-display:swap}

:root{
  --ink:#161610;
  --dark:#212019;
  --paper:#f3ede0;
  --light:#fff5e4;
  --gold:#e6bd87;
  --muted:#605849;
  --serif:"Instrument Serif",Georgia,serif;
  --sans:"DM Sans",Arial,sans-serif;
  --gutter:clamp(24px,6vw,112px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans)}
[hidden]{display:none!important}
img{display:block;max-width:100%;height:auto}
button,input,select{font:inherit}
button{cursor:pointer}
a{color:inherit}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3,.wordmark{font-family:var(--serif);font-weight:400;line-height:.96}
em{font-weight:400}
:focus-visible{outline:2px solid #b87937;outline-offset:5px}
.skip{position:absolute;top:8px;left:12px;z-index:5;transform:translateY(-150%);padding:8px 12px;background:var(--light)}
.skip:focus{transform:none}
.content{width:min(100% - 2 * var(--gutter),1270px);margin-inline:auto}
.eyebrow{font-size:11px;font-weight:700;line-height:1.5;letter-spacing:.18em;text-transform:uppercase}
.site-header{
  height:79px;padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between;
  color:var(--light);background:#151510;border-bottom:1px solid #f6e3c51c;
}
.wordmark{font-size:33px;text-decoration:none;white-space:nowrap;letter-spacing:-.025em}
.site-header nav{display:flex;gap:clamp(22px,3vw,47px);align-items:center}
.site-header nav a,.site-footer>a:last-child{font-size:13px;text-decoration:none}
.site-header nav a:hover,.hero-film:hover,.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.site-header .nav-action{border:1px solid #f6e3c55c;padding:9px 14px}
.nav-action span{margin-left:8px;color:var(--gold)}

.hero{
  position:relative;isolation:isolate;display:grid;align-items:center;
  min-height:clamp(600px,78svh,850px);overflow:hidden;color:var(--light);background:#1a160f;
}
.hero-image{
  z-index:-2;position:absolute;inset:0 0 0 auto;width:67%;height:100%;object-fit:cover;object-position:45% 52%;
  animation:opening 3s cubic-bezier(.25,.5,.35,1) both;
}
.hero::after{
  position:absolute;z-index:-1;inset:0;content:"";
  background:
    linear-gradient(90deg,#15130ffb 0%,#15130ff5 18%,#15130fcb 31%,#15130f44 53%,transparent 78%),
    linear-gradient(0deg,#15130fd1 0%,transparent 38%);
}
.hero-content{padding:62px 0 72px;margin-left:var(--gutter);width:min(570px,calc(100% - 2 * var(--gutter)))}
.hero .eyebrow{color:var(--gold);margin-bottom:21px}
.hero h1{font-size:clamp(78px,9.25vw,152px);line-height:.82;letter-spacing:-.045em}
.hero h1 em{color:#f2cfa2}
.hero-copy{max-width:360px;margin-top:27px;font-size:clamp(16px,1.4vw,20px);line-height:1.45;color:#fff1dc}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:19px 24px;margin-top:31px}
.button{
  min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:11px 18px;
  font-size:13px;font-weight:700;text-decoration:none;border:1px solid transparent;line-height:1.35;text-align:center;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.button-light{background:#edcfab;color:#21190e}
.button-light:hover{background:#ffe7c6}
.button-outline{color:var(--light);background:transparent;border-color:#f6e3c574}
.button-outline:hover{border-color:var(--light);background:#ffffff12}
.hero-film{display:inline-flex;align-items:center;gap:10px;font-size:13px;text-decoration:none}
.hero-film-duration{color:var(--gold);font-size:11px;white-space:nowrap}
.play-icon{
  display:block;width:0;height:0;border-left:9px solid currentColor;
  border-top:6px solid transparent;border-bottom:6px solid transparent;
}
.hero-index{position:absolute;right:var(--gutter);bottom:28px;color:#f9e6cb;font-size:11px;text-transform:uppercase;letter-spacing:.18em}
@keyframes opening{from{transform:scale(1.06)}to{transform:scale(1)}}

.experiences,.story{padding-block:clamp(67px,8vw,120px)}
.section-intro{display:grid;grid-template-columns:1fr minmax(220px,345px);align-items:end;gap:22px;margin-bottom:37px}
.section-intro h2,.film h2,.closing h2{font-size:clamp(56px,7.1vw,106px);letter-spacing:-.037em}
.section-intro p{color:var(--muted);max-width:34ch}
.experiences-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,36px)}
.experience{display:flex;flex-direction:column;border:1px solid #cabda7;background:#f9f3e8}
.experience-photo{overflow:hidden;aspect-ratio:1.7;background:#473426}
.experience-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 51%}
.island-photo img{object-position:50% 57%}
.experience-content{display:flex;flex:1;flex-direction:column;align-items:start;padding:clamp(23px,3vw,42px)}
.experience-content .eyebrow{color:#704a26;margin-bottom:9px}
.experience h3{font-size:clamp(37px,3.8vw,56px);letter-spacing:-.028em;margin-bottom:12px}
.experience-content>p:not(.eyebrow){color:#564e40;max-width:43ch;margin-bottom:28px}
.pricing{width:100%;margin-top:auto;border-top:1px solid #d7cbb7;padding-top:14px}
.pricing strong{font:400 39px/.9 var(--serif)}
.pricing span{font-size:13px;color:#504638}
.price-note{font-size:12px;color:#5c5141;margin-top:6px}
.text-action{display:inline-block;font-size:14px;font-weight:700;text-decoration:none;border-bottom:1px solid #8a6239;margin-top:21px;padding-bottom:4px}
.text-action span{margin-left:7px}
.text-action:hover{color:#784a20}

.film{
  color:var(--light);background:
  radial-gradient(ellipse at 29% 48%,#513b23 0%,#242017 40%,#191810 77%);
  padding-block:clamp(59px,8vw,110px);
}
.film-layout{display:grid;grid-template-columns:minmax(210px,320px) minmax(0,560px);justify-content:center;align-items:center;gap:clamp(34px,9vw,134px)}
.film-image{position:relative;aspect-ratio:9/15;overflow:hidden;border:1px solid #e9cda95d;background:#1c1911}
.film-image img{width:100%;height:100%;object-fit:cover;object-position:center}
.film-image::after{position:absolute;inset:0;background:linear-gradient(0deg,#100c08aa,transparent 43%);content:"";pointer-events:none}
.film-play{
  position:absolute;z-index:1;bottom:23px;left:23px;display:grid;place-items:center;width:58px;height:58px;
  border:1px solid #f5debc;background:#21180dab;border-radius:50%;color:var(--light);
}
.film-play:hover{background:#6b482b}
.film-play .play-icon{margin-left:3px}
.film-copy .eyebrow{color:var(--gold);margin-bottom:18px}
.film-copy h2 em,.closing h2 em{color:#ebc894}
.film-copy>p:not(.eyebrow){max-width:42ch;margin-block:22px 24px;color:#eee0cc}
.film-source{display:block;width:fit-content;margin-top:16px;color:#e1cdb1;font-size:12px;text-underline-offset:3px}

.story-stage{aspect-ratio:2.25;position:relative;background:#251e14;overflow:hidden}
.story-panel{height:100%;position:relative;color:var(--light);animation:scene-in .48s ease both}
.story-panel img{width:100%;height:100%;object-fit:cover;object-position:50% 48%}
#cena-2 img{object-position:50% 48%}
#cena-3 img{object-position:50% 59%}
.story-panel::after{position:absolute;inset:0;content:"";background:linear-gradient(0deg,#140e09ed,transparent 67%)}
.story-panel figcaption{position:absolute;z-index:1;bottom:clamp(23px,4vw,50px);left:clamp(21px,4vw,58px);right:21px;display:grid;gap:7px}
.story-panel figcaption .eyebrow{color:#f9d7a4}
.story-panel figcaption span:last-child{font:400 clamp(36px,5vw,74px)/.95 var(--serif)}
@keyframes scene-in{
  from{opacity:.72;clip-path:circle(12% at 62% 43%);transform:scale(1.035)}
  to{opacity:1;clip-path:circle(84% at 62% 43%);transform:scale(1)}
}
.story-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:13px}
.story-controls button{background:transparent;border:1px solid #bbae95;color:#43362a;padding:8px 14px;min-height:42px;font-size:12px}
.story-controls button:hover,.story-controls button[aria-pressed=true]{background:#302619;color:#fff1da;border-color:#302619}
.story-controls .story-next{margin-left:auto;font-size:18px;line-height:1;padding-inline:16px}

.closing{padding-block:clamp(65px,10vw,139px);color:var(--light);text-align:center;background:#232017}
.closing-inner p{margin:16px 0 25px;color:#eee0cc}
.closing-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.site-footer{display:flex;gap:20px;justify-content:space-between;align-items:center;padding-block:26px}
.site-footer .wordmark{font-size:27px}
.site-footer p{font-size:12px;color:#5b5040}

dialog{
  max-width:calc(100% - 30px);max-height:calc(100% - 26px);color:var(--light);
  background:#242018;border:1px solid #bf9b6c;padding:19px;
}
dialog::backdrop{background:#120f0de0}
.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:12px}
.dialog-top h2{font-size:clamp(27px,4vw,40px)}
.close{
  background:transparent;color:inherit;border:1px solid #a98e68;width:40px;height:40px;
  font-size:27px;line-height:1;
}
.close:hover{background:#ffffff19}
.film-dialog video{display:block;width:auto;height:min(74dvh,680px);max-width:100%;background:#100e0a;margin-inline:auto}
.consult-dialog{width:490px;padding:clamp(18px,4vw,30px)}
#event-form{display:grid;gap:13px}
.form-note{font-size:13px;color:#e3cfb2}
#event-form label{display:grid;gap:4px;font-size:13px;font-weight:600}
#event-form input,#event-form select{
  width:100%;min-width:0;padding:8px 10px;border:1px solid #a68b65;
  border-radius:0;background:#fbf1df;color:#2b2012;font-size:16px;
}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
#event-form .button{justify-self:start;margin-top:4px}
#event-summary h3{font-size:36px;margin:9px 0}
#event-summary p{margin-bottom:12px}
.assistant-log{
  display:grid;gap:10px;max-height:min(32dvh,270px);overflow:auto;
  margin:14px 0;padding:10px;background:#19160f;border:1px solid #765f42;
}
.assistant-message{
  width:fit-content;max-width:92%;padding:8px 11px;
  background:#382d20;line-height:1.45;font-size:14px;overflow-wrap:anywhere;
}
.assistant-message.visitor{justify-self:end;background:#edcfab;color:#21190e}
.assistant-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:13px}
.assistant-suggestions button{
  color:var(--light);background:transparent;border:1px solid #a68b65;padding:5px 8px;font-size:12px;
}
.assistant-suggestions button:hover{background:#ffffff19}
.assistant-form label{display:block;font-size:13px;margin-bottom:4px}
.assistant-form>div{display:flex;gap:6px}
.assistant-form input{
  flex:1;min-width:0;padding:8px;border:1px solid #a68b65;background:#fbf1df;color:#2b2012;
}
.assistant-plan{margin-top:14px}

@media(max-width:850px){
  .hero{display:block;min-height:0;background:#15130f}
  .hero-image{
    position:static;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;
    animation:none;
  }
  .hero::after{display:none}
  .hero-content{padding:28px 0 48px}
  .section-intro{grid-template-columns:1fr;gap:10px}
  .section-intro p{max-width:49ch}
}
@media(max-width:600px){
  .site-header{height:64px}
  .wordmark{font-size:28px}
  .site-header nav{gap:13px}
  .site-header nav>a:not(.nav-action){display:none}
  .site-header nav .nav-action{font-size:11px;padding:7px 8px}
  .nav-action span{margin-left:2px}
  .hero h1{font-size:clamp(63px,16vw,93px)}
  .hero .eyebrow{font-size:10px;margin-bottom:14px}
  .hero-copy{margin-top:17px;max-width:31ch}
  .actions{margin-top:21px;gap:13px 17px}
  .hero-index{display:none}
  .experiences-grid{grid-template-columns:1fr;gap:24px}
  .section-intro{margin-bottom:25px}
  .film-layout{grid-template-columns:minmax(0,1fr);gap:24px}
  .film-copy{grid-row:1}
  .film-image{width:min(240px,100%);aspect-ratio:9/13}
  .film-copy>p:not(.eyebrow){margin-block:16px}
  .story-stage{aspect-ratio:1.03}
  .story-controls button{padding-inline:9px}
  .story-controls .story-next{margin-left:0;padding-inline:11px}
  .site-footer{flex-wrap:wrap;gap:8px 16px}
  .site-footer p{order:2;width:100%}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}
