:root { --ink:#021e1a; --deep:#042a25; --gold:#d4ad62; --gold-light:#f4d598; --cream:#f6ead0; --line:rgba(224,190,119,.72); }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; background:var(--ink); color:var(--cream); font-family:Arial,sans-serif; }
.site-shell { position:relative; isolation:isolate; min-height:100svh; overflow:hidden; background:radial-gradient(circle at 50% 36%,rgba(14,92,74,.54),transparent 42%),linear-gradient(125deg,#061e1a 0%,#06332b 53%,#021611 100%); }
.site-shell:before { content:""; position:absolute; inset:0; z-index:-2; opacity:.5; background:repeating-linear-gradient(116deg, transparent 0 32px, rgba(246,234,208,.04) 33px 35px, transparent 36px 68px); transform:skewY(-9deg) scale(1.25); }
header { position:absolute; top:3rem; right:5vw; z-index:2; }.contact-link, footer { color:var(--cream); text-transform:uppercase; letter-spacing:.32em; font-size:.68rem; text-decoration:none; }.contact-link:after, footer:after { content:""; display:block; height:1px; background:var(--gold); width:3.4rem; margin-top:.8rem; }
.hero { width:min(35rem,calc(100% - 3rem)); margin:auto; padding:3rem 0 4rem; text-align:center; }.brand { width:min(24rem,75vw); height:auto; display:block; margin:0 auto .4rem; filter:drop-shadow(0 15px 25px rgba(0,0,0,.34)); }.eyebrow { text-transform:uppercase; letter-spacing:.37em; font-size:.7rem; color:var(--gold-light); margin:0; }.rule { height:1px; width:3rem; background:var(--gold); margin:1.25rem auto; }.intro { margin:0 0 2rem; font-size:.92rem; line-height:1.7; color:#ecdfc7; }
form { text-align:left; } .field > label { display:block; color:#d3c3a6; font:400 .8rem Arial,sans-serif; margin:0 0 .45rem; } .form-row { display:grid; gap:1rem; grid-template-columns:1fr 1fr; } input:not([type=checkbox]), textarea { width:100%; border:1px solid var(--line); border-radius:4px; background:rgba(3,38,32,.42); color:var(--cream); font:400 .87rem Arial,sans-serif; padding:1rem; margin:0 0 1rem; outline:none; } textarea { height:8rem; resize:vertical; } input:focus, textarea:focus { border-color:var(--gold-light); box-shadow:0 0 0 3px rgba(212,173,98,.15); } input::placeholder, textarea::placeholder { color:#d3c3a6; opacity:1; }
.consent { display:flex; align-items:flex-start; gap:.65rem; margin:.1rem 0 1rem; color:#e5d6bd; font-size:.72rem; line-height:1.5; }.consent input { margin:.15rem 0 0; accent-color:var(--gold); }.consent a { color:var(--gold-light); } button,.return { display:block; border:0; border-radius:10px; width:100%; padding:1rem; cursor:pointer; background:linear-gradient(105deg,#d0a65d,#f0d293,#b88c43); color:#19332c; font:600 .7rem Montserrat,Arial,sans-serif; text-transform:uppercase; letter-spacing:.35em; text-align:center; text-decoration:none; } button:hover,.return:hover { filter:brightness(1.1); }.notice,.field-error { border:1px solid var(--line); padding:.8rem; margin:0 0 1rem; font-size:.8rem; line-height:1.45; }.success { background:rgba(52,122,96,.3); }.error,.field-error { color:#ffdcbd; background:rgba(122,56,42,.3); }
.leaf { position:absolute; z-index:-1; width:31rem; height:31rem; opacity:.36; background:repeating-radial-gradient(ellipse at 0 100%,transparent 0 1.7rem,rgba(203,168,81,.85) 1.8rem 2rem,transparent 2.1rem 3.5rem); filter:blur(.25px); }.leaf-a { left:-16rem; top:-9rem; transform:rotate(-22deg); }.leaf-b { right:-19rem; bottom:-17rem; transform:rotate(130deg); }.leaf-c { right:-15rem; top:5rem; opacity:.18; transform:rotate(65deg); }.detail { position:absolute; left:6vw; bottom:3rem; color:var(--gold); font:italic 500 clamp(1.3rem,2.2vw,2rem)/1.05 Georgia,serif; transform:rotate(-10deg); } footer { position:absolute; bottom:3rem; right:5vw; }
.legal-shell,.not-found { min-height:100svh; padding:clamp(2rem,6vw,6rem); background:radial-gradient(circle at 50% 0,rgba(26,105,86,.42),transparent 45%),var(--ink); }.legal-shell article { max-width:48rem; margin:2rem auto; line-height:1.75; color:#eadcc5; }.legal-shell h1,.not-found h1 { font:600 clamp(2.4rem,6vw,4.8rem)/.95 Georgia,serif; color:var(--gold-light); }.legal-shell h2 { margin-top:2rem; color:var(--gold-light); font:600 1.5rem Georgia,serif; }.back { color:var(--gold-light); text-decoration:none; }.legal-logo { display:block; width:9rem; margin:2rem auto 0; }.not-found { display:grid; align-content:center; justify-items:center; text-align:center; }.not-found img { width:13rem; }.not-found p { max-width:32rem; line-height:1.7; }.not-found .return { width:auto; margin-top:1rem; padding:1rem 1.5rem; }
@media (max-width:640px) { header { top:1.5rem; right:1.5rem; }.hero { width:min(100% - 2rem,35rem); padding-top:4.8rem; }.brand { width:min(17rem,76vw); }.form-row { grid-template-columns:1fr; gap:0; }.detail { display:none; } footer { bottom:1.5rem; right:1.5rem; }.site-shell { min-height:100svh; }.leaf-b { right:-23rem; } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important; } }

/* A quiet tropical dusk: a woven texture, warm light and drifting fireflies. */
.site-shell {
  background:
    radial-gradient(ellipse 47rem 34rem at 84% 78%,rgba(175,100,34,.19),transparent 72%),
    radial-gradient(ellipse 38rem 28rem at 12% 12%,rgba(116,113,43,.14),transparent 70%),
    radial-gradient(circle at 50% 36%,rgba(14,92,74,.54),transparent 42%),
    linear-gradient(125deg,#061e1a 0%,#06332b 53%,#021611 100%);
}
.site-shell::before {
  opacity:.38;
  background:
    repeating-linear-gradient(116deg,transparent 0 32px,rgba(246,234,208,.045) 33px 35px,transparent 36px 68px),
    repeating-linear-gradient(64deg,transparent 0 32px,rgba(246,234,208,.028) 33px 35px,transparent 36px 68px);
  transform:none;
}
.site-shell::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(ellipse 40rem 28rem at 73% 74%,rgba(227,159,68,.09),transparent 74%);
  animation:dusk-glow 18s ease-in-out infinite alternate;
}
.hero { position:relative; z-index:1; }
.brand { animation:brand-breathe 10s ease-in-out infinite alternate; }
.leaf-a { transform-origin:0 100%; animation:leaf-sway-a 16s ease-in-out infinite alternate; }
.leaf-b { transform-origin:100% 100%; animation:leaf-sway-b 19s ease-in-out infinite alternate; }
.leaf-c { transform-origin:100% 0; animation:leaf-sway-c 22s ease-in-out infinite alternate; }
.fireflies { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.fireflies span {
  position:absolute;
  left:var(--x);
  top:var(--y);
  width:4px;
  height:4px;
  border-radius:50%;
  background:#ffe1a0;
  box-shadow:0 0 8px 2px rgba(255,211,123,.45),0 0 24px 8px rgba(222,166,64,.13);
  opacity:0;
  animation:firefly-drift var(--duration) ease-in-out var(--delay) infinite;
}
.fireflies span:nth-child(1) { --x:12%; --y:24%; --dx:18px; --dy:-32px; --duration:13s; --delay:-2s; }
.fireflies span:nth-child(2) { --x:88%; --y:18%; --dx:-24px; --dy:26px; --duration:17s; --delay:-8s; }
.fireflies span:nth-child(3) { --x:7%; --y:56%; --dx:25px; --dy:-24px; --duration:16s; --delay:-5s; }
.fireflies span:nth-child(4) { --x:94%; --y:47%; --dx:-28px; --dy:-21px; --duration:14s; --delay:-10s; }
.fireflies span:nth-child(5) { --x:16%; --y:82%; --dx:18px; --dy:-27px; --duration:19s; --delay:-13s; }
.fireflies span:nth-child(6) { --x:84%; --y:73%; --dx:-21px; --dy:22px; --duration:15s; --delay:-4s; }
.fireflies span:nth-child(7) { --x:34%; --y:12%; --dx:14px; --dy:18px; --duration:20s; --delay:-12s; }
.fireflies span:nth-child(8) { --x:67%; --y:91%; --dx:-15px; --dy:-23px; --duration:18s; --delay:-7s; }
@keyframes dusk-glow { from { opacity:.45; } to { opacity:1; } }
@keyframes brand-breathe { from { transform:translateY(0); } to { transform:translateY(-5px); } }
@keyframes leaf-sway-a { from { transform:rotate(-22deg); } to { transform:rotate(-18deg); } }
@keyframes leaf-sway-b { from { transform:rotate(130deg); } to { transform:rotate(134deg); } }
@keyframes leaf-sway-c { from { transform:rotate(65deg); } to { transform:rotate(61deg); } }
@keyframes firefly-drift {
  0%,100% { opacity:0; transform:translate3d(0,0,0) scale(.7); }
  25% { opacity:.45; }
  50% { opacity:.8; transform:translate3d(var(--dx),var(--dy),0) scale(1); }
  75% { opacity:.25; }
}
@media (prefers-reduced-motion:reduce) {
  .site-shell::after,.brand,.leaf,.fireflies span { animation:none; }
  .fireflies span { opacity:.35; }
}

/* Decorative palms frame the page without covering the contact form. */
.palms { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.palms::before,.palms::after {
  content:"";
  position:absolute;
  bottom:-1.5rem;
  aspect-ratio:420/1000;
  background-position:center bottom;
  background-size:contain;
  background-repeat:no-repeat;
}
.palms::before {
  left:-3rem;
  width:clamp(19rem,32vw,29rem);
  opacity:.66;
  background-image:url('palm-coconut.svg?v=2');
}
.palms::after {
  right:-3rem;
  width:clamp(17rem,27vw,25rem);
  opacity:.56;
  background-image:url('palm-slim.svg?v=2');
}
.leaf { opacity:.19; }
.leaf-c { opacity:.1; }
@media (max-width:900px) {
  .palms::before { left:-5rem; opacity:.46; }
  .palms::after { right:-5rem; opacity:.38; }
}
@media (max-width:640px) {
  .palms::before { top:-3rem; bottom:auto; left:-8rem; width:14rem; opacity:.23; }
  .palms::after { top:5rem; bottom:auto; right:-8rem; width:13rem; opacity:.19; }
  .leaf { opacity:.12; }
}
