:root{
  --abyss:    #fcecd1;   /* warm cream background  */
  --abyss-2:  #f8e3c2;   /* raised panels / inputs */
  --shell:    #241712;   /* warm near-black text   */
  --shell-dim:#8a7256;   /* muted warm brown       */
  --coral:    #c22e3a;   /* deep crab red accent   */
  --coral-soft:#d8454f;
  --line:     rgba(36,23,18,.14);
  --maxw: 1180px;
  --ease: cubic-bezier(.22,1,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--abyss);
  color:var(--shell);
  font-family:"Hanken Grotesk", sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* atmospheric depth: subtle radial glow + grain */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(900px 600px at 80% -12%, rgba(194,46,58,.12), transparent 60%),
    radial-gradient(820px 720px at 6% 112%, rgba(214,138,58,.20), transparent 60%);
}
body::after{
  content:"";
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.04; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; position:relative; z-index:2; }

a{ color:inherit; text-decoration:none; }
::selection{ background:var(--coral); color:var(--abyss); }

/* ---------- type ---------- */
.display{
  font-family:"Fraunces", serif;
  font-weight:340;
  line-height:1.02;
  letter-spacing:-.015em;
  font-optical-sizing:auto;
}
.eyebrow{
  font-size:.72rem; letter-spacing:.34em; text-transform:uppercase;
  color:var(--coral-soft); font-weight:500;
}

/* ---------- header ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:20;
  transition:background .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
header.scrolled{
  background:rgba(252,236,209,.82);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; height:168px; }
.brand{
  font-family:"Fraunces", serif; font-weight:400;
  font-size:1.4rem; letter-spacing:.22em; padding-left:.22em;
  display:inline-flex; align-items:center;
}
.brand b{ color:var(--coral); font-weight:400; }
.logo{ height:160px; width:auto; display:block; }
.foot-brand .logo{ height:132px; }
.nav-links{ display:flex; gap:38px; align-items:center; }
.nav-links a{
  font-size:1.72rem; letter-spacing:.04em; color:var(--shell-dim);
  transition:color .25s var(--ease);
}
.nav-links a:hover, .nav-links a.active{ color:var(--shell); }
.nav-cta{
  border:1px solid var(--line); border-radius:999px;
  padding:12px 30px; color:var(--shell)!important; font-weight:500;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.nav-cta:hover{ border-color:var(--coral); background:rgba(194,46,58,.10); }

/* ---------- hero ---------- */
.hero{ min-height:100vh; display:flex; align-items:center; padding:190px 0 90px; }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center; }

.hero h1{ font-size:clamp(3rem, 8vw, 6.6rem); margin:22px 0 28px; }
.hero h1 em{ font-style:italic; color:var(--coral); }
.hero p.lead{
  font-size:1.15rem; color:var(--shell-dim); max-width:40ch; margin-bottom:40px;
}
.hero-actions{ display:flex; gap:16px; align-items:center; flex-wrap:wrap; }

.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-weight:500; font-size:.95rem; letter-spacing:.01em;
  padding:15px 28px; border-radius:999px;
  transition:transform .3s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease);
}
.btn-primary{
  background:var(--coral); color:#fff6e9;
  box-shadow:0 16px 38px -16px rgba(194,46,58,.55);
}
.btn-primary:hover{ transform:translateY(-3px); background:var(--coral-soft); }
.btn-ghost{ color:var(--shell-dim); }
.btn-ghost:hover{ color:var(--shell); }
.btn .arrow{ transition:transform .3s var(--ease); }
.btn:hover .arrow{ transform:translateX(4px); }

/* hero visual — king crab photo card */
.hero-card{
  position:relative; aspect-ratio:4/5; border-radius:20px; overflow:hidden;
  border:1px solid var(--line);
  background:#7d1c25;
  box-shadow:0 30px 70px -30px rgba(125,28,37,.6);
  display:flex; align-items:flex-end; padding:30px;
}
.hero-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-card::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(20,8,8,.62) 0%, rgba(20,8,8,.05) 42%, transparent 70%);
}
.hero-card .tag{
  position:relative; z-index:2;
  background:rgba(40,12,14,.30); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:14px 18px;
  font-size:.82rem; color:rgba(255,246,233,.82);
}
.hero-card .tag b{ color:#fff; font-weight:600; display:block; font-size:.95rem; margin-bottom:2px; }

/* ---------- section frame ---------- */
section{ padding:110px 0; position:relative; }
.sec-head{ max-width:54ch; margin-bottom:64px; }
.sec-head h2{ font-size:clamp(2rem,4.5vw,3.3rem); margin-top:18px; }
.sec-head p{ color:var(--shell-dim); font-size:1.08rem; margin-top:20px; }

/* ---------- subpage hero ---------- */
.subhero{ padding:212px 0 56px; }
.subhero h1{ font-size:clamp(2.6rem,6vw,4.8rem); margin-top:16px; }
.subhero p{ color:var(--shell-dim); font-size:1.16rem; max-width:56ch; margin-top:22px; }

/* ---------- about ---------- */
.about{ border-top:1px solid var(--line); }
.about-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:start; }
.about-grid .lede{ font-family:"Fraunces",serif; font-weight:330; font-size:1.7rem; line-height:1.35; }
.about-grid .lede em{ font-style:italic; color:var(--coral); }
.about-body p{ color:var(--shell-dim); margin-bottom:18px; }
.stats{ display:flex; gap:46px; margin-top:38px; flex-wrap:wrap; }
.stat .n{ font-family:"Fraunces",serif; font-size:2.6rem; color:var(--shell); line-height:1; }
.stat .l{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--shell-dim); margin-top:8px; }

/* ---------- pillars ---------- */
.pillars{ border-top:1px solid var(--line); }
.pillar-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.pillar{
  border:1px solid var(--line); border-radius:18px; padding:36px 30px 40px;
  background:linear-gradient(180deg, rgba(36,23,18,.035), transparent);
  transition:transform .4s var(--ease), border-color .4s var(--ease), background .4s var(--ease);
}
.pillar:hover{ transform:translateY(-6px); border-color:rgba(194,46,58,.42); background:rgba(194,46,58,.05); }
.pillar .num{ font-family:"Fraunces",serif; font-size:1rem; color:var(--coral); letter-spacing:.1em; }
.pillar h3{ font-family:"Fraunces",serif; font-weight:400; font-size:1.6rem; margin:18px 0 12px; }
.pillar p{ color:var(--shell-dim); font-size:.98rem; }

/* ---------- partners: featured panel (Agrifreeze) ---------- */
.partners{ border-top:1px solid var(--line); }
.partner-panel{
  position:relative; overflow:hidden; border-radius:26px; padding:66px;
  color:#fff6e9;
  background:linear-gradient(155deg, #d23a44 0%, #a0252f 58%, #7d1c25 100%);
  box-shadow:0 44px 100px -44px rgba(125,28,37,.62);
  display:grid; grid-template-columns:.92fr 1.08fr; gap:58px; align-items:center;
}
.partner-panel::before{
  content:"\2744"; position:absolute; right:-30px; top:-46px;
  font-size:17rem; line-height:1; opacity:.10; pointer-events:none;
}
.partner-panel .eyebrow{ color:rgba(255,246,233,.72); }
.partner-panel .name{
  font-family:"Fraunces",serif; font-weight:380; font-size:clamp(2.2rem,4.5vw,3.4rem);
  line-height:1.04; margin:16px 0 22px;
}
.partner-panel .name span{ font-style:italic; }
.partner-link{
  display:inline-flex; align-items:center; gap:10px; font-weight:500; font-size:.95rem;
  border:1px solid rgba(255,246,233,.4); border-radius:999px; padding:13px 26px;
  color:#fff6e9; transition:background .3s var(--ease), border-color .3s var(--ease);
}
.partner-link:hover{ background:rgba(255,246,233,.12); border-color:#fff6e9; }
.partner-link .arrow{ transition:transform .3s var(--ease); }
.partner-link:hover .arrow{ transform:translateX(4px); }
.partner-copy p{ color:rgba(255,246,233,.86); margin-bottom:20px; position:relative; z-index:1; }
.partner-goal{
  border-left:2px solid rgba(255,246,233,.45); padding-left:22px; margin-top:26px;
  font-family:"Fraunces",serif; font-weight:330; font-size:1.4rem; line-height:1.38;
}
.partner-goal em{ font-style:italic; color:#ffe7c9; }

/* ---------- partners: supply cards ---------- */
.partner-cards{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.partner-card{
  display:flex; flex-direction:column;
  border:1px solid var(--line); border-radius:20px; padding:44px 40px 38px;
  background:linear-gradient(180deg, rgba(36,23,18,.035), transparent);
  transition:transform .4s var(--ease), border-color .4s var(--ease), background .4s var(--ease);
}
.partner-card:hover{ transform:translateY(-6px); border-color:rgba(194,46,58,.42); background:rgba(194,46,58,.05); }
.partner-card .role{ font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--coral-soft); }
.partner-card h3{ font-family:"Fraunces",serif; font-weight:400; font-size:2rem; margin:14px 0 14px; }
.partner-card p{ color:var(--shell-dim); margin-bottom:28px; flex:1; }
.partner-card .out{ display:inline-flex; align-items:center; gap:9px; color:var(--coral); font-weight:500; font-size:.92rem; }
.partner-card .out .arrow{ transition:transform .3s var(--ease); }
.partner-card:hover .out .arrow{ transform:translateX(4px); }

/* ---------- partners teaser on home ---------- */
.partner-teaser{ text-align:center; max-width:760px; margin:0 auto; }
.partner-logos{ display:flex; flex-wrap:wrap; justify-content:center; gap:18px 44px; margin:38px 0 42px; }
.partner-logos span{ font-family:"Fraunces",serif; font-size:1.55rem; color:var(--shell); }

/* ---------- contact ---------- */
.contact{ border-top:1px solid var(--line); }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.contact-info .row{ padding:22px 0; border-bottom:1px solid var(--line); }
.contact-info .row:first-of-type{ border-top:1px solid var(--line); }
.contact-info .k{ font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--coral-soft); }
.contact-info .v{ font-size:1.08rem; margin-top:6px; color:var(--shell); }
.contact-info .v a:hover{ color:var(--coral); }

form{ display:grid; gap:18px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
label{ display:block; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--shell-dim); margin-bottom:8px; }
input, textarea{
  width:100%; background:var(--abyss-2); border:1px solid var(--line); border-radius:12px;
  padding:14px 16px; color:var(--shell); font-family:inherit; font-size:.98rem;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
input:focus, textarea:focus{ outline:none; border-color:var(--coral); background:#fff7ea; }
textarea{ resize:vertical; min-height:110px; }
form .btn-primary{ justify-content:center; margin-top:6px; border:none; cursor:pointer; }

/* ---------- footer ---------- */
footer{ border-top:1px solid var(--line); padding:84px 0 40px; }
.foot-top{
  display:grid; grid-template-columns:1.7fr 1fr 1.1fr 1.2fr; gap:48px;
  padding-bottom:52px; border-bottom:1px solid var(--line);
}
.foot-brand .brand{ margin-bottom:6px; }
.foot-brand p{ color:var(--shell-dim); max-width:34ch; font-size:.98rem; }
.foot-col h4{
  font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--coral-soft); font-weight:600; margin-bottom:18px;
}
.foot-col a, .foot-col address{
  display:block; color:var(--shell-dim); font-style:normal; font-size:1rem;
  line-height:1.95; transition:color .25s var(--ease);
}
.foot-col a:hover{ color:var(--shell); }
.foot-bottom{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  flex-wrap:wrap; padding-top:30px;
}
.foot-bottom small{ color:var(--shell-dim); font-size:.84rem; letter-spacing:.02em; }
.foot-bottom .sep{ color:var(--coral); }

/* ---------- reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.hero .reveal{ transition-delay:calc(var(--d,0) * 90ms); }

/* ---------- responsive ---------- */
@media (max-width:880px){
  .hero-grid{ grid-template-columns:1fr; gap:48px; }
  .hero-card{ aspect-ratio:16/11; }
  .hero-card .crab{ font-size:9rem; }
  .about-grid{ grid-template-columns:1fr; gap:36px; }
  .pillar-grid{ grid-template-columns:1fr; }
  .partner-panel{ grid-template-columns:1fr; padding:40px 32px; gap:30px; }
  .partner-cards{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; gap:48px; }
  .foot-top{ grid-template-columns:1fr 1fr; gap:40px 32px; }
  .nav-links a:not(.nav-cta){ display:none; }
}
@media (max-width:520px){
  .foot-top{ grid-template-columns:1fr; gap:36px; }
}
@media (max-width:520px){
  .wrap{ padding:0 22px; }
  .field-row{ grid-template-columns:1fr; }
  .stats{ gap:30px; }
}
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}
