:root {
  --glass: #d8e8dc;
  --glass-pale: #edf5ef;
  --moss: #3f5c40;
  --moss-deep: #263d2a;
  --fern: #6f8f5f;
  --fern-light: #9caf8c;
  --condensation: #f8fcf8;
  --walnut: #493529;
  --ink: #203226;
  --paper: #e8efe7;
  --display: 'Newsreader', Georgia, serif;
  --body: 'Manrope', sans-serif;
  --gutter: clamp(1.25rem, 4vw, 5rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--glass);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.65;
  overflow-x: hidden;
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 30;
  pointer-events: none;
  opacity: .075;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
::selection { background: var(--moss); color: var(--glass-pale); }

.skip-link {
  position: fixed;
  left: 1rem;
  top: 0;
  z-index: 100;
  padding: .8rem 1rem;
  background: var(--moss-deep);
  color: white;
  border-radius: 0 0 .5rem .5rem;
  visibility: hidden;
  transform: translateY(-120%);
}
.skip-link:focus { visibility: visible; transform: translateY(0); }
:focus-visible { outline: 2px solid #d4a978; outline-offset: 4px; }

.site-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 92px;
  padding: 0 var(--gutter);
  border-bottom: 1px solid rgba(63, 92, 64, .23);
}
.wordmark {
  display: inline-flex;
  width: max-content;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
}
.wordmark > span { font-family: var(--display); font-size: 2rem; font-style: italic; line-height: 1; }
.wordmark small, .seal-status, .site-header nav a {
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.site-header nav { display: flex; gap: clamp(1rem, 2.3vw, 2.5rem); }
.site-header nav a { position: relative; padding: .85rem .15rem; text-decoration: none; }
.site-header nav a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 100%;
  bottom: .55rem;
  height: 1px;
  background: currentColor;
  transition: right .35s ease;
}
.site-header nav a:hover::after { right: 0; }
.seal-status { justify-self: end; margin: 0; }
.seal-status i { display: inline-block; width: 6px; height: 6px; margin-right: .6rem; border-radius: 50%; background: var(--fern); box-shadow: 0 0 0 5px rgba(111,143,95,.16); }
.menu-toggle { display: none; }

.hero {
  min-height: 980px;
  padding: 180px var(--gutter) 80px;
  position: relative;
  display: grid;
  grid-template-columns: minmax(340px, .83fr) minmax(510px, 1.1fr);
  align-items: center;
  background:
    radial-gradient(circle at 70% 46%, rgba(255,255,255,.82) 0, rgba(239,247,240,.58) 22%, transparent 47%),
    linear-gradient(110deg, #cfdfd3 0%, var(--glass) 49%, #c8dcca 100%);
  isolation: isolate;
}
.hero::before {
  content: '';
  position: absolute;
  left: 3%;
  bottom: 5%;
  width: 28vw;
  height: 28vw;
  border: 1px solid rgba(63,92,64,.13);
  border-radius: 50%;
  z-index: -1;
}
.hero-copy { align-self: center; position: relative; z-index: 3; max-width: 640px; }
.eyebrow, .section-kicker {
  margin: 0 0 1.7rem;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.hero h1 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(5rem, 8vw, 9.25rem);
  font-weight: 300;
  letter-spacing: -.075em;
  line-height: .76;
}
.hero h1 span, .hero h1 em { display: block; }
.hero h1 em { margin-left: .54em; color: var(--moss); font-weight: 300; }
.hero-deck { max-width: 31rem; margin: 3.2rem 0 2.5rem 4.1rem; font-size: clamp(.98rem, 1.2vw, 1.18rem); line-height: 1.8; }
.specimen-data { display: flex; gap: 0; margin-left: 4.1rem; border-top: 1px solid rgba(63,92,64,.27); max-width: 34rem; }
.specimen-data div { min-width: 8.5rem; padding: 1.4rem 1.7rem 0 0; }
.specimen-data span { display: block; font-family: var(--display); font-size: 1.7rem; line-height: 1.1; }
.specimen-data small { display: block; margin-top: .3rem; font-size: .59rem; letter-spacing: .16em; text-transform: uppercase; }

.vessel-column { position: relative; justify-self: center; width: min(100%, 680px); z-index: 2; }
.vessel-stage { position: relative; aspect-ratio: 560 / 760; width: min(100%, 580px); margin: 0 auto; filter: drop-shadow(0 35px 48px rgba(38,61,42,.18)); }
.vessel-art { position: relative; display: block; width: 100%; height: 100%; z-index: 3; overflow: visible; }
.vessel-breath { transform-origin: 50% 55%; animation: vesselBreath 7s ease-in-out infinite; }
@keyframes vesselBreath { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.006, 1.012); } }
.ambient-ring { position: absolute; left: 50%; top: 48%; border: 1px solid rgba(63,92,64,.16); border-radius: 50%; transform: translate(-50%,-50%); z-index: 0; }
.ring-one { width: 95%; aspect-ratio: 1; animation: slowRing 12s ease-in-out infinite; }
.ring-two { width: 117%; aspect-ratio: 1; opacity: .5; animation: slowRing 12s 2s ease-in-out infinite reverse; }
@keyframes slowRing { 50% { transform: translate(-50%,-50%) scale(1.045); opacity: .35; } }
#lifeCanvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 5; pointer-events: none; }
.fog-film {
  position: absolute;
  z-index: 4;
  left: 15%;
  top: 13%;
  width: 70%;
  height: 76%;
  border-radius: 42% 42% 31% 31%;
  background: radial-gradient(circle at 38% 35%, rgba(255,255,255,.92), rgba(232,244,235,.77) 32%, rgba(255,255,255,.3) 68%, transparent);
  opacity: 0;
  transition: opacity .6s ease;
  pointer-events: none;
}
.vessel-stage.misted .fog-film { opacity: .82; animation: clearFog 5s .35s ease forwards; }
@keyframes clearFog { 0% { opacity: .82; } 42% { opacity: .58; } 100% { opacity: 0; } }
.vessel-label {
  position: absolute;
  z-index: 6;
  right: -2%;
  bottom: 16%;
  padding: .72rem .85rem .65rem;
  color: #e9e2d8;
  background: var(--walnut);
  border: 1px solid #9c7c5f;
  box-shadow: 3px 5px 0 rgba(39,30,24,.15);
  transform: rotate(-3deg);
}
.vessel-label b, .vessel-label span { display: block; line-height: 1.2; }
.vessel-label b { font-family: var(--display); font-style: italic; font-size: 1.1rem; }
.vessel-label span { font-size: .48rem; letter-spacing: .14em; text-transform: uppercase; }
.misting-control { position: absolute; right: -2rem; top: 57%; z-index: 10; width: 10.5rem; text-align: center; }
.misting-control button {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--moss);
  border-radius: 50%;
  color: var(--glass-pale);
  background: var(--moss);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 10px 25px rgba(38,61,42,.18);
  transition: transform .25s ease, color .25s ease, background .25s ease;
}
.misting-control button:hover { transform: translateY(-3px); color: var(--moss); background: var(--condensation); }
.spray-icon { display: inline-block; width: 7px; height: 7px; margin-right: .5rem; border: 1px solid currentColor; border-radius: 50%; }
.misting-control p { margin: .8rem 0 0; font-size: .53rem; letter-spacing: .13em; text-transform: uppercase; }
.hero-note { position: absolute; right: var(--gutter); bottom: 4.5rem; z-index: 7; display: flex; gap: 1rem; max-width: 19rem; padding-top: 1rem; border-top: 1px solid rgba(63,92,64,.35); }
.hero-note .note-number { flex: none; font-size: .55rem; letter-spacing: .16em; }
.hero-note p { margin: 0; font-family: var(--display); font-size: 1.05rem; font-style: italic; line-height: 1.45; }
.scroll-cue { position: absolute; left: var(--gutter); bottom: 3.5rem; display: flex; align-items: center; gap: .8rem; margin: 0; font-size: .57rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.scroll-cue span { display: block; width: 34px; height: 1px; background: currentColor; }

#fernLayer path { vector-effect: non-scaling-stroke; }
.fern-stem { fill: none; stroke: #426445; stroke-width: 5; stroke-linecap: round; }
.fern-leaf { fill: #78966d; transform-box: fill-box; transform-origin: 0 50%; animation: unfurl 3.2s cubic-bezier(.22,.75,.2,1) both; animation-delay: var(--delay); }
.fern-leaf.alt { fill: #91aa80; }
@keyframes unfurl { from { transform: scaleX(0) rotate(-18deg); opacity: .1; } to { transform: scaleX(1) rotate(0); opacity: 1; } }

.section-shell { padding-left: var(--gutter); padding-right: var(--gutter); }
.section-kicker { display: flex; align-items: center; gap: 1.2rem; }
.section-kicker span { font-family: var(--display); font-size: 1.35rem; font-style: italic; font-weight: 300; letter-spacing: 0; }
.section-kicker::after { content: ''; flex: 1; height: 1px; max-width: 8rem; background: currentColor; opacity: .24; transform: scaleX(0); transform-origin: left; transition: transform .9s .15s cubic-bezier(.22,.74,.25,1); }
.section-kicker.visible::after { transform: scaleX(1); }
.section-kicker.light { color: #dce9dd; }
.care-section { position: relative; padding-top: 9rem; padding-bottom: 11rem; background: var(--paper); }
.care-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: end; margin-top: 4.5rem; }
.care-heading h2, .cycle-copy h2, .field-header h2, .closing-section h2, .census-intro h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(3.8rem, 6.7vw, 7.3rem);
  font-weight: 300;
  letter-spacing: -.06em;
  line-height: .86;
}
.care-heading blockquote { margin: 0 0 .3rem; padding: 0 0 0 2rem; border-left: 1px solid var(--fern); font-family: var(--display); font-size: clamp(1.8rem, 3vw, 3.2rem); font-style: italic; font-weight: 300; line-height: 1.12; }
.log-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 7rem; border-top: 1px solid rgba(32,50,38,.25); }
.log-card { position: relative; min-height: 22rem; padding: 2.2rem 2.8rem 3rem 0; border-right: 1px solid rgba(32,50,38,.25); }
.log-card + .log-card { padding-left: 2.8rem; }
.log-card:last-child { border-right: 0; }
.log-card time, .log-card .log-mark { font-family: var(--display); font-size: .86rem; font-style: italic; }
.log-card h3 { margin: 4.6rem 0 1.2rem; font-family: var(--display); font-size: 2rem; font-weight: 400; }
.log-card p { max-width: 25rem; margin: 0; color: #405346; font-size: .88rem; line-height: 1.8; }
.log-card { transition: background .35s ease, padding-left .35s ease; }
.log-card:hover { background: rgba(111,143,95,.08); padding-left: 1.2rem; }
.log-card + .log-card:hover { padding-left: 3.5rem; }
.log-mark { position: absolute; right: 1.5rem; bottom: 1.5rem; color: var(--fern); }
.log-card.regret { background: rgba(111,143,95,.1); padding-right: 2.8rem; }
.margin-note { margin: 6rem 0 0 52%; font-family: var(--display); font-size: 1.25rem; font-style: italic; line-height: 1.4; }

.census-section { padding: 10rem 0 8rem; color: #e8f0e8; background: var(--moss-deep); overflow: hidden; }
.census-intro { display: grid; grid-template-columns: .55fr 1.25fr .65fr; gap: 3.5rem; align-items: start; }
.census-intro h2 { color: #f1f6f1; }
.census-intro h2 em { color: var(--fern-light); font-weight: 300; }
.census-intro > p { max-width: 23rem; margin: 1rem 0 0; color: #bfd0c0; font-size: .9rem; line-height: 1.9; }
.specimen-strip { display: grid; grid-template-columns: repeat(4, minmax(280px,1fr)); margin: 7rem 0 0 var(--gutter); overflow-x: auto; scrollbar-width: thin; scrollbar-color: var(--fern) transparent; }
.specimen-card { display: grid; grid-template-rows: 15rem auto; min-height: 32rem; padding: 2.5rem 2rem; border-top: 1px solid #718874; border-right: 1px solid #607863; }
.specimen-card { transition: background .35s ease; }
.specimen-card:hover { background: rgba(216,232,220,.055); }
.specimen-card svg { transition: transform .55s cubic-bezier(.22,.74,.25,1); }
.specimen-card:hover svg { transform: translateY(-7px) rotate(-1deg); }
.specimen-card svg { width: 100%; height: 100%; max-height: 210px; overflow: visible; }
.specimen-card svg path { fill: none; stroke: #a8bda4; stroke-width: 2; vector-effect: non-scaling-stroke; }
.specimen-card svg ellipse, .specimen-card svg circle { fill: rgba(141,170,126,.32); stroke: #a8bda4; stroke-width: 1; }
.specimen-card > div > span { font-size: .55rem; letter-spacing: .18em; }
.specimen-card h3 { margin: 1.2rem 0 .25rem; font-family: var(--display); font-size: 1.55rem; font-weight: 400; }
.specimen-card p { margin: 0; color: #aebfaf; font-size: .75rem; }
.specimen-card b { display: block; margin-top: 1.5rem; color: #d4e3d4; font-size: .62rem; letter-spacing: .13em; text-transform: uppercase; }
.census-foot { display: grid; grid-template-columns: 1fr 1fr; gap: 6rem; margin-top: 5rem; }
.census-foot p { display: grid; grid-template-columns: 11rem 1fr; margin: 0; color: #b9caba; font-size: .8rem; }
.census-foot span { color: #edf4ed; font-size: .58rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }

.cycle-section { padding-top: 8.5rem; padding-bottom: 9.5rem; background: #d7e3d6; }
.cycle-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 6vw; align-items: center; margin-top: 4rem; }
.cycle-copy h2 em { color: var(--moss); font-weight: 300; }
.cycle-copy > p { max-width: 30rem; margin: 3rem 0; color: #405346; }
.cycle-copy dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border-top: 1px solid rgba(32,50,38,.28); }
.cycle-copy dl div { padding: 1.25rem 1rem 0 0; }
.cycle-copy dt { font-size: .56rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.cycle-copy dd { margin: .5rem 0 0; font-family: var(--display); font-size: 1.3rem; }
.cycle-diagram { position: relative; width: 100%; max-width: 740px; justify-self: center; }
.cycle-diagram::before {
  content: '';
  position: absolute;
  inset: 10%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(248,252,248,.58), rgba(248,252,248,.12) 54%, transparent 72%);
  box-shadow: 0 28px 70px rgba(63,92,64,.08);
}
.cycle-diagram svg { display: block; width: 100%; overflow: visible; }
.cycle-diagram > svg > circle { fill: none; stroke: rgba(63,92,64,.47); stroke-width: 1.25; }
.cycle-diagram > svg > circle.inner { stroke-dasharray: 2 8; }
.cycle-arrows path { fill: none; stroke: var(--moss); stroke-width: 2.15; stroke-linecap: round; }
.center-leaf path { fill: rgba(111,143,95,.25); stroke: var(--moss); stroke-width: 2.25; }
.cycle-labels text { fill: var(--moss-deep); font-family: var(--body); font-size: 10px; font-weight: 700; letter-spacing: 2px; }
.orbit-dot { fill: var(--moss) !important; stroke: none !important; transform-origin: 300px 300px; animation: orbit 15s linear infinite; }
@keyframes orbit { to { transform: rotate(360deg); } }
.cycle-caption { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%,-50%); text-align: center; font-family: var(--display); font-size: 1.05rem; font-style: italic; line-height: 1.3; }

.field-section { position: relative; padding: 6rem 0; color: #e9efe7; background: #1d3023; }
.field-section::before { content: ''; position: absolute; inset: 2rem; border: 1px solid rgba(216,232,220,.15); pointer-events: none; }
.field-paper { padding-top: 7rem; padding-bottom: 7rem; }
.field-header { display: grid; grid-template-columns: 1fr .45fr; gap: 6rem; align-items: end; margin-top: 4rem; }
.field-header h2 em { color: var(--fern-light); font-weight: 300; }
.field-header p { margin: 0 0 .7rem; color: #b8c9ba; font-size: .88rem; line-height: 1.9; }
.notes-grid { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 8rem; border-top: 1px solid rgba(216,232,220,.25); }
.field-note { min-height: 22rem; padding: 2rem 2rem 2rem 0; border-right: 1px solid rgba(216,232,220,.2); }
.field-note + .field-note { padding-left: 2rem; }
.field-note:last-child { border: 0; }
.field-note span { font-family: var(--display); font-size: .82rem; font-style: italic; color: var(--fern-light); }
.field-note h3 { margin: 5rem 0 1rem; font-family: var(--display); font-size: 1.7rem; font-weight: 400; }
.field-note p { margin: 0; color: #bdcbbd; font-size: .8rem; line-height: 1.85; }
.hand-note { width: max-content; margin: 3rem 8% 0 auto; color: #b9cab8; font-family: var(--display); font-size: 1.35rem; font-style: italic; transform: rotate(-4deg); }

.closing-section { position: relative; min-height: 760px; display: grid; place-content: center; overflow: hidden; text-align: center; background: var(--glass-pale); }
.closing-section h2 { position: relative; z-index: 2; font-size: clamp(4.5rem, 9vw, 10rem); }
.closing-section h2 em { color: var(--moss); font-weight: 300; }
.closing-section .eyebrow { position: relative; z-index: 2; }
.return-link { position: relative; z-index: 2; justify-self: center; min-height: 44px; display: inline-flex; align-items: center; gap: 2rem; margin-top: 4rem; font-size: .64rem; font-weight: 800; letter-spacing: .17em; text-decoration: none; text-transform: uppercase; }
.return-link span { font-family: var(--display); font-size: 1.4rem; transition: transform .25s ease; }
.return-link:hover span { transform: translateY(-5px); }
.closing-orbit, .closing-orbit span { position: absolute; left: 50%; top: 50%; border: 1px solid rgba(63,92,64,.12); border-radius: 50%; transform: translate(-50%,-50%); }
.closing-orbit { width: min(85vw, 970px); aspect-ratio: 1; }
.closing-orbit span:nth-child(1) { width: 72%; height: 72%; }
.closing-orbit span:nth-child(2) { width: 44%; height: 44%; }
.closing-orbit span:nth-child(3) { width: 112%; height: 112%; }

.site-footer { display: flex; justify-content: space-between; gap: 2rem; align-items: center; min-height: 125px; padding: 2rem var(--gutter); color: #dce8dc; background: #192b20; font-size: .61rem; letter-spacing: .1em; text-transform: uppercase; }
.site-footer p { margin: 0; }
.site-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 1rem 2rem; }
.site-footer a { min-height: 44px; display: inline-flex; align-items: center; text-underline-offset: .3rem; }

.load-in { opacity: 0; transform: translateY(18px); animation: loadReveal .85s cubic-bezier(.22,.74,.25,1) forwards; }
.hero-copy .load-in:nth-child(1) { animation-delay: .12s; }
.hero-copy .load-in:nth-child(2) { animation-delay: .24s; }
.hero-copy .load-in:nth-child(3) { animation-delay: .38s; }
.hero-copy .load-in:nth-child(4) { animation-delay: .5s; }
.vessel-column.load-in { animation-delay: .45s; }
.hero-note.load-in { animation-delay: .75s; }
.scroll-cue.load-in { animation-delay: .9s; }
@keyframes loadReveal { to { opacity: 1; transform: translateY(0); } }
.reveal { opacity: 1; transform: none; transition: filter .8s ease; }
.reveal.visible { filter: saturate(1.03); }

@media (max-width: 1100px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-header nav { display: none; }
  .seal-status { display: block; }
  .hero { grid-template-columns: .85fr 1.15fr; min-height: 820px; padding-top: 135px; padding-bottom: 55px; }
  .hero h1 { font-size: clamp(4.5rem, 9vw, 7rem); }
  .hero-deck, .specimen-data { margin-left: 1.5rem; }
  .misting-control { right: -1rem; }
  .hero-note { display: none; }
  .census-intro { grid-template-columns: .4fr 1.2fr .7fr; gap: 2rem; }
  .notes-grid { grid-template-columns: 1fr 1fr; }
  .field-note:nth-child(2) { border-right: 0; }
  .field-note:nth-child(3), .field-note:nth-child(4) { border-top: 1px solid rgba(216,232,220,.2); }
  .care-section { padding-top: 7rem; }
}

@media (max-width: 760px) {
  :root { --gutter: 1.25rem; }
  .site-header { position: absolute; min-height: 72px; }
  .wordmark small, .seal-status { display: none; }
  .menu-toggle {
    display: inline-flex;
    justify-self: end;
    align-items: center;
    gap: .7rem;
    min-width: 72px;
    min-height: 44px;
    padding: 0;
    border: 0;
    color: var(--ink);
    background: transparent;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
  }
  .menu-mark { position: relative; width: 19px; height: 1px; background: currentColor; transition: transform .25s; }
  .menu-mark::after { content: ''; position: absolute; left: 0; top: 6px; width: 19px; height: 1px; background: currentColor; transition: transform .25s; }
  .menu-toggle[aria-expanded="true"] .menu-mark { transform: rotate(45deg) translateY(3px); }
  .menu-toggle[aria-expanded="true"] .menu-mark::after { transform: rotate(-90deg) translateX(6px); }
  .site-header nav {
    position: absolute;
    top: 72px;
    left: 0;
    right: 0;
    display: grid;
    grid-column: 1 / -1;
    padding: 1rem var(--gutter) 1.5rem;
    background: rgba(216,232,220,.97);
    border-bottom: 1px solid rgba(63,92,64,.25);
    transform: scaleY(0);
    transform-origin: top;
    opacity: 0;
    pointer-events: none;
    transition: transform .25s ease, opacity .2s ease;
  }
  .site-header nav.open { transform: scaleY(1); opacity: 1; pointer-events: auto; }
  .site-header nav a { min-height: 44px; display: flex; align-items: center; border-bottom: 1px solid rgba(63,92,64,.15); }
  .hero { min-height: auto; grid-template-columns: 1fr; padding-top: 126px; padding-bottom: 7rem; overflow: hidden; }
  .hero-copy { z-index: 8; }
  .hero h1 { font-size: clamp(4.35rem, 20vw, 6rem); line-height: .79; }
  .hero h1 em { margin-left: .18em; }
  .hero-deck { max-width: 21rem; margin: 2.2rem 0 1.8rem .8rem; font-size: .92rem; line-height: 1.7; }
  .specimen-data { margin-left: .8rem; max-width: 100%; }
  .specimen-data div { min-width: 0; flex: 1; padding-right: .5rem; }
  .specimen-data span { font-size: 1.35rem; }
  .specimen-data small { font-size: .48rem; letter-spacing: .1em; }
  .vessel-column { width: 110%; margin: -1rem -5% 0; }
  .vessel-stage { width: min(100%, 500px); }
  .misting-control { position: relative; right: auto; top: auto; width: 10rem; margin: -2.9rem auto 0; }
  .misting-control button { min-height: 46px; font-size: .59rem; }
  .vessel-label { right: 7%; }
  .scroll-cue { left: auto; right: var(--gutter); bottom: 2rem; }
  .hero::before { width: 85vw; height: 85vw; left: -45%; bottom: 10%; }

  .care-section { padding-top: 6.5rem; padding-bottom: 7rem; }
  .care-heading { grid-template-columns: 1fr; gap: 3rem; margin-top: 3rem; }
  .care-heading h2, .cycle-copy h2, .field-header h2, .census-intro h2 { font-size: clamp(3.3rem, 15vw, 5rem); }
  .care-heading blockquote { padding-left: 1.25rem; font-size: 1.85rem; }
  .log-grid { grid-template-columns: 1fr; margin-top: 4rem; }
  .log-card, .log-card + .log-card { min-height: 0; padding: 1.8rem 2rem 3.8rem 0; border-right: 0; border-bottom: 1px solid rgba(32,50,38,.25); }
  .log-card + .log-card { padding-left: 0; }
  .log-card.regret { margin: 0 -1.25rem; padding-left: 1.25rem; padding-right: 1.25rem; }
  .log-card h3 { margin-top: 2.5rem; }
  .margin-note { margin: 4rem 0 0 12%; }

  .census-section { padding-top: 7rem; padding-bottom: 6rem; }
  .census-intro { grid-template-columns: 1fr; gap: 1.6rem; }
  .census-intro > p { margin-top: .8rem; }
  .specimen-strip { grid-template-columns: repeat(4, minmax(270px, 76vw)); margin-top: 4.5rem; scroll-snap-type: x mandatory; }
  .specimen-card { min-height: 30rem; scroll-snap-align: start; }
  .census-foot { grid-template-columns: 1fr; gap: 2rem; margin-top: 4rem; }
  .census-foot p { grid-template-columns: 1fr; gap: .7rem; }

  .cycle-section { padding-top: 6rem; padding-bottom: 6.5rem; }
  .cycle-layout { grid-template-columns: 1fr; gap: 4rem; }
  .cycle-copy h2 { font-size: 3.25rem; line-height: .88; }
  .cycle-copy dl { gap: .4rem; }
  .cycle-copy dd { font-size: 1.08rem; white-space: nowrap; }
  .cycle-diagram { width: 112%; margin-left: -6%; }
  .cycle-labels text { font-size: 9px; }

  .field-section { padding: 1.25rem 0; }
  .field-section::before { inset: .65rem; }
  .field-paper { padding-top: 6rem; padding-bottom: 6rem; }
  .field-header { grid-template-columns: 1fr; gap: 2.5rem; }
  .notes-grid { grid-template-columns: 1fr; margin-top: 5rem; }
  .field-note, .field-note + .field-note { min-height: 0; padding: 1.7rem 0 3rem; border-right: 0; border-bottom: 1px solid rgba(216,232,220,.2); }
  .field-note h3 { margin-top: 2.5rem; }
  .hand-note { margin-top: 4rem; font-size: 1.15rem; }

  .closing-section { min-height: 600px; padding: 5rem 1rem; }
  .closing-section h2 { font-size: clamp(3.7rem, 18vw, 5.6rem); }
  .closing-orbit { width: 150vw; }
  .site-footer { align-items: flex-start; flex-direction: column; padding-top: 3rem; padding-bottom: 3rem; }
  .site-footer nav { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .load-in, .reveal { opacity: 1; transform: none; }
}

/* Pass 2 — the specimen becomes an atmosphere, not a collection of panels. */
:root {
  --glass: #d4e4d7;
  --glass-pale: #f0f5ef;
  --moss-deep: #1d3525;
  --ink: #172c20;
  --paper: #e5eee5;
  --walnut-warm: #79543b;
}

body { background: #cbdcce; }
.site-header { border-color: rgba(29,53,37,.2); }
.site-header::after {
  content: 'sealed archive / do not disturb';
  position: absolute;
  left: var(--gutter);
  top: 92px;
  padding-top: .65rem;
  color: rgba(29,53,37,.54);
  font-size: .47rem;
  font-weight: 700;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.seal-status i { animation: statusPulse 3.6s ease-in-out infinite; }
@keyframes statusPulse { 50% { box-shadow: 0 0 0 9px rgba(111,143,95,.04); transform: scale(.82); } }

.hero {
  min-height: max(900px, 100svh);
  grid-template-columns: minmax(390px,.88fr) minmax(560px,1.12fr);
  padding-top: 150px;
  background:
    linear-gradient(105deg, rgba(255,255,255,.18) 0 1px, transparent 1px) 0 0 / 11vw 100%,
    radial-gradient(ellipse at 76% 45%, rgba(251,255,250,.96) 0, rgba(236,245,237,.65) 25%, transparent 52%),
    linear-gradient(115deg, #c9dbcd 0%, #d9e7dc 45%, #c3d8c7 100%);
  overflow: hidden;
}
.hero::after {
  content: '';
  position: absolute;
  inset: auto -8% -28% auto;
  width: 68vw;
  aspect-ratio: 1.25;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(56,91,61,.17), transparent 66%);
  filter: blur(38px);
  z-index: -1;
}
.light-shaft {
  position: absolute;
  z-index: -1;
  top: -16%;
  right: 4%;
  width: 38vw;
  height: 112%;
  opacity: .45;
  background: linear-gradient(104deg, transparent 10%, rgba(255,255,255,.62) 46%, rgba(255,255,255,.06) 75%, transparent);
  clip-path: polygon(24% 0, 72% 0, 100% 100%, 0 100%);
  transform: rotate(-3deg);
  animation: lightDrift 12s ease-in-out infinite alternate;
}
@keyframes lightDrift { to { transform: rotate(-1deg) translateX(2.5vw); opacity: .63; } }
.hero-copy { max-width: 690px; padding-top: 3rem; }
.hero .eyebrow { display: flex; align-items: center; gap: .9rem; }
.hero .eyebrow span { padding: .34rem .58rem; color: #e5efe6; background: var(--moss-deep); }
.hero h1 { font-size: clamp(5.6rem,8.4vw,9.5rem); line-height: .73; text-wrap: balance; }
.hero h1 em { color: #355b3b; text-shadow: 0 1px rgba(255,255,255,.35); }
.hero-deck { position: relative; margin-top: 3.6rem; padding-left: 1.8rem; }
.hero-deck::before { content: ''; position: absolute; left: 0; top: .45rem; bottom: .45rem; width: 1px; background: var(--fern); }
.specimen-data { padding-top: .2rem; }
.specimen-data div + div { padding-left: 1.4rem; border-left: 1px solid rgba(63,92,64,.14); }
.specimen-data span { font-size: 1.92rem; font-variant-numeric: tabular-nums; }

.vessel-column { width: min(100%,760px); }
.vessel-stage { width: min(100%,680px); filter: drop-shadow(0 46px 48px rgba(22,53,31,.24)); }
.vessel-stage::before {
  content: '';
  position: absolute;
  z-index: 2;
  left: 19%;
  top: 15%;
  width: 62%;
  height: 68%;
  border-radius: 47% 47% 38% 38%;
  box-shadow: inset 0 0 55px rgba(255,255,255,.62), inset -24px -10px 40px rgba(86,121,91,.14);
  pointer-events: none;
  transform: translate(var(--glass-x,0),var(--glass-y,0));
  transition: transform .3s cubic-bezier(.22,.74,.25,1);
}
.glass-sheen {
  position: absolute;
  z-index: 6;
  top: 15%;
  left: 22%;
  width: 16%;
  height: 55%;
  border-radius: 50%;
  opacity: .6;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.78), transparent);
  filter: blur(2px);
  transform: rotate(7deg) translateX(-18px);
  animation: sheenBreath 7s ease-in-out infinite;
  pointer-events: none;
}
@keyframes sheenBreath { 50% { opacity: .9; transform: rotate(7deg) translateX(8px) scaleX(1.25); } }
.vessel-breath { animation-duration: 6.2s; animation-timing-function: cubic-bezier(.45,.05,.38,.95); }
.ambient-ring { border-color: rgba(42,78,48,.18); }
.ring-one { animation-duration: 9s; }
.ring-two { animation-duration: 15s; }
.vessel-label { right: 1%; bottom: 15%; padding: .85rem 1rem; box-shadow: 7px 9px 20px rgba(39,30,24,.2); }
.vessel-label::before { content: ''; position: absolute; left: 9px; right: 9px; top: -5px; height: 8px; opacity: .65; background: rgba(228,221,193,.58); transform: rotate(1deg); }
.atmosphere-readout {
  position: absolute;
  z-index: 8;
  left: 0;
  top: 18%;
  width: 8.3rem;
  padding-left: .9rem;
  border-left: 1px solid rgba(31,58,38,.36);
  color: #274530;
}
.atmosphere-readout span,.atmosphere-readout i { display: block; font-size: .47rem; font-style: normal; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.atmosphere-readout b { display: block; margin: .25rem 0; font-family: var(--display); font-size: 1.4rem; font-weight: 300; }
.humidity-gauge {
  position: absolute;
  z-index: 8;
  right: 1%;
  bottom: 6%;
  width: 5rem;
  aspect-ratio: 1;
  display: grid;
  place-content: center;
  text-align: center;
  border: 1px solid rgba(31,58,38,.28);
  border-radius: 50%;
  color: #274530;
}
.humidity-gauge span { font-size: .45rem; font-weight: 800; letter-spacing: .18em; }
.humidity-gauge b { font-family: var(--display); font-size: 1.5rem; font-weight: 300; line-height: 1; }
.humidity-gauge i { font-family: var(--display); font-size: .65rem; }
.misting-control { right: -.6rem; top: 56%; }
.misting-control button { position: relative; overflow: hidden; border-color: #294b30; background: #294b30; box-shadow: 0 14px 34px rgba(25,53,33,.24); }
.misting-control button::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.25) 50%, transparent 62%); transform: translateX(-140%); transition: transform .65s ease; }
.misting-control button:hover::after { transform: translateX(140%); }
.misting-control button:active { transform: translateY(1px) scale(.98); }
.misting-control button.is-misting { animation: mistButtonBreath 1.35s ease-in-out 3; }
@keyframes mistButtonBreath { 50% { box-shadow: 0 0 0 12px rgba(49,81,57,.08),0 16px 36px rgba(25,53,33,.28); } }
.hero-note { bottom: 3rem; backdrop-filter: blur(4px); }
.scroll-cue span { transform-origin: left; animation: cueLine 2.4s ease-in-out infinite; }
@keyframes cueLine { 50% { transform: scaleX(.45); opacity: .45; } }

.care-section {
  padding-top: 10rem;
  padding-bottom: 12rem;
  background:
    linear-gradient(90deg, transparent 0 49.95%, rgba(49,77,56,.055) 50%, transparent 50.05%),
    radial-gradient(circle at 15% 30%, rgba(255,255,255,.7), transparent 32%),
    #e8efe7;
}
.care-heading { grid-template-columns: 1.12fr .78fr; }
.care-heading h2 { max-width: 9ch; }
.care-heading blockquote { max-width: 15ch; margin-left: auto; color: #35563b; }
.log-grid { grid-template-columns: 1.08fr .86fr 1.16fr; align-items: start; border: 0; gap: 1px; background: rgba(32,50,38,.2); }
.log-card,.log-card + .log-card { min-height: 30rem; padding: 2rem 2.4rem 3rem; border: 0; background: rgba(241,246,241,.54); overflow: hidden; }
.log-card::before { content: attr(data-year); position: absolute; right: -.08em; top: -.05em; color: rgba(55,84,61,.07); font-family: var(--display); font-size: clamp(5.5rem,8.2vw,9rem); font-weight: 300; letter-spacing: -.08em; line-height: 1; }
.log-card h3 { position: relative; margin-top: 10rem; font-size: 2.35rem; }
.log-card p { position: relative; }
.log-card.regret { margin-top: -3rem; min-height: 34rem; padding: 2rem 2.4rem 3rem; color: #edf3ed; background: #315139; box-shadow: 0 24px 50px rgba(28,48,33,.16); transform: rotate(-.7deg); }
.log-card.regret::before { color: rgba(234,240,231,.08); }
.log-card.regret p { color: #cad8cb; }
.log-card.regret .log-mark { color: #b9ceae; }
.log-card:hover,.log-card + .log-card:hover { padding-left: 3rem; }
.margin-note { position: relative; margin-top: 8rem; }
.margin-note::before { content: 'custodian’s principle'; position: absolute; left: -13rem; top: .45rem; font-family: var(--body); font-size: .48rem; font-style: normal; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }

.census-section { padding-top: 11rem; background: linear-gradient(145deg,#172d20 0%,#203b28 62%,#182e20 100%); }
.census-intro { grid-template-columns: .42fr 1.15fr .58fr; }
.census-intro h2 { max-width: 10ch; }
.specimen-strip { width: calc(100% - var(--gutter)); grid-template-columns: repeat(6,minmax(320px,1fr)); margin-top: 8rem; padding-bottom: 1.2rem; }
.specimen-card { position: relative; grid-template-rows: 17rem auto; min-height: 35rem; padding: 2.7rem 2.3rem; }
.specimen-card::after { content: ''; position: absolute; left: 50%; top: 4.3rem; width: 10rem; height: 10rem; border: 1px solid rgba(170,194,167,.1); border-radius: 50%; transform: translateX(-50%); }
.specimen-card:nth-child(even) { transform: translateY(2rem); }
.specimen-card svg { position: relative; z-index: 1; }
.specimen-card h3 { font-size: 1.72rem; line-height: 1.05; }
.census-foot { margin-top: 7rem; padding-top: 2rem; border-top: 1px solid rgba(216,232,220,.15); }

.cycle-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 72% 52%, rgba(255,255,255,.78), transparent 29%),
    repeating-radial-gradient(circle at 72% 52%, rgba(48,82,54,.055) 0 1px, transparent 1px 68px),
    #d6e3d6;
}
.cycle-section::after { content: 'H₂O'; position: absolute; left: -2vw; bottom: -7vw; color: rgba(53,87,59,.045); font-family: var(--display); font-size: 28vw; line-height: 1; pointer-events: none; }
.cycle-layout { grid-template-columns: .7fr 1.3fr; gap: 4vw; }
.cycle-copy { position: relative; z-index: 2; }
.cycle-copy h2 { font-size: clamp(4.2rem,7vw,8rem); }
.cycle-diagram { max-width: 780px; }
.cycle-diagram svg { animation: diagramFloat 8s ease-in-out infinite; }
@keyframes diagramFloat { 50% { transform: translateY(-7px) rotate(.25deg); } }
.cycle-arrows path { stroke-dasharray: 7 9; animation: flowDash 8s linear infinite; }
@keyframes flowDash { to { stroke-dashoffset: -80; } }
.cycle-pulse { position: absolute; z-index: 2; padding: .28rem .48rem; color: #dce8dc; background: #31543a; font-size: .48rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 8px 22px rgba(31,57,38,.15); }
.pulse-one { left: 2%; top: 38%; transform: rotate(-90deg); }
.pulse-two { right: 3%; top: 24%; }
.pulse-three { right: 9%; bottom: 18%; }

.field-section { padding: 5rem 0; background: linear-gradient(130deg,#162a1e,#203827 58%,#13261b); }
.field-section::after { content: ''; position: absolute; inset: 0; opacity: .15; background: repeating-linear-gradient(0deg,transparent 0 31px,rgba(213,229,213,.08) 31px 32px); pointer-events: none; }
.field-paper { position: relative; z-index: 1; }
.field-header { grid-template-columns: 1.2fr .43fr; }
.ledger-rule { display: flex; align-items: center; gap: 1rem; margin-top: 6rem; color: #a9bea9; font-size: .53rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.ledger-rule i { flex: 1; height: 1px; background: rgba(216,232,220,.2); }
.ledger-rule b { font-weight: 700; }
.notes-grid { grid-template-columns: repeat(12,1fr); gap: 1px; margin-top: 2rem; border: 0; background: rgba(216,232,220,.17); }
.field-note,.field-note + .field-note { min-height: 25rem; padding: 2rem 2.2rem 3rem; border: 0; background: rgba(21,43,29,.8); }
.field-note:nth-child(1) { grid-column: span 4; }
.field-note:nth-child(2) { grid-column: span 3; margin-top: 4rem; }
.field-note:nth-child(3) { grid-column: span 5; }
.field-note:nth-child(4) { grid-column: 5 / span 5; min-height: 19rem; margin-top: -4rem; }
.field-note h3 { font-size: 2rem; }
.field-note p { max-width: 25rem; }
.hand-note { position: absolute; right: 8%; bottom: 4rem; }

.closing-section { min-height: 820px; background: radial-gradient(circle at center,rgba(255,255,255,.96),#edf4ed 40%,#dce8dd 100%); }
.closing-section h2 { max-width: 13ch; margin-inline: auto; line-height: .78; }
.closing-orbit { animation: closingBreath 8s ease-in-out infinite; }
@keyframes closingBreath { 50% { transform: translate(-50%,-50%) scale(1.045); opacity: .6; } }
.return-link { padding: 0 1rem; border-bottom: 1px solid rgba(32,50,38,.3); }

@media (max-width: 1100px) {
  .site-header::after { display: none; }
  .hero { grid-template-columns: .86fr 1.14fr; min-height: 860px; }
  .hero-copy { padding-top: 0; }
  .atmosphere-readout { left: -1rem; }
  .humidity-gauge { display: none; }
  .care-heading { grid-template-columns: 1fr .8fr; }
  .log-card,.log-card + .log-card { padding-inline: 1.5rem; }
  .log-card.regret { padding-inline: 1.5rem; }
  .field-note:nth-child(1),.field-note:nth-child(2),.field-note:nth-child(3),.field-note:nth-child(4) { grid-column: span 6; margin-top: 0; }
}

@media (max-width: 760px) {
  .hero { min-height: auto; grid-template-columns: 1fr; padding-top: 118px; padding-bottom: 5rem; background: radial-gradient(circle at 50% 54%,rgba(255,255,255,.85),transparent 34%),linear-gradient(145deg,#cbdccf,#dfebe1 56%,#c6dac9); }
  .light-shaft { right: -30%; width: 100vw; }
  .hero .eyebrow { gap: .55rem; margin-bottom: 1.35rem; font-size: .55rem; letter-spacing: .17em; }
  .hero h1 { font-size: clamp(4.7rem,21vw,5.2rem); line-height: .72; }
  .hero h1 span { white-space: nowrap; }
  .hero-deck { margin-left: 0; padding-left: 1rem; }
  .specimen-data { margin-left: 0; }
  .specimen-data div { padding-top: 1rem; }
  .specimen-data div + div { padding-left: .7rem; }
  .vessel-column { width: 108%; margin: -1.2rem -4% 0; }
  .vessel-stage { width: min(100%,470px); }
  .atmosphere-readout { left: 5%; top: 25%; width: 6.8rem; }
  .atmosphere-readout i { display: none; }
  .vessel-label { right: 7%; bottom: 17%; }
  .misting-control { margin-top: -4.6rem; }
  .scroll-cue { display: none; }
  .care-section { padding-top: 6.5rem; padding-bottom: 7rem; background: radial-gradient(circle at 10% 20%,rgba(255,255,255,.7),transparent 35%),#e8efe7; }
  .care-heading { grid-template-columns: 1fr; }
  .care-heading h2 { max-width: none; }
  .log-grid { display: block; background: transparent; }
  .log-card,.log-card + .log-card { min-height: 20rem; margin: 0; padding: 1.6rem 1.25rem 3rem; border-top: 1px solid rgba(32,50,38,.22); }
  .log-card.regret { margin-inline: -1.25rem; padding-inline: 2.5rem; min-height: 23rem; transform: none; }
  .log-card h3 { margin-top: 6rem; }
  .log-card::before { font-size: 5.6rem; }
  .log-card:hover,.log-card + .log-card:hover { padding-left: 1.25rem; }
  .log-card.regret:hover { padding-left: 2.5rem; }
  .margin-note { margin-left: 8%; }
  .margin-note::before { position: static; display: block; margin-bottom: 1rem; }
  .census-section { padding-top: 7rem; }
  .census-intro { grid-template-columns: 1fr; }
  .specimen-strip { grid-template-columns: repeat(6,minmax(275px,78vw)); }
  .specimen-card:nth-child(even) { transform: none; }
  .cycle-section { background: radial-gradient(circle at 50% 74%,rgba(255,255,255,.75),transparent 30%),#d6e3d6; }
  .cycle-layout { grid-template-columns: 1fr; gap: 4rem; }
  .cycle-section::after { font-size: 45vw; }
  .cycle-copy h2 { font-size: 3.6rem; }
  .cycle-pulse { font-size: .42rem; }
  .field-header { grid-template-columns: 1fr; }
  .ledger-rule { margin-top: 4rem; align-items: flex-start; }
  .ledger-rule b { max-width: 11rem; }
  .notes-grid { display: block; background: transparent; }
  .field-note,.field-note + .field-note { min-height: 0; margin: 0; padding: 2rem 0 3.5rem; border-top: 1px solid rgba(216,232,220,.18); background: transparent; }
  .field-note h3 { margin-top: 2.5rem; }
  .hand-note { position: static; }
  .closing-section { min-height: 650px; }
}

@media (prefers-reduced-motion: reduce) {
  .light-shaft,.glass-sheen,.seal-status i,.cycle-diagram svg,.cycle-arrows path,.closing-orbit,.scroll-cue span,.misting-control button { animation: none !important; }
}

/* Pass 3 — glass memory, tactile weather, and final typographic polish. */
html {
  scrollbar-color: #58785a #dce8dd;
  scrollbar-width: thin;
}
body {
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
p, blockquote { text-wrap: pretty; }
h1, h2, h3, .guide-copy h2 { font-optical-sizing: auto; text-wrap: balance; }
time, .specimen-data, .atmosphere-readout, .humidity-gauge, .cycle-copy dd, .field-note > span {
  font-variant-numeric: tabular-nums lining-nums;
}
.cycle-copy dd { white-space: nowrap; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #dce8dd; }
::-webkit-scrollbar-thumb { background: #58785a; border: 3px solid #dce8dd; border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: #315139; }
::selection { color: #f3f7f1; background: #315139; text-shadow: none; }

.site-header[data-reveal] { animation: headerArrive .8s .08s cubic-bezier(.22,.74,.22,1) both; }
@keyframes headerArrive { from { opacity: 0; transform: translateY(-12px); } }
.load-in {
  filter: blur(7px);
  animation: loadReveal 1.05s cubic-bezier(.16,.84,.24,1) forwards;
}
.vessel-column.load-in { animation-name: specimenArrival; animation-duration: 1.35s; }
@keyframes loadReveal { to { opacity: 1; transform: translateY(0); filter: blur(0); } }
@keyframes specimenArrival {
  from { opacity: 0; transform: translateY(28px) scale(.975); filter: blur(12px); }
  to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
.entry-breath {
  position: absolute;
  inset: 0;
  z-index: 15;
  display: grid;
  place-items: center;
  pointer-events: none;
  color: rgba(31,58,38,.72);
  background:
    radial-gradient(circle at 28% 32%, rgba(255,255,255,.7) 0 2px, transparent 3px),
    radial-gradient(circle at 68% 64%, rgba(255,255,255,.76) 0 3px, transparent 4px),
    radial-gradient(circle at 54% 28%, rgba(255,255,255,.58) 0 1px, transparent 2px),
    rgba(222,237,225,.58);
  background-size: 93px 107px, 131px 119px, 71px 83px, auto;
  backdrop-filter: blur(17px) saturate(.72);
  animation: firstBreath 1.65s .08s cubic-bezier(.16,.84,.24,1) forwards;
}
.entry-breath span {
  padding: .55rem .8rem;
  border: 1px solid rgba(31,58,38,.28);
  background: rgba(228,240,230,.45);
  font-size: .5rem;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}
@keyframes firstBreath {
  0%, 27% { opacity: 1; backdrop-filter: blur(17px) saturate(.72); }
  70% { opacity: .32; }
  100% { opacity: 0; backdrop-filter: blur(0) saturate(1); visibility: hidden; }
}

.wordmark, .site-footer a, .guide-toc a, .back-link { transition: color .25s ease, opacity .25s ease; }
.wordmark:hover { color: #426a48; }
.site-header nav a:focus-visible::after { right: 0; }
.site-footer a { position: relative; text-decoration-color: rgba(220,232,220,.4); }
.site-footer a:hover, .site-footer a:focus-visible { color: #fff; text-decoration-color: #9db696; }
.return-link:focus-visible span { transform: translateY(-5px); }
.menu-toggle:hover .menu-mark, .menu-toggle:focus-visible .menu-mark { transform: scaleX(.75); }
.menu-toggle[aria-expanded="true"]:hover .menu-mark,
.menu-toggle[aria-expanded="true"]:focus-visible .menu-mark { transform: rotate(45deg) translateY(3px); }

.warmth-window {
  position: absolute;
  z-index: 7;
  left: 56.5%;
  top: 36%;
  width: 23%;
  aspect-ratio: 1;
  display: grid;
  place-content: center;
  text-align: center;
  color: #2f5035;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(251,252,235,.54), rgba(221,235,216,.16) 58%, transparent 72%);
  box-shadow: inset 0 0 30px rgba(255,255,255,.74), 0 0 0 7px rgba(239,247,238,.12), 0 13px 34px rgba(38,61,42,.12);
  opacity: 0;
  visibility: hidden;
  transform: scale(.58);
  transition: opacity .7s cubic-bezier(.16,.84,.24,1), transform .8s cubic-bezier(.16,.84,.24,1), visibility .8s;
  pointer-events: none;
}
.warmth-window::before, .warmth-window::after {
  content: '';
  position: absolute;
  border: 1px solid rgba(63,92,64,.22);
  border-radius: 50%;
}
.warmth-window::before { inset: -10%; border-style: dashed; }
.warmth-window::after { inset: 17%; opacity: .45; }
.warmth-window span, .warmth-window i { display: block; font-size: .42rem; font-style: normal; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.warmth-window b { display: block; margin: .08rem 0; font-family: var(--display); font-size: clamp(1.35rem,2.4vw,2rem); font-style: italic; font-weight: 300; line-height: 1; }
.vessel-stage.warming::after {
  content: '';
  position: absolute;
  z-index: 6;
  left: 57%;
  top: 36.5%;
  width: 22%;
  aspect-ratio: 1;
  border: 1px solid rgba(64,92,63,.38);
  border-radius: 50%;
  animation: warmthGather 1.05s linear both;
  pointer-events: none;
}
@keyframes warmthGather {
  from { opacity: .18; transform: scale(.55); box-shadow: 0 0 0 0 rgba(255,247,214,.25); }
  to { opacity: .9; transform: scale(1); box-shadow: 0 0 0 18px rgba(255,247,214,0); }
}
.vessel-stage.warmed .warmth-window { opacity: 1; visibility: visible; transform: scale(1); }
.vessel-stage.warmed .fog-film { opacity: .03 !important; animation: none; }
.vessel-stage.warmed .glass-sheen { opacity: .92; transform: rotate(7deg) translateX(18px) scaleX(1.4); }

.warmth-control {
  position: absolute;
  z-index: 11;
  left: 1.5%;
  bottom: 7%;
  width: 10.8rem;
}
.warmth-control button {
  position: relative;
  width: 100%;
  min-height: 54px;
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  gap: .7rem;
  overflow: hidden;
  padding: .45rem .75rem;
  color: #29492f;
  border: 1px solid rgba(41,73,47,.46);
  border-radius: 0;
  background: rgba(239,246,239,.6);
  backdrop-filter: blur(7px);
  text-align: left;
  cursor: pointer;
  transition: color .3s ease, background .3s ease, transform .3s cubic-bezier(.16,.84,.24,1), box-shadow .3s ease;
}
.warmth-control button::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background: #6f8f5f;
}
.warmth-control button > * { position: relative; z-index: 1; }
.warmth-control button b, .warmth-control button small { display: block; }
.warmth-control button b { font-size: .59rem; letter-spacing: .12em; text-transform: uppercase; }
.warmth-control button small { margin-top: .1rem; font-size: .43rem; letter-spacing: .12em; text-transform: uppercase; }
.warm-icon {
  width: 30px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
}
.warm-icon::before { content: ''; width: 8px; height: 12px; border: 1px solid currentColor; border-top: 0; border-radius: 0 0 8px 8px; }
.warmth-control button:hover { color: #f2f7f1; background: #315139; transform: translateY(-2px); box-shadow: 0 12px 30px rgba(30,59,38,.16); }
.warmth-control button:active { transform: translateY(0) scale(.985); }
.warmth-control button.is-warming::after { animation: warmCharge 1.05s linear forwards; }
.warmth-control button.is-complete { color: #f2f7f1; background: #315139; }
.warmth-control button.is-complete .warm-icon { color: #315139; background: #dce9d9; }
@keyframes warmCharge { to { width: 100%; } }
.warmth-control p { margin: .55rem 0 0; color: #315139; font-size: .45rem; letter-spacing: .1em; text-align: center; text-transform: uppercase; }

@media (max-width: 1100px) {
  .warmth-control { left: 2%; bottom: 5%; }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .site-header { grid-template-columns: 1fr auto; }
  .seal-status { display: none; }
  .menu-toggle {
    display: inline-flex;
    justify-self: end;
    align-items: center;
    gap: .75rem;
    min-width: 82px;
    min-height: 44px;
    padding: 0;
    color: var(--ink);
    border: 0;
    background: transparent;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer;
  }
  .menu-mark { position: relative; width: 21px; height: 1px; background: currentColor; transition: transform .25s ease; }
  .menu-mark::after { content: ''; position: absolute; left: 0; top: 6px; width: 21px; height: 1px; background: currentColor; transition: transform .25s ease; }
  .menu-toggle[aria-expanded="true"] .menu-mark { transform: rotate(45deg) translateY(3px); }
  .menu-toggle[aria-expanded="true"] .menu-mark::after { transform: rotate(-90deg) translateX(6px); }
  .site-header nav {
    position: absolute;
    top: 92px;
    left: 0;
    right: 0;
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 0;
    padding: 1rem var(--gutter);
    background: rgba(216,232,220,.97);
    border-bottom: 1px solid rgba(63,92,64,.25);
    box-shadow: 0 20px 45px rgba(28,56,36,.11);
    opacity: 0;
    transform: scaleY(0);
    transform-origin: top;
    pointer-events: none;
    transition: transform .28s cubic-bezier(.16,.84,.24,1), opacity .2s ease;
  }
  .site-header nav.open { opacity: 1; transform: scaleY(1); pointer-events: auto; }
  .site-header nav a { min-height: 48px; display: flex; align-items: center; justify-content: center; }
}

@media (max-width: 760px) {
  .entry-breath span { transform: translateY(-20vh); }
  .vessel-column { padding-bottom: 1rem; }
  .warmth-control {
    position: relative;
    left: auto;
    bottom: auto;
    width: 11.6rem;
    margin: 1.15rem auto 0;
  }
  .warmth-control button { min-height: 52px; background: rgba(239,246,239,.82); }
  .warmth-window { left: 56%; top: 36%; width: 24%; }
  .warmth-window span, .warmth-window i { font-size: .36rem; }
  .site-footer nav { gap: .25rem 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .entry-breath { display: none; }
  .site-header[data-reveal], .vessel-column.load-in { animation: none !important; opacity: 1; filter: none; transform: none; }
  .vessel-stage.warming::after { animation: none !important; opacity: .8; transform: scale(1); }
}
