@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root {
  --ink: #2a1d1e;
  --ink-soft: #6d5e5c;
  --paper: #f5f0e8;
  --paper-deep: #eae0d2;
  --plum: #4c2135;
  --plum-deep: #24191b;
  --red: #b74739;
  --amber: #dfad64;
  --line: rgba(42, 29, 30, .18);
  --mono: 'DM Mono', monospace;
  --sans: 'DM Sans', sans-serif;
  --serif: 'Playfair Display', Georgia, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.55; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.section-shell { width: min(1220px, calc(100% - 96px)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; left: 24px; top: -100px; background: var(--plum); color: #fff; padding: 10px 16px; font-weight: 600; transition: top .2s; }
.skip-link:focus { top: 18px; }

.site-header { min-height: 94px; width: min(1320px, calc(100% - 64px)); margin: auto; display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 10; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 19px; font-weight: 600; letter-spacing: -.04em; }
.brand em { font-family: var(--serif); font-weight: 500; }
.brand-mark { width: 34px; height: 34px; fill: none; stroke: var(--red); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.main-nav { display: flex; align-items: center; gap: clamp(18px, 2.7vw, 42px); font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .11em; }
.main-nav a { position: relative; padding: 5px 0; }
.main-nav a::after { content: ''; position: absolute; width: 100%; height: 1px; bottom: 0; left: 0; background: var(--red); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.main-nav a:hover::after, .main-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; }

.hero { min-height: 690px; display: grid; grid-template-columns: 1fr minmax(390px, 46%); align-items: center; gap: 70px; padding-block: 58px 80px; }
.hero-copy { padding-top: 12px; }
.eyebrow, .section-kicker { display: flex; align-items: center; gap: 11px; font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .15em; color: var(--ink-soft); }
.eyebrow span { width: 24px; height: 1px; background: var(--red); display: inline-block; }
h1, h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.065em; line-height: .98; margin: 0; }
h1 { font-size: clamp(58px, 6.35vw, 94px); max-width: 680px; margin: 30px 0 27px; }
h1 i, h2 i { color: var(--red); font-weight: 500; }
.hero-text { max-width: 464px; font-size: 17px; line-height: 1.7; color: var(--ink-soft); }
.hero-actions { display: flex; align-items: center; gap: 42px; margin-top: 36px; }
.text-link { display: inline-flex; align-items: center; gap: 16px; font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; font-weight: 500; padding-bottom: 8px; border-bottom: 1px solid var(--ink); transition: color .2s, border-color .2s; }
.text-link span { color: var(--red); font-size: 16px; }
.text-link:hover { color: var(--red); border-color: var(--red); }
.role { margin: 0; font-family: var(--mono); color: var(--ink-soft); font-size: 9px; line-height: 1.65; text-transform: uppercase; letter-spacing: .08em; }
.hero-art { position: relative; overflow: hidden; height: 544px; isolation: isolate; background: var(--plum-deep); }
.hero-art::after { content: ''; position: absolute; inset: 0; background: linear-gradient(125deg, rgba(36, 25, 27, .36), transparent 52%), linear-gradient(0deg, rgba(35,20,20,.58), transparent 40%); z-index: 1; pointer-events: none; }
.hero-art img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.83) contrast(1.05); transform: scale(1.02); transition: transform 1s ease; }
.hero-art:hover img { transform: scale(1.06); }
.hero-caption { position: absolute; bottom: 24px; left: 26px; right: 26px; z-index: 2; display: flex; justify-content: space-between; color: rgba(255,255,255,.88); font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }

.statement { display: grid; grid-template-columns: 1fr 3fr; gap: 36px; padding: 97px 0 107px; }
.statement-rule { height: 1px; margin-top: 18px; background: var(--red); }
.statement p { max-width: 900px; margin: 0; font-family: var(--serif); font-size: clamp(29px, 3.35vw, 52px); line-height: 1.18; letter-spacing: -.045em; }
.statement em { color: var(--red); }

.story { padding: 95px 0 128px; border-top: 1px solid var(--line); }
.section-kicker > span:first-child { color: var(--red); }
.story-layout { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: start; margin-top: 43px; }
h2 { font-size: clamp(52px, 5.55vw, 80px); }
.story-copy { border-left: 1px solid var(--line); padding-left: 28px; color: var(--ink-soft); font-size: 17px; }
.story-copy p:first-child { margin-top: 0; }
.story-copy strong { color: var(--ink); font-weight: 600; }

.roots { background: var(--plum-deep); color: var(--paper); position: relative; overflow: hidden; }
.roots::before { content: ''; position: absolute; width: 790px; height: 790px; right: -280px; top: -370px; border: 1px solid rgba(230, 183, 106, .25); border-radius: 50%; box-shadow: 0 0 0 80px rgba(230,183,106,.035), 0 0 0 160px rgba(230,183,106,.025); }
.roots-inner { padding-block: 111px 115px; display: grid; grid-template-columns: 1.2fr .82fr .82fr; gap: 25px; position: relative; }
.light { color: rgba(255,255,255,.58); }
.roots-heading h2 { margin-top: 38px; }
.roots-card { margin-top: 80px; min-height: 255px; padding: 24px 24px 30px; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.19); background: rgba(255,255,255,.025); backdrop-filter: blur(3px); }
.roots-card.offset { margin-top: 150px; }
.roots-number { margin: 0; color: var(--amber); font-family: var(--mono); font-size: 10px; }
.roots-card h3 { margin: auto 0 10px; font-family: var(--serif); font-size: 38px; letter-spacing: -.04em; font-weight: 500; }
.roots-card p:last-child { margin: 0; color: rgba(255,255,255,.67); font-size: 14px; line-height: 1.65; }
.roots-note { grid-column: 1 / -1; margin: 44px 0 0; font-family: var(--serif); font-size: 23px; color: rgba(255,255,255,.72); }
.roots-note em { color: var(--amber); }

.sounds { padding: 120px 0 112px; }
.sounds-intro { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: end; margin-top: 41px; }
.sounds-intro p { max-width: 355px; margin: 0 0 9px; color: var(--ink-soft); font-size: 16px; }
.language-list { margin-top: 75px; border-top: 1px solid var(--line); }
.language-item { display: grid; grid-template-columns: 84px 1fr minmax(230px, .7fr); gap: 20px; align-items: center; min-height: 125px; border-bottom: 1px solid var(--line); transition: background .25s, padding .25s; }
.language-item:hover { background: var(--paper-deep); padding-inline: 15px; }
.language-item span { font-family: var(--mono); font-size: 10px; color: var(--red); }
.language-item h3 { margin: 0; font-family: var(--serif); font-size: clamp(32px, 4vw, 53px); font-weight: 500; letter-spacing: -.05em; }
.language-item p { margin: 0; color: var(--ink-soft); font-size: 14px; }

.instrument { padding: 107px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12%; align-items: center; }
.instrument-visual { min-height: 485px; position: relative; overflow: hidden; background: #dac9b2; display: grid; place-items: center; }
.instrument-visual::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(62,43,34,.25) 1px, transparent 1px); background-size: 6px 6px; mix-blend-mode: multiply; opacity: .27; }
.instrument-visual svg { z-index: 2; width: 72%; overflow: visible; }
.instrument-visual svg path { fill: none; stroke: var(--plum); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.instrument-visual .body { fill: rgba(76,33,53,.1); }
.instrument-visual .strings { stroke: var(--red); stroke-width: 1; }
.instrument-visual p { position: absolute; bottom: 21px; left: 25px; z-index: 3; margin: 0; font-family: var(--mono); color: var(--plum); font-size: 9px; text-transform: uppercase; letter-spacing: .13em; }
.orb { position: absolute; border-radius: 50%; border: 1px solid rgba(76,33,53,.16); }
.orb-one { width: 330px; height: 330px; top: -160px; right: -120px; }
.orb-two { width: 200px; height: 200px; bottom: -118px; left: -90px; }
.instrument-copy h2 { margin-top: 40px; }
.instrument-copy > p { max-width: 445px; color: var(--ink-soft); font-size: 17px; line-height: 1.75; margin-top: 29px; }

.profile { border-top: 1px solid var(--line); padding: 105px 0 118px; display: grid; grid-template-columns: .55fr 1.15fr .9fr; gap: 30px; align-items: start; }
.profile-index { font-family: var(--serif); color: var(--red); font-size: clamp(61px, 8vw, 120px); line-height: .8; letter-spacing: -.1em; }
.profile-main h2 { margin-top: 40px; }
.profile-main > p { max-width: 470px; color: var(--ink-soft); font-size: 16px; line-height: 1.75; margin: 28px 0 0; }
.profile-facts { margin: 32px 0 0; }
.profile-facts div { padding: 17px 0; border-bottom: 1px solid var(--line); }
.profile-facts div:first-child { border-top: 1px solid var(--line); }
.profile-facts dt { color: var(--ink-soft); font-family: var(--mono); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.profile-facts dd { margin: 5px 0 0; font-size: 15px; }

.site-footer { background: var(--red); color: #fff8ef; }
.footer-inner { min-height: 150px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.footer-brand { font-size: 22px; }
.footer-inner p { margin: 0; opacity: .8; font-family: var(--serif); font-size: 17px; }
.back-top { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; border-bottom: 1px solid rgba(255,255,255,.65); padding-bottom: 5px; }

@media (max-width: 820px) {
  .section-shell { width: min(100% - 48px, 640px); }
  .site-header { width: calc(100% - 48px); min-height: 76px; }
  .menu-toggle { display: grid; gap: 5px; width: 42px; height: 42px; place-content: center; border: 1px solid var(--line); background: transparent; cursor: pointer; }
  .menu-toggle span:not(.sr-only) { width: 17px; height: 1px; display: block; background: var(--ink); transition: transform .2s; }
  .menu-toggle[aria-expanded='true'] span:nth-child(2) { transform: translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded='true'] span:nth-child(3) { transform: translateY(-3px) rotate(-45deg); }
  .main-nav { display: none; position: absolute; right: 0; top: 75px; width: min(300px, 100vw - 48px); padding: 18px 23px; align-items: stretch; gap: 18px; flex-direction: column; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 14px 30px rgba(42,29,30,.12); }
  .main-nav.open { display: flex; }
  .hero { min-height: 0; grid-template-columns: 1fr; gap: 43px; padding: 57px 0 64px; }
  .hero-copy { padding-top: 0; }
  h1 { margin: 23px 0 21px; }
  .hero-art { height: min(109vw, 510px); }
  .statement { grid-template-columns: 70px 1fr; gap: 22px; padding: 70px 0; }
  .story { padding: 73px 0 83px; }
  .story-layout, .sounds-intro, .instrument { grid-template-columns: 1fr; gap: 32px; }
  .story-layout { margin-top: 29px; }
  .story-copy { font-size: 16px; }
  .roots-inner { grid-template-columns: 1fr 1fr; padding-block: 78px; }
  .roots-heading { grid-column: 1 / -1; }
  .roots-heading h2 { margin-top: 27px; }
  .roots-card, .roots-card.offset { margin-top: 16px; }
  .sounds { padding: 79px 0; }
  .sounds-intro { margin-top: 28px; }
  .language-list { margin-top: 52px; }
  .instrument { padding: 76px 0; gap: 51px; }
  .instrument-visual { min-height: min(105vw, 470px); }
  .profile { grid-template-columns: 80px 1fr; padding: 78px 0; }
  .profile-main { grid-column: 2; }
  .profile-facts { grid-column: 1 / -1; margin-top: 8px; }
}

@media (max-width: 520px) {
  .section-shell { width: calc(100% - 40px); }
  .site-header { width: calc(100% - 40px); }
  .brand { font-size: 17px; }
  .brand-mark { width: 30px; height: 30px; }
  h1 { font-size: clamp(50px, 15.2vw, 67px); }
  h2 { font-size: clamp(45px, 14vw, 62px); }
  .hero-text { font-size: 16px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .statement { grid-template-columns: 40px 1fr; gap: 15px; }
  .statement p { font-size: 29px; }
  .roots-inner { grid-template-columns: 1fr; gap: 0; }
  .roots-card, .roots-card.offset { margin-top: 18px; min-height: 224px; }
  .roots-note { margin-top: 39px; }
  .language-item { grid-template-columns: 40px 1fr; gap: 5px; padding: 18px 0; }
  .language-item p { grid-column: 2; }
  .language-item:hover { padding-inline: 8px; }
  .profile { grid-template-columns: 54px 1fr; gap: 10px; }
  .profile-index { font-size: 66px; }
  .footer-inner { min-height: 180px; align-items: flex-start; justify-content: center; flex-direction: column; gap: 10px; }
}

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