:root{
  --ink:#03303D;
  --ink-soft:#03303D;
  --gold:#74531F;
  --gold-light:#D7B57A;
  --cream:#FAF5EC;
  --serif:"Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --sans:"Jost", "Futura", "Segoe UI", system-ui, sans-serif;
  color-scheme:light;
  box-sizing:border-box;
}
*,*::before,*::after{box-sizing:inherit;margin:0;padding:0}
body{background:#EFE3D0;color:var(--ink);font-family:var(--sans);font-weight:300;overflow-x:hidden}

/* ============ POSTER ============ */
.poster{
  position:relative;
  min-height:100vh;min-height:100svh;
  display:flex;flex-direction:column;
  overflow:hidden;isolation:isolate;
  background:linear-gradient(180deg,#FCF8F1 0%,#FAF1E4 45%,#F6E6D0 100%);
  padding-top:env(safe-area-inset-top,0px);
}
.photo{
  position:absolute;left:0;right:0;bottom:0;z-index:-2;
  height:76%;
  background:url("bg-wide.jpg") center top / cover no-repeat;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 30%);
          mask-image:linear-gradient(180deg,transparent 0%,#000 30%);
  transform-origin:32% 40%;
  animation:reveal 3.2s cubic-bezier(.2,.7,.2,1) .2s both, drift 40s ease-in-out 3.4s infinite alternate;
}
@keyframes reveal{from{opacity:0;transform:scale(1.14) translateY(40px);filter:blur(6px) saturate(.6)}to{opacity:1;transform:scale(1.02);filter:none}}
@keyframes drift{from{transform:scale(1.02)}to{transform:scale(1.09) translateX(1%)}}

/* soft golden haze over the horizon */
.glow{
  position:absolute;z-index:-1;pointer-events:none;
  width:min(80vw,900px);aspect-ratio:1.6;border-radius:50%;
  left:34%;top:58%;transform:translate(-50%,-50%);
  background:radial-gradient(ellipse,rgba(255,238,205,.7) 0%,rgba(252,222,176,.3) 30%,rgba(250,215,165,0) 65%);
  animation:glowIn 4s ease .6s both, breathe 8s ease-in-out 4.6s infinite;
}
@keyframes glowIn{from{opacity:0}to{opacity:1}}
@keyframes breathe{50%{opacity:.6}}

/* light washing across the sand */
.wash{
  position:absolute;left:0;right:0;bottom:0;height:34%;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,transparent 30%,rgba(255,248,236,.28) 45%,transparent 60%);
  background-size:300% 100%;
  animation:wash 9s ease-in-out 4s infinite;
}
@keyframes wash{0%{background-position:120% 0}100%{background-position:-60% 0}}

/* ============ CONTENT ============ */
.content{
  position:relative;z-index:3;text-align:center;
  padding:clamp(2.2rem,6vh,4rem) 1.5rem 0;
  max-width:1120px;margin:0 auto;width:100%;
}
.logo{
  display:block;margin:0 auto;width:clamp(120px,14vw,180px);height:auto;
  opacity:0;transform:translateY(-10px) scale(.92);filter:blur(4px);
  animation:logoIn 1.6s cubic-bezier(.2,.8,.2,1) .3s forwards;
}
@keyframes logoIn{to{opacity:1;transform:none;filter:none}}
.brand{
  margin-top:1rem;font-family:var(--serif);font-weight:500;
  font-size:clamp(1.6rem,3.2vw,2.3rem);letter-spacing:.14em;text-transform:uppercase;padding-left:.14em;
  opacity:0;animation:track 1.6s cubic-bezier(.2,.8,.2,1) .8s forwards;
}
.brand-sub{
  margin-top:.9rem;font-weight:500;text-shadow:0 0 10px rgba(252,248,241,.95);font-size:clamp(.66rem,1.1vw,.82rem);letter-spacing:.3em;text-transform:uppercase;padding-left:.3em;color:var(--ink-soft);
  opacity:0;animation:fadeIn 1.2s ease 1.3s forwards;
}
@keyframes track{from{opacity:0;letter-spacing:.6em;filter:blur(4px)}to{opacity:1;letter-spacing:.14em;filter:none}}
@keyframes fadeIn{to{opacity:1}}

.headline{margin-top:clamp(1.4rem,4vh,2.4rem);font-family:var(--serif);font-weight:400;line-height:.98;letter-spacing:-.01em}
.headline .l1,.headline .l2{display:block;opacity:0;filter:blur(10px);transform:translateY(24px)}
.headline .l1{
  font-size:clamp(2.8rem,6.4vw,4.8rem);color:transparent;
  background:linear-gradient(100deg,#5E4318 0%,#86632B 30%,#C9A563 48%,#86632B 62%,#5E4318 100%);
  background-size:250% 100%;-webkit-background-clip:text;background-clip:text;
  animation:rise 1.4s cubic-bezier(.2,.8,.2,1) 1.5s forwards, gild 7s linear 3.2s infinite;
}
.headline .l2{font-size:clamp(2.2rem,4.8vw,3.6rem);color:var(--ink);animation:rise 1.4s cubic-bezier(.2,.8,.2,1) 1.8s forwards}
@keyframes rise{to{opacity:1;filter:none;transform:none}}
@keyframes gild{from{background-position:100% 0}to{background-position:-150% 0}}

.rule{width:64px;height:1px;background:var(--gold);margin:clamp(1.1rem,2.6vh,1.6rem) auto;transform:scaleX(0);animation:draw .9s ease 2.4s forwards}
@keyframes draw{to{transform:scaleX(1)}}
.motto{font-size:clamp(.74rem,1.3vw,.98rem);font-weight:500;color:var(--ink);text-shadow:0 0 10px rgba(252,248,241,.95),0 0 3px rgba(252,248,241,.9);letter-spacing:.34em;text-transform:uppercase;padding-left:.34em;opacity:0;animation:fadeIn 1.2s ease 2.6s forwards}

/* ===== four pillars ===== */
.pillars{
  list-style:none;display:grid;grid-template-columns:repeat(4,1fr);
  max-width:760px;margin:clamp(1.6rem,4vh,2.6rem) auto 0;
  padding:1.1rem .8rem;position:relative;isolation:isolate;
}
.pillars::before{content:"";position:absolute;inset:-10px -30px;z-index:-1;background:rgba(252,248,241,.78);filter:blur(22px);border-radius:60px}
.pillars li{
  position:relative;padding:.1rem .6rem .3rem;
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  font-size:clamp(.64rem,.9vw,.78rem);font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1.55;color:var(--ink);
  text-shadow:0 0 12px rgba(252,248,241,.95),0 0 3px rgba(252,248,241,.9);
  opacity:0;transform:translateY(10px);animation:rise .9s ease forwards;
}
.pillars li > span{white-space:nowrap}
.pillars li + li::before{content:"";position:absolute;left:0;top:6%;bottom:6%;width:1px;background:rgba(142,106,51,.45)}
.pillars svg{width:42px;height:42px;overflow:visible;filter:drop-shadow(0 0 6px rgba(252,248,241,.95))}
.pillars svg *{
  fill:none;stroke:var(--gold);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1;stroke-dashoffset:1;animation:ink 1.8s ease forwards;
}
@keyframes ink{to{stroke-dashoffset:0}}
.pillars li:nth-child(1){animation-delay:2.8s}.pillars li:nth-child(1) svg *{animation-delay:3s}
.pillars li:nth-child(2){animation-delay:3s}.pillars li:nth-child(2) svg *{animation-delay:3.2s}
.pillars li:nth-child(3){animation-delay:3.2s}.pillars li:nth-child(3) svg *{animation-delay:3.4s}
.pillars li:nth-child(4){animation-delay:3.4s}.pillars li:nth-child(4) svg *{animation-delay:3.6s}

/* ============ FOOT (on the sand) ============ */
.foot{
  position:relative;z-index:2;margin-top:auto;
  padding:clamp(9rem,26vh,16rem) 1.5rem calc(clamp(1.4rem,4vh,2.4rem) + env(safe-area-inset-bottom,0px));
  text-align:center;
  background:linear-gradient(180deg,rgba(250,242,230,0) 0%,rgba(250,242,230,.6) 28%,rgba(250,242,230,.85) 55%,rgba(250,242,230,.94) 100%);
}
.soon{
  font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,3.4vw,2.4rem);
  letter-spacing:.34em;text-transform:uppercase;padding-left:.34em;color:var(--ink);text-shadow:0 0 14px rgba(252,248,241,1),0 0 4px rgba(252,248,241,1);
  opacity:0;animation:soon 2s cubic-bezier(.2,.8,.2,1) 3.9s forwards, pulse 5s ease-in-out 5.9s infinite;
}
@keyframes soon{from{opacity:0;letter-spacing:1em;filter:blur(6px)}to{opacity:1;letter-spacing:.34em;filter:none}}
@keyframes pulse{50%{opacity:.82}}
.foot .rule{animation-delay:4.6s;margin:.9rem auto 1rem}
.areas{
  display:flex;justify-content:center;flex-wrap:wrap;gap:.4rem 0;list-style:none;
  font-size:clamp(.62rem,1vw,.78rem);font-weight:500;text-shadow:0 0 10px rgba(252,248,241,.95);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);
  opacity:0;animation:fadeIn 1.2s ease 4.9s forwards;
}
.areas li{padding:0 1.2rem}
.areas li + li{border-left:1px solid rgba(142,106,51,.6)}

/* tablet and up: whole poster fits the screen, no scrolling */
@media (min-width:768px){
  .poster{height:100vh;height:100svh;min-height:0}
  .content{padding-top:clamp(1.2rem,4vh,3rem)}
  .logo{width:clamp(120px,21vh,180px)}
  .headline{margin-top:clamp(.8rem,2.6vh,1.8rem)}
  .headline .l1{font-size:clamp(2.6rem,8vh,4.8rem)}
  .headline .l2{font-size:clamp(2rem,6vh,3.6rem)}
  .rule{margin:clamp(.7rem,2vh,1.3rem) auto}
  .pillars{margin-top:clamp(.6rem,2.4vh,2rem)}
  .foot{padding-top:1.5rem;padding-bottom:clamp(1rem,3.5vh,2.2rem)}
}
@media (min-width:768px) and (max-height:700px){
  .logo{width:clamp(90px,17vh,180px)}
  .headline .l1{font-size:clamp(2.2rem,7vh,4.8rem)}
  .headline .l2{font-size:clamp(1.7rem,5vh,3.6rem)}
  .pillars li{gap:.3rem}
  .pillars svg{width:clamp(28px,5vh,42px);height:clamp(28px,5vh,42px)}
  .foot{padding-top:.5rem}
  .soon{font-size:clamp(1.3rem,4.4vh,2.4rem)}
  .foot .rule{margin:.5rem auto .6rem}
}
@media (max-width:767px){
  .photo{height:66%}
  .glow{left:50%;top:55%}
  .pillars{grid-template-columns:repeat(2,1fr);max-width:400px;row-gap:1.3rem;padding:1.2rem .4rem;
    background:rgba(252,248,241,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(142,106,51,.25)}
  .pillars li:nth-child(3)::before{display:none}
  .foot{padding-top:clamp(7rem,20vh,10rem)}
  .areas{flex-direction:column;align-items:center;gap:.35rem;font-size:.62rem}
  .areas li + li{border-left:0}
}
/* ============ LIGHT PHOTO ============ */
.glow{left:50%;top:44%}
/* portrait screens: the photograph fills the page */
@media (max-aspect-ratio:7/6){
  .photo{
    top:0;height:auto;
    background:url("bg-tall.jpg") center bottom / cover no-repeat;
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.35) 0%,#000 40%);
            mask-image:linear-gradient(180deg,rgba(0,0,0,.35) 0%,#000 40%);
  }
  .pillars{background:rgba(252,248,241,.75);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(142,106,51,.25)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01s!important;animation-delay:0s!important;animation-iteration-count:1!important;transition:none!important}
}
