@font-face {
  font-family: "Syncopate";
  src: url("media/fonts/Syncopate-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("media/fonts/Montserrat-Variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --paper: #ecebe7;
  --surface: #f7f6f2;
  --ink: #111312;
  --muted: #636762;
  --line: #c8cac5;
  --sound: #c9362d;
  --sound-dark: #601d1a;
  --school: #16765d;
  --travel: #285f9e;
  --yellow: #ded78c;
  --wrap: min(1240px, calc(100vw - 64px));
  --sans: "Montserrat", "Helvetica Neue", "Segoe UI", Arial, sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --display: "Syncopate", "Arial Black", sans-serif;
  --radius: 12px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { color: #fff; background: var(--sound); }
.wrap { width: var(--wrap); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link { position: fixed; z-index: 200; top: 8px; left: 8px; padding: 9px 13px; color: #fff; background: #111; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.eyebrow, .page-kicker { margin: 0; font-family: var(--mono); font-size: .66rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
h1, h2, h3 { margin: 0; font-weight: 600; letter-spacing: -.055em; line-height: .94; }

/* Header */
.site-header {
  position: fixed;
  z-index: 100;
  top: 16px;
  right: 20px;
  left: 20px;
  display: grid;
  min-height: 68px;
  padding: 0 12px 0 15px;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 30px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 18px;
  background: rgba(17, 18, 16, .94);
  box-shadow: 0 12px 40px rgba(0, 0, 0, .12);
  backdrop-filter: blur(16px);
}
.wordmark { display: inline-flex; width: max-content; align-items: center; gap: 10px; }
.wordmark > span { display: grid; width: 39px; height: 39px; place-items: center; color: var(--ink); border-radius: 11px; background: var(--yellow); font-size: .67rem; font-weight: 1000; letter-spacing: .04em; }
.wordmark strong { font-size: .84rem; font-weight: 950; }
.wordmark small { color: rgba(255, 255, 255, .48); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .56rem; letter-spacing: .04em; }
.site-nav { display: flex; align-items: center; gap: 4px; }
.site-nav a { padding: 9px 12px; border-radius: 9px; font-size: .7rem; font-weight: 850; transition: color .18s ease, background .18s ease; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--ink); background: #fff; }
.header-cta { display: inline-flex; padding: 10px 12px; align-items: center; gap: 24px; color: var(--ink); border-radius: 10px; background: var(--yellow); font-size: .69rem; font-weight: 950; }
.header-cta span { font-size: .95rem; }
.send-mark { display: grid; width: 39px; height: 39px; place-items: center; color: var(--ink); border-radius: 50%; background: var(--yellow); }
.send-mark span { transform: rotate(-45deg); }
.menu-toggle { display: none; }
.scroll-meter { position: fixed; z-index: 120; top: 0; right: 0; left: 0; height: 3px; background: transparent; }
.scroll-meter i { display: block; width: 0; height: 100%; background: var(--yellow); transition: width .08s linear; }
.home-page .site-header .wordmark > span { transition: color .25s ease, background .25s ease; }
.home-page[data-scene^="sound"] .site-header .wordmark > span { color: #fff; background: var(--sound); }
.home-page[data-scene="journal"] .site-header .wordmark > span { color: #fff; background: var(--travel); }
.home-page[data-scene="about"] .site-header .wordmark > span { color: #fff; background: var(--school); }
.home-page[data-scene="contact"] .site-header .wordmark > span { color: var(--ink); background: var(--yellow); }

/* Homepage hero */
.portfolio-hero { min-height: 100svh; padding-top: 110px; color: var(--ink); background: var(--paper); }
.hero-grid { display: grid; min-height: calc(100svh - 150px); padding-bottom: 40px; grid-template-columns: minmax(0, 1.4fr) minmax(330px, .6fr); grid-template-rows: auto 1fr auto; align-items: center; gap: 24px 50px; }
.hero-kicker { display: flex; margin: 0; grid-column: 1 / -1; justify-content: space-between; color: var(--muted); font-size: .65rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.hero-title-wrap { align-self: center; }
.hero-title-wrap h1 { font-size: clamp(5.6rem, 12.8vw, 12.7rem); line-height: .72; }
.hero-title-wrap h1 > span { display: block; }
.hero-title-wrap h1 > span:last-child { margin-left: 10vw; }
.hero-title-wrap sup { display: inline-block; margin-left: 13px; color: var(--sound); font-size: .12em; vertical-align: top; transform: translateY(.7em); }
.hero-title-wrap > p { max-width: 440px; margin: 52px 0 0 10vw; font-size: clamp(1rem, 1.7vw, 1.35rem); font-weight: 750; line-height: 1.25; }
.sound-object { position: relative; min-height: 460px; padding: 30px; overflow: hidden; color: #fff; border-radius: var(--radius); background: #151613; box-shadow: 0 30px 70px rgba(17, 18, 16, .2); }
.sound-object::before { position: absolute; width: 260px; height: 260px; top: -72px; right: -85px; border: 42px solid var(--sound); border-radius: 50%; content: ""; }
.sound-object::after { position: absolute; right: 30px; bottom: 92px; left: 30px; height: 1px; background: rgba(255, 255, 255, .2); content: ""; }
.sound-object__dial { position: relative; z-index: 1; display: grid; width: 180px; aspect-ratio: 1; margin: 42px auto 0; place-items: center; border: 1px solid rgba(255, 255, 255, .26); border-radius: 50%; }
.sound-object__dial::before, .sound-object__dial::after { position: absolute; inset: 17px; border: 2px dashed rgba(255, 255, 255, .28); border-radius: inherit; content: ""; }
.sound-object__dial::after { inset: 42px; border: 0; background: var(--sound); }
.sound-object__dial i { position: absolute; z-index: 2; top: 41px; width: 4px; height: 44px; border-radius: 4px; background: #fff; transform: rotate(37deg); transform-origin: 2px 49px; }
.sound-object__dial span { position: absolute; top: calc(100% + 13px); font-size: .6rem; font-weight: 900; letter-spacing: .15em; }
.sound-object__wave { position: absolute; right: 28px; bottom: 125px; left: 28px; display: flex; height: 54px; align-items: center; justify-content: space-between; }
.sound-object__wave i { width: 5px; height: var(--bar, 20%); border-radius: 8px; background: var(--yellow); animation: level 1.4s ease-in-out infinite alternate; }
.sound-object__wave i:nth-child(2n) { --bar: 80%; animation-delay: -.8s; }.sound-object__wave i:nth-child(3n) { --bar: 45%; animation-delay: -.3s; }.sound-object__wave i:nth-child(5n) { --bar: 100%; animation-delay: -1.1s; }
.sound-object__meta { position: absolute; right: 30px; bottom: 28px; left: 30px; display: flex; justify-content: space-between; color: rgba(255, 255, 255, .52); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .56rem; }
.sound-object__meta b { color: #fff; }
.scroll-cue { display: inline-flex; width: max-content; margin-left: 10vw; align-items: center; gap: 16px; font-size: .69rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.scroll-cue i { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--ink); border-radius: 50%; font-style: normal; animation: bob 1.6s ease-in-out infinite; }

/* Scroll-led project portfolio */
.projects { color: #fff; background: #171815; }
.projects-heading { display: grid; min-height: 78svh; padding-block: 140px 100px; grid-template-columns: 1fr 2.3fr; align-content: center; gap: 28px 80px; }
.projects-heading .eyebrow { color: #ef7469; }
.projects-heading h2 { max-width: 1000px; font-size: clamp(4rem, 8.7vw, 8.5rem); }
.projects-heading > p:last-child { max-width: 440px; margin: 0; grid-column: 2; color: rgba(255, 255, 255, .6); font-size: 1.02rem; }
.project-sequence { border-top: 1px solid rgba(255, 255, 255, .16); }
.project-story { position: relative; display: block; min-height: 92svh; overflow: clip; color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .2); }
.project-story--one { background: #d84538; }.project-story--two { background: #952e30; }.project-story--three { background: #1a1917; }.project-story--four { color: #181816; background: #f05d4d; }
.project-story__inner { position: sticky; top: 0; display: grid; min-height: 92svh; padding-block: 130px 70px; grid-template-columns: 90px minmax(0, 1.15fr) minmax(300px, .85fr); align-items: center; gap: 35px; }
.project-number { align-self: start; padding-top: 10px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; font-weight: 850; }
.project-copy p { margin: 0 0 25px; font-size: .67rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.project-copy h3 { max-width: 840px; font-size: clamp(4.2rem, 9.3vw, 9.4rem); }
.project-link { display: inline-flex; margin-top: 50px; padding: 11px 15px; border: 1px solid currentColor; border-radius: 100px; font-size: .69rem; font-weight: 900; transition: color .2s ease, background .2s ease; }
.project-story:hover .project-link { color: var(--ink); background: #fff; }
.project-story--four:hover .project-link { color: #fff; background: var(--ink); }
.project-art { position: relative; width: min(390px, 32vw); aspect-ratio: 1; justify-self: end; border: 2px solid currentColor; border-radius: 50%; animation: slow-spin 22s linear infinite; }
.project-art::before, .project-art::after, .project-art i, .project-art b, .project-art em { position: absolute; border: 1px solid currentColor; border-radius: 50%; content: ""; }
.project-art::before { inset: 8%; }.project-art::after { inset: 24%; border-width: 16px; opacity: .25; }
.project-art i { inset: 36%; background: currentColor; }.project-art b { top: 4%; right: 45%; width: 10%; aspect-ratio: 1; background: var(--yellow); border: 0; }.project-art em { right: 4%; bottom: 15%; width: 18%; aspect-ratio: 1; background: #fff; border: 0; }
.project-art span { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: 3.5rem; font-weight: 950; }
.project-art--rings { border-style: dashed; }.project-art--rings::after { inset: 16%; border-width: 2px; }.project-art--rings i { inset: 31%; background: transparent; border-width: 9px; }.project-art--rings em { background: var(--yellow); }
.project-art--grid { border-radius: 8px; background: repeating-linear-gradient(90deg, transparent 0 15%, rgba(255,255,255,.15) 15% 15.5%), repeating-linear-gradient(0deg, transparent 0 15%, rgba(255,255,255,.15) 15% 15.5%); transform: rotate(8deg); }.project-art--grid::before { inset: 18%; border-width: 18px; }.project-art--grid::after { display: none; }
.project-art--tracks { border: 0; border-radius: 0; background: repeating-linear-gradient(90deg, currentColor 0 5px, transparent 5px 48px); }.project-art--tracks::before { top: 12%; bottom: 12%; left: 15%; right: 15%; border-width: 5px; }.project-art--tracks::after { inset: 35%; border-width: 2px; background: var(--yellow); }
.portfolio-more { display: flex; min-height: 300px; align-items: center; justify-content: flex-end; }
.portfolio-more a { display: inline-flex; padding: 18px 22px; align-items: center; gap: 80px; color: var(--ink); border-radius: 14px; background: var(--yellow); font-weight: 950; }

/* Journal gateway */
.journal { padding-block: 135px; background: #dfe9fa; }
.journal-heading { display: grid; margin-bottom: 70px; grid-template-columns: 1fr auto; align-items: end; gap: 25px; }
.journal-heading .eyebrow { grid-column: 1 / -1; color: #285da9; }
.journal-heading h2 { font-size: clamp(4rem, 8.5vw, 8rem); }
.journal-heading > a { margin-bottom: 8px; padding-bottom: 4px; border-bottom: 2px solid; font-size: .72rem; font-weight: 950; }
.journal-grid { display: grid; grid-template-columns: 1.5fr .75fr .75fr; gap: 14px; }
.journal-card { position: relative; display: flex; min-height: 520px; padding: 28px; flex-direction: column; justify-content: space-between; overflow: hidden; border: 1px solid rgba(17, 18, 16, .13); border-radius: 24px; background: rgba(255, 255, 255, .65); transition: transform .22s ease, box-shadow .22s ease; }
.journal-card:hover { transform: translateY(-8px); box-shadow: 0 25px 60px rgba(32, 60, 110, .14); }
.journal-index { position: relative; z-index: 2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .62rem; font-weight: 850; letter-spacing: .08em; }
.journal-card > div:last-child { position: relative; z-index: 2; }
.journal-card h3 { max-width: 580px; font-size: clamp(2.3rem, 4.5vw, 4.8rem); }
.journal-card p { max-width: 520px; margin: 22px 0 30px; color: rgba(17, 18, 16, .64); font-size: .88rem; }
.journal-card div:last-child > span { font-size: .7rem; font-weight: 950; }
.journal-card--flight { color: #fff; background: #235dbd; }
.journal-card--flight p { color: rgba(255, 255, 255, .7); }
.flight-mark { position: absolute !important; top: 70px; right: -50px; width: 360px; height: 360px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; }
.flight-mark::before, .flight-mark::after { position: absolute; inset: 18%; border: 1px dashed rgba(255,255,255,.4); border-radius: 50%; content: ""; }.flight-mark::after { inset: 39%; border-style: solid; background: var(--yellow); }
.flight-mark i { position: absolute; top: 50%; left: -40%; width: 180%; height: 1px; background: rgba(255,255,255,.5); transform: rotate(-18deg); }
.flight-mark b { position: absolute; z-index: 2; inset: 0; display: grid; place-items: center; color: #1d4f9f; font-size: 2rem; }
.route-mark { position: absolute !important; top: 70px; right: 25px; left: 25px; height: 180px; }
.route-mark i { position: absolute; width: 17px; height: 17px; border: 4px solid #fff; border-radius: 50%; background: var(--travel); }.route-mark i:nth-child(1) { top: 10px; left: 4%; }.route-mark i:nth-child(2) { top: 80px; left: 47%; }.route-mark i:nth-child(3) { right: 5%; bottom: 8px; }
.route-mark b { position: absolute; top: 18px; right: 8%; bottom: 18px; left: 7%; border-top: 2px dashed var(--travel); border-radius: 50%; transform: rotate(12deg); }
.journal-card--travel { color: #fff; background: #397fe9; }.journal-card--travel p { color: rgba(255,255,255,.72); }
.journal-card--edu { color: #fff; background: #167b5e; }.journal-card--edu p { color: rgba(255,255,255,.72); }
.edu-mark { position: absolute !important; top: 92px; right: -18px; color: rgba(255,255,255,.1); font-size: 6.5rem; font-weight: 1000; letter-spacing: -.09em; transform: rotate(90deg); }

/* About and contact */
.about { padding-block: 150px; background: var(--paper); }
.about-inner { display: grid; grid-template-columns: .65fr 1.7fr .85fr; gap: 35px 65px; }
.about-inner .eyebrow { color: var(--sound); }
.about-inner h2 { font-size: clamp(3.6rem, 7vw, 7rem); }
.about-inner h2 em { color: var(--sound); font-style: italic; }
.about-copy { padding-top: 10px; border-top: 2px solid; }
.about-copy p { margin: 0 0 18px; color: var(--muted); }
.about-tags { display: flex; grid-column: 2 / -1; gap: 8px; flex-wrap: wrap; }
.about-tags span { padding: 9px 13px; border: 1px solid var(--line); border-radius: 100px; font-size: .68rem; font-weight: 900; }
.contact { padding-block: 50px; color: #fff; background: #111210; }
.contact-card { display: grid; min-height: 760px; padding: 100px 0 70px; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 100px; }
.contact-copy .eyebrow { color: var(--yellow); }
.contact-copy h2 { margin: 28px 0 30px; font-size: clamp(5rem, 10vw, 10rem); }
.contact-copy > p:not(.eyebrow) { max-width: 450px; color: rgba(255,255,255,.58); }
.email-link { display: inline-block; margin: 28px 0; padding-bottom: 5px; border-bottom: 1px solid; font-weight: 900; }
.socials { display: flex; gap: 16px; flex-wrap: wrap; }
.socials a { color: rgba(255,255,255,.55); font-size: .7rem; font-weight: 850; }
.socials a:hover { color: var(--yellow); }
.contact-form { display: grid; padding: 38px; grid-template-columns: 1fr 1fr; gap: 0 20px; border: 1px solid rgba(255,255,255,.16); border-radius: 24px; background: rgba(255,255,255,.045); }
.contact-form label { margin: 14px 0 5px; color: rgba(255,255,255,.48); font-size: .61rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.contact-form label[for="message"], .contact-form textarea, .contact-form button, .form-status { grid-column: 1 / -1; }
.contact-form input, .contact-form textarea { width: 100%; padding: 10px 0; color: #fff; border: 0; border-bottom: 1px solid rgba(255,255,255,.28); border-radius: 0; outline: 0; background: transparent; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--yellow); }
.contact-form textarea { min-height: 130px; resize: vertical; }
.contact-form button { display: flex; margin-top: 28px; padding: 14px 15px; justify-content: space-between; color: var(--ink); border: 0; border-radius: 10px; background: var(--yellow); font-weight: 950; cursor: pointer; }
.honeypot { position: absolute !important; left: -10000px; }
.form-status { padding: 10px 12px; border: 1px solid rgba(255,255,255,.3); border-radius: 9px; }.form-status.success { border-color: var(--school); }.form-status.error { border-color: var(--sound); }

/* Interior pages */
.section-page { --accent: var(--ink); padding-top: 100px; }.theme-sound { --accent: var(--sound); }.theme-school { --accent: var(--school); }.theme-travel { --accent: var(--travel); }
.page-intro { padding-block: 75px 95px; }
.page-intro-grid { display: grid; min-height: 60svh; grid-template-columns: 1.4fr .6fr; align-items: end; gap: 70px; }
.page-kicker { margin-bottom: 28px; color: var(--accent); }
.page-intro h1 { max-width: 1000px; font-size: clamp(5.5rem, 13vw, 12.5rem); }
.page-intro-copy { padding-top: 22px; border-top: 3px solid var(--accent); }
.page-intro-copy p { margin: 0; font-size: clamp(1.15rem, 2vw, 1.55rem); font-weight: 750; line-height: 1.25; }
.archive { padding-bottom: 120px; }
.archive-tools { display: flex; margin-bottom: 42px; align-items: flex-end; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 25px; }
.archive-tools > div > p, .archive-tools > p { margin: 0 0 8px; color: var(--muted); font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.archive-tools h2 { font-size: clamp(2.8rem, 5vw, 5rem); }
.post-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.post-card { --post-accent: var(--accent); position: relative; display: flex; min-height: 430px; padding: 25px; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); transition: color .2s ease, background .2s ease, transform .2s ease; }
.post-card::after { position: absolute; right: -55px; bottom: -65px; width: 180px; height: 180px; border: 22px solid var(--post-accent); border-radius: 50%; opacity: .12; content: ""; transition: transform .3s ease; }
.post-card:hover { color: #fff; border-color: var(--post-accent); background: var(--post-accent); transform: translateY(-5px); }.post-card:hover::after { opacity: .35; transform: scale(1.2); }
.sound-post { --post-accent: var(--sound); }.school-post { --post-accent: var(--school); }.travel-post { --post-accent: var(--travel); }
.post-meta { display: flex; margin-bottom: 75px; justify-content: space-between; color: var(--post-accent); font-size: .65rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }.post-card:hover .post-meta { color: #fff; }
.post-card h2, .post-card h3 { max-width: 680px; font-size: clamp(2.5rem, 5vw, 5.2rem); }
.post-card > p { max-width: 550px; margin: auto 0 0; padding-top: 35px; color: var(--muted); }.post-card:hover > p { color: rgba(255,255,255,.7); }
.post-link { display: flex; margin-top: 24px; padding-top: 13px; justify-content: space-between; border-top: 1px solid var(--line); font-size: .7rem; font-weight: 900; }.post-card:hover .post-link { border-color: rgba(255,255,255,.3); }
.archive-note { margin-top: 40px; padding: 22px 0; color: var(--muted); border-block: 1px solid var(--line); }

/* Blog hub */
.blog-hub { --accent: var(--travel); }
.blog-index { padding-bottom: 130px; }
.blog-feature { position: relative; display: grid; min-height: 560px; padding: 40px; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 60px; overflow: hidden; color: #fff; border-radius: var(--radius); background: #235dbd; }
.blog-feature::after { position: absolute; top: -160px; right: -100px; width: 550px; height: 550px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.03), 0 0 0 140px rgba(255,255,255,.025); content: ""; }
.blog-feature > div { position: relative; z-index: 2; }
.blog-feature .eyebrow { color: #bcd5ff; }
.blog-feature h2 { margin-top: 18px; font-size: clamp(4rem, 8vw, 8rem); }
.blog-feature__copy { max-width: 430px; }
.blog-feature__copy p { color: rgba(255,255,255,.72); }
.blog-feature__copy span { display: inline-flex; margin-top: 20px; padding: 10px 13px; color: var(--ink); border-radius: 100px; background: var(--yellow); font-size: .68rem; font-weight: 950; }
.blog-categories { display: grid; margin-top: 14px; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.blog-category { display: flex; min-height: 340px; padding: 28px; flex-direction: column; justify-content: space-between; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); transition: transform .2s ease; }.blog-category:hover { transform: translateY(-6px); }
.blog-category > span { color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .62rem; }
.blog-category h3 { font-size: clamp(2.7rem, 5vw, 5.2rem); }.blog-category p { max-width: 500px; color: var(--muted); }
.blog-category--edu { color: #fff; background: var(--school); }.blog-category--edu > span, .blog-category--edu p { color: rgba(255,255,255,.72); }

/* Article detail */
.article-shell { padding-top: 55px; padding-bottom: 120px; }
.back-link { display: inline-block; margin-bottom: 75px; padding-bottom: 4px; border-bottom: 1px solid; font-size: .7rem; font-weight: 900; }
.article-header { display: grid; grid-template-columns: 1.35fr .65fr; align-items: end; gap: 40px 80px; }
.article-header .page-kicker { grid-column: 1 / -1; }
.article-header h1 { color: var(--accent); font-size: clamp(5rem, 12vw, 11rem); }
.article-summary { margin: 0; font-size: clamp(1.15rem, 2vw, 1.55rem); font-weight: 750; line-height: 1.3; }
.article-meta { display: flex; grid-column: 1 / -1; gap: 8px; }
.article-meta span { padding: 8px 11px; border: 1px solid var(--line); border-radius: 100px; font-size: .63rem; font-weight: 900; }
.article-body { max-width: 820px; margin: 90px auto 0; font-size: 1.08rem; line-height: 1.75; }
.article-body h2 { margin: 62px 0 18px; font-size: clamp(2.2rem, 4vw, 3.8rem); }
.article-body p { color: #454741; }
.article-placeholder { margin-top: 45px; padding: 24px; color: var(--muted); border-left: 5px solid var(--accent); background: var(--surface); }
.article-media { margin: 50px -10vw; }.article-media img { display: block; width: 100%; }.article-media figcaption { margin-top: 8px; color: var(--muted); font-size: .7rem; }
.article-nav { display: flex; margin-top: 75px; padding-top: 18px; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); font-size: .72rem; font-weight: 900; }

.site-footer { display: grid; min-height: 120px; padding: 25px 32px; grid-template-columns: 1fr auto auto; align-items: center; gap: 40px; color: #fff; background: #111210; }
.site-footer .wordmark small { display: none; }.site-footer p { margin: 0; color: rgba(255,255,255,.48); font-size: .65rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }

.reveal { opacity: 0; transform: translateY(36px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }

@keyframes level { from { height: 14%; } to { height: var(--bar, 70%); } }
@keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(7px); } }
@keyframes slow-spin { to { transform: rotate(360deg); } }

@media (max-width: 1050px) {
  :root { --wrap: min(100% - 40px, 880px); }
  .site-header { gap: 12px; }
  .wordmark small { display: none; }
  .hero-grid { grid-template-columns: 1fr .55fr; gap: 35px; }
  .hero-title-wrap h1 { font-size: clamp(5.2rem, 14vw, 9rem); }
  .sound-object { min-height: 390px; }
  .projects-heading { grid-template-columns: 1fr; }.projects-heading > p:last-child { grid-column: 1; }
  .project-story__inner { grid-template-columns: 55px minmax(0, 1fr) 260px; }
  .journal-grid { grid-template-columns: 1fr 1fr; }.journal-card--flight { grid-column: 1 / -1; }.journal-card { min-height: 430px; }
  .about-inner { grid-template-columns: 1fr 2fr; }.about-copy { grid-column: 2; }.about-tags { grid-column: 2; }
  .contact-card { gap: 55px; }
}

@media (max-width: 900px) {
  :root { --wrap: calc(100% - 28px); --radius: 22px; }
  .site-header { top: 9px; right: 9px; left: 9px; min-height: 60px; grid-template-columns: 1fr auto; }
  .wordmark > span { width: 35px; height: 35px; }.wordmark strong { font-size: .77rem; }
  .header-cta { display: none; }
  .menu-toggle { display: grid; width: 40px; height: 40px; padding: 9px; place-content: center; gap: 5px; color: #fff; border: 0; background: transparent; cursor: pointer; }
  .menu-toggle i { display: block; width: 21px; height: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
  .menu-open .menu-toggle i:nth-child(1) { transform: translateY(7px) rotate(45deg); }.menu-open .menu-toggle i:nth-child(2) { opacity: 0; }.menu-open .menu-toggle i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-nav { position: fixed; inset: 78px 9px auto; display: grid; padding: 14px; gap: 5px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: #111210; box-shadow: 0 20px 50px rgba(0,0,0,.25); transform: translateY(-150%); opacity: 0; transition: transform .25s ease, opacity .2s ease; }
  .menu-open .site-nav { opacity: 1; transform: none; }
  .site-nav a { padding: 12px; font-size: 1rem; }
  .portfolio-hero { padding-top: 92px; }
  .hero-grid { min-height: auto; grid-template-columns: 1fr; grid-template-rows: auto auto auto auto; }
  .hero-title-wrap h1 { font-size: clamp(4.7rem, 22vw, 8rem); }.hero-title-wrap h1 > span:last-child, .hero-title-wrap > p, .scroll-cue { margin-left: 0; }
  .hero-title-wrap > p { margin-top: 35px; }
  .sound-object { min-height: 360px; }
  .scroll-cue { margin-top: 15px; }
  .projects-heading { min-height: auto; padding-block: 105px 80px; }.projects-heading h2 { font-size: clamp(3.5rem, 14vw, 6rem); }
  .project-story, .project-story__inner { min-height: 78svh; }
  .project-story__inner { position: relative; padding-block: 100px 50px; grid-template-columns: 35px 1fr; align-content: center; }
  .project-art { position: absolute; z-index: 0; right: -80px; bottom: 30px; width: 280px; opacity: .28; }.project-copy { position: relative; z-index: 2; }.project-copy h3 { font-size: clamp(4rem, 18vw, 7rem); }.project-link { margin-top: 35px; }.project-number { position: relative; z-index: 2; }
  .portfolio-more { min-height: 220px; }.portfolio-more a { width: 100%; justify-content: space-between; }
  .journal { padding-block: 100px; }.journal-heading { grid-template-columns: 1fr; }.journal-heading h2 { font-size: clamp(3.7rem, 15vw, 6rem); }.journal-heading > a { width: max-content; }
  .journal-grid { grid-template-columns: 1fr; }.journal-card--flight { grid-column: auto; }.journal-card { min-height: 410px; }
  .about { padding-block: 105px; }.about-inner { grid-template-columns: 1fr; }.about-inner h2 { font-size: clamp(3.3rem, 13vw, 5.6rem); }.about-copy, .about-tags { grid-column: 1; }
  .contact-card { min-height: auto; padding-block: 80px; grid-template-columns: 1fr; }.contact-copy h2 { font-size: clamp(5rem, 22vw, 8rem); }
  .page-intro-grid { min-height: 50svh; grid-template-columns: 1fr; gap: 45px; }.page-intro h1 { font-size: clamp(5rem, 22vw, 9rem); }
  .post-grid { grid-template-columns: 1fr; }.post-card { min-height: 360px; }
  .blog-feature { min-height: 600px; padding: 28px; grid-template-columns: 1fr; align-content: end; }.blog-feature h2 { font-size: clamp(4rem, 16vw, 7rem); }.blog-categories { grid-template-columns: 1fr; }
  .article-header { grid-template-columns: 1fr; }.article-header .page-kicker, .article-meta { grid-column: 1; }.article-header h1 { font-size: clamp(4.3rem, 20vw, 8rem); }.article-media { margin-inline: 0; }
  .site-footer { grid-template-columns: 1fr auto; padding-inline: 16px; }.site-footer > p:first-of-type { display: none; }
}

@media (max-width: 480px) {
  .hero-kicker span:last-child { display: none; }
  .hero-title-wrap h1 { font-size: clamp(4.5rem, 23vw, 6.8rem); }
  .sound-object { min-height: 320px; }.sound-object__dial { width: 145px; margin-top: 30px; }.sound-object__dial i { top: 31px; transform-origin: 2px 40px; }
  .project-copy h3 { font-size: clamp(3.6rem, 18vw, 5.5rem); }
  .journal-card { padding: 22px; }
  .contact-form { padding: 24px 18px; grid-template-columns: 1fr; }.contact-form label, .contact-form input, .contact-form textarea { grid-column: 1; }
  .archive-tools { align-items: flex-start; flex-direction: column; }.archive-tools > p { margin-top: 10px; }
  .article-nav { flex-direction: column; }
}

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

/* Portfolio homepage — editorial edition */
.home-page {
  --scene-accent: #d9d5c6;
  background: var(--paper);
}
.home-page .site-header {
  min-height: 62px;
  border-radius: 3px;
  background: rgba(15, 17, 16, .94);
  box-shadow: 0 10px 34px rgba(0, 0, 0, .1);
}
.home-page .wordmark > span {
  border-radius: 2px;
  background: var(--scene-accent);
  font-family: var(--mono);
  font-weight: 700;
}
.home-page .wordmark strong,
.home-page .site-nav a,
.home-page .header-cta { font-weight: 600; }
.home-page .wordmark small { font-family: var(--mono); text-transform: uppercase; }
.home-page .header-cta { border-radius: 2px; background: #efeee8; }
.home-page .site-nav a { border-radius: 2px; }
.home-page[data-scene="sound"] { --scene-accent: #cc3a31; }
.home-page[data-scene="theatre"] { --scene-accent: #a9746d; }
.home-page[data-scene="media"] { --scene-accent: #a9aea7; }
.home-page[data-scene="work"] { --scene-accent: #e9e6dc; }
.home-page[data-scene="directions"] { --scene-accent: #5279a7; }
.home-page[data-scene="about"] { --scene-accent: #3e806d; }
.home-page[data-scene="contact"] { --scene-accent: #d9d5c6; }
.home-page .scroll-meter i { background: var(--scene-accent); }

.studio-hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  color: #f3f2ed;
  background: #101211;
}
.signal-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .82;
}
.studio-hero::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(16,18,17,.88) 0%, rgba(16,18,17,.35) 50%, rgba(16,18,17,.08) 100%);
  content: "";
}
.studio-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: 100svh;
  padding: 112px 0 42px;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
  grid-template-rows: auto 1fr auto;
  align-items: end;
  gap: 30px 70px;
}
.studio-meta {
  display: flex;
  margin: 0;
  grid-column: 1 / -1;
  align-self: start;
  justify-content: space-between;
  color: rgba(255,255,255,.52);
  font-family: var(--mono);
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.studio-title { align-self: end; }
.studio-title > p {
  margin: 0 0 28px;
  color: rgba(255,255,255,.6);
  font-family: var(--mono);
  font-size: .69rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.studio-title h1 {
  font-size: clamp(6.5rem, 14vw, 13.5rem);
  font-weight: 500;
  line-height: .72;
  letter-spacing: -.085em;
}
.studio-intro {
  max-width: 380px;
  padding-top: 22px;
  align-self: end;
  border-top: 1px solid rgba(255,255,255,.42);
}
.studio-intro p { margin: 0 0 38px; font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.45; }
.studio-intro a {
  display: flex;
  padding: 13px 0;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,.42);
  font-family: var(--mono);
  font-size: .67rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.signal-readout {
  position: absolute;
  right: 0;
  top: 112px;
  display: grid;
  width: 92px;
  padding: 12px;
  gap: 2px;
  border: 1px solid rgba(255,255,255,.24);
  background: rgba(15,17,16,.55);
  backdrop-filter: blur(8px);
}
.signal-readout span { color: rgba(255,255,255,.45); font-family: var(--mono); font-size: .48rem; letter-spacing: .08em; }
.signal-readout b { font-family: var(--mono); font-size: 1.6rem; font-weight: 400; }

.practice-intro {
  display: grid;
  min-height: 82svh;
  padding-block: 130px;
  align-items: center;
  background: #eeede8;
}
.practice-intro .wrap {
  display: grid;
  grid-template-columns: .55fr 1.45fr;
  gap: 30px 70px;
}
.practice-intro .eyebrow { padding-top: 9px; }
.practice-intro h2 { max-width: 1000px; font-size: clamp(4.2rem, 8.5vw, 8.3rem); }
.practice-intro .wrap > p:last-child {
  max-width: 430px;
  margin: 18px 0 0;
  grid-column: 2;
  color: var(--muted);
}

.practice-panel {
  position: relative;
  min-height: 125svh;
  --panel-fg: #f2f1eb;
  --panel-muted: rgba(255,255,255,.58);
  --panel-line: rgba(255,255,255,.25);
}
.practice-panel__sticky {
  position: sticky;
  top: 0;
  display: grid;
  min-height: 100svh;
  padding-block: 118px 55px;
  grid-template-columns: minmax(300px, .82fr) minmax(420px, 1.18fr);
  align-items: center;
  gap: 8vw;
}
.practice-panel--sound { color: var(--panel-fg); background: #121514; }
.practice-panel--theatre { color: var(--panel-fg); background: #8f2d27; }
.practice-panel--media {
  --panel-fg: #151715;
  --panel-muted: rgba(21,23,21,.62);
  --panel-line: rgba(21,23,21,.3);
  color: var(--panel-fg);
  background: #d9d9d2;
}
.practice-copy { position: relative; z-index: 3; }
.practice-copy > span,
.practice-label {
  color: var(--panel-muted);
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.practice-label { margin: 70px 0 17px; }
.practice-copy h2 { max-width: 680px; font-size: clamp(4rem, 7vw, 7.4rem); font-weight: 500; }
.practice-copy > p:not(.practice-label) { max-width: 490px; margin: 36px 0 0; color: var(--panel-muted); font-size: 1rem; }
.practice-copy a {
  display: flex;
  width: min(100%, 350px);
  margin-top: 55px;
  padding: 14px 0;
  justify-content: space-between;
  border-top: 1px solid var(--panel-line);
  border-bottom: 1px solid var(--panel-line);
  font-family: var(--mono);
  font-size: .65rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.practice-visual {
  position: relative;
  width: 100%;
  aspect-ratio: 1.12;
  overflow: hidden;
  border: 1px solid var(--panel-line);
  transform: translate3d(calc(var(--field-x, 0) * 12px), calc(var(--field-y, 0) * 12px), 0);
  transition: transform .12s linear;
}
.sound-field { display: grid; padding: 34px; align-items: end; background: #181c1a; }
.sound-field::before,
.sound-field::after {
  position: absolute;
  pointer-events: none;
  content: "";
}
.sound-field::before { inset: 0; background: repeating-linear-gradient(0deg, transparent 0 11.8%, rgba(255,255,255,.08) 12% 12.2%); }
.sound-field::after { top: 0; bottom: 0; left: calc(var(--field-pos, .62) * 100%); width: 1px; background: #df5148; box-shadow: 0 0 26px rgba(223,81,72,.7); }
.sound-bars { position: relative; z-index: 2; display: flex; height: 72%; align-items: end; gap: clamp(5px, .8vw, 12px); }
.sound-bars i {
  width: 100%;
  height: calc(var(--level, .5) * 100%);
  min-height: 4px;
  background: #d8d7d0;
  transform-origin: bottom;
  transition: height .16s linear, background .2s ease;
}
.sound-bars i:nth-child(3n) { opacity: .48; }
.sound-bars i:nth-child(4n) { background: #c13a32; }
.sound-axis { position: absolute; z-index: 2; top: 18px; right: 21px; left: 21px; display: flex; justify-content: space-between; color: rgba(255,255,255,.4); font-family: var(--mono); font-size: .53rem; }
.sound-cursor { position: absolute; z-index: 3; left: calc(var(--field-pos, .62) * 100%); bottom: 20px; width: 6px; height: 6px; background: #df5148; transform: translateX(-3px); }

.stage-field { background: #6e211d; perspective: 700px; }
.stage-lines { position: absolute; inset: -12% -8%; display: flex; justify-content: space-between; transform: rotate(calc(var(--field-x, 0) * 2deg)); transform-origin: 50% 0; }
.stage-lines i { width: 1px; height: 130%; background: rgba(255,255,255,.32); transform: rotate(calc((var(--field-y, 0) * 4deg))); }
.stage-lines i:nth-child(2n) { background: rgba(255,255,255,.1); }
.stage-plane {
  position: absolute;
  right: 13%;
  bottom: 12%;
  width: 58%;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(245,228,192,.85) 0 2%, rgba(245,228,192,.08) 3% 42%, transparent 43%);
  box-shadow: 0 0 0 calc(var(--section-progress, 0) * 90px) rgba(255,255,255,.025);
  transform: translate(calc(var(--field-x, 0) * -26px), calc(var(--field-y, 0) * -18px));
}
.stage-field > span { position: absolute; left: 24px; bottom: 20px; font-family: var(--mono); font-size: .58rem; letter-spacing: .1em; }

.frame-field { background: #cacbc4; }
.frame-grid { position: absolute; inset: -10%; background-image: linear-gradient(rgba(20,22,20,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(20,22,20,.13) 1px, transparent 1px); background-size: 12.5% 12.5%; transform: translate(calc(var(--field-x, 0) * 18px), calc(var(--field-y, 0) * 18px)) scale(1.1); }
.frame-focus { position: absolute; top: calc(50% + var(--field-y, 0) * 35px); left: calc(50% + var(--field-x, 0) * 35px); width: 44%; aspect-ratio: 1.5; border: 1px solid #191b19; transform: translate(-50%, -50%); }
.frame-focus i { position: absolute; width: 18px; height: 18px; border-color: #191b19; border-style: solid; }
.frame-focus i:nth-child(1) { top: -1px; left: -1px; border-width: 2px 0 0 2px; }.frame-focus i:nth-child(2) { top: -1px; right: -1px; border-width: 2px 2px 0 0; }.frame-focus i:nth-child(3) { right: -1px; bottom: -1px; border-width: 0 2px 2px 0; }.frame-focus i:nth-child(4) { bottom: -1px; left: -1px; border-width: 0 0 2px 2px; }
.frame-code,.frame-rec { position: absolute; font-family: var(--mono); font-size: .58rem; letter-spacing: .07em; }
.frame-code { right: 20px; bottom: 18px; }.frame-rec { top: 18px; left: 20px; }.frame-rec::before { display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: #b72c25; content: ""; }

.selected-work { padding-block: 140px; background: #f2f1ec; }
.selected-work__header { display: grid; margin-bottom: 70px; grid-template-columns: 1fr auto; align-items: end; gap: 20px; }
.selected-work__header .eyebrow { grid-column: 1 / -1; color: var(--sound); }
.selected-work__header h2 { font-size: clamp(4rem, 8vw, 7.8rem); font-weight: 500; }
.selected-work__header > a { padding-bottom: 6px; border-bottom: 1px solid; font-family: var(--mono); font-size: .65rem; text-transform: uppercase; }
.work-list { border-top: 1px solid #aeb0ac; }
.work-row {
  position: relative;
  display: grid;
  min-height: 120px;
  padding: 22px 18px 22px 0;
  grid-template-columns: 70px 1fr 190px 30px;
  align-items: center;
  gap: 20px;
  border-bottom: 1px solid #aeb0ac;
  transition: color .25s ease, background .25s ease, padding .25s ease;
}
.work-row::before { position: absolute; inset: 0; z-index: -1; background: #171918; content: ""; transform: scaleY(0); transform-origin: bottom; transition: transform .25s cubic-bezier(.2,.8,.2,1); }
.work-row:hover { padding-left: 18px; color: #fff; }
.work-row:hover::before { transform: scaleY(1); }
.work-row > span,.work-row > p { font-family: var(--mono); font-size: .6rem; letter-spacing: .05em; text-transform: uppercase; }
.work-row > p { color: var(--muted); }.work-row:hover > p { color: rgba(255,255,255,.55); }
.work-row h3 { font-size: clamp(1.8rem, 3.6vw, 4rem); font-weight: 500; letter-spacing: -.045em; }
.work-row b { font-size: 1.2rem; font-weight: 400; }

.directions { padding-block: 130px; color: #edece6; background: #171918; }
.directions__header { display: grid; margin-bottom: 70px; grid-template-columns: .55fr 1.45fr; gap: 30px 70px; }
.directions__header .eyebrow { padding-top: 10px; color: rgba(255,255,255,.47); }
.directions__header h2 { max-width: 950px; font-size: clamp(3.6rem, 7vw, 7rem); font-weight: 500; }
.direction-list { border-top: 1px solid rgba(255,255,255,.22); }
.direction {
  --direction-accent: #807d73;
  position: relative;
  display: grid;
  min-height: 190px;
  padding: 28px 0;
  grid-template-columns: 80px 1fr auto;
  align-items: center;
  gap: 25px;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,.22);
}
.direction::after { position: absolute; top: 50%; right: 11%; width: 260px; height: 260px; border: 1px solid var(--direction-accent); border-radius: 50%; opacity: .2; content: ""; transform: translateY(-50%) scale(.7); transition: opacity .35s ease, transform .5s cubic-bezier(.2,.8,.2,1); }
.direction:hover::after { opacity: .75; transform: translateY(-50%) scale(1.12); }
.direction--flight { --direction-accent: #9caabd; }.direction--travel { --direction-accent: #3c76b3; }.direction--edu { --direction-accent: #3f9076; }
.direction > span { color: rgba(255,255,255,.4); font-family: var(--mono); font-size: .62rem; }
.direction h3 { font-size: clamp(2.8rem, 5vw, 5.4rem); font-weight: 500; }
.direction p { margin: 10px 0 0; color: rgba(255,255,255,.5); }
.direction b { z-index: 2; font-size: 1.3rem; font-weight: 400; }

.home-page .about { padding-block: 140px; background: #e6e5df; }
.home-page .about-inner { grid-template-columns: .55fr 1.1fr .9fr; }
.home-page .about-inner .eyebrow { color: var(--school); }
.home-page .about-inner h2 { font-size: clamp(4rem, 8vw, 8rem); font-weight: 500; }
.home-page .about-copy { font-size: 1rem; }
.home-page .about-tags span { border-radius: 2px; font-family: var(--mono); font-size: .6rem; font-weight: 500; text-transform: uppercase; }
.home-page .contact { background: #0f1110; }
.home-page .contact-card { min-height: 720px; }
.home-page .contact-copy h2 { font-weight: 500; }
.home-page .contact-form { border-radius: 2px; }
.home-page .contact-form button { border-radius: 2px; background: #e6e4da; font-weight: 600; }

@media (max-width: 1050px) {
  .studio-hero__inner { grid-template-columns: 1.2fr .8fr; }
  .studio-title h1 { font-size: clamp(6rem, 15vw, 10rem); }
  .practice-panel__sticky { grid-template-columns: .95fr 1.05fr; gap: 5vw; }
  .practice-copy h2 { font-size: clamp(3.7rem, 7vw, 5.7rem); }
  .directions__header { grid-template-columns: 1fr; }.directions__header h2 { grid-column: 1; }
}

@media (max-width: 900px) {
  .home-page .site-header { min-height: 58px; }
  .studio-hero__inner { min-height: 100svh; padding: 95px 0 28px; grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; gap: 22px; }
  .studio-title { align-self: center; }.studio-title h1 { font-size: clamp(5.2rem, 24vw, 8.6rem); }.studio-title > p { margin-bottom: 20px; }
  .studio-intro { max-width: 100%; }.studio-intro p { max-width: 390px; margin-bottom: 25px; }
  .signal-readout { display: none; }
  .studio-hero::after { background: linear-gradient(180deg, rgba(16,18,17,.45), rgba(16,18,17,.82)); }
  .practice-intro { min-height: 72svh; padding-block: 100px; }.practice-intro .wrap { grid-template-columns: 1fr; }.practice-intro h2 { font-size: clamp(3.5rem, 15vw, 6rem); }.practice-intro .wrap > p:last-child { grid-column: 1; }
  .practice-panel { min-height: 110svh; }.practice-panel__sticky { min-height: 100svh; padding-block: 95px 32px; grid-template-columns: 1fr; align-content: center; gap: 45px; }
  .practice-copy > span { display: block; }.practice-label { margin-top: 35px; }.practice-copy h2 { max-width: 570px; font-size: clamp(3.4rem, 14vw, 5.5rem); }.practice-copy > p:not(.practice-label) { margin-top: 24px; }.practice-copy a { margin-top: 30px; }
  .practice-visual { width: min(100%, 520px); aspect-ratio: 1.5; justify-self: end; }
  .selected-work { padding-block: 100px; }.selected-work__header { grid-template-columns: 1fr; }.selected-work__header h2 { font-size: clamp(3.5rem, 15vw, 6rem); }.selected-work__header > a { width: max-content; }
  .work-row { grid-template-columns: 38px 1fr 24px; min-height: 105px; padding-right: 5px; }.work-row > p { display: none; }.work-row h3 { font-size: clamp(1.7rem, 7vw, 3.1rem); }
  .directions { padding-block: 100px; }.directions__header h2 { font-size: clamp(3.3rem, 14vw, 5.4rem); }.direction { min-height: 155px; grid-template-columns: 38px 1fr 24px; }.direction::after { right: -90px; width: 220px; height: 220px; }.direction h3 { font-size: clamp(2.5rem, 11vw, 4.5rem); }
  .home-page .about-inner { grid-template-columns: 1fr; }.home-page .about-copy,.home-page .about-tags { grid-column: 1; }
}

@media (max-width: 480px) {
  .studio-meta span:last-child { display: block; }
  .studio-title h1 { font-size: clamp(4.8rem, 24vw, 6.8rem); }
  .practice-visual { aspect-ratio: 1.2; }
  .sound-field { padding: 22px; }.sound-bars { gap: 4px; }
  .work-row { gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .practice-panel { min-height: 100svh; }
  .practice-visual { transform: none; }
}

/* Interior pages share the restrained portfolio language. */
.section-page .site-header { min-height: 62px; border-radius: 3px; }
.section-page .wordmark > span { border-radius: 2px; background: #e8e5db; font-family: var(--mono); font-weight: 700; }
.section-page .site-nav a,
.section-page .header-cta { border-radius: 2px; font-weight: 600; }
.section-page .send-mark { border-radius: 2px; background: #e8e5db; }
.section-page .page-intro h1,
.section-page .archive-tools h2,
.section-page .article-header h1 { font-weight: 500; }
.section-page .post-card,
.section-page .blog-feature,
.section-page .blog-category,
.section-page .article-placeholder,
.section-page .article-meta span { border-radius: 2px; }
.section-page .post-card { transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.section-page .post-card::after { display: none; }
.section-page .post-card:hover {
  color: var(--ink);
  border-color: var(--post-accent);
  background: var(--surface);
  box-shadow: inset 4px 0 0 var(--post-accent);
  transform: translateY(-2px);
}
.section-page .post-card:hover .post-meta { color: var(--post-accent); }
.section-page .post-card:hover > p { color: var(--muted); }
.section-page .post-card:hover .post-link { border-color: var(--line); }
.section-page .blog-category:hover { transform: translateY(-2px); }

/* Portfolio homepage — balanced edition */
.home-page { --radius: 18px; }
.home-page h1,
.home-page h2,
.home-page h3 { font-family: var(--display); font-weight: 700; letter-spacing: -.055em; }
.home-page .studio-hero {
  color: var(--ink);
  background: #ece9e1;
}
.home-page .studio-hero::after { display: none; }
.home-page .studio-hero__inner {
  grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
  grid-template-rows: auto 1fr auto;
  gap: 24px 7vw;
}
.home-page .studio-meta { color: #74766f; }
.home-page .studio-title { align-self: center; }
.home-page .studio-title > p { color: #676a64; }
.home-page .studio-title h1 {
  font-size: clamp(4.6rem, 8.7vw, 9.5rem);
  line-height: .88;
  letter-spacing: -.065em;
}
.home-page .studio-title h1 span { display: block; }
.home-page .studio-title h1 span:first-child {
  color: transparent;
  -webkit-text-stroke: 2px var(--ink);
  text-stroke: 2px var(--ink);
}
.home-page .studio-title h1 span:last-child { margin-left: 7vw; color: var(--sound); }
.home-page .studio-intro { color: var(--ink); border-color: rgba(17,19,18,.35); }
.home-page .studio-intro a { border-color: rgba(17,19,18,.35); }

.hero-console {
  --console-x: 0;
  --console-y: 0;
  position: relative;
  display: grid;
  min-height: 500px;
  padding: 28px;
  grid-column: 2;
  grid-row: 2 / 4;
  align-self: stretch;
  overflow: hidden;
  color: #f2f0e7;
  border: 1px solid #2f322f;
  border-radius: var(--radius);
  background: #151816;
  box-shadow: 0 30px 70px rgba(31,32,29,.18);
  transform: perspective(1000px) rotateX(calc(var(--console-y) * -1.5deg)) rotateY(calc(var(--console-x) * 1.5deg));
  transition: transform .16s ease-out;
}
.hero-console::before {
  position: absolute;
  inset: 0;
  opacity: .38;
  background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size: 52px 52px;
  content: "";
}
.console-header {
  position: relative;
  z-index: 2;
  display: flex;
  align-self: start;
  justify-content: space-between;
  color: rgba(255,255,255,.52);
  font-family: var(--mono);
  font-size: .58rem;
  letter-spacing: .1em;
}
.console-wave {
  position: relative;
  z-index: 2;
  display: flex;
  height: 140px;
  padding: 20px 0;
  align-items: center;
  gap: 6px;
  border-block: 1px solid rgba(255,255,255,.16);
}
.console-wave i {
  width: 100%;
  height: calc(var(--wave, .5) * 100%);
  min-height: 2px;
  background: #d7483f;
  transform-origin: center;
  transition: height .16s ease;
}
.console-wave i:nth-child(2n) { opacity: .45; }
.console-controls { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.console-controls > div { display: grid; place-items: center; gap: 14px; }
.console-controls span,
.console-master > span { color: rgba(255,255,255,.5); font-family: var(--mono); font-size: .53rem; letter-spacing: .1em; }
.console-knob {
  position: relative;
  display: block;
  width: clamp(68px, 7vw, 94px);
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  background: radial-gradient(circle at 38% 35%, #4d514d 0 7%, #292d2a 8% 56%, #101210 57%);
  box-shadow: 0 12px 24px rgba(0,0,0,.28);
  transform: rotate(calc(-35deg + var(--knob-turn, 0) * 110deg));
}
.console-knob::after { position: absolute; top: 8px; left: 50%; width: 2px; height: 25%; background: #e9e7df; content: ""; transform: translateX(-50%); }
.console-master { position: relative; z-index: 2; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; }
.console-master > div { position: relative; height: 4px; background: rgba(255,255,255,.16); }
.console-master > div i { position: absolute; top: -8px; left: calc(68% + var(--console-x) * 14%); width: 14px; height: 20px; border-radius: 3px; background: #e9e7df; box-shadow: 0 4px 8px rgba(0,0,0,.35); }
.console-master b { color: #d7483f; font-family: var(--mono); font-size: .68rem; font-weight: 500; }

.home-page .practice-panel { min-height: 118svh; }
.home-page .practice-panel__sticky { padding-block: 110px 50px; }
.home-page .practice-copy h2 { font-size: clamp(3rem, 5.4vw, 6rem); line-height: 1.02; }
.home-page .practice-panel--sound { background: #171a18; }
.home-page .practice-panel--media {
  --panel-fg: #102134;
  --panel-muted: rgba(16,33,52,.62);
  --panel-line: rgba(16,33,52,.28);
  color: var(--panel-fg);
  background: #cfdce6;
}
.mixer-field { padding: 27px; background: #e5e3dc; color: #171917; border-radius: var(--radius); }
.mixer-field__head { display: flex; height: 34px; justify-content: space-between; border-bottom: 1px solid rgba(20,22,20,.3); font-family: var(--mono); font-size: .55rem; letter-spacing: .08em; }
.mixer-channels { position: absolute; inset: 62px 27px 27px; display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid rgba(20,22,20,.25); }
.mixer-channel { position: relative; display: grid; padding: 13px 10px; grid-template-rows: auto 54px 62px 1fr auto; place-items: center; gap: 9px; border-right: 1px solid rgba(20,22,20,.2); }
.mixer-channel:last-child { border-right: 0; }
.mixer-channel > span,.mixer-channel small { font-family: var(--mono); font-size: .5rem; }
.vu { display: flex; width: 100%; flex-direction: column-reverse; gap: 3px; }
.vu i { display: block; height: 5px; background: #aeb0aa; }
.vu i:nth-child(-n+3) { background: #3c896f; }.vu i:nth-child(n+4) { background: #d0493f; }
.mini-knob { position: relative; width: 45px; height: 45px; border: 1px solid #6c706a; border-radius: 50%; background: #c8c7c0; transform: rotate(calc(-40deg + var(--channel-turn, .5) * 100deg)); }
.mini-knob::after { position: absolute; top: 5px; left: 50%; width: 1px; height: 14px; background: #1a1c1a; content: ""; }
.fader { position: relative; width: 3px; height: 100%; min-height: 125px; background: #8e918a; }
.fader::before { position: absolute; top: 20%; right: -19px; left: -19px; height: 1px; background: rgba(20,22,20,.16); box-shadow: 0 34px 0 rgba(20,22,20,.16), 0 68px 0 rgba(20,22,20,.16), 0 102px 0 rgba(20,22,20,.16); content: ""; }
.fader i { position: absolute; z-index: 2; top: calc(var(--fader, .5) * 80%); left: 50%; width: 24px; height: 42px; border-radius: 4px; background: #232623; box-shadow: 0 4px 9px rgba(0,0,0,.22); transform: translate(-50%, -50%); transition: top .18s linear; }
.mixer-channel:nth-child(3) .fader i { background: #c53d35; }

.camera-field { display: grid; place-items: center; border-radius: var(--radius); background: #e9eef2; }
.camera-field::before { position: absolute; inset: 20px; border: 1px solid rgba(16,33,52,.18); content: ""; }
.camera-body {
  position: relative;
  width: 65%;
  aspect-ratio: 1.55;
  border: 3px solid #102134;
  border-radius: 22px 22px 16px 16px;
  background: #b7cad8;
  box-shadow: 16px 18px 0 rgba(16,33,52,.08);
  transform: translate(calc(var(--field-x, 0) * 12px), calc(var(--field-y, 0) * 10px));
}
.camera-prism { position: absolute; top: -42px; left: 31%; width: 38%; height: 44px; border: 3px solid #102134; border-bottom: 0; border-radius: 10px 10px 0 0; background: #b7cad8; transform: skewX(-10deg); }
.camera-shutter { position: absolute; top: -16px; right: 10%; width: 38px; height: 16px; border: 3px solid #102134; border-bottom: 0; border-radius: 6px 6px 0 0; background: #d44a40; }
.camera-lens { position: absolute; top: 50%; left: 50%; width: 47%; aspect-ratio: 1; border: 3px solid #102134; border-radius: 50%; background: #edf1f3; box-shadow: inset 0 0 0 16px #829dad, inset 0 0 0 18px #102134; transform: translate(-50%,-50%) rotate(calc(var(--field-x, 0) * 7deg)); }
.camera-lens i { position: absolute; inset: 30%; border-radius: 50%; background: #102134; }.camera-lens b { position: absolute; top: 21%; left: 27%; width: 14%; aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.8); }
.camera-view { position: absolute; inset: 15%; }
.camera-view i { position: absolute; width: 16px; height: 16px; border: solid #fff; opacity: .85; }.camera-view i:nth-child(1){top:0;left:0;border-width:2px 0 0 2px}.camera-view i:nth-child(2){top:0;right:0;border-width:2px 2px 0 0}.camera-view i:nth-child(3){right:0;bottom:0;border-width:0 2px 2px 0}.camera-view i:nth-child(4){bottom:0;left:0;border-width:0 0 2px 2px}
.camera-clap { position: absolute; z-index: 3; top: 9%; right: 9%; display: flex; width: 145px; height: 32px; overflow: hidden; border: 2px solid #102134; background: #102134; transform: rotate(calc(-8deg + var(--field-x, 0) * 6deg)); }
.camera-clap i { width: 20%; background: #eef1ed; transform: skewX(-25deg); }.camera-clap i:nth-child(2n) { background: #d44a40; }
.camera-code,.camera-rec { position: absolute; font-family: var(--mono); font-size: .55rem; letter-spacing: .06em; }.camera-code{right:36px;bottom:31px}.camera-rec{left:36px;top:31px}.camera-rec::before{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#d44a40;content:""}

.portals { padding-block: 135px; background: #ebe8df; }
.portals__header { display: grid; margin-bottom: 65px; grid-template-columns: .5fr 1.5fr; gap: 30px 60px; }
.portals__header .eyebrow { padding-top: 10px; color: var(--travel); }
.portals__header h2 { max-width: 1000px; font-size: clamp(2.8rem, 5.5vw, 5.8rem); line-height: 1.02; }
.portal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.portal-card { position: relative; display: grid; min-height: 510px; padding: 24px; overflow: hidden; border: 1px solid #c6c5be; border-radius: var(--radius); background: #f8f6f0; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.portal-card:hover { border-color: var(--card-accent); box-shadow: 0 24px 50px rgba(36,39,36,.12); transform: translateY(-7px); }
.portal-card > span { z-index: 3; font-family: var(--mono); font-size: .56rem; letter-spacing: .08em; }
.portal-card > div:last-child { z-index: 3; align-self: end; }
.portal-card h3 { font-size: clamp(1.7rem, 2.7vw, 3rem); }
.portal-card p { margin: 14px 0 24px; color: var(--muted); }.portal-card div:last-child > b { font-family: var(--mono); font-size: .58rem; font-weight: 500; text-transform: uppercase; }
.portal-card--flight { --card-accent: #7e94ad; }.portal-card--travel { --card-accent: #3272ae; }.portal-card--edu { --card-accent: #37836c; }
.flight-scene,.mountain-scene,.board-scene { position: absolute !important; inset: 65px 20px auto; height: 230px; }
.flight-scene { overflow: hidden; border-bottom: 1px solid #8d9daf; }
.flight-scene b { position: absolute; right: -20%; bottom: 32px; left: -20%; height: 90px; border: 1px dashed #8d9daf; border-color: #8d9daf transparent transparent; border-radius: 50%; transform: rotate(-5deg); }
.flying-plane { position: absolute; z-index: 2; left: 8%; bottom: 70px; color: #355d87; font-size: 2.3rem; font-style: normal; transform: rotate(12deg); }
.portal-card.is-visible .flying-plane { animation: fly-across 7s cubic-bezier(.3,.1,.2,1) .35s infinite; }
.portal-card:hover .flying-plane { animation-duration: 3.4s; }
.mountain-scene { overflow: hidden; border-bottom: 1px solid #6c8eaa; }
.mountain-scene i { position: absolute; bottom: 0; width: 60%; height: 72%; background: #86a7bd; clip-path: polygon(50% 0,100% 100%,0 100%); }.mountain-scene i:nth-child(1){left:-8%;}.mountain-scene i:nth-child(2){right:-3%;height:88%;background:#4f7b9c}.mountain-scene i:nth-child(3){left:28%;height:54%;background:#b5c8d2}.mountain-scene b { position:absolute;top:16px;right:18px;width:42px;height:42px;border-radius:50%;background:#e2b35a; }
.board-scene { display: grid; place-items: center; }
.board-scene > div { position: relative; width: 86%; height: 75%; padding: 28px; color: #e7efe9; border: 10px solid #a27c54; background: #285e4e; box-shadow: 10px 12px 0 rgba(23,25,23,.1); transform: rotate(-2deg); }
.board-scene i { display:block;width:80%;height:2px;margin-bottom:18px;background:rgba(255,255,255,.35); }.board-scene i:nth-child(2){width:55%}.board-scene i:nth-child(3){width:68%}.board-scene b { position:absolute;right:22px;bottom:18px;font-family:var(--display);font-size:1.5rem; }

.home-page .about { padding-block: 120px; background: #dcd8ce; }
.home-page .about-inner { display: grid; grid-template-columns: .3fr .75fr 1.15fr; align-items: center; gap: 32px 55px; }
.home-page .about-inner > .eyebrow { align-self: start; padding-top: 9px; }
.about-photo { position: relative; min-height: 430px; overflow: hidden; border-radius: var(--radius); background: #1c1f1d; }
.about-photo::before { position: absolute; inset: -30%; opacity: .35; background: repeating-linear-gradient(135deg, transparent 0 18px, rgba(255,255,255,.12) 18px 19px); content:""; transform: rotate(7deg); }
.about-photo::after { position:absolute;top:50%;left:50%;width:180px;aspect-ratio:1;border:1px solid rgba(255,255,255,.2);border-radius:50%;content:"";transform:translate(-50%,-50%); }
.about-photo span,.about-photo small { position:absolute;z-index:2;left:24px;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase; }.about-photo span{bottom:45px;color:#fff;font-size:.65rem}.about-photo small{bottom:25px;color:rgba(255,255,255,.48);font-size:.5rem}
.about-content h2 { margin-bottom: 38px; font-size: clamp(2.8rem, 5vw, 5.3rem); }
.home-page .about-content .about-copy { border-top: 2px solid; }
.home-page .about-content .about-tags { margin-top: 28px; }
.home-page .contact-copy h2 { font-size: clamp(3.6rem, 7vw, 7rem); line-height: 1.02; }

@keyframes fly-across {
  0% { left: 8%; transform: translateY(22px) rotate(12deg); }
  48% { transform: translateY(-18px) rotate(5deg); }
  88%, 100% { left: calc(100% + 28px); transform: translateY(-50px) rotate(-3deg); }
}

@media (max-width: 1050px) {
  .home-page .studio-hero__inner { grid-template-columns: 1fr .82fr; gap: 35px; }
  .hero-console { min-height: 450px; padding: 22px; }
  .console-controls { gap: 12px; }
  .home-page .about-inner { grid-template-columns: .25fr .8fr 1fr; gap: 30px; }
}

@media (max-width: 900px) {
  .home-page .studio-hero__inner { padding-top: 93px; grid-template-columns: 1fr; grid-template-rows: auto auto auto auto; }
  .home-page .studio-title { margin-top: 20px; }.home-page .studio-title h1 { font-size: clamp(3.8rem, 15vw, 7rem); }.home-page .studio-title h1 span:last-child { margin-left: 9vw; }
  .home-page .studio-intro { grid-row: 3; }
  .hero-console { min-height: 390px; grid-column: 1; grid-row: 4; }
  .home-page .practice-panel { min-height: 115svh; }
  .mixer-field { min-height: 410px; aspect-ratio: auto; }.mixer-channels { grid-template-columns: repeat(5,1fr); }
  .camera-field { min-height: 390px; aspect-ratio: auto; }
  .portals__header { grid-template-columns: 1fr; }.portals__header h2 { font-size: clamp(2.6rem, 9vw, 4.6rem); }
  .portal-grid { grid-template-columns: 1fr; }.portal-card { min-height: 460px; }
  .home-page .about-inner { grid-template-columns: 1fr 1fr; }.home-page .about-inner > .eyebrow { grid-column:1/-1; }.about-content h2 { font-size: clamp(2.8rem, 8vw, 4.5rem); }
}

@media (max-width: 600px) {
  .home-page .studio-title h1 { font-size: clamp(3.2rem, 16vw, 5rem); }.home-page .studio-title h1 span:first-child { -webkit-text-stroke-width: 1.4px; }
  .hero-console { min-height: 330px; padding: 18px; }.console-wave { height: 82px; }.console-controls { gap: 7px; }.console-knob { width: 58px; }.console-master { gap: 9px; }
  .home-page .practice-copy h2 { font-size: clamp(2.4rem, 10.5vw, 4rem); }
  .mixer-field { min-height: 350px; padding: 16px; }.mixer-channels { inset: 50px 16px 16px; }.mixer-channel { padding-inline: 4px; }.mini-knob { width: 30px; height: 30px; }.mini-knob::after{height:9px}.fader{min-height:100px}.fader i{width:18px;height:34px}
  .camera-field { min-height: 330px; }.camera-body { width: 76%; }.camera-clap { width: 105px; height: 26px; }.camera-code{right:22px;bottom:20px}.camera-rec{left:22px;top:20px}
  .portals { padding-block: 95px; }.portals__header h2 { font-size: clamp(2rem, 9vw, 3.2rem); }.portal-card { min-height: 430px; }
  .home-page .about-inner { grid-template-columns: 1fr; }.about-photo { min-height: 390px; }.about-content h2 { margin-top: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .portal-card.is-visible .flying-plane,
  .portal-card:hover .flying-plane { animation: none; left: 55%; transform: translateY(-15px) rotate(6deg); }
  .hero-console { transform: none; }
}

/* Portfolio homepage — scene-aware navigation and motion study */
.home-page {
  --header-bg: #ece9e1;
  --header-fg: #111312;
  --header-soft: rgba(17,19,18,.08);
  --header-accent: #d8d4c9;
}
.home-page[data-scene="sound"] {
  --header-bg: #171a18;
  --header-fg: #f2f1eb;
  --header-soft: rgba(255,255,255,.1);
  --header-accent: #c9362d;
}
.home-page[data-scene="media"] {
  --header-bg: #d8d6cf;
  --header-fg: #171917;
  --header-soft: rgba(23,25,23,.09);
  --header-accent: #aaa79f;
}
.home-page[data-scene="directions"] {
  --header-bg: #ebe8df;
  --header-fg: #171917;
  --header-soft: rgba(23,25,23,.08);
  --header-accent: #7890aa;
}
.home-page[data-scene="about"] {
  --header-bg: #dcd8ce;
  --header-fg: #171917;
  --header-soft: rgba(23,25,23,.08);
  --header-accent: #568473;
}
.home-page[data-scene="contact"] {
  --header-bg: #0f1110;
  --header-fg: #f2f1eb;
  --header-soft: rgba(255,255,255,.1);
  --header-accent: #d9d5c6;
}
.home-page .site-header {
  top: 0;
  right: 0;
  left: 0;
  min-height: 76px;
  padding-inline: max(18px, calc((100vw - var(--wrap)) / 2));
  color: var(--header-fg);
  border: 0;
  border-radius: 0;
  background: var(--header-bg);
  box-shadow: none;
  backdrop-filter: none;
  transition: color .28s ease, background-color .28s ease;
}
.home-page .site-header .wordmark > span {
  color: var(--header-fg);
  background: var(--header-accent);
}
.home-page .wordmark small { color: currentColor; opacity: .46; }
.home-page .site-nav a:hover,
.home-page .site-nav a[aria-current="page"] { color: var(--header-fg); background: var(--header-soft); }
.home-page .header-cta { color: var(--header-fg); border: 1px solid var(--header-fg); background: transparent; }

.hero-portrait {
  position: relative;
  display: grid;
  min-height: 500px;
  padding: 28px;
  grid-column: 2;
  grid-row: 2 / 4;
  align-items: end;
  overflow: hidden;
  color: #31332f;
  border: 1px solid #c3c0b7;
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(255,255,255,.38), transparent 52%),
    repeating-linear-gradient(90deg, transparent 0 71px, rgba(31,33,30,.045) 71px 72px),
    #d9d5cb;
}
.hero-portrait::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(62%, 290px);
  aspect-ratio: .78;
  border: 1px solid rgba(36,38,35,.3);
  border-radius: 48% 48% 40% 40% / 38% 38% 22% 22%;
  content: "";
  transform: translate(-50%,-53%);
}
.hero-portrait::after {
  position: absolute;
  top: 22%;
  left: 50%;
  width: 23%;
  aspect-ratio: 1;
  border: 1px solid rgba(36,38,35,.24);
  border-radius: 50%;
  content: "";
  transform: translateX(-50%);
}
.hero-portrait__frame { position: absolute; inset: 25px; }
.hero-portrait__frame i { position: absolute; width: 32px; height: 32px; border-color: rgba(31,33,30,.45); border-style: solid; }
.hero-portrait__frame i:nth-child(1){top:0;left:0;border-width:1px 0 0 1px}
.hero-portrait__frame i:nth-child(2){top:0;right:0;border-width:1px 1px 0 0}
.hero-portrait__frame i:nth-child(3){right:0;bottom:0;border-width:0 1px 1px 0}
.hero-portrait__frame i:nth-child(4){bottom:0;left:0;border-width:0 0 1px 1px}
.hero-portrait > div { position: relative; z-index: 2; display: grid; gap: 3px; font-family: var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.hero-portrait b { font-size: .62rem; font-weight: 600; }
.hero-portrait small { color: rgba(31,33,30,.56); font-size: .5rem; }

.home-page .practice-panel--media {
  --panel-fg: #171917;
  --panel-muted: rgba(23,25,23,.6);
  --panel-line: rgba(23,25,23,.25);
  color: var(--panel-fg);
  background: #d8d6cf;
}

.mini-knob { transform: rotate(-18deg); }
.mixer-channel:nth-child(2) .mini-knob { transform: rotate(11deg); }
.mixer-channel:nth-child(3) .mini-knob { transform: rotate(-4deg); }
.mixer-channel:nth-child(4) .mini-knob { transform: rotate(19deg); }
.mixer-channel:nth-child(5) .mini-knob { transform: rotate(-27deg); }
.vu i { opacity: .18; transform-origin: left; animation: vu-pulse 1.25s steps(1,end) infinite; }
.mixer-channel:nth-child(2) .vu i { animation-delay: -.37s; }
.mixer-channel:nth-child(3) .vu i { animation-delay: -.74s; }
.mixer-channel:nth-child(4) .vu i { animation-delay: -1.03s; }
.mixer-channel:nth-child(5) .vu i { animation-delay: -.19s; }
.vu i:nth-child(2) { animation-delay: -.22s; }
.vu i:nth-child(3) { animation-delay: -.51s; }
.vu i:nth-child(4) { animation-delay: -.79s; }
.vu i:nth-child(5) { animation-delay: -1.08s; }
.fader i {
  top: 46%;
  transition: none;
  animation: fader-glide 6.2s cubic-bezier(.45,.05,.55,.95) infinite alternate;
}
.mixer-channel:nth-child(2) .fader i { animation-duration: 7.1s; animation-delay: -2.6s; }
.mixer-channel:nth-child(3) .fader i { animation-duration: 5.4s; animation-delay: -1.2s; }
.mixer-channel:nth-child(4) .fader i { animation-duration: 7.8s; animation-delay: -4.3s; }
.mixer-channel:nth-child(5) .fader i { animation-duration: 6.7s; animation-delay: -3.1s; }

.viewfinder-field {
  display: grid;
  place-items: center;
  color: #20221f;
  border-radius: var(--radius);
  background: #ebe9e3;
}
.viewfinder-field::before {
  position: absolute;
  inset: 19px;
  border: 1px solid rgba(32,34,31,.18);
  content: "";
}
.viewfinder-frame { position: absolute; inset: 13%; border: 1px solid rgba(32,34,31,.32); }
.viewfinder-frame > i { position: absolute; width: 38px; height: 38px; border-color: #20221f; border-style: solid; }
.viewfinder-frame > i:nth-child(1){top:-1px;left:-1px;border-width:2px 0 0 2px}
.viewfinder-frame > i:nth-child(2){top:-1px;right:-1px;border-width:2px 2px 0 0}
.viewfinder-frame > i:nth-child(3){right:-1px;bottom:-1px;border-width:0 2px 2px 0}
.viewfinder-frame > i:nth-child(4){bottom:-1px;left:-1px;border-width:0 0 2px 2px}
.viewfinder-frame > span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 25%;
  aspect-ratio: 1.45;
  border: 1px solid #20221f;
  transform: translate(calc(-50% + var(--field-x, 0) * 18px), calc(-50% + var(--field-y, 0) * 12px));
  transition: transform .18s ease-out;
}
.viewfinder-frame > span::before,
.viewfinder-frame > span::after { position:absolute;top:50%;left:50%;background:#20221f;content:"";transform:translate(-50%,-50%); }
.viewfinder-frame > span::before { width: 22px; height: 1px; }
.viewfinder-frame > span::after { width: 1px; height: 22px; }
.viewfinder-frame > span b { position:absolute;inset:33%;border:1px solid rgba(32,34,31,.45);border-radius:50%; }
.viewfinder-frame > em { position:absolute;top:50%;right:0;left:0;height:1px;background:rgba(32,34,31,.16); }
.viewfinder-code,
.viewfinder-mark { position:absolute;z-index:2;font-family:var(--mono);font-size:.55rem;font-style:normal;letter-spacing:.07em; }
.viewfinder-code { right:34px; bottom:30px; }
.viewfinder-mark { top:30px; left:34px; color:#a93832; }

.flight-scene { border-bottom: 0; }
.flight-scene svg { position:absolute;inset:0;width:100%;height:100%;overflow:visible; }
.flight-scene path { fill:none;stroke:#8d9daf;stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;animation:route-draw 8s linear infinite; }
.flying-plane {
  top: 85%;
  bottom: auto;
  left: 2%;
  font-size: 2rem;
  transform: translate(-50%,-50%) rotate(-18deg);
}
.portal-card.is-visible .flying-plane { animation: plane-track 8s linear infinite; }
.portal-card:hover .flying-plane { animation-duration: 5s; }
.portal-card:hover .flight-scene path { animation-duration: 5s; }
.flight-scene.is-scripted path,
.portal-card.is-visible .flight-scene.is-scripted .flying-plane,
.portal-card:hover .flight-scene.is-scripted .flying-plane { animation: none; }

.mountain-scene {
  border: 1px solid rgba(60,75,88,.18);
  border-radius: 10px;
  background: linear-gradient(#cddde6,#f2e4ca);
  animation: sky-cycle 12s ease-in-out infinite;
}
.mountain-scene::before {
  position:absolute;
  inset:0;
  opacity:0;
  background-image:radial-gradient(circle at 18% 20%,#fff 0 1px,transparent 2px),radial-gradient(circle at 42% 14%,#fff 0 1px,transparent 2px),radial-gradient(circle at 72% 25%,#fff 0 1px,transparent 2px),radial-gradient(circle at 88% 12%,#fff 0 1px,transparent 2px);
  background-size:120px 80px;
  content:"";
  animation:stars-cycle 12s ease-in-out infinite;
}
.mountain-scene i { z-index:2; transition:background-color .4s ease;animation:mountain-cycle 12s ease-in-out infinite; }
.mountain-scene b {
  z-index:1;
  overflow:hidden;
  background:#e2b35a;
  box-shadow:0 0 24px rgba(226,179,90,.34);
  animation:celestial-cycle 12s ease-in-out infinite;
}
.mountain-scene b::after {
  position:absolute;
  inset:5px;
  border-radius:50%;
  background:#222d43;
  content:"";
  opacity:0;
  transform:translate(18px,-8px);
  animation:moon-cut 12s ease-in-out infinite;
}

.board-scene i { width:0; transform-origin:left; animation:chalk-write 6s ease-in-out infinite; }
.board-scene i:nth-child(2) { width:0; animation-delay:.55s; }
.board-scene i:nth-child(3) { width:0; animation-delay:1.05s; }
.board-scene b { opacity:1; animation:none; }

@keyframes vu-pulse {
  0%,100% { opacity:.18; transform:scaleX(.84); }
  18%,42% { opacity:1; transform:scaleX(1); }
  57% { opacity:.38; transform:scaleX(.9); }
  72%,86% { opacity:.82; transform:scaleX(.97); }
}
@keyframes fader-glide {
  0% { top:20%; }
  28% { top:61%; }
  52% { top:38%; }
  78% { top:72%; }
  100% { top:27%; }
}
@keyframes route-draw {
  0% { stroke-dashoffset:1; }
  82%,100% { stroke-dashoffset:0; }
}
@keyframes plane-track {
  0% { top:85%; left:2%; transform:translate(-50%,-50%) rotate(-17deg); }
  22% { top:72%; left:21%; transform:translate(-50%,-50%) rotate(-24deg); }
  45% { top:54%; left:49%; transform:translate(-50%,-50%) rotate(7deg); }
  67% { top:55%; left:72%; transform:translate(-50%,-50%) rotate(-17deg); }
  82% { top:29%; left:87%; transform:translate(-50%,-50%) rotate(-34deg); }
  100% { top:12%; left:102%; transform:translate(-50%,-50%) rotate(-34deg); }
}
@keyframes sky-cycle {
  0%,34% { background:linear-gradient(#cddde6,#f2e4ca); }
  58%,86% { background:linear-gradient(#17243a,#364965); }
  100% { background:linear-gradient(#cddde6,#f2e4ca); }
}
@keyframes stars-cycle { 0%,38%,100%{opacity:0}58%,86%{opacity:.72} }
@keyframes mountain-cycle { 0%,38%,100%{filter:none}58%,86%{filter:saturate(.45) brightness(.52)} }
@keyframes celestial-cycle {
  0%,34% { background:#e2b35a;box-shadow:0 0 24px rgba(226,179,90,.34);transform:translate(0,0); }
  58%,86% { background:#eeeade;box-shadow:0 0 25px rgba(238,234,222,.22);transform:translate(-210px,12px); }
  100% { background:#e2b35a;box-shadow:0 0 24px rgba(226,179,90,.34);transform:translate(0,0); }
}
@keyframes moon-cut { 0%,40%,100%{opacity:0}58%,86%{opacity:1} }
.board-scene i:nth-child(2) { --chalk-width:55%; }
.board-scene i:nth-child(3) { --chalk-width:68%; }
@keyframes chalk-write {
  0%,12% { width:0; opacity:.35; }
  40%,82% { width:var(--chalk-width,80%); opacity:1; }
  100% { width:var(--chalk-width,80%); opacity:.35; }
}

@media (max-width: 1050px) {
  .hero-portrait { min-height:450px; }
}
@media (max-width: 900px) {
  .home-page .site-header { top:0;right:0;left:0;min-height:68px;padding-inline:14px; }
  .home-page .menu-toggle { color:var(--header-fg); }
  .home-page .site-nav { inset:68px 0 auto;padding:14px;color:var(--header-fg);border:0;border-radius:0;background:var(--header-bg);box-shadow:0 18px 35px rgba(0,0,0,.12); }
  .hero-portrait { min-height:390px;grid-column:1;grid-row:4; }
}
@media (max-width: 600px) {
  .hero-portrait { min-height:330px;padding:18px; }
  .hero-portrait__frame { inset:18px; }
  .viewfinder-frame { inset:15%; }
  .viewfinder-code { right:22px;bottom:20px; }
  .viewfinder-mark { top:20px;left:22px; }
}
@media (prefers-reduced-motion: reduce) {
  .vu i,.fader i,.flight-scene path,.portal-card.is-visible .flying-plane,.portal-card:hover .flying-plane,
  .mountain-scene,.mountain-scene::before,.mountain-scene i,.mountain-scene b,.mountain-scene b::after,.board-scene i { animation:none; }
  .flight-scene path { stroke-dashoffset:0; }
  .flying-plane,.portal-card.is-visible .flying-plane,.portal-card:hover .flying-plane { top:52%;left:62%;transform:translate(-50%,-50%) rotate(-12deg); }
  .vu i { opacity:.7; }
  .fader i { top:46%; }
  .board-scene i { width:var(--chalk-width,80%); }
}

/* Portfolio homepage — restrained motion edition */
.vu i,
.vu i:nth-child(-n+3),
.vu i:nth-child(n+4) {
  opacity: .16;
  background: #9b9d98;
  transform: none;
  animation: none;
}
.mixer-channel:nth-child(1) .vu i:nth-child(-n+2),
.mixer-channel:nth-child(2) .vu i:nth-child(-n+3),
.mixer-channel:nth-child(3) .vu i:nth-child(-n+2),
.mixer-channel:nth-child(4) .vu i:nth-child(-n+3),
.mixer-channel:nth-child(5) .vu i:nth-child(-n+2) { opacity: .72; }
.mixer-channel:nth-child(1) .vu i:nth-child(3) { animation: meter-step 11s steps(1,end) -2s infinite; }
.mixer-channel:nth-child(2) .vu i:nth-child(4) { animation: meter-step 13s steps(1,end) -8s infinite; }
.mixer-channel:nth-child(3) .vu i:nth-child(3) { animation: meter-step 12s steps(1,end) -5s infinite; }
.mixer-channel:nth-child(4) .vu i:nth-child(4) { animation: meter-step 14s steps(1,end) -10s infinite; }
.mixer-channel:nth-child(5) .vu i:nth-child(3) { animation: meter-step 10s steps(1,end) -6s infinite; }
.fader i {
  top: calc(var(--fader, .45) * 80%);
  background: #30322f;
  animation: none;
  transition: top 1.35s cubic-bezier(.22,.65,.28,1);
}
.mixer-channel:nth-child(3) .fader i { background: #30322f; }

.practice-panel--media .practice-copy h2 {
  max-width: 100%;
  font-size: clamp(2.7rem, 4vw, 4.6rem);
}
.viewfinder-frame::before,
.viewfinder-frame::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
}
.viewfinder-frame::before {
  background: linear-gradient(90deg,
    transparent 0 33.2%, rgba(32,34,31,.18) 33.2% 33.5%,
    transparent 33.5% 66.5%, rgba(32,34,31,.18) 66.5% 66.8%, transparent 66.8% 100%);
}
.viewfinder-frame::after {
  background: linear-gradient(180deg,
    transparent 0 33.2%, rgba(32,34,31,.18) 33.2% 33.5%,
    transparent 33.5% 66.5%, rgba(32,34,31,.18) 66.5% 66.8%, transparent 66.8% 100%);
}
.viewfinder-frame > em { display: none; }

.mountain-scene,
.mountain-scene::before,
.mountain-scene i,
.mountain-scene b,
.mountain-scene b::after { animation: none; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene { animation: sky-cycle 12s ease-in-out infinite; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene::before { animation: stars-cycle 12s ease-in-out infinite; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene i { animation: mountain-cycle 12s ease-in-out infinite; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene b { animation: celestial-cycle 12s ease-in-out infinite; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene b::after { animation: moon-cut 12s ease-in-out infinite; }

.board-scene i,
.board-scene i:nth-child(2),
.board-scene i:nth-child(3) {
  width: var(--chalk-width, 80%);
  opacity: .42;
  animation: none;
}
.portal-card--edu:is(:hover,:focus-visible) .board-scene i {
  animation: chalk-write 3.8s ease-out both;
}
.portal-card--edu:is(:hover,:focus-visible) .board-scene i:nth-child(2) { animation-delay: .35s; }
.portal-card--edu:is(:hover,:focus-visible) .board-scene i:nth-child(3) { animation-delay: .7s; }
.board-scene b { opacity: 1; animation: none; }

.home-page .contact-copy h2 {
  white-space: nowrap;
  font-size: clamp(2.8rem, 5vw, 5.7rem);
}

@keyframes meter-step {
  0%, 88%, 100% { opacity: .16; }
  89%, 94% { opacity: .7; }
}

@media (max-width: 900px) {
  .practice-panel--media .practice-copy h2 { font-size: clamp(2.7rem, 11vw, 4.4rem); }
  .home-page .contact-copy h2 { font-size: clamp(2.7rem, 12vw, 4.8rem); }
}

@media (prefers-reduced-motion: reduce) {
  .mixer-channel .vu i { animation: none; }
  .portal-card--travel:is(:hover,:focus-visible) .mountain-scene,
  .portal-card--travel:is(:hover,:focus-visible) .mountain-scene::before,
  .portal-card--travel:is(:hover,:focus-visible) .mountain-scene i,
  .portal-card--travel:is(:hover,:focus-visible) .mountain-scene b,
  .portal-card--travel:is(:hover,:focus-visible) .mountain-scene b::after,
  .portal-card--edu:is(:hover,:focus-visible) .board-scene i { animation: none; }
}

/* Portfolio homepage and project archive — stable graphic edition */
.practice-visual,
.viewfinder-frame > span { transform: none; }
.practice-visual { transition: none; }

.portal-card,
.portal-card:hover {
  transform: none;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.portal-card h3 { text-rendering: geometricPrecision; }
.portals__header { grid-template-columns: 1fr; gap: 16px; }
.portals__header .eyebrow { padding-top: 0; }
.portals__header h2 { max-width: 980px; }

/* Category mark in the navigation. */
.site-header .wordmark > span {
  position: relative;
  display: block;
  width: 34px;
  height: 34px;
  color: var(--category-mark, #59605b);
  border: 0;
  border-radius: 0;
  background: transparent !important;
  font-size: 0;
}
.site-header .wordmark > span::before,
.site-header .wordmark > span::after {
  position: absolute;
  content: "";
}
/* Notebook — default and gateway sections. */
.site-header .wordmark > span::before {
  top: 4px;
  left: 7px;
  width: 20px;
  height: 25px;
  border: 1.5px solid currentColor;
  border-radius: 2px;
  box-shadow: inset 4px 0 0 rgba(89,96,91,.12);
}
.site-header .wordmark > span::after {
  top: 11px;
  left: 14px;
  width: 9px;
  height: 1px;
  background: currentColor;
  box-shadow: 0 5px 0 currentColor, 0 10px 0 currentColor;
}
.home-page { --category-mark: #555c57; }
.home-page[data-scene="sound"],
.theme-sound { --category-mark: var(--sound); }
.home-page[data-scene="media"] { --category-mark: #696c67; }
.home-page[data-scene="directions"] { --category-mark: #55789f; }
.home-page[data-scene="about"] { --category-mark: #3e806d; }
.home-page[data-scene="contact"] { --category-mark: #ded78c; }
/* Speaker — sound sections. */
.home-page[data-scene="sound"] .site-header .wordmark > span::before,
.theme-sound .site-header .wordmark > span::before {
  top: 10px;
  left: 4px;
  width: 8px;
  height: 14px;
  border: 1.5px solid currentColor;
  border-radius: 2px;
  box-shadow: none;
}
.home-page[data-scene="sound"] .site-header .wordmark > span::after,
.theme-sound .site-header .wordmark > span::after {
  top: 7px;
  left: 13px;
  width: 14px;
  height: 20px;
  border: 1.5px solid currentColor;
  border-left: 0;
  border-radius: 0 18px 18px 0;
  background: transparent;
  box-shadow: inset -5px 0 0 -4px currentColor;
}
/* Camera — photography. */
.home-page[data-scene="media"] .site-header .wordmark > span::before {
  top: 9px;
  left: 3px;
  width: 27px;
  height: 17px;
  border: 1.5px solid currentColor;
  border-radius: 3px;
  box-shadow: none;
}
.home-page[data-scene="media"] .site-header .wordmark > span::after {
  top: 13px;
  left: 12px;
  width: 8px;
  height: 8px;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  background: transparent;
  box-shadow: -5px -7px 0 -3px currentColor;
}
.site-footer .wordmark > span { display: none; }
.site-footer > p:first-of-type { color: rgba(255,255,255,.68); text-transform: none; letter-spacing: .02em; }

/* Larger grayscale meters; faders still move only from scroll. */
.mixer-channel {
  grid-template-rows: auto minmax(160px, 1.55fr) minmax(118px, 1fr) auto;
  gap: 12px;
}
.vu { height: 100%; gap: 4px; }
.mixer-channel .vu i,
.mixer-channel .vu i:nth-child(-n+3),
.mixer-channel .vu i:nth-child(n+4) {
  min-height: 4px;
  height: auto;
  flex: 1;
  opacity: .13;
  background: #c5c6c2;
  animation: none;
}
.mixer-channel .vu i:nth-child(n+9) { background: #555753; }
.mixer-channel:nth-child(1) .vu i:nth-child(-n+7),
.mixer-channel:nth-child(2) .vu i:nth-child(-n+8),
.mixer-channel:nth-child(3) .vu i:nth-child(-n+6),
.mixer-channel:nth-child(4) .vu i:nth-child(-n+7),
.mixer-channel:nth-child(5) .vu i:nth-child(-n+8) { opacity: .72; }
.mixer-channel:nth-child(1) .vu i:nth-child(8) { animation: meter-step 12s steps(1,end) -3s infinite; }
.mixer-channel:nth-child(2) .vu i:nth-child(9) { animation: meter-step 14s steps(1,end) -8s infinite; }
.mixer-channel:nth-child(3) .vu i:nth-child(7) { animation: meter-step 13s steps(1,end) -6s infinite; }
.mixer-channel:nth-child(4) .vu i:nth-child(8) { animation: meter-step 15s steps(1,end) -10s infinite; }
.mixer-channel:nth-child(5) .vu i:nth-child(9) { animation: meter-step 12s steps(1,end) -7s infinite; }
.mini-knob { display: none; }

/* Richer camera viewfinder without moving the complete graphic. */
.viewfinder-frame { background: radial-gradient(circle at center, rgba(255,255,255,.22), transparent 50%); }
.focus-points {
  position: absolute;
  inset: 24% 27%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  place-items: center;
}
.focus-points b { width: 8px; height: 6px; border: 1px solid rgba(32,34,31,.5); }
.focus-points b:nth-child(5) { width: 12px; height: 9px; border-color: #a93832; }
.viewfinder-histogram {
  position: absolute;
  right: 34px;
  bottom: 59px;
  display: flex;
  width: 82px;
  height: 31px;
  align-items: end;
  gap: 3px;
  border-bottom: 1px solid rgba(32,34,31,.4);
}
.viewfinder-histogram i { width: 100%; height: var(--hist, 25%); background: rgba(32,34,31,.48); }
.viewfinder-histogram i:nth-child(2){--hist:42%}.viewfinder-histogram i:nth-child(3){--hist:72%}.viewfinder-histogram i:nth-child(4){--hist:95%}.viewfinder-histogram i:nth-child(5){--hist:78%}.viewfinder-histogram i:nth-child(6){--hist:53%}.viewfinder-histogram i:nth-child(7){--hist:34%}.viewfinder-histogram i:nth-child(8){--hist:18%}
.viewfinder-mode { position:absolute;bottom:30px;left:34px;font-family:var(--mono);font-size:.52rem;letter-spacing:.06em; }
.viewfinder-battery { position:absolute;top:29px;right:36px;width:27px;height:12px;border:1px solid #20221f; }
.viewfinder-battery::before { position:absolute;top:3px;right:-4px;width:3px;height:5px;background:#20221f;content:""; }
.viewfinder-battery::after { position:absolute;inset:2px 7px 2px 2px;background:#20221f;content:""; }

/* Day turns to night immediately on hover: sun exits right, moon enters left. */
.mountain-scene,
.mountain-scene::before,
.mountain-scene i,
.mountain-scene .sun,
.mountain-scene .moon { animation: none; transition: background .8s ease, opacity .65s ease, filter .8s ease, transform .8s cubic-bezier(.3,.7,.2,1); }
.mountain-scene .sun,
.mountain-scene .moon { position: absolute; top: 16px; width: 42px; height: 42px; border-radius: 50%; }
.mountain-scene .sun { right: 18px; left: auto; opacity: 1; background: #e2b35a; box-shadow: 0 0 24px rgba(226,179,90,.34); }
.mountain-scene .sun::after { display: none; }
.mountain-scene .moon { right: auto; left: -52px; opacity: 0; overflow: visible; background: #eeeade; box-shadow: 0 0 24px rgba(238,234,222,.2); }
.mountain-scene .moon::before,
.mountain-scene .moon::after { position:absolute;border-radius:50%;background:#c9c7bf;content:"";opacity:.55; }
.mountain-scene .moon::before { top:8px;left:9px;width:8px;height:8px; }
.mountain-scene .moon::after { right:7px;bottom:9px;width:11px;height:11px;inset:auto;transform:none;animation:none; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene { background: linear-gradient(#17243a,#364965); animation: none; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene::before { opacity: .72; animation: none; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene i { filter: saturate(.45) brightness(.52); animation: none; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene .sun { opacity: 0; transform: translateX(84px); animation: none; }
.portal-card--travel:is(:hover,:focus-visible) .mountain-scene .moon { opacity: 1; transform: translateX(76px); animation: none; }

.flight-scene path { animation-duration: 4.6s; }

/* Project archive mirrors the homepage typography and cards. */
.section-page .site-header {
  top: 0;
  right: 0;
  left: 0;
  min-height: 76px;
  padding-inline: max(18px, calc((100vw - var(--wrap)) / 2));
  color: var(--ink);
  border: 0;
  border-radius: 0;
  background: var(--paper);
  box-shadow: none;
  backdrop-filter: none;
}
.section-page .header-cta { color:var(--ink);border:1px solid var(--ink);background:transparent; }
.section-page .site-nav a:hover,
.section-page .site-nav a[aria-current="page"] { color:var(--ink);background:rgba(17,19,18,.08); }
.project-page { background:#ece9e1; }
.project-page h1,
.project-page h2,
.project-page h3 { font-family:var(--display);font-weight:700;letter-spacing:-.055em; }
.project-page .page-intro { padding-block:70px 90px;background:#ece9e1; }
.project-page .page-intro-grid { min-height:66svh;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr); }
.project-page .page-intro h1 { font-size:clamp(4.6rem,8vw,8rem);line-height:.9; }
.project-page .page-intro-copy { border-top:1px solid rgba(17,19,18,.35); }
.project-page .page-intro-copy p { font-family:var(--sans);font-size:clamp(1rem,1.55vw,1.2rem);font-weight:400;line-height:1.55; }
.project-page .archive { width:100%;padding:105px max(32px,calc((100vw - var(--wrap))/2)) 130px;background:#e3e0d8; }
.project-page .archive-tools { margin-bottom:50px;border-color:#bdbab2; }
.project-page .archive-tools h2 { max-width:900px;font-size:clamp(2.7rem,5vw,5rem); }
.project-page .post-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.project-page .post-card {
  min-height:410px;
  padding:28px;
  border:1px solid #c4c1b9;
  border-radius:18px;
  background:#f7f5ef;
  transition:border-color .22s ease,box-shadow .22s ease;
}
.project-page .post-card:hover { border-color:var(--sound);box-shadow:0 22px 45px rgba(35,32,29,.1),inset 4px 0 0 var(--sound);transform:none; }
.project-page .post-meta { font-family:var(--mono);font-weight:500; }
.project-page .post-card h2 { font-size:clamp(2rem,3.6vw,4rem);line-height:1.02; }
.project-page .post-card > p { font-size:.9rem; }
.project-page .post-link { font-family:var(--mono);font-size:.58rem;font-weight:500;text-transform:uppercase; }

@media (max-width: 900px) {
  .mixer-channel { grid-template-rows:auto minmax(105px,1.4fr) minmax(95px,1fr) auto;gap:7px; }
  .mixer-channel .vu i { min-height:3px; }
  .viewfinder-histogram { right:22px;bottom:49px;width:68px; }
  .viewfinder-mode { left:22px;bottom:20px; }
  .viewfinder-battery { top:20px;right:24px; }
  .project-page .page-intro-grid { grid-template-columns:1fr; }
  .project-page .page-intro h1 { font-size:clamp(2.8rem,12vw,4.2rem); }
  .project-page .post-grid { grid-template-columns:1fr; }
  .section-page .site-header { min-height:68px;padding-inline:14px; }
  .section-page .menu-toggle { color:var(--ink); }
  .section-page .site-nav { inset:68px 0 auto;padding:14px;color:var(--ink);border:0;border-radius:0;background:var(--paper);box-shadow:0 18px 35px rgba(0,0,0,.12); }
}

@media (prefers-reduced-motion: reduce) {
  .mountain-scene,.mountain-scene::before,.mountain-scene i,.mountain-scene .sun,.mountain-scene .moon { transition:none; }
}

/* v18 — flight finish, calibrated console and rebuilt project archive */
.flight-scene path,
.flight-scene .flying-plane { opacity:1;transition:opacity .5s ease; }
.flight-scene.is-fading path,
.flight-scene.is-fading .flying-plane { opacity:0; }

/* Twelve-segment meter: green operating range, amber headroom, red peak. */
.mixer-channel {
  grid-template-rows:auto minmax(108px,.9fr) minmax(158px,1.4fr) auto;
  gap:11px;
}
.mixer-channel .vu { gap:3px; }
.mixer-channel .vu i,
.mixer-channel .vu i:nth-child(-n+3),
.mixer-channel .vu i:nth-child(n+4) {
  min-height:3px;
  background:#4d8a68;
  opacity:.14;
}
.mixer-channel .vu i:nth-child(n+8):nth-child(-n+10) { background:#c58a45; }
.mixer-channel .vu i:nth-child(n+11) { background:#b84a43; }
.mixer-channel:nth-child(1) .vu i:nth-child(-n+6),
.mixer-channel:nth-child(2) .vu i:nth-child(-n+7),
.mixer-channel:nth-child(3) .vu i:nth-child(-n+6),
.mixer-channel:nth-child(4) .vu i:nth-child(-n+7),
.mixer-channel:nth-child(5) .vu i:nth-child(-n+6) { opacity:.76; }
.mixer-channel:nth-child(1) .vu i:nth-child(7) { animation:meter-step 7s steps(1,end) -2s infinite; }
.mixer-channel:nth-child(2) .vu i:nth-child(8) { animation:meter-step 8.5s steps(1,end) -5s infinite; }
.mixer-channel:nth-child(3) .vu i:nth-child(7) { animation:meter-step 7.8s steps(1,end) -4s infinite; }
.mixer-channel:nth-child(4) .vu i:nth-child(8) { animation:meter-step 9s steps(1,end) -6s infinite; }
.mixer-channel:nth-child(5) .vu i:nth-child(7) { animation:meter-step 7.4s steps(1,end) -3s infinite; }
.fader { width:4px;min-height:150px; }
.fader::before { right:-23px;left:-23px; }
.fader i { width:30px;height:50px;border-radius:5px; }

/* Projects — the sound chapter continues the visual language of the homepage. */
.project-page { padding-top:0;background:#e3e0d8; }
.project-page .scroll-meter i { background:var(--sound); }
.project-page .site-header { transition:color .28s ease,background-color .28s ease; }
.project-page[data-scene="sound"] .site-header {
  color:#f2f1eb;
  background:#171a18;
}
.project-page[data-scene="sound"] .header-cta { color:#f2f1eb;border-color:#f2f1eb; }
.project-page[data-scene="sound"] .site-nav a:hover,
.project-page[data-scene="sound"] .site-nav a[aria-current="page"] { color:#f2f1eb;background:rgba(255,255,255,.1); }
.project-page[data-scene="projects"] .site-header { color:var(--ink);background:#e3e0d8; }
.project-page[data-scene="projects"] .header-cta { color:var(--ink);border-color:var(--ink); }
.project-page[data-scene="projects"] .site-nav a:hover,
.project-page[data-scene="projects"] .site-nav a[aria-current="page"] { color:var(--ink);background:rgba(17,19,18,.08); }
.project-hero { min-height:100svh;color:#f2f1eb;background:#171a18; }
.project-hero__inner {
  display:grid;
  min-height:100svh;
  padding-top:118px;
  padding-bottom:66px;
  grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);
  grid-template-rows:auto 1fr auto;
  align-items:center;
  gap:34px 70px;
}
.project-hero__meta {
  display:flex;
  margin:0;
  grid-column:1/-1;
  justify-content:space-between;
  color:rgba(255,255,255,.48);
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.project-hero__title > p { margin:0 0 23px;color:rgba(255,255,255,.48);font-family:var(--mono);font-size:.58rem;letter-spacing:.11em;text-transform:uppercase; }
.project-page .project-hero__title h1 { margin:0;font-size:clamp(4rem,5.7vw,6.4rem);line-height:.83; }
.project-hero__title h1 span { display:block; }
.project-hero__title h1 span:first-child { color:transparent;-webkit-text-stroke:1.5px #f2f1eb;text-stroke:1.5px #f2f1eb; }
.project-hero__title h1 span:last-child { margin-left:3vw;color:var(--sound); }
.project-spectrum {
  position:relative;
  display:grid;
  min-height:390px;
  padding:27px;
  align-content:space-between;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:#202320;
}
.project-spectrum::before { position:absolute;inset:0;opacity:.4;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:52px 52px;content:""; }
.project-spectrum > span,.project-spectrum > b { position:relative;z-index:2;color:rgba(255,255,255,.5);font-family:var(--mono);font-size:.52rem;font-weight:500;letter-spacing:.09em; }
.project-spectrum > b { text-align:right; }
.project-spectrum > div { position:relative;z-index:2;display:flex;height:190px;align-items:end;gap:8px;border-bottom:1px solid rgba(255,255,255,.18); }
.project-spectrum i { width:100%;height:var(--bar,42%);background:#4d8a68; }
.project-spectrum i:nth-child(1){--bar:22%}.project-spectrum i:nth-child(2){--bar:37%}.project-spectrum i:nth-child(3){--bar:31%}.project-spectrum i:nth-child(4){--bar:55%}.project-spectrum i:nth-child(5){--bar:66%}.project-spectrum i:nth-child(6){--bar:58%}.project-spectrum i:nth-child(7){--bar:72%}.project-spectrum i:nth-child(8){--bar:62%;background:#c58a45}.project-spectrum i:nth-child(9){--bar:78%;background:#c58a45}.project-spectrum i:nth-child(10){--bar:68%;background:#c58a45}.project-spectrum i:nth-child(11){--bar:84%;background:#b84a43}.project-spectrum i:nth-child(12){--bar:74%;background:#b84a43}
.project-hero__copy { display:grid;max-width:620px;grid-column:1/-1;grid-template-columns:1fr auto;align-items:end;gap:35px; }
.project-hero__copy p { max-width:520px;margin:0;color:rgba(255,255,255,.63);font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.55; }
.project-hero__copy a { display:flex;min-width:245px;padding-block:13px;justify-content:space-between;border-block:1px solid rgba(255,255,255,.3);font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase; }
.project-page .project-archive { width:100%;padding:105px 0 130px;background:#e3e0d8; }
.project-page .project-archive .archive-tools { margin-bottom:58px;border-color:#bdbab2; }
.project-page .project-archive .archive-tools h2 { max-width:860px;font-size:clamp(2.8rem,5.4vw,5.6rem); }
.project-page .project-archive .post-grid { display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px; }
.project-page .project-archive .post-card { min-height:430px;padding:28px;border:1px solid #c4c1b9;border-radius:18px;background:#f7f5ef; }
.project-page .project-archive .post-card:nth-child(1),
.project-page .project-archive .post-card:nth-child(4) { grid-column:span 7; }
.project-page .project-archive .post-card:nth-child(2),
.project-page .project-archive .post-card:nth-child(3) { grid-column:span 5; }
.project-page .project-archive .post-card::before { position:absolute;right:28px;bottom:23px;width:86px;height:38px;opacity:.12;background:repeating-linear-gradient(90deg,var(--sound) 0 3px,transparent 3px 9px);content:""; }
.project-page .project-archive .post-card:hover { border-color:var(--sound);box-shadow:0 22px 45px rgba(35,32,29,.1),inset 4px 0 0 var(--sound);transform:none; }
.project-page .project-number { position:absolute;top:21px;right:25px;color:rgba(17,19,18,.12);font-family:var(--display);font-size:clamp(3.6rem,6vw,6.4rem);line-height:1; }
.project-page .project-archive .post-meta { position:relative;z-index:2;padding-right:100px;font-family:var(--mono);font-weight:500; }
.project-page .project-archive .post-card h2 { position:relative;z-index:2;font-size:clamp(2.1rem,4.1vw,4.4rem);line-height:.98; }
.project-page .project-archive .post-card > p,
.project-page .project-archive .post-link { position:relative;z-index:2; }

@media (max-width:900px) {
  .mixer-channel { grid-template-rows:auto minmax(78px,.8fr) minmax(126px,1.3fr) auto;gap:7px; }
  .fader { min-height:120px; }
  .fader i { width:23px;height:40px; }
  .project-page[data-scene="sound"] .menu-toggle { color:#f2f1eb; }
  .project-page[data-scene="sound"] .site-nav { color:#f2f1eb;background:#171a18; }
  .project-hero__inner { padding-top:105px;grid-template-columns:1fr;grid-template-rows:auto auto auto auto;gap:42px; }
  .project-page .project-hero__title h1 { font-size:clamp(3.2rem,13vw,5.5rem); }
  .project-spectrum { min-height:300px; }
  .project-spectrum > div { height:135px; }
  .project-hero__copy { grid-template-columns:1fr;gap:25px; }
  .project-hero__copy a { min-width:0; }
  .project-page .project-archive .post-grid { grid-template-columns:1fr; }
  .project-page .project-archive .post-card:nth-child(n) { grid-column:auto; }
}

@media (max-width:600px) {
  .mixer-field__head span:last-child { font-size:.45rem; }
  .project-hero__inner { padding-top:96px;padding-bottom:52px; }
  .project-page .project-hero__title h1 { font-size:clamp(2.65rem,12vw,4.2rem); }
  .project-spectrum { min-height:250px;padding:20px; }
  .project-spectrum > div { height:105px;gap:5px; }
  .project-page .project-archive { padding:82px 0 100px; }
  .project-page .project-archive .post-card { min-height:360px; }
}

@media (prefers-reduced-motion:reduce) {
  .flight-scene path,.flight-scene .flying-plane { transition:none; }
}

/* v19 — shared public-site system */
/* The opening scene deliberately has no category icon. */
.home-page[data-scene="intro"] .site-header .wordmark > span { display:none; }

/* Conventional volume symbol: speaker body pointing right with a sound wave. */
.home-page[data-scene="sound"] .site-header .wordmark > span::before,
.theme-sound .site-header .wordmark > span::before {
  top:8px;
  left:3px;
  width:19px;
  height:19px;
  border:0;
  border-radius:0;
  background:currentColor;
  box-shadow:none;
  clip-path:polygon(0 35%,32% 35%,72% 4%,72% 96%,32% 65%,0 65%);
}
.home-page[data-scene="sound"] .site-header .wordmark > span::after,
.theme-sound .site-header .wordmark > span::after {
  top:7px;
  left:19px;
  width:10px;
  height:20px;
  border:1.5px solid currentColor;
  border-left:0;
  border-radius:0 50% 50% 0;
  background:transparent;
  box-shadow:4px 0 0 -2.5px currentColor;
}

/* Meter state is supplied by script; illuminated segments are always contiguous. */
.mixer-channel .vu i,
.mixer-channel .vu i:nth-child(n) {
  opacity:.11 !important;
  animation:none !important;
  transition:opacity .1s linear,filter .1s linear;
}
.mixer-channel .vu i:nth-child(n).is-active { opacity:.88 !important;filter:saturate(1.08) brightness(1.03); }

/* QLab-inspired show-control view for the sound-project landing page. */
.project-cues {
  position:relative;
  display:grid;
  min-height:390px;
  overflow:hidden;
  grid-template-rows:auto 1fr auto;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:#202320;
  box-shadow:0 28px 60px rgba(0,0,0,.18);
}
.project-cues__head,.project-cues__footer { position:relative;z-index:2;display:flex;padding:18px 20px;align-items:center;justify-content:space-between;color:rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.12);font-family:var(--mono);font-size:.52rem;letter-spacing:.09em; }
.project-cues__head span:last-child { color:#71a98a; }
.cue-list { position:relative;z-index:2;display:grid;align-content:center; }
.cue-list > div { display:grid;min-height:48px;padding:0 18px;grid-template-columns:25px 24px 1fr auto;align-items:center;gap:10px;color:rgba(255,255,255,.76);border-bottom:1px solid rgba(255,255,255,.08); }
.cue-list > div:nth-child(3) { background:rgba(255,255,255,.075);box-shadow:inset 3px 0 0 #4d8a68; }
.cue-list span,.cue-list small { color:rgba(255,255,255,.35);font-family:var(--mono);font-size:.48rem; }
.cue-list i { display:grid;width:19px;height:19px;place-items:center;border-radius:50%;font-size:.55rem;font-style:normal; }
.cue-list b { overflow:hidden;font-family:var(--sans);font-size:.72rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap; }
.cue-audio { color:#dfece5;background:#4d8a68; }.cue-fade { color:#fff0df;background:#b67e40; }.cue-group { color:#e9e7fa;background:#6d6291; }.cue-stop { color:#f5dfdd;background:#a84b45; }
.project-cues__footer { border-top:1px solid rgba(255,255,255,.12);border-bottom:0; }
.project-cues__footer span { display:grid;width:42px;height:27px;place-items:center;color:#101210;border-radius:4px;background:#d7d4c9;font-weight:800; }
.project-cues__footer b { color:rgba(255,255,255,.35);font-weight:500; }

/* Blog and travel share the same editorial architecture, with a blue identity. */
.editorial-page { padding-top:0;background:#e7e8e5; }
.editorial-page .scroll-meter i { background:#5a89bd; }
.editorial-page .site-header { transition:color .28s ease,background-color .28s ease; }
.editorial-page[data-scene="journal"] .site-header { color:#edf2f5;background:#14283c; }
.editorial-page[data-scene="journal"] .site-header .wordmark > span { color:#8cb2d2; }
.editorial-page[data-scene="journal"] .header-cta { color:#edf2f5;border-color:#edf2f5; }
.editorial-page[data-scene="journal"] .site-nav a:hover,
.editorial-page[data-scene="journal"] .site-nav a[aria-current="page"] { color:#edf2f5;background:rgba(255,255,255,.1); }
.editorial-page[data-scene="index"] .site-header { color:var(--ink);background:#e7e8e5; }
.editorial-page[data-scene="index"] .header-cta { color:var(--ink);border-color:var(--ink); }
.editorial-hero { min-height:100svh;color:#edf2f5;background:#14283c; }
.editorial-hero__inner { display:grid;min-height:100svh;padding-top:118px;padding-bottom:66px;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);grid-template-rows:auto 1fr auto;align-items:center;gap:35px 70px; }
.editorial-meta { display:flex;margin:0;grid-column:1/-1;justify-content:space-between;color:rgba(255,255,255,.48);font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase; }
.editorial-title > p { margin:0 0 22px;color:rgba(255,255,255,.48);font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase; }
.editorial-page .editorial-title h1 { margin:0;font-size:clamp(4.2rem,6.2vw,7rem);line-height:.84; }
.editorial-title h1 span { display:block; }
.editorial-title h1 span:first-child { color:transparent;-webkit-text-stroke:1.5px #edf2f5;text-stroke:1.5px #edf2f5; }
.editorial-title h1 span:last-child { margin-left:3vw;color:#78a8d2; }
.editorial-hero__copy { display:grid;max-width:700px;grid-column:1/-1;grid-template-columns:1fr auto;align-items:end;gap:38px; }
.editorial-hero__copy p { max-width:520px;margin:0;color:rgba(255,255,255,.65);font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.55; }
.editorial-hero__copy a { display:flex;min-width:245px;padding-block:13px;justify-content:space-between;border-block:1px solid rgba(255,255,255,.3);font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase; }
.flight-board,.topo-board { position:relative;min-height:390px;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:#1b3349; }
.flight-board::before,.topo-board::before { position:absolute;inset:0;opacity:.36;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:52px 52px;content:""; }
.flight-board > span,.topo-board > span { position:absolute;z-index:2;top:24px;left:25px;color:rgba(255,255,255,.45);font-family:var(--mono);font-size:.5rem;letter-spacing:.09em; }
.flight-board svg { position:absolute;inset:50px 24px 45px;width:calc(100% - 48px);height:calc(100% - 95px);overflow:visible; }
.flight-board path { fill:none;stroke:#7da8cc;stroke-width:1.5;stroke-dasharray:5 6; }
.flight-board circle { fill:#14283c;stroke:#9ac0dd;stroke-width:2; }
.flight-board > i { position:absolute;z-index:3;top:36%;left:48%;color:#eef3f6;font-size:1.65rem;font-style:normal;transform:rotate(-18deg); }
.flight-board > b,.topo-board > small { position:absolute;right:24px;bottom:22px;color:rgba(255,255,255,.42);font-family:var(--mono);font-size:.48rem;font-weight:500;letter-spacing:.07em; }
.topo-board { background:#1a3544; }
.topo-board i { position:absolute;border:1px solid rgba(123,178,207,.5);border-radius:50%;transform:rotate(-12deg); }
.topo-board i:nth-of-type(1){inset:16% 12% 20% 18%}.topo-board i:nth-of-type(2){inset:27% 23% 29% 8%}.topo-board i:nth-of-type(3){inset:8% 33% 37% 31%}
.topo-board b,.topo-board em { position:absolute;z-index:2;width:12px;height:12px;border:3px solid #8fb6cf;border-radius:50%;background:#14283c; }
.topo-board b { top:29%;left:34%; }.topo-board em { right:23%;bottom:27%; }
.topo-board b::after { position:absolute;top:4px;left:9px;width:190px;border-top:1px dashed #8fb6cf;content:"";transform:rotate(26deg);transform-origin:left; }
.editorial-index { padding:110px 0 130px;background:#e7e8e5; }
.editorial-index__head { display:grid;margin-bottom:58px;padding-top:22px;grid-template-columns:.35fr 1.2fr auto;align-items:end;border-top:1px solid #bfc2bf; }
.editorial-index__head p,.editorial-index__head span { margin:0;color:#666c68;font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase; }
.editorial-index__head h2 { font-size:clamp(3rem,5.4vw,5.7rem); }
.editorial-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.editorial-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.editorial-card { position:relative;display:grid;min-height:500px;padding:26px;overflow:hidden;align-content:space-between;border:1px solid #c4c7c4;border-radius:18px;background:#f7f8f5;transition:border-color .22s ease,box-shadow .22s ease; }
.editorial-card:hover { border-color:#5a89bd;box-shadow:0 22px 45px rgba(28,51,70,.1),inset 4px 0 0 #5a89bd; }
.editorial-card > span { position:relative;z-index:2;font-family:var(--mono);font-size:.55rem;letter-spacing:.08em; }
.editorial-card > div:last-child { position:relative;z-index:2;align-self:end; }
.editorial-card h3 { font-size:clamp(2rem,3.5vw,3.9rem);line-height:1; }
.editorial-card p { max-width:440px;margin:18px 0 28px;color:#666c68; }
.editorial-card div:last-child > b { display:flex;padding-top:14px;justify-content:space-between;border-top:1px solid #c4c7c4;font-family:var(--mono);font-size:.54rem;font-weight:500;text-transform:uppercase; }
.editorial-card__mark { align-self:center;color:rgba(44,93,133,.11);font-family:var(--display);font-size:clamp(4.5rem,7vw,7.5rem);text-align:center; }
.editorial-card__contours { position:absolute;inset:72px 30px auto;height:235px; }
.editorial-card__contours i { position:absolute;border:1px solid rgba(62,119,164,.27);border-radius:50%;transform:rotate(-8deg); }
.editorial-card__contours i:nth-child(1){inset:8% 5% 12% 13%}.editorial-card__contours i:nth-child(2){inset:20% 19% 24% 2%}.editorial-card__contours i:nth-child(3){inset:3% 31% 38% 29%}
.editorial-card--edu { color:#edf4f1;background:#214a40;border-color:#214a40; }
.editorial-card--edu p { color:rgba(255,255,255,.62); }.editorial-card--edu .editorial-card__mark { color:rgba(255,255,255,.1); }.editorial-card--edu div:last-child > b { border-color:rgba(255,255,255,.2); }

/* Project and travel articles now use the same public visual system. */
.article-page { padding-top:0;background:#e7e5de; }
.article-page .site-header { color:#f2f1eb;background:#171a18; }
.article-page.travel-detail .site-header { background:#14283c; }
.article-page .header-cta { color:#f2f1eb;border-color:#f2f1eb; }
.article-page .site-nav a:hover,.article-page .site-nav a[aria-current="page"] { color:#f2f1eb;background:rgba(255,255,255,.1); }
.article-page .article-shell { width:100%;max-width:none;padding:0; }
.article-page .back-link { display:block;margin:0;padding:125px max(28px,calc((100vw - var(--wrap))/2)) 36px;color:rgba(255,255,255,.58);background:#171a18;border:0;font-family:var(--mono);font-size:.56rem;letter-spacing:.07em;text-transform:uppercase; }
.article-page.travel-detail .back-link { background:#14283c; }
.article-page .article-header { min-height:62svh;padding:0 max(28px,calc((100vw - var(--wrap))/2)) 90px;color:#f2f1eb;background:#171a18;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); }
.article-page.travel-detail .article-header { background:#14283c; }
.article-page .article-header .page-kicker { color:var(--accent);font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase; }
.article-page .article-header h1 { max-width:1050px;color:#f2f1eb;font-family:var(--display);font-size:clamp(4rem,8vw,8.5rem);font-weight:700;line-height:.9;letter-spacing:-.055em; }
.article-page.project-detail .article-header h1 { text-shadow:5px 5px 0 rgba(196,62,52,.2); }
.article-page .article-summary { max-width:480px;color:rgba(255,255,255,.62);font-size:clamp(1rem,1.55vw,1.2rem);line-height:1.55; }
.article-page .article-meta { display:flex;align-self:end;gap:8px;flex-wrap:wrap; }
.article-page .article-meta span { padding:8px 12px;color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.22);border-radius:100px;font-family:var(--mono);font-size:.52rem;text-transform:uppercase; }
.article-page .article-body { max-width:none;margin:0;padding:95px max(28px,calc((100vw - 940px)/2)) 125px;background:#e7e5de;font-size:1.05rem;line-height:1.75; }
.article-page .article-body h2 { margin:65px 0 20px;padding-top:18px;border-top:1px solid #bcbab3;font-family:var(--display);font-size:clamp(2rem,3.6vw,3.6rem);line-height:1; }
.article-page .article-body h2:first-child { margin-top:0; }
.article-page .article-body p { color:#454945; }
.article-page .article-placeholder { padding:34px;color:#6a6d69;border:1px solid #c4c1b9;border-radius:16px;background:#f5f3ed; }
.article-page .article-media { margin:55px 0; }.article-page .article-media img { border-radius:18px; }.article-page .article-media figcaption { color:#6a6d69;font-family:var(--mono);font-size:.52rem; }
.article-page .article-nav { margin-top:80px;padding-top:18px;border-color:#bcbab3;font-family:var(--mono);font-size:.56rem;text-transform:uppercase; }

@media (max-width:900px) {
  .project-cues { min-height:330px; }
  .editorial-page[data-scene="journal"] .menu-toggle,.article-page .menu-toggle { color:#edf2f5; }
  .editorial-page[data-scene="journal"] .site-nav,.article-page .site-nav { color:#edf2f5;background:#14283c; }
  .project-detail .site-nav { background:#171a18; }
  .editorial-hero__inner { padding-top:105px;grid-template-columns:1fr;grid-template-rows:auto auto auto auto;gap:42px; }
  .editorial-page .editorial-title h1 { font-size:clamp(3.3rem,13vw,5.6rem); }
  .flight-board,.topo-board { min-height:310px; }
  .editorial-hero__copy { grid-template-columns:1fr;gap:25px; }
  .editorial-hero__copy a { min-width:0; }
  .editorial-index__head { grid-template-columns:1fr;gap:9px; }
  .editorial-grid,.editorial-grid--two { grid-template-columns:1fr; }
  .editorial-card { min-height:450px; }
  .article-page .article-header { min-height:auto;padding-bottom:75px;grid-template-columns:1fr;gap:34px; }
  .article-page .article-header h1 { font-size:clamp(3.2rem,13vw,6rem); }
}

@media (max-width:600px) {
  .cue-list > div { min-height:43px;padding-inline:12px;grid-template-columns:20px 22px 1fr; }
  .cue-list small { display:none; }
  .project-cues__head,.project-cues__footer { padding:14px; }
  .editorial-hero__inner { padding-top:96px;padding-bottom:52px; }
  .editorial-page .editorial-title h1 { font-size:clamp(2.8rem,12vw,4.3rem); }
  .flight-board,.topo-board { min-height:270px; }
  .editorial-index { padding:82px 0 100px; }
  .editorial-card { min-height:410px; }
  .article-page .back-link { padding-top:105px; }
  .article-page .article-header { padding-bottom:60px; }
  .article-page .article-body { padding-top:70px;padding-bottom:95px; }
}

/* v20 — final navigation marks, stable Czech headings and content tooling */
.home-page[data-scene="about"] .site-header .wordmark > span { display:none; }
.home-page[data-scene="contact"] .site-header .wordmark > span { display:block;color:#fff; }
.home-page[data-scene="contact"] .site-header .wordmark > span::before {
  top:7px;
  left:5px;
  width:24px;
  height:21px;
  border:0;
  border-radius:0;
  background:currentColor;
  box-shadow:none;
  clip-path:polygon(0 42%,100% 0,69% 100%,48% 61%,30% 76%,35% 55%);
}
.home-page[data-scene="contact"] .site-header .wordmark > span::after { display:none; }

.scroll-meter { z-index:10000;height:3px;background:rgba(17,19,18,.16); }
.scroll-meter i { min-height:3px;box-shadow:0 0 0 1px rgba(255,255,255,.12); }
.home-page[data-scene="sound"] .scroll-meter,
.home-page[data-scene="contact"] .scroll-meter,
.project-page[data-scene="sound"] .scroll-meter,
.editorial-page[data-scene="journal"] .scroll-meter,
.article-page .scroll-meter { background:rgba(255,255,255,.14); }

.practice-panel--media .practice-copy h2 { font-size:clamp(2.8rem,4.75vw,5.25rem); }
.portal-card h3 {
  font-family:var(--sans);
  font-weight:750;
  letter-spacing:-.055em;
  text-rendering:auto;
  transform:none !important;
  backface-visibility:visible;
}
.portal-card,.portal-card * { -webkit-font-smoothing:antialiased; }

.world-board .world-map { position:absolute;inset:54px 26px 44px;width:calc(100% - 52px);height:calc(100% - 98px); }
.world-map path { fill:rgba(116,167,201,.1);stroke:#7ca9c8;stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke; }
.world-map .world-route { fill:none;stroke:#c4d9e8;stroke-width:1.5;stroke-dasharray:6 7; }
.world-map circle { fill:#14283c;stroke:#d7e6f0;stroke-width:3;vector-effect:non-scaling-stroke; }
.editorial-card__world { position:absolute;inset:70px 24px auto;height:235px;opacity:.7; }
.editorial-card__world .world-map { width:100%;height:100%; }
.editorial-card__world .world-map path { fill:rgba(62,119,164,.035);stroke:rgba(62,119,164,.38); }
.editorial-card__world .world-map .world-route { fill:none;stroke:rgba(62,119,164,.65); }

.creative-team { margin:28px 0 70px;overflow:hidden;border:1px solid #c4c1b9;border-radius:16px;background:#f5f3ed; }
.creative-team table { width:100%;border-collapse:collapse; }
.creative-team th,.creative-team td { padding:15px 18px;text-align:left;border-bottom:1px solid #d3d0c8; }
.creative-team tr:last-child th,.creative-team tr:last-child td { border-bottom:0; }
.creative-team th { width:42%;font-family:var(--mono);font-size:.56rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase; }
.creative-team td { color:#5e625e; }

.dynamic-card { animation:dynamic-card-in .4s ease both; }
@keyframes dynamic-card-in { from{opacity:0}to{opacity:1} }
.dynamic-index[hidden] { display:none; }

@media (max-width:600px) {
  .practice-panel--media .practice-copy h2 { font-size:clamp(2.25rem,9.2vw,3.7rem); }
  .creative-team th,.creative-team td { padding:13px 12px; }
}

/* v21 — supplied portrait, geographic map and managed legacy content */
.hero-portrait { margin:0;padding:18px;place-items:center;background:#f4f1ea; }
.hero-portrait::before,.hero-portrait::after { display:none; }
.hero-portrait > img { position:absolute;inset:18px;width:calc(100% - 36px);height:calc(100% - 36px);object-fit:contain;object-position:center; }
.hero-portrait__frame { z-index:2;pointer-events:none; }

/* Keep display text inside its own grid column, even with long Czech words. */
h1,h2,h3,p { overflow-wrap:break-word; }
[id] { scroll-margin-top:96px; }
.studio-title,.practice-copy,.portal-card > div:last-child,.project-hero__title,.project-hero__copy,
.editorial-title,.editorial-hero__copy,.editorial-card > div:last-child,.article-header > * { min-width:0; }
.project-page .project-archive .post-card h2,.editorial-card h3,.article-page .article-header h1 { hyphens:manual;overflow-wrap:break-word; }
.studio-title h1 span,.project-hero__title h1 span,.editorial-title h1 span { white-space:nowrap;overflow-wrap:normal; }
.studio-title h1 { font-size:clamp(5.8rem,12vw,12rem); }
.home-page .studio-title h1 span:last-child { margin-left:3vw; }
.travel-page .editorial-title h1 { letter-spacing:-.012em;line-height:.96; }
.travel-page .editorial-title h1 span:last-child { margin-top:.12em;margin-left:2.2vw; }

/* QLab-inspired cue colours: announcement, playable cues and fade/stop. */
.cue-icon--yellow { color:#2b2412;background:#e4b84f; }
.cue-icon--green { color:#e9f4ed;background:#43885f; }
.cue-icon--red { color:#fff0ee;background:#b84b43; }

/* Real geographic outline generated from public-domain Natural Earth data. */
.world-board .world-map-image { position:absolute;z-index:1;inset:52px 24px 42px;width:calc(100% - 48px);height:calc(100% - 94px);object-fit:contain;opacity:.95; }
.world-route-overlay { position:absolute;z-index:2;inset:52px 24px 42px;width:calc(100% - 48px);height:calc(100% - 94px);pointer-events:none; }
.world-route-overlay path { fill:none;stroke:#d0dfeb;stroke-width:1.6;stroke-dasharray:7 8;vector-effect:non-scaling-stroke; }
.world-route-overlay circle { fill:#14283c;stroke:#d7e6f0;stroke-width:3;vector-effect:non-scaling-stroke; }
.editorial-card__world img { width:100%;height:100%;object-fit:contain;opacity:.72; }

/* Project introduction occupies two thirds, the compact team table one third. */
.project-overview-grid { display:grid;margin-bottom:68px;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);align-items:start;gap:42px; }
.project-overview-grid > section { min-width:0; }
.article-page .project-overview-grid h2 { margin-top:0; }
.project-overview-grid .creative-team { margin:0; }
.project-overview-grid .creative-team th,.project-overview-grid .creative-team td { padding:13px 14px; }

/* A slower dusk transition and a real crescent instead of a full moon. */
.mountain-scene,.mountain-scene::before,.mountain-scene i,.mountain-scene .sun,.mountain-scene .moon {
  transition-duration:1.15s;
}
.mountain-scene .moon { overflow:hidden;background:#eeeade; }
.mountain-scene .moon::before { display:block;top:-5px;left:11px;width:42px;height:42px;opacity:1;background:#26364e;transform:none; }
.mountain-scene .moon::after { display:none; }

@media (max-width:800px) {
  .project-overview-grid { grid-template-columns:1fr;gap:4px; }
  .article-page .project-overview-grid section + section h2 { margin-top:48px; }
}
@media (max-width:600px) {
  .hero-portrait { min-height:285px;padding:12px; }
  .hero-portrait > img { inset:12px;width:calc(100% - 24px);height:calc(100% - 24px); }
  .travel-page .editorial-title h1 { font-size:clamp(2.45rem,11.2vw,4rem);letter-spacing:0;line-height:1; }
  .travel-page .editorial-title h1 span:last-child { margin-left:0; }
  .home-page .studio-title h1 span:last-child { margin-left:0; }
}

/* v22 — refined navigation, project facts and photography archive */
.scroll-meter {
  height:5px;
  background:rgba(17,19,18,.24);
}
.scroll-meter i {
  width:100%;
  min-height:5px;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .16s cubic-bezier(.22,.68,.28,1);
  box-shadow:0 0 8px rgba(255,255,255,.2);
  will-change:transform;
}
.home-page[data-scene="sound"] .scroll-meter,
.home-page[data-scene="contact"] .scroll-meter,
.project-page[data-scene="sound"] .scroll-meter,
.editorial-page[data-scene="journal"] .scroll-meter,
.article-page .scroll-meter { background:rgba(255,255,255,.28); }

/* Kontakt is an equal navigation item, not a boxed call to action. */
.site-header .header-cta,
.home-page .header-cta,
.section-page .header-cta {
  padding:8px 0;
  gap:9px;
  border:0 !important;
  border-radius:0;
  background:transparent !important;
  font-size:.66rem;
  transition:opacity .2s ease;
}
.site-header .header-cta:hover { opacity:.58; }

/* The supplied line portrait blends directly into the opening background. */
.hero-portrait {
  padding:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
}
.hero-portrait > img {
  inset:0;
  width:100%;
  height:100%;
  mix-blend-mode:darken;
}
.hero-portrait__frame { display:none; }

/* Keep the long photography title on one line and give the viewfinder less width. */
@media (min-width:901px) {
  .practice-panel--media .practice-panel__sticky {
    grid-template-columns:minmax(405px,.92fr) minmax(390px,1.08fr);
    gap:4.5vw;
  }
  .practice-panel--media .practice-copy h2 {
    font-size:clamp(2.65rem,3.65vw,4.45rem);
    letter-spacing:-.045em;
    white-space:nowrap;
  }
  .practice-panel--media .viewfinder-field { width:94%;justify-self:end; }
}

/* The lower portrait starts at the left edge and the text uses the remaining room. */
.home-page .about-inner {
  grid-template-columns:minmax(285px,.78fr) minmax(0,1.62fr);
  gap:34px 62px;
}
.home-page .about-inner > .eyebrow { grid-column:1/-1; }
.home-page .about-photo { grid-column:1; }
.home-page .about-content { grid-column:2;min-width:0; }
.home-page .about-content .about-copy p { max-width:780px; }

/* A clean crescent made from transparency: no second dark disc. */
.mountain-scene .moon {
  overflow:visible;
  background:radial-gradient(circle at 72% 36%,transparent 0 57%,#eeeade 59% 100%);
  box-shadow:0 0 24px rgba(238,234,222,.18);
}
.mountain-scene .moon::before,
.mountain-scene .moon::after { display:none !important; }

/* Globe mark for the travel and blog identity. */
.theme-travel .site-header .wordmark > span::before {
  top:5px;
  left:4px;
  width:24px;
  height:24px;
  border:1.5px solid currentColor;
  border-radius:50%;
  background:transparent;
  box-shadow:none;
  clip-path:none;
}
.theme-travel .site-header .wordmark > span::after {
  top:8px;
  left:10px;
  width:12px;
  height:18px;
  border:0;
  border-right:1.5px solid currentColor;
  border-left:1.5px solid currentColor;
  border-radius:50%;
  background:linear-gradient(transparent 47%,currentColor 48% 54%,transparent 55%);
  box-shadow:none;
}

/* More breathing room in the display font used by Cesty. */
.travel-page .editorial-title h1 {
  font-size:clamp(3.9rem,5.75vw,6.55rem);
  letter-spacing:.018em;
  line-height:.98;
}
.travel-page .editorial-title h1 span:first-child { letter-spacing:.035em; }

/* Sound cards end with real production facts instead of a generic detail link. */
.project-page .project-archive .post-meta {
  width:100%;
  padding-right:0;
  justify-content:space-between;
}
.project-page .project-archive .post-meta span:last-child { margin-left:auto;text-align:right; }
.post-facts {
  position:relative;
  z-index:2;
  display:grid;
  margin-top:24px;
  padding-top:13px;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:14px 24px;
  border-top:1px solid var(--line);
  font-family:var(--mono);
  font-size:.56rem;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.post-facts span:last-child { text-align:right;overflow-wrap:anywhere; }
.project-page .post-card:hover .post-facts { border-color:#b7b2a8; }

/* Photography follows the sound archive in a warm, yellow chapter. */
.project-page[data-scene="photo-projects"] .site-header { color:#171917;background:#d8b76d; }
.project-page[data-scene="photo-projects"] .site-nav a:hover,
.project-page[data-scene="photo-projects"] .site-nav a[aria-current="page"] { color:#171917;background:rgba(17,19,18,.08); }
.project-page[data-scene="photo-projects"] .site-header .wordmark > span,
.theme-photo .site-header .wordmark > span { color:#171917;background:#efcf81; }
.project-page[data-scene="photo-projects"] .site-header .wordmark > span::before,
.theme-photo .site-header .wordmark > span::before {
  top:9px;left:3px;width:27px;height:17px;border:1.5px solid currentColor;border-radius:3px;background:transparent;box-shadow:none;clip-path:none;
}
.project-page[data-scene="photo-projects"] .site-header .wordmark > span::after,
.theme-photo .site-header .wordmark > span::after {
  top:13px;left:12px;width:8px;height:8px;border:1.5px solid currentColor;border-radius:50%;background:transparent;box-shadow:-5px -7px 0 -3px currentColor;
}
.project-page .photo-archive { width:100%;padding:110px 0 135px;background:#d8b76d; }
.photo-archive .archive-tools { margin-bottom:48px;border-color:rgba(23,25,23,.32); }
.photo-archive .archive-tools h2 { font-size:clamp(2.8rem,5.4vw,5.6rem); }
.photo-portfolio-visual {
  position:relative;
  min-height:430px;
  padding:25px;
  overflow:hidden;
  border:1px solid rgba(23,25,23,.35);
  border-radius:18px;
  background:#e5cc92;
}
.photo-portfolio-visual > span,
.photo-portfolio-visual > small { position:absolute;z-index:2;font-family:var(--mono);font-size:.52rem;letter-spacing:.08em; }
.photo-portfolio-visual > span { top:25px;left:25px; }
.photo-portfolio-visual > small { right:25px;bottom:23px; }
.photo-portfolio-visual > div { position:absolute;inset:64px 46px;border:1px solid rgba(23,25,23,.4); }
.photo-portfolio-visual > div::before,
.photo-portfolio-visual > div::after { position:absolute;content:"";background:rgba(23,25,23,.2); }
.photo-portfolio-visual > div::before { top:33.333%;right:0;left:0;height:1px;box-shadow:0 calc((100% - 1px) / 2) 0 rgba(23,25,23,.2); }
.photo-portfolio-visual > div::after { top:0;bottom:0;left:33.333%;width:1px;box-shadow:calc((100% - 1px) / 2) 0 0 rgba(23,25,23,.2); }
.photo-portfolio-visual i { position:absolute;width:32px;height:32px;border-color:#171917;border-style:solid; }
.photo-portfolio-visual i:nth-child(1){top:-1px;left:-1px;border-width:2px 0 0 2px}
.photo-portfolio-visual i:nth-child(2){top:-1px;right:-1px;border-width:2px 2px 0 0}
.photo-portfolio-visual i:nth-child(3){right:-1px;bottom:-1px;border-width:0 2px 2px 0}
.photo-portfolio-visual i:nth-child(4){bottom:-1px;left:-1px;border-width:0 0 2px 2px}
.photo-portfolio-visual b { position:absolute;top:50%;left:50%;width:105px;height:72px;border:1px solid #171917;transform:translate(-50%,-50%); }
.photo-portfolio-head { display:grid;margin:65px 0 38px;padding-top:18px;grid-template-columns:.35fr 1.2fr auto;align-items:end;border-top:1px solid rgba(23,25,23,.32); }
.photo-portfolio-head p,.photo-portfolio-head span { margin:0;font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase; }
.photo-portfolio-head h3 { font-family:var(--display);font-size:clamp(2.7rem,5vw,5.2rem);line-height:1; }
.photo-album-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.photo-album-card {
  position:relative;
  display:grid;
  min-height:390px;
  padding:25px;
  overflow:hidden;
  align-content:space-between;
  border:1px solid rgba(23,25,23,.3);
  border-radius:18px;
  background:#f5ead0;
  transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.photo-album-card:hover { border-color:#6b4b19;box-shadow:0 22px 45px rgba(70,47,16,.12);transform:translateY(-4px); }
.photo-album-card > span { position:relative;z-index:2;font-family:var(--mono);font-size:.55rem;letter-spacing:.08em; }
.photo-album-card > div:last-child { position:relative;z-index:2;align-self:end; }
.photo-album-card h4 { margin:0;font-family:var(--display);font-size:clamp(1.8rem,2.8vw,3rem);line-height:1; }
.photo-album-card p { margin:16px 0 0;color:#665a41; }
.photo-album-card--placeholder { border-style:dashed; }
.photo-album-cover { position:absolute;inset:64px 24px 132px;border:1px solid rgba(23,25,23,.2);background:linear-gradient(135deg,rgba(255,255,255,.25),transparent); }
.photo-album-cover img { width:100%;height:100%;object-fit:cover; }
.photo-detail .site-header,.photo-detail .back-link,.photo-detail .article-header { background:#5c451b; }

/* Blog rubrics have their own complete colour fields. */
.blog-hub .editorial-card--ppl { color:#1a1c1a;border-color:#aaa9a4;background:#cecec9; }
.blog-hub .editorial-card--ppl p { color:#555a55; }
.blog-hub .editorial-card--ppl .editorial-card__mark { color:rgba(26,28,26,.12); }
.blog-hub .editorial-card--ppl div:last-child > b { border-color:rgba(26,28,26,.25); }
.blog-hub .editorial-card--travel { color:#edf3f7;border-color:#2f648f;background:#2f648f; }
.blog-hub .editorial-card--travel p { color:rgba(255,255,255,.68); }
.blog-hub .editorial-card--travel div:last-child > b { border-color:rgba(255,255,255,.25); }
.blog-hub .editorial-card--travel .editorial-card__world { opacity:.42;filter:brightness(2.35) saturate(.25); }

.project-fields > .team-grid:first-of-type { margin-bottom:20px; }

@media (max-width:900px) {
  .practice-panel--media .practice-copy h2 { white-space:nowrap; }
  .home-page .about-inner { grid-template-columns:minmax(240px,.8fr) minmax(0,1.3fr);gap:30px; }
  .photo-album-grid { grid-template-columns:1fr; }
  .photo-portfolio-head { grid-template-columns:1fr;gap:8px; }
}
@media (max-width:700px) {
  .home-page .about-inner { grid-template-columns:1fr; }
  .home-page .about-photo,.home-page .about-content { grid-column:1; }
}
@media (max-width:600px) {
  .hero-portrait { min-height:285px;padding:0; }
  .hero-portrait > img { inset:0;width:100%;height:100%; }
  .practice-panel--media .practice-copy h2 { font-size:clamp(2.1rem,9vw,3.45rem);letter-spacing:-.04em; }
  .travel-page .editorial-title h1 { font-size:clamp(2.3rem,10.6vw,3.8rem);letter-spacing:.025em; }
  .travel-page .editorial-title h1 span:first-child { letter-spacing:.05em; }
  .post-facts { grid-template-columns:1fr;gap:7px; }
  .post-facts span:last-child { text-align:left; }
  .project-page .photo-archive { padding:82px 0 100px; }
  .photo-archive .archive-tools > div { width:100%;min-width:0; }
  .photo-archive .archive-tools h2 { max-width:100%;font-size:clamp(2rem,8.2vw,3.2rem);letter-spacing:-.035em; }
  .photo-portfolio-visual { min-height:285px;padding:18px; }
  .photo-portfolio-visual > div { inset:55px 22px; }
  .photo-portfolio-visual > span { top:18px;left:18px; }
  .photo-portfolio-visual > small { right:18px;bottom:17px;font-size:.45rem; }
  .photo-album-card { min-height:330px; }
}

@media (prefers-reduced-motion:reduce) {
  .scroll-meter i { transition:none; }
}

/* v23 — aligned chapters, clearer navigation and form controls */

/* Full-screen chapter links land on the chapter edge, beneath the transparent header. */
.home-page .practice-panel[id],
.project-page .photo-hero[id] { scroll-margin-top:0; }

/* Lift the artwork inside its grid cell so its subject aligns with the Matěj Bláha title. */
@media (min-width:901px) {
  .home-page .hero-portrait > img { transform:translateY(-23%) scale(1.22); }
}

/* Keep the progress indicator legible over the neutral photography chapter. */
.home-page[data-scene="media"] .scroll-meter { background:rgba(17,19,18,.42); }
.home-page[data-scene="media"] .scroll-meter i {
  background:#9a6422;
  box-shadow:0 0 8px rgba(255,255,255,.42);
}

/* A clearer, conventionally drawn globe for the travel identity. */
.theme-travel .site-header .wordmark > span::before {
  top:5px;
  left:4px;
  width:24px;
  height:24px;
  border:1.7px solid currentColor;
  border-radius:50%;
  background:
    linear-gradient(90deg,transparent 46%,currentColor 47% 53%,transparent 54%),
    linear-gradient(transparent 46%,currentColor 47% 53%,transparent 54%);
  box-shadow:inset 6px 0 0 -5px currentColor,inset -6px 0 0 -5px currentColor;
  clip-path:none;
}
.theme-travel .site-header .wordmark > span::after { display:none; }

/* Photography is a full chapter, parallel to the sound chapter. */
.photo-hero {
  min-height:100svh;
  color:#171917;
  background:#d8b76d;
}
.photo-hero__inner {
  display:grid;
  min-height:100svh;
  padding-top:118px;
  padding-bottom:66px;
  grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);
  grid-template-rows:auto 1fr auto;
  align-items:center;
  gap:34px 70px;
}
.photo-hero__meta {
  display:flex;
  margin:0;
  grid-column:1/-1;
  justify-content:space-between;
  color:rgba(23,25,23,.58);
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.photo-hero__title { min-width:0; }
.photo-hero__title > p {
  margin:0 0 23px;
  color:rgba(23,25,23,.58);
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.project-page .photo-hero__title h1 {
  margin:0;
  font-family:var(--display);
  font-size:clamp(4rem,5.7vw,6.4rem);
  line-height:.83;
}
.photo-hero__title h1 span { display:block;white-space:nowrap; }
.photo-hero__title h1 span:first-child {
  color:transparent;
  -webkit-text-stroke:1.5px #171917;
  text-stroke:1.5px #171917;
}
.photo-hero__title h1 span:last-child { margin-left:3vw;color:#6a4914; }
.photo-hero__copy {
  display:grid;
  max-width:620px;
  grid-column:1/-1;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:35px;
}
.photo-hero__copy p {
  max-width:520px;
  margin:0;
  color:rgba(23,25,23,.67);
  font-size:clamp(1rem,1.45vw,1.18rem);
  line-height:1.55;
}
.photo-hero__copy a {
  display:flex;
  min-width:245px;
  padding-block:13px;
  justify-content:space-between;
  border-block:1px solid rgba(23,25,23,.38);
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.photo-hero .photo-portfolio-visual {
  min-height:390px;
  align-self:center;
  background:#e6ce96;
}

.project-page[data-scene="photo-hero"] .site-header { color:#171917;background:#d8b76d; }
.project-page[data-scene="photo-hero"] .site-nav a:hover,
.project-page[data-scene="photo-hero"] .site-nav a[aria-current="page"] { color:#171917;background:rgba(17,19,18,.08); }
.project-page[data-scene="photo-hero"] .site-header .wordmark > span,
.project-page[data-scene="photo-projects"] .site-header .wordmark > span { color:#171917;background:#efcf81; }
.project-page[data-scene="photo-hero"] .site-header .wordmark > span::before,
.project-page[data-scene="photo-projects"] .site-header .wordmark > span::before {
  top:9px;left:3px;width:27px;height:17px;border:1.5px solid currentColor;border-radius:3px;background:transparent;box-shadow:none;clip-path:none;
}
.project-page[data-scene="photo-hero"] .site-header .wordmark > span::after,
.project-page[data-scene="photo-projects"] .site-header .wordmark > span::after {
  display:block;top:13px;left:12px;width:8px;height:8px;border:1.5px solid currentColor;border-radius:50%;background:transparent;box-shadow:-5px -7px 0 -3px currentColor;
}
.project-page[data-scene="photo-hero"] .scroll-meter { background:rgba(23,25,23,.38); }
.project-page[data-scene="photo-hero"] .scroll-meter i { background:#664817;box-shadow:0 0 8px rgba(255,255,255,.34); }
.project-page[data-scene="photo-projects"] .site-header { color:#171917;background:#e3e0d8; }
.project-page[data-scene="photo-projects"] .site-nav a:hover,
.project-page[data-scene="photo-projects"] .site-nav a[aria-current="page"] { color:#171917;background:rgba(17,19,18,.08); }
.project-page[data-scene="photo-projects"] .scroll-meter { background:rgba(23,25,23,.28); }
.project-page[data-scene="photo-projects"] .scroll-meter i { background:#b18430;box-shadow:none; }

.project-page .photo-archive { padding:105px 0 130px;background:#e3e0d8; }
.photo-archive .archive-tools { margin-bottom:58px;border-color:#bdbab2; }
.photo-archive .archive-tools h2 { max-width:860px;font-size:clamp(2.8rem,5.4vw,5.6rem); }
.photo-album-grid { align-items:stretch; }
.photo-album-card { min-height:410px;background:#f3ead5; }

/* Fields read as real input areas and use more of the available form width. */
.home-page .contact-form {
  padding:34px;
  grid-template-columns:1fr;
  gap:9px 18px;
  border-color:rgba(255,255,255,.2);
  background:rgba(255,255,255,.035);
}
.home-page .contact-form > * { grid-column:1; }
.home-page .contact-form label { margin:12px 0 2px;color:rgba(255,255,255,.66); }
.home-page .contact-form input,
.home-page .contact-form textarea {
  min-height:54px;
  padding:14px 15px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:7px;
  background:rgba(255,255,255,.035);
  transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease;
}
.home-page .contact-form textarea { min-height:190px;line-height:1.5; }
.home-page .contact-form input:hover,
.home-page .contact-form textarea:hover { border-color:rgba(255,255,255,.5); }
.home-page .contact-form input:focus,
.home-page .contact-form textarea:focus {
  border-color:var(--yellow);
  background:rgba(255,255,255,.06);
  box-shadow:0 0 0 3px rgba(230,209,111,.12);
}

@media (max-width:900px) {
  .project-page[data-scene="photo-hero"] .menu-toggle { color:#171917; }
  .project-page[data-scene="photo-hero"] .site-nav { color:#171917;background:#d8b76d; }
  .photo-hero__inner { padding-top:105px;grid-template-columns:1fr;grid-template-rows:auto auto auto auto;gap:42px; }
  .project-page .photo-hero__title h1 { font-size:clamp(3.2rem,13vw,5.5rem); }
  .photo-hero .photo-portfolio-visual { min-height:300px; }
  .photo-hero__copy { grid-template-columns:1fr;gap:25px; }
  .photo-hero__copy a { min-width:0; }
}

@media (max-width:600px) {
  .photo-hero__inner { padding-top:96px;padding-bottom:52px; }
  .project-page .photo-hero__title h1 { font-size:clamp(2.65rem,12vw,4.2rem); }
  .project-page .photo-archive { padding:82px 0 100px; }
  .photo-album-card { min-height:330px; }
  .home-page .contact-form { padding:22px 17px; }
  .home-page .contact-form textarea { min-height:170px; }
}

/* v24 — navigation hierarchy, clean portrait and restrained photo accent */
.home-page .site-nav { gap:9px; }
.home-page .site-nav__group { display:flex;align-items:center;gap:4px; }
.home-page .site-nav__divider {
  display:block;
  width:1px;
  height:19px;
  margin-inline:3px;
  flex:0 0 auto;
  background:currentColor;
  opacity:.22;
}
.home-page .site-nav__group--external a { font-weight:750; }
.home-page[data-scene="sound"] .site-nav a[href="#sound-design"],
.home-page[data-scene="media"] .site-nav a[href="#fotografie"],
.home-page[data-scene="directions"] .site-nav a[href="#ostatni"],
.home-page[data-scene="about"] .site-nav a[href="#o-mne"] {
  color:var(--header-fg);
  background:var(--header-soft);
}

/* The supplied portrait is now line art on a genuinely transparent canvas. */
.home-page .hero-portrait > img {
  mix-blend-mode:normal;
  filter:none;
}

/* One warm point of focus keeps the photography chapter from feeling colourless. */
.practice-panel--media { --photo-accent:#b8872f; }
.practice-panel--media .viewfinder-mark { color:var(--photo-accent); }
.practice-panel--media .viewfinder-frame > span,
.practice-panel--media .viewfinder-frame > span b,
.practice-panel--media .focus-points b:nth-child(5) { border-color:var(--photo-accent); }
.practice-panel--media .viewfinder-frame > span::before,
.practice-panel--media .viewfinder-frame > span::after,
.practice-panel--media .viewfinder-histogram i:nth-child(4) { background:var(--photo-accent); }

/* Blog headings and every rubric card share a consistent left edge. */
.blog-hub .editorial-index__head {
  grid-template-columns:1fr;
  justify-items:start;
  align-items:start;
  gap:8px;
}
.blog-hub .editorial-index__head > *,
.blog-hub .editorial-card,
.blog-hub .editorial-card__mark { text-align:left; }
.blog-hub .editorial-card__mark { justify-self:start; }

/* Keep the land silhouette unmistakably borderless; only the route remains. */
.world-board::before { background-image:none;opacity:0; }

@media (max-width:900px) {
  .home-page .site-nav { gap:6px; }
  .home-page .site-nav__group { display:grid;gap:4px; }
  .home-page .site-nav__divider {
    width:100%;
    height:1px;
    margin:5px 0;
  }
}

/* v25 — uniform inner navigation, precise chapters and project waveforms */
.section-page .site-header { grid-template-columns:1fr auto; }
.section-page .header-cta { display:none; }
.home-page .portals[id] { scroll-margin-top:0; }

/* Folded map: a clearer travel mark than the previous globe. */
.theme-travel .site-header .wordmark > span::before {
  top:5px;
  left:3px;
  width:28px;
  height:24px;
  border:0;
  border-radius:0;
  background:currentColor;
  box-shadow:none;
  clip-path:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 28'%3E%3Cpath d='M2 6.5 11 2l10 4.5L30 2v19.5L21 26l-10-4.5L2 26Z M11 2v19.5M21 6.5V26' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 28'%3E%3Cpath d='M2 6.5 11 2l10 4.5L30 2v19.5L21 26l-10-4.5L2 26Z M11 2v19.5M21 6.5V26' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
.theme-travel .site-header .wordmark > span::after { display:none; }

.project-page .project-number { display:none; }
.project-page .project-archive .post-card::before { display:none; }
.project-wave {
  position:absolute;
  z-index:1;
  right:28px;
  bottom:22px;
  display:flex;
  width:112px;
  height:36px;
  align-items:center;
  justify-content:space-between;
  opacity:.32;
  pointer-events:none;
}
.project-wave i {
  display:block;
  width:2px;
  height:var(--wave-height,10px);
  min-height:3px;
  border-radius:3px;
  background:var(--sound);
}
.project-page .project-archive .post-card:nth-child(2n) .project-wave { transform:scaleY(.82);transform-origin:center; }
.project-page .project-archive .post-card:nth-child(3n) .project-wave { transform:scaleY(1.12);transform-origin:center; }
.project-page .project-archive .post-card:hover .project-wave { opacity:.55; }
.project-page .post-facts { padding-right:130px; }

@media (max-width:600px) {
  .project-wave { right:20px;bottom:20px;width:92px;opacity:.26; }
  .project-page .post-facts { padding-right:0; }
}

/* v26 — unified editorial type, series and wider copy */
.home-page .studio-intro { width:min(520px,100%);max-width:none; }
.home-page .studio-intro p { max-width:500px; }

.editorial-page h1,
.editorial-page h2 { font-family:var(--display);font-weight:700;letter-spacing:-.055em; }
.blog-hub .editorial-title h1,
.travel-page .editorial-title h1 {
  font-size:clamp(4.1rem,6.1vw,6.9rem);
  line-height:.88;
  letter-spacing:-.04em;
}
.blog-hub .editorial-title h1 span:last-child,
.travel-page .editorial-title h1 span:last-child { margin-top:0;margin-left:3vw;letter-spacing:inherit; }
.travel-page .editorial-title h1 span:first-child { letter-spacing:inherit; }
.editorial-hero__copy { width:100%;max-width:none;grid-template-columns:minmax(0,540px) minmax(245px,1fr); }
.editorial-hero__copy a { width:245px;justify-self:end; }
.travel-page .editorial-index__head,
.blog-hub .editorial-index__head { grid-template-columns:1fr;justify-items:start; }
.editorial-card h3,
.portal-card h3 {
  font-family:var(--sans);
  font-weight:750;
  letter-spacing:-.055em;
  line-height:1;
}
.editorial-card .card-series { display:block;min-height:1em;margin-bottom:9px;color:#4e7898;font-family:var(--mono);font-size:.52rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase; }
.editorial-card .card-series:empty { display:none; }
.editorial-card.is-pinned { border-color:#5a89bd;box-shadow:inset 4px 0 0 #5a89bd; }
.series-reader { margin-top:78px;padding-top:20px;border-top:1px solid #bcbab3; }
.series-reader>p { display:flex;margin:0 0 24px;align-items:baseline;justify-content:space-between;gap:20px; }
.series-reader>p span { color:#6a6d68;font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase; }
.series-reader>p strong { font-family:var(--display);font-size:clamp(1.4rem,2.5vw,2.6rem);text-align:right; }
.series-reader>div { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.series-reader>div>a { display:grid;min-height:120px;padding:18px;align-content:space-between;border:1px solid #c4c1b9;border-radius:14px;background:#f5f3ed; }
.series-reader>div>a:last-child { text-align:right; }
.series-reader>div>a span { color:#6a6d68;font-family:var(--mono);font-size:.55rem;letter-spacing:.06em;text-transform:uppercase; }
.series-reader>div>a strong { font-size:1rem; }
.series-reader>div>a:hover { border-color:#5a89bd;box-shadow:inset 3px 0 0 #5a89bd; }

@media (max-width:900px) {
  .editorial-hero__copy { grid-template-columns:1fr; }
  .editorial-hero__copy a { width:min(100%,360px);justify-self:end; }
}
@media (max-width:600px) {
  .blog-hub .editorial-title h1,
  .travel-page .editorial-title h1 { font-size:clamp(2.65rem,12vw,4.3rem);line-height:.94;letter-spacing:-.025em; }
  .blog-hub .editorial-title h1 span:last-child,
  .travel-page .editorial-title h1 span:last-child { margin-left:0; }
  .series-reader>div { grid-template-columns:1fr; }
  .series-reader>div>a:last-child { grid-column:1;text-align:left; }
}

/* v27 — blog is a neutral notebook; travel remains an independent blue section. */
.theme-blog { --accent:#9d9075; }
.theme-blog.editorial-page { background:#e8e6df; }
.theme-blog.editorial-page .scroll-meter i { background:#a79b80; }
.theme-blog.editorial-page[data-scene="journal"] .site-header { color:#f1f0eb;background:#292c29; }
.theme-blog.editorial-page[data-scene="journal"] .site-header .wordmark > span { color:#d7d2c6;background:#292c29; }
.theme-blog.editorial-page[data-scene="journal"] .site-nav a:hover,
.theme-blog.editorial-page[data-scene="journal"] .site-nav a[aria-current="page"] { color:#f1f0eb;background:rgba(255,255,255,.09); }
.theme-blog.editorial-page[data-scene="index"] .site-header { color:var(--ink);background:#e8e6df; }
.theme-blog .editorial-hero { color:#f1f0eb;background:#292c29; }
.theme-blog .editorial-title h1 span:first-child { -webkit-text-stroke-color:#f1f0eb;text-stroke-color:#f1f0eb; }
.theme-blog .editorial-title h1 span:last-child { color:#c8bd9f; }
.theme-blog .editorial-index { background:#e8e6df; }
.theme-blog .editorial-card { background:#f6f4ee;border-color:#c9c5ba; }
.theme-blog .editorial-card:hover { border-color:#9d9075;box-shadow:0 22px 45px rgba(40,42,39,.1),inset 4px 0 0 #9d9075; }
.theme-blog .editorial-card.is-pinned { border-color:#9d9075;box-shadow:inset 4px 0 0 #9d9075; }
.theme-blog .editorial-card .card-series { color:#766d5d; }

/* A small notebook icon in the Blog header. */
.theme-blog .site-header .wordmark > span { position:relative;color:transparent;background:#d7d2c6; }
.theme-blog .site-header .wordmark > span::before { position:absolute;inset:8px 7px 7px 10px;border:1.6px solid currentColor;border-radius:2px;box-shadow:inset 4px 0 0 rgba(255,255,255,.16);content:""; }
.theme-blog .site-header .wordmark > span::after { position:absolute;top:12px;right:10px;width:9px;height:1.5px;background:currentColor;box-shadow:0 5px 0 currentColor,0 10px 0 currentColor;content:""; }

.notebook-board { position:relative;display:grid;min-height:390px;padding:44px 42px;place-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:#343733; }
.notebook-board::before { position:absolute;inset:0;opacity:.42;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.14) 1px,transparent 1.5px);background-size:22px 22px;content:""; }
.notebook-board__label { position:absolute;z-index:2;top:23px;left:25px;color:rgba(255,255,255,.42);font-family:var(--mono);font-size:.5rem;letter-spacing:.09em; }
.notebook-board>small { position:absolute;right:24px;bottom:21px;color:rgba(255,255,255,.38);font-family:var(--mono);font-size:.48rem;letter-spacing:.08em; }
.notebook { position:relative;z-index:1;display:grid;width:min(300px,82%);aspect-ratio:1.28;padding:42px 34px 28px 50px;align-content:start;gap:14px;color:#292c29;border-radius:5px 13px 13px 5px;background:#e8e2d3;box-shadow:-11px 11px 0 #242624,0 28px 48px rgba(0,0,0,.24);transform:rotate(-3deg); }
.notebook::before { position:absolute;top:0;bottom:0;left:30px;border-left:1px solid rgba(164,79,64,.38);content:""; }
.notebook::after { position:absolute;inset:0;background:repeating-linear-gradient(transparent 0,transparent 34px,rgba(54,69,69,.17) 35px,transparent 36px);content:"";pointer-events:none; }
.notebook>i { position:absolute;z-index:2;left:-8px;width:25px;height:7px;border:2px solid #b8b4aa;border-right:0;border-radius:7px 0 0 7px; }
.notebook>i:nth-of-type(1){top:18%}.notebook>i:nth-of-type(2){top:39%}.notebook>i:nth-of-type(3){top:60%}.notebook>i:nth-of-type(4){top:81%}
.notebook>b,.notebook>em,.notebook>span { position:relative;z-index:1; }
.notebook>b { font-family:var(--display);font-size:clamp(1rem,2vw,1.55rem);letter-spacing:-.04em; }
.notebook>em { color:#696a64;font-size:.62rem;font-style:normal; }
.notebook>span { display:block;height:2px;border-radius:2px;background:#777871;opacity:.45; }
.notebook>span:nth-of-type(1){width:91%}.notebook>span:nth-of-type(2){width:74%}.notebook>span:nth-of-type(3){width:84%}.notebook>span:nth-of-type(4){width:55%}

.flight-board--card { min-height:225px;margin:18px 0 26px;border-color:rgba(38,66,89,.2);border-radius:12px;box-shadow:none; }
.flight-board--card>span { top:15px;left:16px; }
.flight-board--card svg { inset:36px 14px 28px;width:calc(100% - 28px);height:calc(100% - 64px); }
.flight-board--card>b { right:15px;bottom:12px; }
.flight-board--card>i { font-size:1.15rem; }
.editorial-card__note { position:relative;display:grid;width:72%;aspect-ratio:1.15;margin:auto;align-content:center;gap:20px;border:1px solid #bdb8aa;border-radius:5px 12px 12px 5px;background:#ebe6d8;box-shadow:-8px 8px 0 #d1ccbf;transform:rotate(2deg); }
.editorial-card__note::before { position:absolute;top:0;bottom:0;left:20%;border-left:1px solid rgba(164,79,64,.32);content:""; }
.editorial-card__note i { width:58%;height:1px;margin-left:28%;background:#87877f;opacity:.55; }
.editorial-card--school .editorial-card__mark { color:rgba(52,88,70,.12); }
.travel-aside { display:grid;margin-top:15px;padding:25px 28px;grid-template-columns:.65fr 1fr auto;align-items:center;gap:24px;color:#eef3f6;border-radius:14px;background:#203f54; }
.travel-aside span,.travel-aside i { font-family:var(--mono);font-size:.54rem;font-style:normal;letter-spacing:.07em;text-transform:uppercase; }
.travel-aside span { color:rgba(255,255,255,.55); }.travel-aside strong { font-family:var(--display);font-size:clamp(1.2rem,2.4vw,2.3rem); }.travel-aside i { text-align:right; }

.portal-card--journal { --card-accent:#8f8674; }
.portal-notebook { position:absolute!important;inset:74px 24% auto!important;display:grid!important;height:225px;padding:48px 30px 20px 46px;align-content:start;gap:17px;border:1px solid #bbb7ab;border-radius:5px 12px 12px 5px;background:#e7e1d3;box-shadow:-9px 9px 0 #d2cec2;transform:rotate(-2.5deg); }
.portal-notebook::before { position:absolute;top:0;bottom:0;left:28px;border-left:1px solid rgba(164,79,64,.34);content:""; }
.portal-notebook>i { position:absolute;left:-7px;width:22px;height:6px;border:2px solid #aaa79e;border-right:0;border-radius:6px 0 0 6px; }
.portal-notebook>i:nth-of-type(1){top:22%}.portal-notebook>i:nth-of-type(2){top:50%}.portal-notebook>i:nth-of-type(3){top:78%}
.portal-notebook>b { font-family:var(--display);font-size:1.25rem;letter-spacing:-.04em; }
.portal-notebook>span { width:85%;height:1px;background:#777971;opacity:.55; }.portal-notebook>span:nth-of-type(2){width:64%}.portal-notebook>span:nth-of-type(3){width:76%}

.article-page.blog-detail .site-header,
.article-page.blog-detail .back-link,
.article-page.blog-detail .article-header { background:#292c29; }
.article-page.blog-detail .article-header .page-kicker { color:#c8bd9f; }
.article-page.blog-detail .scroll-meter i { background:#a79b80; }
.article-page.blog-detail .series-reader>div>a:hover { border-color:#9d9075;box-shadow:inset 3px 0 0 #9d9075; }

@media (max-width:900px) {
  .theme-blog.editorial-page[data-scene="journal"] .site-nav { background:#292c29; }
  .notebook-board { min-height:310px; }
  .travel-aside { grid-template-columns:1fr auto; }.travel-aside span { grid-column:1/-1; }.travel-aside strong { grid-column:1; }.travel-aside i { grid-column:2; }
}
@media (max-width:600px) {
  .notebook-board { min-height:270px;padding:34px 24px; }.notebook { width:min(250px,86%);padding:34px 26px 22px 43px; }
  .travel-aside { grid-template-columns:1fr;padding:22px; }.travel-aside span,.travel-aside strong,.travel-aside i { grid-column:1;text-align:left; }
  .portal-notebook { inset:68px 17% auto!important; }
}

/* v28 — minimalist Blog visuals and independent rubric pages. */
.journal-visual { position:relative;display:grid;min-height:390px;place-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:#303330; }
.journal-visual::before,.journal-visual::after { position:absolute;border:1px solid rgba(210,205,191,.16);border-radius:50%;content:""; }
.journal-visual::before { width:330px;height:330px;animation:journal-orbit 18s linear infinite; }
.journal-visual::after { width:210px;height:210px;border-style:dashed;animation:journal-orbit 13s linear infinite reverse; }
.journal-visual__sheet { position:relative;z-index:2;width:min(255px,66%);aspect-ratio:.78;border:1px solid rgba(241,239,232,.72);border-radius:5px;background:rgba(255,255,255,.025);box-shadow:18px 18px 0 -1px rgba(241,239,232,.07);transform:rotate(-3deg);transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.journal-visual__sheet::before { position:absolute;inset:18px 18px 18px 36px;border-left:1px solid rgba(200,191,162,.42);content:""; }
.journal-visual__sheet>i { position:absolute;left:-5px;width:15px;height:1px;background:#d5d0c3; }
.journal-visual__sheet>i:nth-of-type(1){top:19%}.journal-visual__sheet>i:nth-of-type(2){top:39%}.journal-visual__sheet>i:nth-of-type(3){top:59%}.journal-visual__sheet>i:nth-of-type(4){top:79%}
.journal-visual__sheet>span { position:absolute;left:28%;height:1px;background:rgba(241,239,232,.55);transform-origin:left;animation:journal-line 5s ease-in-out infinite; }
.journal-visual__sheet>span:nth-of-type(1){top:34%;width:52%}.journal-visual__sheet>span:nth-of-type(2){top:49%;width:40%;animation-delay:-1.6s}.journal-visual__sheet>span:nth-of-type(3){top:64%;width:58%;animation-delay:-3.2s}
.journal-visual>b,.journal-visual>em { position:absolute;width:9px;height:9px;border:1px solid #c8bd9f;border-radius:50%;font-style:normal; }
.journal-visual>b { top:21%;left:16%; }.journal-visual>em { right:14%;bottom:19%; }
.journal-visual:hover .journal-visual__sheet { transform:rotate(0) translateY(-5px); }

.portal-journal { position:absolute!important;inset:65px 20px auto!important;display:grid!important;height:235px;place-items:center; }
.portal-journal::before,.portal-journal::after { position:absolute;border:1px solid rgba(89,91,84,.2);border-radius:50%;content:""; }
.portal-journal::before { width:205px;height:205px;animation:journal-orbit 16s linear infinite; }.portal-journal::after { width:135px;height:135px;border-style:dashed;animation:journal-orbit 11s linear infinite reverse; }
.portal-journal>div { position:relative;z-index:2;width:128px;aspect-ratio:.78;border:1px solid #777970;border-radius:3px;background:rgba(255,255,255,.22);box-shadow:11px 11px 0 rgba(105,106,98,.1);transform:rotate(-4deg);transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.portal-journal>div::before { position:absolute;inset:12px 12px 12px 22px;border-left:1px solid rgba(166,98,83,.38);content:""; }
.portal-journal i { position:absolute;left:-4px;width:12px;height:1px;background:#777970; }.portal-journal i:nth-of-type(1){top:19%}.portal-journal i:nth-of-type(2){top:39%}.portal-journal i:nth-of-type(3){top:59%}.portal-journal i:nth-of-type(4){top:79%}
.portal-journal span { position:absolute;left:28%;height:1px;background:#777970;transform-origin:left;animation:journal-line 4.4s ease-in-out infinite; }.portal-journal span:nth-of-type(1){top:36%;width:52%}.portal-journal span:nth-of-type(2){top:51%;width:39%;animation-delay:-1.4s}.portal-journal span:nth-of-type(3){top:66%;width:57%;animation-delay:-2.8s}
.portal-journal>b { position:absolute;top:15%;right:19%;width:8px;height:8px;border:1px solid #8f8674;border-radius:50%; }
.portal-card--journal:hover .portal-journal>div { transform:rotate(0) translateY(-5px); }

.rubric-visual { position:relative;align-self:center;width:100%;height:235px;overflow:hidden;border:1px solid #d0ccc1;border-radius:13px;background:#eeece5; }
.rubric-visual--flight svg { position:absolute;inset:12% 5%;width:90%;height:76%;overflow:visible; }
.rubric-visual--flight path { fill:none;stroke:#777b77;stroke-width:1.3;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;transition:stroke-dashoffset 1.4s ease; }
.rubric-visual--flight i { position:absolute;top:47%;left:46%;color:#4f534f;font-size:1.2rem;font-style:normal;transform:rotate(-18deg);transition:transform 1.4s ease,left 1.4s ease,top 1.4s ease; }
.rubric-visual--flight b,.rubric-visual--flight em { position:absolute;width:7px;height:7px;border:1px solid #777b77;border-radius:50%;font-style:normal; }.rubric-visual--flight b{left:8%;bottom:13%}.rubric-visual--flight em{top:10%;right:7%}
.editorial-card--aviation:hover .rubric-visual--flight path,.category-page--letectvi .rubric-visual--flight path { stroke-dashoffset:0; }
.editorial-card--aviation:hover .rubric-visual--flight i { top:22%;left:78%;transform:rotate(-29deg); }

.rubric-visual--development { background-image:linear-gradient(rgba(94,97,92,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(94,97,92,.09) 1px,transparent 1px);background-size:38px 38px; }
.rubric-visual--development>i { position:absolute;width:12px;height:12px;border:1px solid #696d68;border-radius:50%;background:#eeece5;transition:transform .65s cubic-bezier(.2,.7,.2,1),background .3s ease; }
.rubric-visual--development>i:nth-of-type(1){top:22%;left:20%}.rubric-visual--development>i:nth-of-type(2){top:61%;left:31%}.rubric-visual--development>i:nth-of-type(3){top:31%;right:27%}.rubric-visual--development>i:nth-of-type(4){right:16%;bottom:18%}
.rubric-visual--development>span { position:absolute;height:1px;background:#898c87;transform-origin:left;transition:transform .65s ease; }
.rubric-visual--development>span:nth-of-type(1){top:27%;left:22%;width:49%;transform:rotate(6deg)}.rubric-visual--development>span:nth-of-type(2){top:63%;left:33%;width:50%;transform:rotate(9deg)}.rubric-visual--development>span:nth-of-type(3){top:26%;left:22%;width:42%;transform:rotate(50deg)}.rubric-visual--development>span:nth-of-type(4){top:37%;left:70%;width:28%;transform:rotate(65deg)}
.rubric-visual--development>b,.rubric-visual--development>em { position:absolute;width:48px;height:48px;border:1px solid rgba(105,109,104,.22);border-radius:50%;font-style:normal; }.rubric-visual--development>b{top:12%;right:13%}.rubric-visual--development>em{bottom:9%;left:14%}
.editorial-card--development:hover .rubric-visual--development>i:nth-of-type(1){transform:translate(11px,9px);background:#d2c5a3}.editorial-card--development:hover .rubric-visual--development>i:nth-of-type(2){transform:translate(-8px,-5px)}.editorial-card--development:hover .rubric-visual--development>i:nth-of-type(3){transform:translate(7px,-11px);background:#d2c5a3}.editorial-card--development:hover .rubric-visual--development>i:nth-of-type(4){transform:translate(-9px,7px)}

.rubric-visual--school { display:grid;place-items:center;background:#e9eee8; }
.rubric-visual--school>div { position:relative;width:72%;height:68%;border:1px solid #718077;border-radius:7px;background:#dbe5dc;box-shadow:0 12px 0 rgba(62,86,71,.08); }
.rubric-visual--school i { position:absolute;left:13%;height:1px;background:#64756a;transform-origin:left;transition:transform .55s ease; }.rubric-visual--school i:nth-of-type(1){top:24%;width:52%}.rubric-visual--school i:nth-of-type(2){top:42%;width:69%}.rubric-visual--school i:nth-of-type(3){top:60%;width:39%}.rubric-visual--school i:nth-of-type(4){top:77%;width:58%}
.rubric-visual--school b { position:absolute;top:16%;right:12%;width:27px;height:27px;border:1px solid #64756a;border-radius:50%; }.rubric-visual--school em { position:absolute;right:15%;bottom:14%;width:8px;height:8px;border-radius:50%;background:#688d75;font-style:normal;transition:transform .5s ease; }
.editorial-card--school:hover .rubric-visual--school i:nth-of-type(2){transform:scaleX(.72)}.editorial-card--school:hover .rubric-visual--school i:nth-of-type(3){transform:scaleX(1.3)}.editorial-card--school:hover .rubric-visual--school em{transform:translate(-20px,-13px)}

.editorial-card__glyph { position:relative;width:72%;aspect-ratio:1.25;margin:auto;border:1px solid #c0bbae;border-radius:10px; }
.editorial-card__glyph::before,.editorial-card__glyph::after { position:absolute;border:1px solid rgba(112,108,98,.38);border-radius:50%;content:""; }.editorial-card__glyph::before{inset:18% 26%}.editorial-card__glyph::after{inset:31% 11%;border-style:dashed}
.editorial-card__glyph i { position:absolute;width:7px;height:7px;border:1px solid #756f62;border-radius:50%; }.editorial-card__glyph i:nth-child(1){top:18%;left:17%}.editorial-card__glyph i:nth-child(2){right:19%;bottom:18%}.editorial-card__glyph i:nth-child(3){top:48%;left:49%}.editorial-card__glyph b{position:absolute;top:51%;left:19%;width:61%;height:1px;background:#9c9688;transform:rotate(-8deg)}

.category-hero { min-height:78svh;padding-top:118px;color:#f1f0eb;background:#292c29; }
.category-hero__inner { display:grid;min-height:calc(78svh - 118px);padding-bottom:70px;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);grid-template-rows:auto 1fr;align-items:center;gap:44px 70px; }
.category-back { grid-column:1/-1;color:rgba(255,255,255,.56);font-family:var(--mono);font-size:.55rem;letter-spacing:.08em;text-transform:uppercase; }
.category-hero__copy>p { color:#c8bd9f;font-family:var(--mono);font-size:.57rem;letter-spacing:.09em;text-transform:uppercase; }.category-hero__copy h1 { margin:20px 0 28px;font-size:clamp(4rem,8vw,8rem);line-height:.9; }.category-hero__copy>span { display:block;max-width:580px;color:rgba(255,255,255,.65);font-size:1.05rem;line-height:1.6; }
.category-hero .rubric-visual { height:360px;border-color:rgba(255,255,255,.16);background-color:#333633; }.category-hero .rubric-visual--development { background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px); }.category-hero .rubric-visual--development>i{background:#333633;border-color:#cbc5b6}.category-hero .rubric-visual--development>span{background:#918d82}.category-hero .rubric-visual--flight path{stroke:#b9b4a9}.category-hero .rubric-visual--flight i{color:#e2ded3}.category-hero .rubric-visual--flight b,.category-hero .rubric-visual--flight em{border-color:#b9b4a9}
.category-page[data-scene="index"] .site-header { color:var(--ink);background:#e8e6df; }.category-articles { min-height:55svh; }.category-empty { margin:0;padding:34px;border:1px solid #c9c5ba;border-radius:14px;color:#656760;background:#f6f4ee; }.category-empty[hidden]{display:none}
.journal-visual--compact { min-height:360px; }

@keyframes journal-orbit { to { transform:rotate(360deg); } }
@keyframes journal-line { 0%,100%{transform:scaleX(.55);opacity:.35}50%{transform:scaleX(1);opacity:.72} }
@media (max-width:900px) {
  .category-hero__inner { grid-template-columns:1fr;grid-template-rows:auto auto auto; }.category-hero .rubric-visual,.journal-visual--compact { height:300px;min-height:300px; }
}
@media (max-width:600px) {
  .journal-visual { min-height:280px; }.journal-visual::before{width:250px;height:250px}.journal-visual::after{width:155px;height:155px}.journal-visual__sheet{width:160px}
  .rubric-visual { height:205px; }.category-hero { min-height:auto;padding-top:100px; }.category-hero__inner { min-height:auto;padding-bottom:55px;gap:34px; }.category-hero__copy h1 { font-size:clamp(3.2rem,15vw,5.5rem); }.category-hero .rubric-visual,.journal-visual--compact { height:240px;min-height:240px; }
}
@media (prefers-reduced-motion:reduce) {
  .journal-visual::before,.journal-visual::after,.portal-journal::before,.portal-journal::after,.journal-visual__sheet>span,.portal-journal span { animation:none; }
}

/* v29 — richer rubric scenes and a tighter category hierarchy. */
.theme-blog.editorial-page[data-scene="index"] .site-header .wordmark > span {
  color:#292c29;
  background:#e8e6df;
}

/* The Blog portal uses the same restrained, code-drawn language as Travel and Education. */
.journal-scene {
  position:absolute!important;
  inset:65px 20px auto!important;
  display:grid!important;
  height:230px;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(86,84,77,.18);
  border-radius:10px;
  background:linear-gradient(145deg,#e8e5dc,#f4f1e9);
}
.journal-scene::before {
  position:absolute;
  width:200px;
  height:200px;
  border:1px solid rgba(90,87,78,.18);
  border-radius:50%;
  content:"";
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.journal-scene__back,.journal-scene__page {
  position:absolute;
  width:126px;
  aspect-ratio:.79;
  border:1px solid #777970;
  border-radius:3px 8px 8px 3px;
}
.journal-scene__back { background:#d2cdc1;transform:translate(13px,8px) rotate(6deg); }
.journal-scene__page { padding:27px 18px 18px 30px;background:#efebe0;box-shadow:-7px 8px 0 rgba(87,87,80,.08);transform:rotate(-4deg);transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.journal-scene__page::before { position:absolute;top:0;bottom:0;left:21px;border-left:1px solid rgba(166,98,83,.35);content:""; }
.journal-scene__page i { position:absolute;left:-5px;width:14px;height:2px;border-radius:2px;background:#898a83; }
.journal-scene__page i:nth-of-type(1){top:22%}.journal-scene__page i:nth-of-type(2){top:49%}.journal-scene__page i:nth-of-type(3){top:76%}
.journal-scene__page span { position:relative;display:block;width:78%;height:1px;margin:17px 0 0 7px;background:#777970;transform-origin:left;transition:transform .45s ease; }
.journal-scene__page span:nth-of-type(2){width:56%}.journal-scene__page span:nth-of-type(3){width:69%}
.journal-scene>b,.journal-scene>em { position:absolute;width:8px;height:8px;border:1px solid #8f8674;border-radius:50%;font-style:normal; }
.journal-scene>b{top:18%;left:17%}.journal-scene>em{right:16%;bottom:17%}
.portal-card--journal:is(:hover,:focus-visible) .journal-scene::before { transform:rotate(24deg) scale(1.05); }
.portal-card--journal:is(:hover,:focus-visible) .journal-scene__page { transform:rotate(0) translateY(-5px); }
.portal-card--journal:is(:hover,:focus-visible) .journal-scene__page span:nth-of-type(1){transform:scaleX(.68)}
.portal-card--journal:is(:hover,:focus-visible) .journal-scene__page span:nth-of-type(2){transform:scaleX(1.18)}
.portal-card--journal:is(:hover,:focus-visible) .journal-scene__page span:nth-of-type(3){transform:scaleX(.8)}

/* A flight path that is drawn only behind the moving plane. */
.flight-scene--rubric {
  inset:66px 24px auto!important;
  height:232px;
  border:1px solid #c5c1b7;
  border-radius:12px;
  background:linear-gradient(160deg,#f0eee7,#e5e4dd);
}
.flight-scene--rubric::before,.flight-scene--category::before {
  position:absolute;
  inset:0;
  opacity:.34;
  background-image:linear-gradient(rgba(83,86,82,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(83,86,82,.09) 1px,transparent 1px);
  background-size:36px 36px;
  content:"";
}
.flight-scene--rubric b,.flight-scene--category b { display:none; }
.flight-scene--rubric path { stroke:#6e7673;stroke-width:1.35; }
.flight-scene--rubric .flying-plane { color:#3e4643;font-size:1.65rem; }

/* Development is deliberately split diagonally: code on one side, drawing on the other. */
.development-split {
  position:absolute;
  inset:66px 24px auto;
  height:232px;
  overflow:hidden;
  border:1px solid #c5c1b7;
  border-radius:12px;
  background:#ece9df;
}
.development-split__code,.development-split__geometry { position:absolute;inset:0;overflow:hidden; }
.development-split__code {
  padding:29px 42% 25px 24px;
  color:#d9ddd8;
  background:#303431;
  clip-path:polygon(0 0,100% 0,0 100%);
}
.development-split__code span { display:block;margin-bottom:11px;font-family:var(--mono);font-size:.58rem;letter-spacing:.15em;opacity:.74;transition:transform .55s ease,opacity .55s ease; }
.development-split__code i { position:absolute;left:24px;height:1px;background:rgba(222,225,220,.3); }
.development-split__code i:nth-of-type(1){top:70%;width:34%}.development-split__code i:nth-of-type(2){top:78%;width:24%}.development-split__code i:nth-of-type(3){top:86%;width:13%}
.development-split__geometry {
  background:linear-gradient(145deg,#e8e1cf,#f4f0e7);
  clip-path:polygon(100% 0,100% 100%,0 100%);
}
.development-split__geometry::before,.development-split__geometry::after { position:absolute;border:1px solid rgba(69,73,69,.48);content:""; }
.development-split__geometry::before { right:17%;bottom:16%;width:36%;aspect-ratio:1;border-radius:50%; }
.development-split__geometry::after { right:9%;bottom:10%;width:57%;height:53%;transform:skewX(-18deg) rotate(-8deg); }
.development-split__geometry i { position:absolute;z-index:2;width:8px;height:8px;border:1px solid #515650;border-radius:50%;background:#eee9dc;transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.development-split__geometry i:nth-of-type(1){right:50%;bottom:17%}.development-split__geometry i:nth-of-type(2){right:16%;bottom:60%}.development-split__geometry i:nth-of-type(3){right:9%;bottom:11%}
.development-split__geometry b { position:absolute;right:26%;bottom:24%;width:27%;height:1px;background:#6c706a;transform:rotate(-32deg);transform-origin:right; }
.development-split__geometry em { position:absolute;right:34%;bottom:47%;width:18%;height:1px;background:#6c706a;transform:rotate(56deg);font-style:normal; }
.development-split__geometry span { position:absolute;right:10%;bottom:9%;width:51%;height:46%;border:1px dashed rgba(81,86,80,.38);border-radius:50%; }
.editorial-card--development:is(:hover,:focus-visible) .development-split__code span:nth-child(odd){transform:translateX(9px);opacity:1}
.editorial-card--development:is(:hover,:focus-visible) .development-split__code span:nth-child(even){transform:translateX(-5px);opacity:.48}
.editorial-card--development:is(:hover,:focus-visible) .development-split__geometry i:nth-of-type(1){transform:translate(7px,-7px)}
.editorial-card--development:is(:hover,:focus-visible) .development-split__geometry i:nth-of-type(2){transform:translate(-8px,5px)}
.editorial-card--development:is(:hover,:focus-visible) .development-split__geometry i:nth-of-type(3){transform:translate(-5px,-7px)}

/* The school card reuses the exact visual grammar of the main Education card. */
.board-scene--rubric { inset:66px 24px auto!important;height:232px; }
.editorial-card--school.portal-card--edu { color:#edf4f1;background:#214a40;border-color:#214a40; }
.editorial-card--school.portal-card--edu:hover { border-color:#6fa88f;box-shadow:0 22px 45px rgba(29,67,57,.18),inset 4px 0 0 #6fa88f; }
.editorial-card--school.portal-card--edu p { color:rgba(255,255,255,.65); }
.editorial-card--school.portal-card--edu div:last-child>b { border-color:rgba(255,255,255,.2); }

/* Category pages keep their title and article heading compact, left aligned and single-line. */
.category-hero__inner { grid-template-columns:minmax(0,.9fr) minmax(430px,1.1fr);gap:40px 72px; }
.category-hero__copy { min-width:0;text-align:left; }
.category-hero__copy h1 { max-width:100%;font-size:clamp(3.35rem,5.7vw,6.25rem);line-height:.92;white-space:nowrap; }
.flight-scene--category,.development-split--category,.board-scene--category {
  position:relative!important;
  inset:auto!important;
  align-self:center;
  width:100%;
  height:330px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.15);
  border-radius:16px;
}
.flight-scene--category { background:#343734; }
.flight-scene--category::before { opacity:.22;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); }
.flight-scene--category path { stroke:#c8c3b7;stroke-width:1.35; }
.flight-scene--category .flying-plane { color:#f2eee5;font-size:2rem; }
.development-split--category { height:330px;border-color:rgba(255,255,255,.15); }
.development-split--category .development-split__code { padding:42px 42% 30px 35px; }
.development-split--category .development-split__code span { font-size:.67rem;margin-bottom:16px; }
.board-scene--category { display:grid;place-items:center;background:#29443a; }
.board-scene--category>div { width:80%;height:69%; }
.category-articles .editorial-index__head { grid-template-columns:1fr;justify-items:start;gap:8px;text-align:left; }
.category-articles .editorial-index__head h2 { font-size:clamp(2.8rem,4.8vw,5.2rem);line-height:.95;white-space:nowrap;text-align:left; }
.category-articles .editorial-index__head span { justify-self:start; }

@media (max-width:900px) {
  .category-hero__inner { grid-template-columns:1fr; }
  .category-hero__copy h1 { font-size:clamp(3.25rem,10vw,5.8rem); }
  .flight-scene--category,.development-split--category,.board-scene--category { height:300px; }
}
@media (max-width:600px) {
  .journal-scene,.flight-scene--rubric,.development-split,.board-scene--rubric { inset:64px 18px auto!important;height:215px; }
  .blog-hub .editorial-card { min-height:500px; }
  .category-hero__copy h1 { font-size:clamp(2.55rem,12.5vw,4.4rem);letter-spacing:-.04em; }
  .category-articles .editorial-index__head h2 { font-size:clamp(1.65rem,7.6vw,2.8rem);letter-spacing:-.04em; }
  .flight-scene--category,.development-split--category,.board-scene--category { height:245px; }
  .development-split__code { padding-left:18px; }
  .development-split__code span { font-size:.48rem; }
}
@media (prefers-reduced-motion:reduce) {
  .journal-scene::before,.journal-scene__page,.journal-scene__page span,.development-split span,.development-split i { transition:none; }
}

/* v30 — two-card Blog grid, robust flight drawing and a clearer sound mark. */
.blog-hub .editorial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.blog-hub .editorial-card { min-height:530px; }
.blog-hub .editorial-card>div:last-child { padding-top:34px; }

/* Keep the route completely hidden until the plane starts moving. */
.flight-scene--rubric path,
.flight-scene--category path {
  stroke-dasharray:1000;
  stroke-dashoffset:1000;
  animation:none!important;
}

/* A single SVG mask produces a crisp speaker and two clearly separated waves. */
.home-page[data-scene="sound"] .site-header .wordmark>span::before,
.theme-sound .site-header .wordmark>span::before {
  top:2px;
  left:1px;
  width:32px;
  height:30px;
  border:0;
  border-radius:0;
  background:currentColor;
  box-shadow:none;
  clip-path:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 32'%3E%3Cpath d='M3 12h7l9-7v22l-9-7H3z' fill='black'/%3E%3Cpath d='M23 10c3.3 3.2 3.3 8.8 0 12M27 6c6.1 5.8 6.1 14.2 0 20' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 32'%3E%3Cpath d='M3 12h7l9-7v22l-9-7H3z' fill='black'/%3E%3Cpath d='M23 10c3.3 3.2 3.3 8.8 0 12M27 6c6.1 5.8 6.1 14.2 0 20' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
.home-page[data-scene="sound"] .site-header .wordmark>span::after,
.theme-sound .site-header .wordmark>span::after { display:none; }

.category-articles .editorial-index__head { margin-bottom:48px; }

@media (max-width:900px) {
  .blog-hub .editorial-grid { grid-template-columns:1fr; }
  .blog-hub .editorial-card { min-height:520px; }
}
@media (max-width:600px) {
  .blog-hub .editorial-card { min-height:500px; }
  .blog-hub .editorial-card>div:last-child { padding-top:26px; }
}

/* v31 — reliable flight, blueprint development scene and clearer portfolio details. */
.flying-plane {
  width:32px;
  height:29px;
  color:#3e4643;
  background:currentColor;
  font-size:0;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 35 32'%3E%3Cpath d='M34 16c0-1.2-.9-2.1-2.2-2.5l-11.3-3.2L16.8 1h-3.4l1.2 8.4-7.2 2.1-4.1-3.7H1.2L3.4 16l-2.2 8.2h2.1l4.1-3.7 7.2 2.1-1.2 8.4h3.4l3.7-9.3 11.3-3.2c1.3-.4 2.2-1.3 2.2-2.5Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 35 32'%3E%3Cpath d='M34 16c0-1.2-.9-2.1-2.2-2.5l-11.3-3.2L16.8 1h-3.4l1.2 8.4-7.2 2.1-4.1-3.7H1.2L3.4 16l-2.2 8.2h2.1l4.1-3.7 7.2 2.1-1.2 8.4h3.4l3.7-9.3 11.3-3.2c1.3-.4 2.2-1.3 2.2-2.5Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;
}
.flying-plane::after { position:absolute;top:calc(50% - 1px);left:18%;width:62%;height:2px;border-radius:2px;background:rgba(0,0,0,.24);content:""; }
.flight-scene--category .flying-plane { width:36px;height:33px;color:#f2eee5; }
.flight-scene--rubric .flying-plane { width:30px;height:27px;color:#3e4643; }

.development-split__code span { display:flex;gap:.12em; }
.development-split__code span b { display:inline-block;font:inherit;font-weight:500;transform-style:preserve-3d; }
.editorial-card--development:is(:hover,:focus-visible) .development-split__code span b,
.category-hero:is(:hover,:focus-within) .development-split__code span b {
  animation:binary-turn .85s cubic-bezier(.2,.75,.2,1) var(--bit-delay,0ms) both;
}
.development-split__blueprint {
  position:absolute;
  inset:0;
  overflow:hidden;
  color:#99cae2;
  background-color:#163e58;
  background-image:linear-gradient(rgba(153,202,226,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(153,202,226,.12) 1px,transparent 1px);
  background-size:22px 22px;
  clip-path:polygon(100% 0,100% 100%,0 100%);
}
.development-split__blueprint::before {
  position:absolute;
  right:7%;
  bottom:11%;
  width:58%;
  height:62%;
  border:1px solid currentColor;
  border-radius:7px;
  opacity:.46;
  content:"";
}
.development-split__blueprint::after {
  position:absolute;
  right:9%;
  bottom:15%;
  width:52%;
  height:1px;
  background:currentColor;
  box-shadow:0 -36px 0 currentColor,0 -72px 0 currentColor;
  opacity:.4;
  content:"";
  transition:transform .7s ease;
}
.bp-chip { position:absolute;z-index:2;right:19%;bottom:25%;width:74px;height:58px;border:2px solid currentColor;border-radius:5px;background:#163e58;transition:transform .65s cubic-bezier(.2,.75,.2,1); }
.bp-chip::before,.bp-chip::after { position:absolute;top:10px;bottom:10px;width:10px;background:repeating-linear-gradient(180deg,currentColor 0 2px,transparent 2px 10px);content:""; }
.bp-chip::before{left:-11px}.bp-chip::after{right:-11px}
.bp-chip i { position:absolute;inset:13px;border:1px dashed rgba(153,202,226,.55); }
.bp-chip i:not(:first-child){display:none}
.bp-resistor { position:absolute;z-index:2;right:48%;bottom:22%;width:54px;height:12px;border:2px solid currentColor;background:#163e58;transform:rotate(-9deg); }
.bp-resistor::before,.bp-resistor::after { position:absolute;top:4px;width:26px;height:2px;background:currentColor;content:""; }.bp-resistor::before{right:100%}.bp-resistor::after{left:100%}
.bp-capacitor { position:absolute;z-index:2;right:13%;bottom:64%;width:24px;height:30px;border-inline:3px solid currentColor; }
.bp-capacitor::before,.bp-capacitor::after { position:absolute;left:9px;width:2px;height:16px;background:currentColor;content:""; }.bp-capacitor::before{bottom:100%}.bp-capacitor::after{top:100%}
.development-split__blueprint>b,.development-split__blueprint>em { position:absolute;z-index:3;width:8px;height:8px;border:2px solid currentColor;border-radius:50%;background:#163e58; }
.development-split__blueprint>b{right:55%;bottom:46%}.development-split__blueprint>em{right:7%;bottom:14%;font-style:normal}
.development-split__blueprint>u { position:absolute;z-index:1;height:1px;background:currentColor;opacity:.72;text-decoration:none;transform-origin:left;transition:transform .65s ease; }
.development-split__blueprint>u:nth-of-type(1){right:32%;bottom:55%;width:31%;transform:rotate(-22deg)}
.development-split__blueprint>u:nth-of-type(2){right:7%;bottom:69%;width:28%;transform:rotate(31deg)}
.development-split__blueprint>u:nth-of-type(3){right:39%;bottom:20%;width:28%;transform:rotate(18deg)}
.editorial-card--development:is(:hover,:focus-visible) .bp-chip,.category-hero:is(:hover,:focus-within) .bp-chip{transform:translate(-5px,-4px)}
.editorial-card--development:is(:hover,:focus-visible) .development-split__blueprint::after,.category-hero:is(:hover,:focus-within) .development-split__blueprint::after{transform:translateY(-4px)}
.editorial-card--development:is(:hover,:focus-visible) .development-split__blueprint>u:nth-of-type(1),.category-hero:is(:hover,:focus-within) .development-split__blueprint>u:nth-of-type(1){transform:rotate(-16deg) scaleX(.9)}

@keyframes binary-turn {
  0%{transform:rotateX(0);color:inherit}
  48%{transform:rotateX(90deg);color:#f2d88a}
  100%{transform:rotateX(360deg);color:inherit}
}

@media (min-width:901px) {
  .home-page .hero-portrait>img { transform:translateY(-23%) scale(1.22);transform-origin:50% 44%; }
}

/* Camera icon remains dark and legible on both the yellow and light project chapters. */
.project-page[data-scene="photo-hero"] .site-header .wordmark>span::before,
.project-page[data-scene="photo-projects"] .site-header .wordmark>span::before,
.theme-photo .site-header .wordmark>span::before {
  top:3px;
  left:2px;
  width:30px;
  height:28px;
  border:0;
  border-radius:0;
  background:currentColor;
  box-shadow:none;
  clip-path:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 30'%3E%3Cpath d='M5 7h6l2-3h8l2 3h6a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V10a3 3 0 0 1 3-3Zm12 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12Zm0 2.2a3.8 3.8 0 1 1 0 7.6 3.8 3.8 0 0 1 0-7.6ZM27 10h2v2h-2z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 30'%3E%3Cpath d='M5 7h6l2-3h8l2 3h6a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V10a3 3 0 0 1 3-3Zm12 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12Zm0 2.2a3.8 3.8 0 1 1 0 7.6 3.8 3.8 0 0 1 0-7.6ZM27 10h2v2h-2z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat;
}
.project-page[data-scene="photo-hero"] .site-header .wordmark>span::after,
.project-page[data-scene="photo-projects"] .site-header .wordmark>span::after,
.theme-photo .site-header .wordmark>span::after { display:none; }

.project-wave { height:22px;bottom:24px;align-items:center;opacity:.34; }
.project-wave i { max-height:18px;min-height:2px; }
.project-page .project-archive .post-card:nth-child(2n) .project-wave,
.project-page .project-archive .post-card:nth-child(3n) .project-wave { transform:none; }

@media (max-width:600px) {
  .site-footer { grid-template-columns:1fr auto;row-gap:9px; }
  .site-footer>p:first-of-type { display:block;grid-column:1/-1;grid-row:2;font-size:.54rem; }
}

/* v32 — pointer hover is the primary trigger for every interactive card visual. */
.portal-card--travel.is-hovered .mountain-scene { background:linear-gradient(#17243a,#364965);animation:none; }
.portal-card--travel.is-hovered .mountain-scene::before { opacity:.72;animation:none; }
.portal-card--travel.is-hovered .mountain-scene i { filter:saturate(.45) brightness(.52);animation:none; }
.portal-card--travel.is-hovered .mountain-scene .sun { opacity:0;transform:translateX(84px);animation:none; }
.portal-card--travel.is-hovered .mountain-scene .moon { opacity:1;transform:translateX(76px);animation:none; }
.portal-card--edu.is-hovered .board-scene i { animation:chalk-write 3.8s ease-out both; }
.portal-card--edu.is-hovered .board-scene i:nth-child(2) { animation-delay:.35s; }
.portal-card--edu.is-hovered .board-scene i:nth-child(3) { animation-delay:.7s; }
.portal-card--journal.is-hovered .journal-scene::before { transform:rotate(24deg) scale(1.05); }
.portal-card--journal.is-hovered .journal-scene__page { transform:rotate(0) translateY(-5px); }
.portal-card--journal.is-hovered .journal-scene__page span:nth-of-type(1) { transform:scaleX(.68); }
.portal-card--journal.is-hovered .journal-scene__page span:nth-of-type(2) { transform:scaleX(1.18); }
.portal-card--journal.is-hovered .journal-scene__page span:nth-of-type(3) { transform:scaleX(.8); }
.editorial-card--development.is-hovered .development-split__code span b,
.category-hero.is-hovered .development-split__code span b { animation:binary-turn .85s cubic-bezier(.2,.75,.2,1) var(--bit-delay,0ms) both; }
.editorial-card--development.is-hovered .bp-chip,.category-hero.is-hovered .bp-chip { transform:translate(-5px,-4px); }
.editorial-card--development.is-hovered .development-split__blueprint::after,.category-hero.is-hovered .development-split__blueprint::after { transform:translateY(-4px); }
.editorial-card--development.is-hovered .development-split__blueprint>u:nth-of-type(1),.category-hero.is-hovered .development-split__blueprint>u:nth-of-type(1) { transform:rotate(-16deg) scaleX(.9); }

/* v33 — photographic albums use a dense, responsive tile wall. */
.photo-detail .article-body { padding-inline:max(28px,calc((100vw - 1280px)/2)); }
.photo-gallery { display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;gap:14px; }
.photo-gallery figure { grid-column:span 4;margin:0;overflow:hidden;border-radius:14px;background:#d5d0c4; }
.photo-gallery figure:nth-child(7n+1) { grid-column:span 8;grid-row:span 2; }
.photo-gallery figure:nth-child(7n+4) { grid-column:span 5; }
.photo-gallery figure:nth-child(7n+5) { grid-column:span 7; }
.photo-gallery img { display:block;width:100%;height:100%;min-height:260px;aspect-ratio:4/3;object-fit:cover;transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.photo-gallery figure:nth-child(7n+1) img { aspect-ratio:16/10; }
.photo-gallery figure:hover img { transform:scale(1.025); }
@media(max-width:800px){.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-gallery figure,.photo-gallery figure:nth-child(7n+4),.photo-gallery figure:nth-child(7n+5){grid-column:span 1}.photo-gallery figure:nth-child(7n+1){grid-column:span 2;grid-row:auto}.photo-gallery img{min-height:180px}.photo-gallery figure:nth-child(7n+1) img{aspect-ratio:4/3}}
@media(max-width:500px){.photo-gallery{grid-template-columns:1fr}.photo-gallery figure,.photo-gallery figure:nth-child(7n+1),.photo-gallery figure:nth-child(7n+4),.photo-gallery figure:nth-child(7n+5){grid-column:1;}.photo-gallery img{min-height:220px}}

/* v34 — aviation is now represented by an instrument-like radar, without a flight path. */
.aviation-radar {
  position:absolute;
  inset:66px 24px auto;
  display:grid;
  height:232px;
  padding:18px;
  grid-template-columns:minmax(0,1fr) 78px;
  align-items:center;
  gap:18px;
  overflow:hidden;
  border:1px solid #b9b6ac;
  border-radius:12px;
  color:#dfe8dc;
  background:linear-gradient(145deg,#303633,#252a28);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),inset 0 -32px 60px rgba(0,0,0,.13);
}
.aviation-radar::before {
  position:absolute;
  inset:9px;
  border:1px solid rgba(219,229,215,.08);
  border-radius:8px;
  pointer-events:none;
  content:"";
}
.aviation-radar__scope {
  position:relative;
  width:min(100%,194px);
  aspect-ratio:1;
  justify-self:center;
  overflow:hidden;
  border:1px solid rgba(201,223,197,.48);
  border-radius:50%;
  background:
    linear-gradient(rgba(202,222,198,.12) 1px,transparent 1px) center/100% 50%,
    linear-gradient(90deg,rgba(202,222,198,.12) 1px,transparent 1px) center/50% 100%,
    radial-gradient(circle,transparent 22%,rgba(201,223,197,.24) 22.5%,transparent 23.2%,transparent 45%,rgba(201,223,197,.2) 45.5%,transparent 46.2%,transparent 68%,rgba(201,223,197,.18) 68.5%,transparent 69.2%),
    radial-gradient(circle at center,#31443a 0,#25362f 72%,#1f2c27 100%);
  box-shadow:inset 0 0 22px rgba(4,17,10,.48),0 0 0 5px rgba(214,224,210,.035);
}
.aviation-radar__scope::before {
  position:absolute;
  inset:5px;
  border-radius:50%;
  background:repeating-conic-gradient(from -2deg,rgba(212,230,208,.38) 0 .7deg,transparent .7deg 14.9deg);
  -webkit-mask:radial-gradient(circle,transparent 0 91%,#000 91.4% 100%);
  mask:radial-gradient(circle,transparent 0 91%,#000 91.4% 100%);
  content:"";
}
.aviation-radar__sweep {
  position:absolute;
  inset:0;
  border-radius:50%;
  background:conic-gradient(from -12deg,rgba(184,223,180,.32),rgba(184,223,180,.08) 33deg,transparent 58deg 360deg);
  animation:aviation-radar-sweep 3.8s linear infinite paused;
  opacity:.42;
  transform-origin:center;
}
.aviation-radar__sweep::after {
  position:absolute;
  top:50%;
  right:50%;
  width:47%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(214,238,210,.8));
  box-shadow:0 0 7px rgba(199,231,194,.52);
  content:"";
}
.aviation-radar__blip {
  position:absolute;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#d4e7cf;
  box-shadow:0 0 0 0 rgba(205,232,199,.4),0 0 8px rgba(205,232,199,.7);
  animation:aviation-radar-ping 1.9s ease-out infinite paused;
  opacity:.58;
}
.aviation-radar__blip--one { top:24%;left:29%;animation-delay:-.35s; }
.aviation-radar__blip--two { right:23%;bottom:27%;animation-delay:-1.1s; }
.aviation-radar__blip--three { right:17%;top:32%;width:4px;height:4px;animation-delay:-1.55s; }
.aviation-radar__cessna {
  position:absolute;
  top:42%;
  left:49%;
  z-index:2;
  width:47px;
  height:47px;
  color:#edf3e9;
  filter:drop-shadow(0 0 5px rgba(210,232,205,.42));
  transform:translate(-50%,-50%) rotate(22deg);
  transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .65s ease;
}
.aviation-radar__airframe { fill:currentColor; }
.aviation-radar__airframe-detail { fill:none;stroke:#314139;stroke-width:2.2;stroke-linecap:round; }
.aviation-radar__panel { display:grid;align-content:center;gap:13px; }
.aviation-radar__panel>span { display:flex;height:34px;align-items:end;gap:4px;padding:7px;border:1px solid rgba(217,228,213,.12);border-radius:4px;background:rgba(5,16,10,.17); }
.aviation-radar__panel>span i { width:100%;height:var(--radar-level,45%);border-radius:1px 1px 0 0;background:rgba(194,216,190,.62); }
.aviation-radar__panel>span:first-child i:nth-child(1){--radar-level:34%}.aviation-radar__panel>span:first-child i:nth-child(2){--radar-level:72%}.aviation-radar__panel>span:first-child i:nth-child(3){--radar-level:50%}.aviation-radar__panel>span:first-child i:nth-child(4){--radar-level:82%}.aviation-radar__panel>span:first-child i:nth-child(5){--radar-level:58%}
.aviation-radar__panel>span:nth-child(2) i:nth-child(1){--radar-level:70%}.aviation-radar__panel>span:nth-child(2) i:nth-child(2){--radar-level:44%}.aviation-radar__panel>span:nth-child(2) i:nth-child(3){--radar-level:82%}
.aviation-radar__panel>b { display:block;width:100%;height:4px;border-radius:4px;background:linear-gradient(90deg,rgba(196,216,192,.62) 0 68%,rgba(196,216,192,.12) 68%); }
.aviation-radar__panel>b:last-child { width:72%;background:linear-gradient(90deg,rgba(196,216,192,.45) 0 44%,rgba(196,216,192,.1) 44%); }
.editorial-card--aviation:is(:hover,:focus-visible) .aviation-radar__sweep,
.editorial-card--aviation.is-hovered .aviation-radar__sweep,
.category-hero:is(:hover,:focus-within) .aviation-radar__sweep,
.category-hero.is-hovered .aviation-radar__sweep,
.editorial-card--aviation:is(:hover,:focus-visible) .aviation-radar__blip,
.editorial-card--aviation.is-hovered .aviation-radar__blip,
.category-hero:is(:hover,:focus-within) .aviation-radar__blip,
.category-hero.is-hovered .aviation-radar__blip { animation-play-state:running; }
.editorial-card--aviation:is(:hover,:focus-visible) .aviation-radar__cessna,
.editorial-card--aviation.is-hovered .aviation-radar__cessna,
.category-hero:is(:hover,:focus-within) .aviation-radar__cessna,
.category-hero.is-hovered .aviation-radar__cessna { filter:drop-shadow(0 0 8px rgba(220,241,215,.65));transform:translate(-47%,-53%) rotate(27deg); }
.aviation-radar--category {
  position:relative;
  inset:auto;
  align-self:center;
  width:100%;
  height:330px;
  padding:24px;
  grid-template-columns:minmax(230px,1fr) 116px;
  gap:28px;
  border-color:rgba(255,255,255,.15);
  border-radius:16px;
}
.aviation-radar--category .aviation-radar__scope { width:min(100%,276px); }
.aviation-radar--category .aviation-radar__cessna { width:62px;height:62px; }
.aviation-radar--category .aviation-radar__panel { gap:17px; }
.aviation-radar--category .aviation-radar__panel>span { height:45px; }
@keyframes aviation-radar-sweep { to { transform:rotate(360deg); } }
@keyframes aviation-radar-ping { 0%,22%{opacity:.3;box-shadow:0 0 0 0 rgba(205,232,199,.42),0 0 8px rgba(205,232,199,.55)} 55%{opacity:1;box-shadow:0 0 0 8px rgba(205,232,199,0),0 0 12px rgba(205,232,199,.85)} 100%{opacity:.4;box-shadow:0 0 0 11px rgba(205,232,199,0),0 0 6px rgba(205,232,199,.45)} }
@media(max-width:900px){.aviation-radar--category{height:300px}}
@media(max-width:600px){.aviation-radar--rubric{inset:64px 18px auto;height:215px;padding:15px;grid-template-columns:minmax(0,1fr) 58px;gap:12px}.aviation-radar--rubric .aviation-radar__scope{width:min(100%,170px)}.aviation-radar__panel{gap:9px}.aviation-radar__panel>span{height:29px;padding:6px;gap:3px}.aviation-radar--category{height:245px;padding:18px;grid-template-columns:minmax(0,1fr) 64px;gap:14px}.aviation-radar--category .aviation-radar__scope{width:min(100%,205px)}.aviation-radar--category .aviation-radar__cessna{width:49px;height:49px}.aviation-radar--category .aviation-radar__panel>span{height:34px}}
@media(prefers-reduced-motion:reduce){.aviation-radar__sweep,.aviation-radar__blip{animation:none}.aviation-radar__cessna{transition:none}}
