:root {
  --ink: #111b20;
  --deep: #17262b;
  --sea: #365f5b;
  --paper: #e7ddc6;
  --paper-light: #f0e9d8;
  --brass: #aa8d4e;
  --ember: #d66c4d;
  --ember-text: #963b2b;
  --focus: #863324;
  --line: rgba(17, 27, 32, .22);
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Trebuchet MS", "Segoe UI", sans-serif;
  --gutter: clamp(1.25rem, 5vw, 5rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background-color: var(--paper);
  background-image:
    radial-gradient(circle at 15% 10%, rgba(255,255,255,.28), transparent 25rem),
    radial-gradient(circle at 80% 55%, rgba(64,80,67,.09), transparent 30rem),
    repeating-linear-gradient(89deg, transparent 0, transparent 17px, rgba(64,45,25,.016) 18px);
  font-family: var(--sans);
  line-height: 1.6;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
  z-index: 50;
}

a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.skip-link { position: fixed; left: 1rem; top: -5rem; background: var(--paper-light); padding: .7rem 1rem; z-index: 100; }
.skip-link:focus { top: 1rem; }

.masthead {
  min-height: 5.5rem;
  padding: 0 var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  position: relative;
  z-index: 10;
}
.wordmark { display: flex; align-items: center; gap: .8rem; text-decoration: none; font-family: var(--serif); font-size: 1.05rem; letter-spacing: .08em; text-transform: uppercase; }
.wordmark b { color: var(--ember); font-weight: 400; }
.mark { width: 2rem; height: 2rem; display: inline-grid; place-items: center; border: 1px solid var(--brass); border-radius: 50%; transform: rotate(45deg); position: relative; flex: 0 0 auto; }
.mark::before, .mark::after { content: ""; position: absolute; background: var(--brass); }
.mark::before { width: 1px; height: 2.55rem; }
.mark::after { width: 2.55rem; height: 1px; }
.mark i { width: .55rem; height: .55rem; background: var(--ember); border: 2px solid var(--paper); transform: rotate(-45deg); z-index: 1; }
.mark.small { width: 1.7rem; height: 1.7rem; }
.mark.small::before { height: 2rem; }
.mark.small::after { width: 2rem; }
nav { display: flex; gap: clamp(1.2rem, 3vw, 3.2rem); }
nav a { text-decoration: none; text-transform: uppercase; letter-spacing: .13em; font-size: .72rem; font-weight: 700; border-bottom: 1px solid transparent; }
nav a:hover { border-color: var(--ember); }
.menu-toggle { display: none; color: var(--ink); background: transparent; border: 1px solid var(--line); padding: .5rem .7rem; font: inherit; }

main { overflow: hidden; }
.hero {
  min-height: min(760px, calc(100vh - 5.5rem));
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(25rem, .95fr);
  align-items: center;
  gap: clamp(1rem, 3vw, 4rem);
  padding: clamp(3rem, 9vh, 7rem) var(--gutter);
  position: relative;
}
.hero::before { content: ""; position: absolute; left: var(--gutter); bottom: 0; width: calc(100% - var(--gutter) * 2); border-bottom: 1px solid var(--line); }
.eyebrow, .section-index, .placeholder-label { text-transform: uppercase; letter-spacing: .17em; font-weight: 700; font-size: .68rem; }
.eyebrow { color: var(--sea); display: flex; align-items: center; gap: .75rem; }
.eyebrow::before { content: ""; width: 2.5rem; border-top: 1px solid var(--ember); }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: .98; margin: 0; }
h1 { font-size: clamp(3.7rem, 7vw, 6.6rem); letter-spacing: -.05em; margin: 1.25rem 0 1.7rem; max-width: 800px; }
h1 em { color: var(--sea); font-weight: 400; }
.lede { font-family: var(--serif); font-size: clamp(1.1rem, 1.5vw, 1.35rem); max-width: 36rem; line-height: 1.55; }
.hero-actions { margin-top: 2.2rem; display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.button { display: inline-flex; justify-content: space-between; align-items: center; min-width: 13.5rem; padding: .95rem 1.1rem; text-decoration: none; text-transform: uppercase; letter-spacing: .1em; font-size: .72rem; font-weight: 700; border: 1px solid var(--deep); }
.button.primary { background: var(--deep); color: var(--paper-light); }
.button.primary:hover { background: var(--sea); }
.text-link { text-underline-offset: .35rem; text-decoration-color: var(--brass); font-size: .8rem; font-weight: 700; letter-spacing: .04em; }

.chart { min-height: 32rem; perspective: 900px; transform: translate(var(--chart-x, 0), var(--chart-y, 0)); transition: transform .4s ease-out; }
.chart-paper { height: 100%; min-height: 32rem; position: relative; overflow: hidden; border: 1px solid rgba(70,53,29,.24); box-shadow: 12px 18px 40px rgba(17,27,32,.14); transform: rotate(2deg); background-color: #d8cfb8; background-image: linear-gradient(rgba(54,95,91,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(54,95,91,.12) 1px, transparent 1px), repeating-radial-gradient(circle at 65% 45%, transparent 0, transparent 35px, rgba(54,95,91,.12) 36px, transparent 37px); background-size: 36px 36px, 36px 36px, 100% 100%; }
.chart-paper::after { content: ""; position: absolute; inset: 1rem; border: 1px solid rgba(170,141,78,.65); pointer-events: none; }
.coordinate { position: absolute; font: 700 .58rem var(--sans); letter-spacing: .15em; color: var(--sea); }
.coordinate.north { left: 2.1rem; top: 2rem; }.coordinate.east { right: 2rem; bottom: 2rem; }
.island { position: absolute; background: rgba(54,95,91,.35); border: 1px solid var(--sea); filter: drop-shadow(2px 3px 0 rgba(17,27,32,.12)); }
.island-a { width: 8rem; height: 4.5rem; left: 13%; top: 34%; border-radius: 60% 45% 65% 35%; transform: rotate(-12deg); }
.island-b { width: 5rem; height: 7rem; right: 12%; top: 20%; border-radius: 42% 68% 38% 55%; transform: rotate(18deg); }
.island-c { width: 6.5rem; height: 3rem; right: 23%; bottom: 14%; border-radius: 60% 45% 60% 42%; }
.route { position: absolute; height: 10rem; width: 13rem; border: 2px dashed rgba(214,108,77,.75); border-bottom-color: transparent; border-left-color: transparent; border-radius: 50%; }
.route-a { left: 25%; top: 35%; transform: rotate(20deg); }.route-b { right: 18%; bottom: 20%; transform: rotate(190deg); }
.pin { position: absolute; width: .8rem; height: .8rem; border: 2px solid var(--ember); border-radius: 50%; box-shadow: 0 0 0 4px rgba(214,108,77,.14); }
.pin-a { left: 38%; top: 42%; }.pin-b { right: 30%; bottom: 30%; }
.map-note { position: absolute; left: 18%; bottom: 17%; font: italic 1rem var(--serif); color: rgba(17,27,32,.68); transform: rotate(-7deg); }
.compass { position: absolute; right: 9%; top: 36%; width: 10rem; height: 10rem; border: 1px solid var(--brass); border-radius: 50%; display: grid; place-items: center; transform: rotate(-7deg); }
.compass::before, .compass::after { content:""; position:absolute; background: rgba(170,141,78,.6); }.compass::before { width: 100%; height: 1px; }.compass::after { height: 100%; width: 1px; }
.compass-ring { position: absolute; inset: 1rem; border: 1px dashed var(--brass); border-radius: 50%; }
.needle { width: 1rem; height: 7rem; background: linear-gradient(to bottom, var(--ember) 0 50%, var(--deep) 50%); clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); z-index: 2; }
.compass b, .compass i { position: absolute; font: 700 .6rem var(--sans); color: var(--deep); }.compass b { top: -.8rem; color: var(--ember); }.compass i:nth-of-type(1) { right: -.8rem; }.compass i:nth-of-type(2) { bottom: -.8rem; }.compass i:nth-of-type(3) { left: -.8rem; }
.chart-caption { position: absolute; left: 2.4rem; bottom: 2.2rem; font: 700 .58rem/1.6 var(--sans); letter-spacing: .13em; text-transform: uppercase; }.chart-caption i { font-family: var(--serif); font-weight: 400; text-transform: none; letter-spacing: .04em; }

.ruled-section { margin: 0 var(--gutter); border-bottom: 1px solid var(--line); }
.manifesto { padding: clamp(5rem, 10vw, 9rem) 0; display: grid; grid-template-columns: .45fr 1fr 1fr; gap: clamp(2rem, 6vw, 7rem); }
.section-index { color: var(--sea); margin: .3rem 0; }
h2 { font-size: clamp(3rem, 6vw, 6rem); letter-spacing: -.045em; }
.manifesto h2 { font-size: clamp(3.1rem, 5vw, 5.8rem); }
.manifesto-copy { max-width: 36rem; font-size: 1.03rem; }.manifesto-copy p:first-child { font: 1.3rem/1.55 var(--serif); margin-top: 0; }.manifesto-copy p:last-child { margin-top: 2rem; }

.vaultara { padding: clamp(5rem, 9vw, 8rem) 0; display: grid; grid-template-columns: .8fr 1.5fr .8fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.vaultara-heading { align-self: start; }.vaultara-heading h2 { margin-top: 4rem; }.deck { font: italic 1.2rem/1.5 var(--serif); color: var(--sea); }
.status { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }.status span { display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: var(--ember); margin-right: .4rem; box-shadow: 0 0 0 4px rgba(214,108,77,.15); }
.artwork-placeholder { margin: 0; aspect-ratio: 4/5; background: var(--deep); color: var(--paper); display: flex; flex-direction: column; justify-content: space-between; padding: 1.5rem; position: relative; overflow: hidden; box-shadow: 10px 14px 30px rgba(17,27,32,.15); }
.artwork-placeholder::before { content:""; position:absolute; inset:0; background: repeating-radial-gradient(ellipse at 100% 0, transparent 0 35px, rgba(231,221,198,.07) 37px 38px); }
.placeholder-mark { margin: auto; width: 8rem; height: 8rem; border: 1px solid var(--brass); border-radius: 50%; display: grid; place-items: center; transform: rotate(45deg); position: relative; }.placeholder-mark::before, .placeholder-mark::after { content:""; position:absolute; background: var(--brass); }.placeholder-mark::before { width: 1px; height: 11rem; }.placeholder-mark::after { height: 1px; width: 11rem; }.placeholder-mark span { width: 1.5rem; height: 1.5rem; background: var(--ember); border: 4px solid var(--deep); z-index: 1; }
.artwork-placeholder figcaption { position: relative; border-top: 1px solid rgba(231,221,198,.3); padding-top: .8rem; display: flex; justify-content: space-between; gap: 1rem; text-transform: uppercase; letter-spacing: .1em; font-size: .6rem; }.artwork-placeholder figcaption span { opacity: .7; text-align: right; }
.vaultara-copy { align-self: end; }.vaultara-copy > p:not(.placeholder-label) { font: 1.25rem/1.55 var(--serif); }.vaultara-copy .fine-print { font: .78rem/1.6 var(--sans) !important; border-top: 1px solid var(--line); padding-top: 1rem; margin-top: 2rem; }
.placeholder-label { color: var(--ember-text); }

.journal { padding: clamp(5rem, 9vw, 8rem) 0; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 3rem; margin-bottom: 5rem; }.section-heading > p { max-width: 25rem; }
.journal-list article { position: relative; display: grid; grid-template-columns: .6fr 1.3fr 1fr auto; gap: clamp(1rem, 4vw, 4rem); align-items: center; border-top: 1px solid var(--line); padding: 2rem 0; }
.journal-list article:last-child { border-bottom: 1px solid var(--line); }
.entry-meta { text-transform: uppercase; letter-spacing: .1em; font-size: .62rem; }.entry-meta span { color: var(--ember-text); }.journal h3 { font-size: clamp(1.5rem, 2.3vw, 2.5rem); line-height: 1.12; }.journal article > p:nth-of-type(2) { font-size: .85rem; }.entry-state { color: var(--sea); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }

.contact { margin: 0; padding: clamp(5rem, 10vw, 9rem) var(--gutter); color: var(--paper-light); background: var(--deep); display: grid; grid-template-columns: 1.4fr .6fr; gap: clamp(3rem, 8vw, 9rem); position: relative; }.contact::after { content:""; position:absolute; width: 20rem; height:20rem; right:-8rem; bottom:-8rem; border: 1px solid rgba(170,141,78,.25); border-radius:50%; box-shadow: 0 0 0 4rem rgba(170,141,78,.05), 0 0 0 8rem rgba(170,141,78,.04); }.contact .section-index { color: var(--brass); }.contact h2 { font-size: clamp(3rem, 5.5vw, 6rem); }.contact h2 em { color: var(--brass); font-weight: 400; }.contact-notes { max-width: 29rem; align-self: end; position:relative; z-index:1; }.contact-notes > p:first-child { font: 1.15rem/1.65 var(--serif); }.contact .placeholder-label { margin-top: 2rem; color: #ee957b; }

footer { background: #0d171b; color: var(--paper); padding: 3rem var(--gutter); display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 2rem; font-size: .72rem; }.footer-brand { display: flex; align-items:center; gap: 1.2rem; }.footer-brand p { margin:0; }.footer-brand strong { font: 1rem var(--serif); text-transform:uppercase; letter-spacing:.08em; }.footer-links { display:flex; justify-content:flex-end; gap:2rem; text-transform:uppercase; letter-spacing:.08em; }.footer-links a { text-underline-offset:.3rem; }.privacy { grid-column:1/-1; border-top:1px solid rgba(231,221,198,.18); padding-top:1.4rem; margin:1rem 0 0; color:#b8b6aa; }
footer :focus-visible { outline-color: var(--paper-light); }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }.chart { min-height: 27rem; max-width: 38rem; width: 100%; margin-left:auto; }.chart-paper { min-height:27rem; }
  .manifesto { grid-template-columns: 1fr 1fr; }.manifesto .section-index { grid-column:1/-1; }.manifesto-copy { grid-column:2; }
  .vaultara { grid-template-columns: 1fr 1fr; }.vaultara-heading { grid-column:1/-1; }.vaultara-heading h2 { margin-top:2rem; }.artwork-placeholder { max-width:32rem; }
  .journal-list article { grid-template-columns: .45fr 1.2fr auto; }.journal article > p:nth-of-type(2) { display:none; }
  .contact { grid-template-columns:1fr; }.contact-notes { margin-left:auto; }
}

@media (max-width: 620px) {
  .masthead { min-height:4.5rem; }.wordmark { font-size:.8rem; }.mark { width:1.6rem;height:1.6rem;}.mark::before{height:2rem}.mark::after{width:2rem}
  .masthead { flex-wrap:wrap; }.masthead nav { width:100%; padding:.2rem 0 1rem; justify-content:space-between; gap:.7rem; }.masthead nav a { font-size:.59rem; }
  .js .menu-toggle { display:block; }.js .masthead nav { display:none; position:absolute; left:0; right:0; top:100%; width:auto; padding:1.5rem var(--gutter); background:var(--paper-light); border-bottom:1px solid var(--line); flex-direction:column; }.js .masthead nav.open { display:flex; }
  .hero { min-height:auto; padding-top:4rem; }.hero h1 { font-size:clamp(3rem, 15vw, 4.4rem); }.chart { min-height:22rem; }.chart-paper { min-height:22rem; }.compass { width:7rem;height:7rem;}.needle{height:5rem}.island-a{width:5rem}.island-b{width:3.5rem;height:5rem}.map-note { bottom:27%; left:16%; }.chart-caption { bottom:1.6rem; }
  .manifesto, .vaultara { display:block; }.manifesto h2 { margin:2rem 0; }.manifesto-copy { margin-top:2.5rem; }.artwork-placeholder { margin:3rem 0; }
  .section-heading { display:block; margin-bottom:3rem; }.section-heading > p { margin-top:2rem; }
  .journal-list article { grid-template-columns:1fr auto; gap:.7rem 1rem; }.entry-meta { grid-column:1/-1; margin:0; }.journal h3 { grid-column:1/-1; }.entry-state { grid-column:1/-1; }
  .contact { padding-top:5rem;padding-bottom:5rem; }.contact h2 { font-size:clamp(2.8rem, 13vw, 4rem); }.contact-notes { margin:0; }
  footer { grid-template-columns:1fr; }.footer-links { justify-content:flex-start; flex-direction:column; gap:.7rem; }.privacy { grid-column:1; }
}

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