/* Nichful home: Organic Editorial concept, adopted 2026-07-11. */

.nichful-home {
  --home-ivory: #f4f1e9;
  --home-paper: #fbfaf6;
  --home-ink: #121b1a;
  --home-green: #24483d;
  --home-green-deep: #112b25;
  --home-sage: #8fa596;
  --home-gold: #c8a95d;
  --home-line: rgba(18, 27, 26, .16);
  color: var(--home-ink);
  background: var(--home-paper);
}

.nichful-home .wrap {
  width: min(1240px, calc(100% - 72px));
}

.nichful-home .site-header {
  position: fixed;
  inset: 0 0 auto;
  border-bottom-color: transparent;
  background: transparent;
  transition: border-color .35s ease, background .35s ease, backdrop-filter .35s ease;
}

.nichful-home .site-header.is-scrolled {
  border-bottom-color: rgba(18, 27, 26, .08);
  background: rgba(244, 241, 233, .88);
  backdrop-filter: blur(18px);
}

.nichful-home .nav {
  height: 82px;
}

.nichful-home .brand-mark,
.nichful-home .hamburger {
  box-shadow: none;
}

.nichful-home .hamburger {
  border-radius: 50%;
  background: rgba(251, 250, 246, .74);
  backdrop-filter: blur(10px);
}

.nichful-home .nav-cta {
  border-color: transparent;
  color: var(--home-paper);
  background: var(--home-green-deep);
  box-shadow: none;
}

.nichful-home main {
  overflow: hidden;
}

.nichful-home.intro-active {
  overflow: hidden;
}

/* Intro */
.home-intro {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: grid;
  place-items: center;
  color: var(--home-ink);
  background: var(--home-ivory);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.intro-active .home-intro {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.intro-complete .home-intro {
  opacity: 0;
  visibility: hidden;
  transition: opacity .55s cubic-bezier(.22, 1, .36, 1), visibility 0s .55s;
}

.home-intro-signature {
  display: grid;
  justify-items: center;
}

.home-intro-mark {
  width: 118px;
  height: 118px;
}

.home-intro-mark .intro-frame {
  fill: none;
  stroke: var(--home-ink);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.home-intro-mark .intro-letter {
  fill: var(--home-ink);
  font: 700 178px Georgia, "Times New Roman", serif;
  letter-spacing: -10px;
  opacity: 0;
}

.home-intro-mark .intro-leaf {
  fill: none;
  stroke: var(--home-sage);
  stroke-width: 11;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.intro-active .intro-frame {
  animation: intro-draw .65s .08s cubic-bezier(.22, 1, .36, 1) forwards;
}

.intro-active .intro-letter {
  animation: intro-fade .4s .42s ease forwards;
}

.intro-active .intro-leaf {
  animation: intro-draw .52s .58s cubic-bezier(.22, 1, .36, 1) forwards;
}

.home-intro-signature > p {
  margin-top: 13px;
  font: 500 clamp(42px, 6vw, 58px)/1 Georgia, "Times New Roman", serif;
  letter-spacing: -.055em;
  opacity: 0;
}

.home-intro-signature > span {
  margin-top: 13px;
  color: #61766d;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .25em;
  opacity: 0;
}

.intro-active .home-intro-signature > p,
.intro-active .home-intro-signature > span {
  animation: intro-rise .42s .78s ease forwards;
}

.intro-active .home-intro-signature > span {
  animation-delay: .92s;
}

@keyframes intro-draw { to { stroke-dashoffset: 0; } }
@keyframes intro-fade { to { opacity: 1; } }
@keyframes intro-rise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Hero */
.home-hero {
  position: relative;
  display: grid;
  min-height: 100svh;
  align-items: center;
  padding: 132px 0 86px;
  background:
    radial-gradient(circle at 82% 28%, rgba(200, 169, 93, .13), transparent 29%),
    linear-gradient(118deg, var(--home-paper) 0 58%, #e7ece6 58% 100%);
  isolation: isolate;
}

.home-hero::before {
  content: "NICHFUL";
  position: absolute;
  left: -1.5vw;
  bottom: -4.5vw;
  z-index: -1;
  color: rgba(18, 27, 26, .035);
  font: 500 clamp(120px, 23vw, 350px)/.75 Georgia, "Times New Roman", serif;
  letter-spacing: -.09em;
  white-space: nowrap;
}

.hero-thread {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.hero-thread path {
  fill: none;
  stroke: rgba(36, 72, 61, .34);
  stroke-width: 1.5;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  vector-effect: non-scaling-stroke;
}

.intro-complete .hero-thread path {
  animation: thread-draw 1.8s .2s cubic-bezier(.22, 1, .36, 1) forwards;
}

@keyframes thread-draw { to { stroke-dashoffset: 0; } }

.home-hero-layout {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(520px, 1.08fr);
  align-items: center;
  gap: 52px;
}

.home-hero-copy {
  position: relative;
  z-index: 3;
}

.home-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--home-green);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .24em;
}

.home-eyebrow span {
  width: 34px;
  height: 1px;
  background: var(--home-gold);
}

.home-hero h1 {
  margin-top: 30px;
  max-width: none;
  font-size: clamp(62px, 7.5vw, 112px);
  line-height: .91;
  letter-spacing: -.085em;
  font-weight: 950;
}

.home-hero h1 span {
  display: block;
  white-space: nowrap;
}

.home-hero h1 span:last-child {
  color: var(--home-green);
}

.home-hero-lead {
  max-width: 650px;
  margin-top: 34px;
  color: #40514b;
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 2;
}

.home-hero-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 38px;
}

.home-link-primary,
.home-link-text {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  font-size: 13px;
  font-weight: 900;
}

.home-link-primary {
  min-height: 54px;
  padding: 0 22px;
  color: var(--home-paper);
  background: var(--home-green-deep);
}

.home-link-primary span,
.home-link-text span {
  transition: transform .25s ease;
}

.home-link-primary:hover span { transform: translate(3px, 3px); }
.home-link-text:hover span { transform: translate(3px, -3px); }

.app-constellation {
  position: relative;
  min-height: 640px;
}

.constellation-signature {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  width: 270px;
  text-align: center;
  transform: translate(-50%, -50%);
}

.constellation-signature img {
  width: 100%;
}

.constellation-signature p {
  margin-top: 8px;
  color: #5c7169;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.constellation-icon {
  position: absolute;
  z-index: 2;
  width: 78px;
  aspect-ratio: 1;
  border-radius: 24%;
  object-fit: cover;
  box-shadow: 0 22px 38px -26px rgba(17, 43, 37, .68);
}

.motion-enabled .constellation-icon {
  opacity: 0;
}

.motion-enabled.intro-complete .constellation-icon {
  animation: orbit-arrive .72s var(--delay, 0s) cubic-bezier(.16, 1, .3, 1) forwards,
             orbit-float 5.5s calc(var(--delay, 0s) + .72s) ease-in-out infinite alternate;
}

@keyframes orbit-arrive {
  from { opacity: 0; transform: translateY(20px) scale(.72) rotate(-7deg); }
  to { opacity: 1; transform: translateY(0) scale(1) rotate(var(--rotate, 0deg)); }
}

@keyframes orbit-float {
  from { transform: translateY(0) rotate(var(--rotate, 0deg)); }
  to { transform: translateY(-9px) rotate(calc(var(--rotate, 0deg) + 2deg)); }
}

.orbit-01 { left: 5%; top: 10%; width: 94px; --delay: .05s; --rotate: -5deg; }
.orbit-02 { left: 38%; top: 0; width: 82px; --delay: .11s; --rotate: 3deg; }
.orbit-03 { right: 6%; top: 10%; width: 88px; --delay: .17s; --rotate: 4deg; }
.orbit-04 { right: -1%; top: 39%; width: 76px; --delay: .23s; --rotate: -3deg; }
.orbit-05 { right: 15%; bottom: 12%; width: 72px; --delay: .29s; --rotate: 5deg; }
.orbit-06 { right: 42%; bottom: 0; width: 82px; --delay: .35s; --rotate: -2deg; }
.orbit-07 { left: 30%; bottom: 5%; width: 70px; --delay: .41s; --rotate: 4deg; }
.orbit-08 { left: 2%; bottom: 20%; width: 82px; --delay: .47s; --rotate: -4deg; }
.orbit-09 { left: -2%; top: 43%; width: 72px; --delay: .53s; --rotate: 3deg; }
.orbit-10 { left: 20%; top: 39%; width: 94px; --delay: .59s; --rotate: -3deg; }
.orbit-11 { right: 24%; top: 34%; width: 70px; --delay: .65s; --rotate: 4deg; }
.orbit-12 { right: 2%; bottom: 37%; width: 64px; --delay: .71s; --rotate: -4deg; }
.orbit-13 { left: 16%; bottom: 31%; width: 68px; --delay: .77s; --rotate: 5deg; }
.orbit-14 { left: 49%; top: 23%; width: 76px; --delay: .83s; --rotate: -3deg; }

.home-scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 28px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #5d716a;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
  transform: translateX(-50%) rotate(90deg) translateX(42px);
  transform-origin: left center;
}

.home-scroll-cue i {
  display: block;
  width: 48px;
  height: 1px;
  background: #5d716a;
}

/* Proof */
.home-work { background: var(--home-green-deep); }

.home-proof {
  padding: 128px 0 32px;
  color: var(--home-paper);
  background: var(--home-green-deep);
}

.proof-heading {
  display: grid;
  grid-template-columns: .55fr 1.45fr;
  align-items: end;
  padding-bottom: 64px;
}

.proof-heading > p,
.editorial-heading > p,
.catalog-editorial-heading > div > p,
.why-intro > p:first-child,
.journey-heading > p {
  color: var(--home-gold);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .24em;
}

.proof-heading h2,
.editorial-heading h2,
.catalog-editorial-heading h2,
.why-intro h2,
.journey-heading h2 {
  font-size: clamp(46px, 6vw, 82px);
  line-height: 1.02;
  letter-spacing: -.075em;
}

.proof-ledger {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid rgba(244, 241, 233, .22);
  border-bottom: 1px solid rgba(244, 241, 233, .22);
}

.proof-entry {
  min-width: 0;
  padding: 48px 26px 44px;
  border-right: 1px solid rgba(244, 241, 233, .22);
}

.proof-entry:first-child { padding-left: 0; }
.proof-entry:last-child { border-right: 0; }

.proof-value {
  display: block;
  font: 500 clamp(54px, 6.5vw, 94px)/.88 Georgia, "Times New Roman", serif;
  letter-spacing: -.07em;
  white-space: nowrap;
}

.proof-unit {
  display: block;
  margin-top: 24px;
  color: var(--home-gold);
  font-size: var(--font-info-label-min);
  font-weight: 900;
  letter-spacing: .2em;
}

.proof-entry p {
  margin-top: 8px;
  color: rgba(244, 241, 233, .66);
  font-size: var(--font-info-body-min);
  line-height: 1.55;
}

/* Global footprint */
.home-world {
  position: relative;
  padding: 0 0 88px;
  color: var(--home-paper);
  background:
    radial-gradient(circle at 75% 45%, rgba(44, 98, 82, .24), transparent 38%),
    linear-gradient(145deg, #071a16 0%, #0b2721 58%, #102f27 100%);
  overflow: hidden;
}

.home-world::before {
  content: "WORLDWIDE";
  position: absolute;
  right: -1vw;
  bottom: -3vw;
  color: rgba(244, 241, 233, .018);
  font: 500 clamp(96px, 15vw, 220px)/.78 Georgia, "Times New Roman", serif;
  letter-spacing: -.08em;
  pointer-events: none;
}

.world-ambient,
.world-ambient span {
  position: absolute;
  border: 1px solid rgba(200, 169, 93, .11);
  border-radius: 50%;
  pointer-events: none;
}

.world-ambient {
  inset: -42% -10% auto auto;
  width: min(72vw, 1050px);
  aspect-ratio: 1;
  border-color: rgba(200, 169, 93, .08);
}

.world-ambient span:nth-child(1) { inset: 12%; }
.world-ambient span:nth-child(2) { inset: 25%; }
.world-ambient span:nth-child(3) { inset: 38%; }

.world-map-stage {
  position: relative;
  z-index: 3;
  margin-top: 0;
}

.world-footnotes {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  align-items: center;
  gap: 32px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(244, 241, 233, .17);
}

.world-footnotes p {
  margin: 0;
  color: rgba(244, 241, 233, .42);
  font-size: 8px;
  line-height: 1.8;
  letter-spacing: .08em;
}

.world-visual { min-width: 0; }

.world-map-shell {
  position: relative;
  min-height: 480px;
  border: 1px solid rgba(244, 241, 233, .1);
  border-radius: 52% 48% 46% 54% / 48% 52% 48% 52%;
  background:
    radial-gradient(circle at 50% 45%, rgba(33, 74, 64, .42), transparent 56%),
    rgba(2, 15, 13, .36);
  box-shadow: inset 0 0 90px rgba(0, 0, 0, .26), 0 48px 120px rgba(0, 0, 0, .24);
  isolation: isolate;
}

.world-map-shell::after {
  content: "";
  position: absolute;
  inset: 8% 10%;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(64, 131, 110, .11), transparent 66%);
  filter: blur(18px);
}

#worldDownloadsMap {
  display: block;
  width: 100%;
  height: auto;
  min-height: 480px;
  overflow: visible;
  transform: perspective(1000px) rotateX(var(--world-tilt-x, 0deg)) rotateY(var(--world-tilt-y, 0deg)) scale(1.012);
  transform-origin: center;
  transition: transform .35s cubic-bezier(.22, 1, .36, 1);
}

.world-map-aura { fill: url(#worldGlow); }

.world-map-graticule path {
  fill: none;
  stroke: rgba(244, 241, 233, .065);
  stroke-width: .7;
}

.world-map-countries path {
  fill: rgba(151, 178, 164, .13);
  stroke: rgba(226, 235, 228, .19);
  stroke-width: .65;
  vector-effect: non-scaling-stroke;
  transition: fill .25s ease, stroke .25s ease, opacity .25s ease;
}

.world-map-countries path.has-download {
  fill: rgba(135, 170, 151, .3);
  stroke: rgba(225, 235, 228, .32);
  cursor: pointer;
}

.world-map-countries path.is-selected {
  fill: rgba(200, 169, 93, .68);
  stroke: #f1d58e;
}

.world-map-arcs path {
  fill: none;
  stroke: rgba(200, 169, 93, .38);
  stroke-width: 1.1;
  stroke-linecap: round;
  stroke-dasharray: 3 7;
  vector-effect: non-scaling-stroke;
}

.world-map-nodes circle {
  fill: #f0d487;
  stroke: rgba(255, 249, 225, .9);
  stroke-width: .75;
  filter: url(#nodeGlow);
  vector-effect: non-scaling-stroke;
  transform-box: fill-box;
  transform-origin: center;
  transition: r .22s ease, opacity .22s ease, transform .22s ease;
  opacity: 0;
  transform: scale(.25);
}

.world-map-shell.is-animated .world-map-nodes circle {
  opacity: .92;
  transform: scale(1);
  transition-delay: var(--node-delay, 0ms);
}

.world-map-nodes circle.is-selected,
.world-map-shell.is-animated .world-map-nodes circle.is-selected { transform: scale(1.55); }

.world-map-tooltip {
  position: absolute;
  z-index: 4;
  min-width: 120px;
  padding: 10px 12px;
  border: 1px solid rgba(244, 241, 233, .16);
  border-radius: 14px;
  color: var(--home-paper);
  background: rgba(5, 25, 21, .9);
  box-shadow: 0 16px 42px rgba(0, 0, 0, .28);
  pointer-events: none;
  transform: translate(-50%, calc(-100% - 12px));
  backdrop-filter: blur(12px);
}

.world-map-tooltip span,
.world-map-tooltip strong { display: block; }
.world-map-tooltip span { color: rgba(244, 241, 233, .58); font-size: 9px; letter-spacing: .08em; }
.world-map-tooltip strong { margin-top: 3px; font: 500 19px/1 Georgia, serif; }

.world-map-focus {
  position: absolute;
  left: 32px;
  bottom: 26px;
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.world-map-focus span {
  color: rgba(244, 241, 233, .58);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.world-map-focus strong {
  color: var(--home-gold);
  font: 500 22px/1 Georgia, serif;
}

.world-map-fallback {
  position: absolute;
  inset: 50% auto auto 50%;
  color: rgba(244, 241, 233, .5);
  font-size: 11px;
  transform: translate(-50%, -50%);
}

.world-map-shell.is-ready .world-map-fallback { display: none; }

.world-ranking {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;
  margin-top: 24px;
  list-style: none;
}

.world-ranking button {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  width: 100%;
  min-height: 54px;
  padding: 0;
  border: 0;
  border-top: 1px solid rgba(244, 241, 233, .14);
  color: var(--home-paper);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.world-ranking button span {
  color: rgba(244, 241, 233, .38);
  font: 500 11px/1 Georgia, serif;
}

.world-ranking button b {
  overflow: hidden;
  font-size: 9px;
  letter-spacing: .09em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-ranking button strong {
  color: rgba(244, 241, 233, .65);
  font: 500 16px/1 Georgia, serif;
}

.world-ranking button i {
  grid-column: 2 / 4;
  display: block;
  width: max(14px, calc(var(--reach) * 100%));
  height: 1px;
  margin-top: -8px;
  background: linear-gradient(90deg, var(--home-gold), rgba(200, 169, 93, .1));
  transform-origin: left;
  transition: width .3s ease, opacity .3s ease;
}

.world-ranking button:hover b,
.world-ranking button:focus-visible b,
.world-ranking button.is-selected b { color: var(--home-gold); }

.world-ranking button:hover i,
.world-ranking button:focus-visible i,
.world-ranking button.is-selected i { opacity: 1; }

.world-all-countries {
  margin-top: 24px;
  border-top: 1px solid rgba(244, 241, 233, .14);
  border-bottom: 1px solid rgba(244, 241, 233, .14);
}

.world-all-countries summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 58px;
  color: rgba(244, 241, 233, .7);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .16em;
  cursor: pointer;
  list-style: none;
}

.world-all-countries summary::-webkit-details-marker { display: none; }

.world-all-countries summary i {
  position: relative;
  width: 18px;
  height: 18px;
}

.world-all-countries summary i::before,
.world-all-countries summary i::after {
  content: "";
  position: absolute;
  inset: 50% 2px auto;
  height: 1px;
  background: var(--home-gold);
  transition: transform .25s ease;
}

.world-all-countries summary i::after { transform: rotate(90deg); }
.world-all-countries[open] summary i::after { transform: rotate(0); }

.world-country-ledger {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 20px;
  padding: 2px 0 22px;
}

.world-country-ledger button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  min-height: 38px;
  padding: 0;
  border: 0;
  border-top: 1px solid rgba(244, 241, 233, .08);
  color: rgba(244, 241, 233, .58);
  background: transparent;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .07em;
  text-align: left;
  cursor: pointer;
}

.world-country-ledger button span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-country-ledger button strong {
  color: rgba(244, 241, 233, .72);
  font: 500 13px/1 Georgia, serif;
}

.world-country-ledger button:hover span,
.world-country-ledger button:focus-visible span,
.world-country-ledger button.is-selected span { color: var(--home-gold); }

/* Selected work */
.home-featured {
  padding: 130px 0 0;
  background: var(--home-paper);
}

.editorial-heading {
  display: grid;
  grid-template-columns: .45fr 1.55fr;
  align-items: end;
  padding-bottom: 108px;
}

.feature-story {
  position: relative;
  padding: 130px 0;
  overflow: hidden;
}

.feature-story-grid {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(500px, 1.14fr);
  align-items: center;
  gap: clamp(56px, 8vw, 120px);
}

.feature-story-grid.reverse .feature-story-copy { order: 2; }
.feature-story-grid.reverse .feature-visual { order: 1; }

.feature-index {
  color: var(--home-green);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .2em;
}

.feature-story-copy h3 {
  margin-top: 26px;
  font-size: clamp(42px, 5vw, 70px);
  line-height: 1.03;
  letter-spacing: -.075em;
}

.feature-story-copy > p:not(.feature-index) {
  max-width: 600px;
  margin-top: 30px;
  color: #4e5f59;
  font-size: 15px;
  line-height: 2;
}

.feature-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 38px;
  border-top: 1px solid var(--home-line);
  border-bottom: 1px solid var(--home-line);
}

.feature-facts div {
  padding: 20px 14px 20px 0;
}

.feature-facts dt {
  font: 500 clamp(28px, 3vw, 42px)/1 Georgia, "Times New Roman", serif;
  letter-spacing: -.05em;
}

.feature-facts dd {
  margin-top: 8px;
  color: #687871;
  font-size: 10px;
}

.editorial-arrow {
  display: inline-flex;
  align-items: center;
  gap: 22px;
  margin-top: 34px;
  padding-bottom: 7px;
  border-bottom: 1px solid currentColor;
  font-size: 13px;
  font-weight: 900;
}

.editorial-arrow span { transition: transform .25s ease; }
.editorial-arrow:hover span { transform: translate(3px, -3px); }

.feature-visual {
  position: relative;
  min-height: 650px;
}

.feature-maker {
  background: #eee6d9;
}

.maker-visual {
  display: grid;
  place-items: center;
}

.editorial-phone {
  position: relative;
  z-index: 2;
  width: 340px;
  transform: rotate(4deg);
}

.editorial-phone::before {
  content: none;
}

.editorial-phone img {
  width: 100%;
  filter: drop-shadow(22px 28px 22px rgba(45, 34, 24, .28));
}

.maker-visual::before {
  content: "MAKER";
  position: absolute;
  color: rgba(125, 76, 42, .11);
  font: 500 clamp(130px, 15vw, 220px)/1 Georgia, serif;
  letter-spacing: -.07em;
  transform: rotate(-90deg);
}

.visual-caption {
  position: absolute;
  right: 0;
  bottom: 48px;
  color: #765c49;
  font: italic 20px/1.5 Georgia, serif;
}

.maker-voices {
  margin-top: 70px;
  padding: 52px 0 4px;
  border-top: 1px solid rgba(74, 57, 42, .2);
}

.maker-voices-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
}

.maker-voices-heading > div > p {
  color: #7b5a40;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .23em;
}

.maker-voices-heading h4 {
  margin-top: 8px;
  color: var(--home-ink);
  font-size: clamp(28px, 3.25vw, 44px);
  line-height: 1.08;
  letter-spacing: -.065em;
}

.maker-voices-heading > p {
  margin-bottom: 5px;
  color: #6d5a4a;
  font-size: 13px;
  line-height: 1.8;
}

.maker-voices-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
  gap: 18px;
  margin-top: 28px;
}

.maker-voice {
  position: relative;
  margin: 0;
  border: 1px solid rgba(74, 57, 42, .12);
  border-radius: 26px 26px 26px 8px;
}

.maker-voice-mobile { display: none; }

.maker-voice-main {
  min-height: 252px;
  padding: 31px 36px 30px;
  color: #f8f1e5;
  background: #173d34;
  box-shadow: 12px 15px 28px rgba(69, 49, 32, .11);
}

.maker-voice-main::after {
  content: "";
  position: absolute;
  left: 42px;
  bottom: -9px;
  width: 20px;
  height: 20px;
  background: #173d34;
  border-radius: 0 0 0 14px;
  transform: skewX(-28deg);
}

.maker-voice-quote {
  max-width: 650px;
  font-size: clamp(23px, 2.2vw, 33px);
  font-weight: 900;
  line-height: 1.27;
  letter-spacing: -.055em;
}

.maker-voice-detail {
  margin-top: 18px;
  color: rgba(248, 241, 229, .74);
  font-size: 13px;
  line-height: 1.75;
}

.maker-voice-stack {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 14px;
}

.maker-voice-small {
  min-height: 118px;
  padding: 20px 24px;
  box-shadow: 7px 10px 20px rgba(69, 49, 32, .06);
}

.maker-voice-small::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 26px;
  width: 17px;
  height: 17px;
  border-radius: 0 0 0 12px;
  transform: skewX(-28deg);
}

.maker-voice-small > p {
  font-size: clamp(15px, 1.45vw, 19px);
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: -.04em;
}

.maker-voice-warm {
  color: #33291f;
  background: #f9f4e9;
  box-shadow: 10px 14px 26px rgba(69, 49, 32, .09);
}

.maker-voice-warm::after { background: #f9f4e9; }

.maker-voice-light {
  color: #17463d;
  background: #dfe9dd;
}

.maker-voice-light::after { background: #dfe9dd; }

.maker-update-stream {
  margin-top: 82px;
  padding: 38px 0 34px;
  border-top: 1px solid rgba(74, 57, 42, .2);
  border-bottom: 1px solid rgba(74, 57, 42, .2);
  overflow: hidden;
}

.maker-update-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
}

.maker-update-heading > div > p {
  color: #7b5a40;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .23em;
}

.maker-update-heading h4 {
  margin-top: 8px;
  color: var(--home-ink);
  font-size: clamp(26px, 3vw, 42px);
  line-height: 1.1;
  letter-spacing: -.06em;
}

.maker-update-heading > p {
  color: #6d5a4a;
  font: 500 15px/1 Georgia, "Times New Roman", serif;
  letter-spacing: .04em;
}

.maker-update-heading > p span {
  display: block;
  margin-top: 7px;
  color: rgba(74, 57, 42, .55);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .18em;
  text-align: right;
}

.maker-update-marquee {
  position: relative;
  margin-top: 28px;
  overflow: hidden;
  outline: none;
}

.maker-update-marquee::before,
.maker-update-marquee::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 3;
  width: min(8vw, 110px);
  pointer-events: none;
}

.maker-update-marquee::before {
  left: 0;
  background: linear-gradient(90deg, #eee6d9, transparent);
}

.maker-update-marquee::after {
  right: 0;
  background: linear-gradient(270deg, #eee6d9, transparent);
}

.maker-update-marquee:focus-visible {
  box-shadow: inset 0 0 0 2px rgba(36, 72, 61, .58);
}

.maker-update-track {
  display: flex;
  width: max-content;
  animation: maker-update-flow 132s linear infinite;
  will-change: transform;
}

.maker-update-marquee:hover .maker-update-track,
.maker-update-marquee:focus-within .maker-update-track,
.maker-update-marquee:active .maker-update-track {
  animation-play-state: paused;
}

.maker-update-set {
  display: flex;
  flex: 0 0 auto;
  gap: 12px;
  padding-right: 12px;
  list-style: none;
}

.maker-update-set li {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto 1fr;
  flex: 0 0 320px;
  min-height: 154px;
  gap: 8px 12px;
  padding: 20px 22px;
  border-left: 1px solid rgba(74, 57, 42, .25);
  background: rgba(255, 252, 246, .32);
}

.maker-update-set time {
  color: #755941;
  font: 500 12px/1 Georgia, "Times New Roman", serif;
}

.maker-update-set b {
  color: var(--home-green);
  font-size: 10px;
  line-height: 1;
  letter-spacing: .08em;
}

.maker-update-set span {
  grid-column: 1 / -1;
  color: #342b24;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: -.025em;
}

.maker-update-set li > p {
  grid-column: 1 / -1;
  align-self: end;
  margin: 0;
  color: rgba(52, 43, 36, .68);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: .01em;
}

@keyframes maker-update-flow {
  to { transform: translate3d(-50%, 0, 0); }
}

.feature-pmp {
  color: #eef5f4;
  background: #071d33;
}

.feature-pmp .feature-index,
.feature-pmp .editorial-arrow,
.feature-pmp .feature-facts dt { color: #7fd2e0; }
.feature-pmp .feature-story-copy > p:not(.feature-index),
.feature-pmp .feature-facts dd { color: rgba(238, 245, 244, .62); }
.feature-pmp .feature-facts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 14px;
  border-color: rgba(238, 245, 244, .18);
}

.pmp-share-badge {
  display: grid;
  grid-template-columns: auto auto;
  align-items: end;
  column-gap: 16px;
  width: fit-content;
  margin-top: 25px;
  padding: 13px 18px 12px;
  color: #08213a;
  background: #7fd2e0;
  border-radius: 4px 20px 20px 20px;
  box-shadow: 10px 12px 0 rgba(127, 210, 224, .15);
}

.pmp-share-badge > span,
.pmp-share-badge em {
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .16em;
}

.pmp-share-badge > span { grid-column: 1 / -1; }

.pmp-share-badge strong {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font: 500 clamp(34px, 3.6vw, 52px)/.83 Georgia, "Times New Roman", serif;
  letter-spacing: -.07em;
}

.pmp-share-badge strong small {
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
}

.pmp-share-badge em { padding-bottom: 3px; }

.feature-pmp .feature-facts .pmp-first-fact dt {
  font-size: clamp(22px, 2.2vw, 31px);
  letter-spacing: -.07em;
}

.pmp-language-fact {
  display: flex !important;
  grid-column: 1 / -1;
  align-items: baseline;
  gap: 18px;
  padding-right: 0 !important;
  border-top: 1px solid rgba(238, 245, 244, .12);
}

.pmp-language-fact dt { flex: 0 0 auto; }

.pmp-language-fact dd {
  margin-top: 0;
  font-size: 11px;
  line-height: 1.65;
}

.pmp-visual {
  display: grid;
  place-items: center;
}

.pmp-visual img {
  position: relative;
  z-index: 2;
  width: 310px;
  filter: drop-shadow(26px 32px 30px rgba(0, 0, 0, .42));
  transform: rotate(-4deg);
}

.visual-word {
  position: absolute;
  left: 0;
  top: 8%;
  color: rgba(127, 210, 224, .1);
  font-size: clamp(110px, 15vw, 220px);
  font-weight: 950;
  line-height: .72;
  letter-spacing: -.09em;
}

.feature-cca {
  background: #f7f7f3;
}

.cca-story-grid {
  grid-template-columns: minmax(540px, 1.18fr) minmax(360px, .82fr);
  gap: clamp(42px, 5vw, 84px);
}

.feature-cca .feature-story-copy h3 {
  font-size: clamp(42px, 4.6vw, 64px);
  white-space: nowrap;
}

.cca-proof-badges {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  max-width: 560px;
  margin-top: 25px;
}

.cca-proof-badge {
  display: flex;
  min-height: 106px;
  flex-direction: column;
  justify-content: space-between;
  padding: 16px 18px 14px;
  color: #f7f7f3;
  border-radius: 3px 18px 18px 18px;
  box-shadow: 9px 11px 0 rgba(49, 80, 131, .13);
}

.cca-release-badge { background: #183d70; }
.cca-share-badge { background: #286ad1; }

.cca-proof-badge > span,
.cca-proof-badge em {
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .15em;
}

.cca-proof-badge strong {
  color: #fff;
  font: 500 clamp(23px, 2.4vw, 34px)/.92 Georgia, "Times New Roman", serif;
  letter-spacing: -.055em;
}

.cca-proof-badge strong small {
  display: block;
  margin-bottom: 2px;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .13em;
}

.cca-official-fact dt {
  font-size: clamp(18px, 2vw, 28px);
  letter-spacing: -.075em;
}

.cca-visual {
  display: grid;
  place-items: center;
}

.cca-visual img {
  position: relative;
  z-index: 2;
  width: 278px;
  border: 7px solid #101923;
  border-radius: 45px;
  box-shadow: 30px 46px 80px -42px rgba(23, 30, 45, .58);
}

.cca-orbit {
  position: absolute;
  display: grid;
  width: 520px;
  height: 520px;
  place-items: center;
  border: 1px solid rgba(50, 77, 125, .22);
  border-radius: 50%;
  color: #315083;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .32em;
  animation: slow-spin 24s linear infinite;
}

.cca-orbit::before,
.cca-orbit::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #315083;
}

.cca-orbit::before { left: -4px; top: 50%; }
.cca-orbit::after { right: -4px; top: 50%; }

@keyframes slow-spin { to { transform: rotate(360deg); } }

.feature-physique {
  color: #f4f1e9;
  background: #092e30;
}

.feature-physique .feature-index,
.feature-physique .editorial-arrow,
.feature-physique .feature-facts dt { color: #77d1bd; }
.feature-physique .feature-story-copy > p:not(.feature-index),
.feature-physique .feature-facts dd { color: rgba(244, 241, 233, .64); }
.feature-physique .feature-facts { border-color: rgba(244, 241, 233, .18); }

.physique-visual {
  padding: 54px;
  border-left: 1px solid rgba(244, 241, 233, .18);
}

.physique-icon {
  width: 92px;
  border-radius: 24px;
  box-shadow: 0 28px 70px -34px rgba(0, 0, 0, .7);
}

.physique-metric {
  display: flex;
  align-items: baseline;
  margin-top: 70px;
  color: #77d1bd;
}

.physique-metric span {
  position: absolute;
  margin-top: -24px;
  color: rgba(244, 241, 233, .48);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .2em;
}

.physique-metric strong {
  font: 500 clamp(92px, 12vw, 170px)/.8 Georgia, serif;
  letter-spacing: -.08em;
}

.physique-metric small {
  margin-left: 10px;
  color: rgba(244, 241, 233, .56);
}

.physique-chart {
  width: 100%;
  margin-top: 42px;
}

.chart-grid {
  fill: none;
  stroke: rgba(244, 241, 233, .12);
  stroke-width: 1;
}

.chart-line {
  fill: none;
  stroke: #77d1bd;
  stroke-width: 4;
  stroke-linecap: round;
}

.physique-visual > p {
  color: rgba(244, 241, 233, .5);
  font: italic 18px/1.5 Georgia, serif;
}

/* Catalog */
.home-catalog {
  padding: 140px 0;
  background: var(--home-ivory);
}

.catalog-editorial-heading {
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  align-items: end;
  gap: 80px;
  padding-bottom: 76px;
  border-bottom: 1px solid var(--home-line);
}

.catalog-editorial-heading h2 { margin-top: 22px; }

.catalog-editorial-heading > p {
  color: #596b64;
  font-size: 14px;
  line-height: 1.9;
}

.app-index-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr);
  gap: 72px;
  align-items: start;
  padding-top: 38px;
}

.app-index-list {
  border-top: 1px solid var(--home-line);
}

.app-index-row {
  display: grid;
  grid-template-columns: 34px 58px minmax(190px, .8fr) minmax(170px, 1fr) 24px;
  align-items: center;
  gap: 18px;
  min-height: 92px;
  border-bottom: 1px solid var(--home-line);
  transition: color .25s ease, padding .25s ease, background .25s ease;
}

.app-index-row:hover,
.app-index-row:focus-visible,
.app-index-row.is-active {
  padding: 0 18px;
  color: var(--home-paper);
  background: var(--home-green);
  outline: none;
}

.app-index-number {
  color: #53635d;
  font: 500 12px/1 Georgia, serif;
}

.app-index-row:hover .app-index-number,
.app-index-row:focus-visible .app-index-number,
.app-index-row.is-active .app-index-number,
.app-index-row:hover small,
.app-index-row:focus-visible small,
.app-index-row.is-active small {
  color: rgba(244, 241, 233, .62);
}

.app-index-row > img,
.app-row-icon-cluster {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  object-fit: cover;
}

.app-row-icon-cluster {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3px;
  overflow: hidden;
}

.app-row-icon-cluster img {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 5px;
  object-fit: cover;
}

.app-index-row strong {
  font-size: 17px;
  line-height: 1.3;
  letter-spacing: -.035em;
}

.app-index-row small {
  color: #6a7a74;
  font-size: 11px;
}

.app-index-row i {
  font-style: normal;
  transition: transform .25s ease;
}

.app-index-row:hover i { transform: translate(3px, -3px); }

.app-index-preview {
  --preview-start: #7e3d29;
  --preview-end: #b85d3d;
  --preview-glow: rgba(250, 188, 119, .26);
  --preview-accent: #ffd18b;
  --preview-copy: rgba(255, 248, 238, .74);
  position: sticky;
  top: 118px;
  min-height: 500px;
  padding: 42px;
  color: var(--home-paper);
  background: radial-gradient(circle at 84% 12%, var(--preview-glow), transparent 34%), linear-gradient(145deg, var(--preview-start), var(--preview-end));
  overflow: hidden;
  transition: background .35s ease;
}

.app-index-preview[data-theme="makers-note"] { --preview-start: #7e3d29; --preview-end: #b85d3d; --preview-glow: rgba(250, 188, 119, .26); --preview-accent: #ffd18b; --preview-copy: rgba(255, 248, 238, .74); }
.app-index-preview[data-theme="pmp"] { --preview-start: #082b52; --preview-end: #12699c; --preview-glow: rgba(91, 193, 233, .28); --preview-accent: #a5ecff; --preview-copy: rgba(230, 246, 255, .72); }
.app-index-preview[data-theme="cca"] { --preview-start: #0c3b6c; --preview-end: #2176b6; --preview-glow: rgba(165, 221, 255, .28); --preview-accent: #b9ebff; --preview-copy: rgba(235, 248, 255, .74); }
.app-index-preview[data-theme="aws"] { --preview-start: #30156b; --preview-end: #087a78; --preview-glow: rgba(177, 119, 255, .25); --preview-accent: #b9fff0; --preview-copy: rgba(238, 255, 252, .74); }
.app-index-preview[data-theme="microsoft"] { --preview-start: #063d87; --preview-end: #1677c9; --preview-glow: rgba(92, 190, 255, .3); --preview-accent: #c5efff; --preview-copy: rgba(234, 248, 255, .74); }
.app-index-preview[data-theme="homeboard"] { --preview-start: #345f56; --preview-end: #7a9b8d; --preview-glow: rgba(224, 239, 189, .28); --preview-accent: #e8f5be; --preview-copy: rgba(244, 255, 247, .76); }
.app-index-preview[data-theme="stral"] { --preview-start: #176745; --preview-end: #59ad69; --preview-glow: rgba(176, 241, 151, .28); --preview-accent: #d5ffb5; --preview-copy: rgba(241, 255, 239, .76); }
.app-index-preview[data-theme="physique"] { --preview-start: #072b35; --preview-end: #116e79; --preview-glow: rgba(102, 236, 224, .24); --preview-accent: #a6fff2; --preview-copy: rgba(232, 255, 252, .74); }
.app-index-preview[data-theme="calc"] { --preview-start: #864315; --preview-end: #d88838; --preview-glow: rgba(255, 217, 133, .3); --preview-accent: #fff0b2; --preview-copy: rgba(255, 250, 236, .76); }
.app-index-preview[data-theme="myfanclub"] { --preview-start: #092b55; --preview-end: #3e6d99; --preview-glow: rgba(246, 208, 98, .28); --preview-accent: #ffe681; --preview-copy: rgba(244, 249, 255, .75); }
.app-index-preview[data-theme="wordwolf"] { --preview-start: #64328b; --preview-end: #dc5d9c; --preview-glow: rgba(255, 217, 101, .28); --preview-accent: #fff0a7; --preview-copy: rgba(255, 244, 252, .77); }

.app-index-preview::after {
  content: "N";
  position: absolute;
  right: -24px;
  bottom: -52px;
  color: rgba(255, 255, 255, .08);
  font: 500 300px/1 Georgia, serif;
}

.app-index-preview > p:first-child {
  color: var(--preview-accent);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .18em;
}

.app-index-preview img {
  position: relative;
  z-index: 2;
  width: 150px;
  margin-top: 54px;
  border-radius: 35px;
  box-shadow: 0 34px 60px -32px rgba(0, 0, 0, .75);
  transition: opacity .2s ease, transform .2s ease;
}

.app-index-preview > span {
  display: block;
  margin-top: 42px;
  color: var(--preview-copy);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .2em;
}

.app-index-preview h3 {
  position: relative;
  z-index: 2;
  margin-top: 12px;
  font-size: 30px;
  line-height: 1.15;
  letter-spacing: -.055em;
}

.app-index-preview > p:not(:first-child) {
  position: relative;
  z-index: 2;
  margin-top: 15px;
  color: var(--preview-copy);
  font-size: 13px;
  line-height: 1.75;
}

.app-index-preview > a {
  position: relative;
  z-index: 2;
  display: inline-flex;
  gap: 18px;
  margin-top: 26px;
  padding-bottom: 5px;
  color: var(--preview-accent);
  border-bottom: 1px solid color-mix(in srgb, var(--preview-accent) 65%, transparent);
  font-size: 12px;
  font-weight: 900;
}

/* Why */
.home-why {
  padding: 150px 0;
  background: var(--home-paper);
}

.why-layout {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 90px;
  align-items: start;
}

.why-intro {
  position: sticky;
  top: 130px;
}

.why-intro h2 {
  margin-top: 24px;
  font-size: clamp(44px, 3.8vw, 52px);
}

.why-title-line,
.why-item-title-line {
  display: block;
  white-space: nowrap;
}

.why-intro > p:not(:first-child) {
  max-width: 420px;
  margin-top: 28px;
  color: #5d6d67;
  font-size: 14px;
  line-height: 1.9;
}

.why-line {
  position: relative;
  padding-left: 48px;
}

.why-line::before {
  content: "";
  position: absolute;
  left: 14px;
  top: 17px;
  bottom: 17px;
  width: 1px;
  background: linear-gradient(var(--home-gold), var(--home-green));
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 1.4s cubic-bezier(.22, 1, .36, 1);
}

.why-line.is-visible::before { transform: scaleY(1); }

.why-item {
  position: relative;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 24px;
  padding: 0 0 72px;
}

.why-item:last-child { padding-bottom: 0; }

.why-item::before {
  content: "";
  position: absolute;
  left: -39px;
  top: 12px;
  width: 11px;
  height: 11px;
  border: 3px solid var(--home-paper);
  border-radius: 50%;
  background: var(--home-gold);
  box-shadow: 0 0 0 1px var(--home-gold);
}

.why-item > span {
  color: var(--home-gold);
  font: 500 20px/1 Georgia, serif;
}

.why-item h3 {
  font-size: clamp(27px, 3vw, 42px);
  line-height: 1.2;
  letter-spacing: -.06em;
}

.why-item p {
  max-width: 640px;
  margin-top: 16px;
  color: #5a6a64;
  font-size: 14px;
  line-height: 1.95;
}

/* Journey */
.home-journey {
  padding: 140px 0;
  background: #e6e9e1;
}

.journey-heading {
  display: grid;
  grid-template-columns: .42fr 1.58fr;
  align-items: end;
  padding-bottom: 90px;
}

.journey-heading-copy .editorial-arrow { margin-top: 32px; }

.journey-track-wrap {
  position: relative;
}

.journey-track-wrap::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 11px;
  height: 1px;
  background: rgba(18, 27, 26, .3);
}

.journey-track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
}

.journey-track li {
  position: relative;
  padding: 44px 32px 0 0;
}

.journey-track li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  width: 12px;
  height: 12px;
  border: 4px solid #e6e9e1;
  border-radius: 50%;
  background: var(--home-green);
  box-shadow: 0 0 0 1px var(--home-green);
}

.journey-track time {
  color: var(--home-green);
  font: 500 clamp(26px, 2.5vw, 38px)/1 Georgia, serif;
  letter-spacing: -.05em;
}

.journey-track strong {
  display: block;
  margin-top: 25px;
  font-size: 16px;
  letter-spacing: -.035em;
}

.journey-track p {
  margin-top: 11px;
  color: #65736e;
  font-size: 11px;
  line-height: 1.8;
}

.journey-track .journey-now::before { background: var(--home-gold); box-shadow: 0 0 0 1px var(--home-gold); }
.journey-track .journey-now time { color: #a47d23; }

/* Closing */
.home-closing {
  position: relative;
  display: grid;
  min-height: 620px;
  place-items: center;
  padding: 120px 0;
  color: var(--home-paper);
  background: var(--home-green-deep);
  overflow: hidden;
}

.home-closing > svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.home-closing > svg path {
  fill: none;
  stroke: rgba(200, 169, 93, .35);
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
}

.home-closing-content {
  position: relative;
  z-index: 2;
  text-align: center;
}

.home-closing-content > p {
  color: var(--home-gold);
  font: 500 22px/1 Georgia, serif;
  letter-spacing: .2em;
}

.home-closing-content h2 {
  margin: 36px auto 0;
  font-size: clamp(50px, 7vw, 94px);
  line-height: 1.02;
  letter-spacing: -.08em;
}

.mobile-break {
  display: none;
}

.home-closing-content > div {
  display: flex;
  justify-content: center;
  gap: 44px;
  margin-top: 58px;
}

.home-closing-content a {
  display: inline-flex;
  gap: 20px;
  padding-bottom: 7px;
  border-bottom: 1px solid rgba(244, 241, 233, .6);
  font-size: 13px;
  font-weight: 900;
}

.nichful-home footer {
  color: rgba(244, 241, 233, .54);
  border-color: rgba(244, 241, 233, .12);
  background: #0b211c;
}

/* Motion reveal */
.motion-enabled [data-reveal] {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .75s cubic-bezier(.22, 1, .36, 1), transform .75s cubic-bezier(.22, 1, .36, 1);
}

.motion-enabled [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.motion-enabled .maker-voices .maker-voice[data-reveal] {
  transform: translateY(22px) scale(.96);
  transform-origin: left bottom;
  transition: opacity .55s cubic-bezier(.22, 1, .36, 1), transform .55s cubic-bezier(.22, 1, .36, 1);
}

.motion-enabled .maker-voices .maker-voice[data-reveal].is-visible {
  transform: translateY(0) scale(1);
}

.motion-enabled .maker-voices .maker-voice-main[data-reveal] { transition-delay: .05s; }
.motion-enabled .maker-voices .maker-voice-warm[data-reveal] { transition-delay: .18s; }
.motion-enabled .maker-voices .maker-voice-light[data-reveal] { transition-delay: .31s; }

@media (max-width: 1040px) {
  .nichful-home .wrap { width: min(100% - 48px, 920px); }

  .home-hero {
    min-height: auto;
    padding: 146px 0 82px;
    background: linear-gradient(160deg, var(--home-paper) 0 62%, #e7ece6 62% 100%);
  }

  .home-hero-layout,
  .feature-story-grid,
  .feature-story-grid.reverse,
  .why-layout {
    grid-template-columns: 1fr;
  }

  .world-map-shell { min-height: 520px; }
  #worldDownloadsMap { min-height: 520px; }

  .home-hero-copy { max-width: 760px; }
  .app-constellation { min-height: 610px; margin-top: 32px; }

  .proof-heading,
  .editorial-heading,
  .journey-heading {
    grid-template-columns: .4fr 1.6fr;
  }

  .proof-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof-entry:nth-child(2) { border-right: 0; }
  .proof-entry:nth-child(-n+2) { border-bottom: 1px solid rgba(244, 241, 233, .22); }
  .proof-entry:nth-child(3) { padding-left: 0; }

  .feature-story-grid.reverse .feature-story-copy,
  .feature-story-grid.reverse .feature-visual { order: initial; }
  .feature-visual { min-height: 560px; }

  .app-index-layout { grid-template-columns: 1fr; }
  .app-index-preview { display: none; }

  .why-layout { gap: 72px; }
  .why-intro { position: static; }

  .journey-track { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 58px; }
  .journey-track-wrap::before { display: none; }
  .journey-track li { border-top: 1px solid rgba(18, 27, 26, .3); }
}

@media (max-width: 720px) {
  .nichful-home .wrap { width: min(100% - 36px, 620px); }
  .nichful-home .nav { height: 72px; }
  .nichful-home .nav-cta { display: none; }
  .nichful-home .brand { margin-left: auto; }

  .home-intro-mark { width: 92px; height: 92px; }
  .home-intro-signature > p { font-size: 40px; }
  .home-intro-signature > span { font-size: 7px; }

  .home-hero {
    min-height: 100svh;
    padding: 118px 0 62px;
    background: linear-gradient(170deg, var(--home-paper) 0 66%, #e7ece6 66% 100%);
  }

  .home-hero::before { bottom: 2vw; font-size: 34vw; }
  .hero-thread { height: 78%; top: 22%; }

  .home-hero h1 {
    margin-top: 22px;
    font-size: clamp(42px, 12vw, 48px);
    line-height: .94;
  }

  .home-hero h1 span { white-space: nowrap; }
  .home-hero-lead { margin-top: 26px; font-size: 14px; line-height: 1.9; }
  .home-hero-actions { align-items: flex-start; gap: 22px; margin-top: 30px; }
  .home-link-primary { min-height: 48px; padding: 0 17px; }
  .home-link-text { min-height: 48px; }

  .app-constellation {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    min-height: auto;
    gap: 9px;
    margin-top: 70px;
    padding: 100px 0 0;
  }

  .constellation-signature {
    left: 0;
    top: 0;
    width: 210px;
    text-align: left;
    transform: none;
  }

  .constellation-icon {
    position: static;
    width: 100%;
    border-radius: 23%;
  }

  .motion-enabled.intro-complete .constellation-icon {
    animation-name: orbit-arrive;
    animation-iteration-count: 1;
  }

  .home-scroll-cue { display: none; }

  .home-proof { padding: 86px 0 48px; }
  .proof-heading,
  .editorial-heading,
  .catalog-editorial-heading,
  .journey-heading {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .proof-heading { padding-bottom: 44px; }
  .proof-heading h2,
  .editorial-heading h2,
  .catalog-editorial-heading h2,
  .why-intro h2,
  .journey-heading h2 { font-size: clamp(39px, 12vw, 54px); }

  .proof-heading h2 { font-size: min(9.5vw, 40px); white-space: nowrap; }

  .proof-entry { min-height: 180px; padding: 30px 16px 28px; }
  .proof-value { font-size: clamp(42px, 14vw, 62px); }
  .proof-unit { margin-top: 18px; font-size: var(--font-info-label-min); letter-spacing: .14em; }
  .proof-entry p { font-size: var(--font-info-body-min); line-height: 1.5; }

  .home-world { padding: 0 0 82px; }
  .home-world::before { bottom: 1vw; font-size: 28vw; }
  .world-map-stage { margin-top: 0; }
  .world-map-shell { min-height: 0; margin-inline: -18px; border-radius: 40px; }
  #worldDownloadsMap { min-height: 0; }
  .world-map-focus { left: 22px; bottom: 19px; gap: 8px; }
  .world-map-focus span { font-size: 7px; }
  .world-map-focus strong { font-size: 17px; }
  .world-ranking { grid-template-columns: 1fr; margin-top: 18px; }
  .world-footnotes { grid-template-columns: 1fr; gap: 10px; margin-top: 22px; }
  .world-footnotes p { font-size: 7px; }
  .world-ranking button { min-height: 50px; }
  .world-country-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
  .world-country-ledger button { font-size: 7px; }
  .world-map-tooltip { display: none; }

  .home-featured { padding-top: 88px; }
  .editorial-heading { padding-bottom: 68px; }
  .feature-story { padding: 88px 0; }
  .feature-story-grid { gap: 54px; }
  .feature-story-copy h3 { font-size: clamp(38px, 11vw, 52px); }
  .feature-story-copy > p:not(.feature-index) { margin-top: 24px; font-size: 13px; }
  .feature-facts { margin-top: 28px; }
  .feature-facts div { padding: 16px 8px 16px 0; }
  .feature-facts dt { font-size: clamp(22px, 7vw, 30px); }
  .feature-facts dd { font-size: 8px; line-height: 1.5; }
  .feature-pmp .feature-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 8px; }
  .pmp-share-badge { column-gap: 12px; margin-top: 20px; padding: 12px 15px 11px; }
  .pmp-share-badge strong { font-size: 38px; }
  .pmp-share-badge strong small { font-size: 8px; }
  .pmp-share-badge > span, .pmp-share-badge em { font-size: 7px; }
  .feature-pmp .feature-facts .pmp-first-fact dt { font-size: 20px; }
  .pmp-language-fact { display: block !important; }
  .pmp-language-fact dd { margin-top: 6px; font-size: 10px; line-height: 1.65; }
  .cca-story-grid { grid-template-columns: 1fr; }
  .feature-cca .feature-story-copy h3 { font-size: clamp(38px, 11vw, 52px); white-space: normal; }
  .cca-proof-badges { gap: 10px; margin-top: 20px; }
  .cca-proof-badge { min-height: 94px; padding: 13px 14px 12px; }
  .cca-proof-badge > span, .cca-proof-badge em { font-size: 7px; }
  .cca-proof-badge strong { font-size: 24px; }
  .cca-proof-badge strong small { font-size: 7px; }
  .cca-official-fact dt { font-size: 18px; }
  .feature-visual { min-height: 460px; }
  .editorial-phone { width: 255px; }
  .visual-caption { right: 2px; bottom: 10px; font-size: 14px; }
  .maker-voices { margin-top: 58px; padding: 42px 0 4px; }
  .maker-voices-heading { align-items: flex-start; flex-direction: column; gap: 18px; }
  .maker-voices-heading h4 { font-size: 30px; }
  .maker-voices-heading > p { margin: 0; font-size: 12px; }
  .maker-voices-grid { grid-template-columns: 1fr; gap: 18px; margin-top: 26px; }
  .maker-voice { border-radius: 22px 22px 22px 7px; }
  .maker-voice-main { min-height: 0; padding: 27px 25px 25px; }
  .maker-voice-main::after { left: 30px; }
  .maker-voice-quote { font-size: clamp(22px, 6.7vw, 28px); }
  .maker-voice-desktop { display: none; }
  .maker-voice-mobile { display: block; }
  .maker-voice-detail { margin-top: 16px; font-size: 11px; line-height: 1.7; }
  .maker-voice-stack { gap: 13px; }
  .maker-voice-small { min-height: 0; padding: 19px 21px; }
  .maker-voice-small > p { font-size: 16px; }
  .maker-update-stream { margin-top: 58px; padding: 28px 0 26px; }
  .maker-update-heading { align-items: flex-start; flex-direction: column; gap: 18px; }
  .maker-update-heading h4 { font-size: 30px; }
  .maker-update-heading > p span { text-align: left; }
  .maker-update-marquee { margin-top: 22px; }
  .maker-update-track { animation-duration: 112s; }
  .maker-update-set li { flex-basis: 280px; min-height: 146px; padding: 17px 18px; }
  .maker-update-set span { font-size: 13px; }
  .maker-update-set li > p { font-size: 10px; }
  .pmp-visual img, .cca-visual img { width: 220px; }
  .cca-orbit { width: 360px; height: 360px; font-size: 7px; }
  .physique-visual { min-height: auto; padding: 36px 0 0; border-left: 0; border-top: 1px solid rgba(244, 241, 233, .18); }
  .physique-metric { margin-top: 62px; }
  .physique-metric strong { font-size: 27vw; }

  .home-catalog { padding: 92px 0; }
  .catalog-editorial-heading { gap: 24px; padding-bottom: 48px; }
  .app-index-layout { padding-top: 22px; }
  .app-index-row {
    grid-template-columns: 24px 48px minmax(0, 1fr) 20px;
    gap: 12px;
    min-height: 82px;
  }
  .app-index-row:hover,
  .app-index-row:focus-visible,
  .app-index-row.is-active { padding: 0 10px; }
  .app-index-row > img,
  .app-row-icon-cluster { width: 44px; height: 44px; border-radius: 13px; }
  .app-index-row strong { font-size: 14px; }
  .app-index-row small { display: none; }

  .home-why { padding: 94px 0; }
  .why-intro h2 { font-size: clamp(34px, 8.5vw, 37px); }
  .why-title-line { display: block; white-space: nowrap; }
  .why-item-title-line { display: inline; white-space: normal; }
  .why-desktop-break { display: none; }
  .why-layout { gap: 58px; }
  .why-line { padding-left: 30px; }
  .why-line::before { left: 5px; }
  .why-item { display: block; padding-bottom: 50px; }
  .why-item::before { left: -30px; top: 3px; }
  .why-item > span { display: block; margin-bottom: 10px; font-size: 17px; }
  .why-item h3 { font-size: clamp(18px, 4.6vw, 20px); letter-spacing: -.08em; white-space: nowrap; }
  .why-item p { font-size: 12px; }

  .home-journey { padding: 90px 0; }
  .journey-heading { padding-bottom: 58px; }
  .journey-track { grid-template-columns: 1fr; gap: 0; }
  .journey-track li { min-height: 190px; padding: 34px 0 40px 34px; border-top: 0; border-left: 1px solid rgba(18, 27, 26, .3); }
  .journey-track li::before { left: -7px; top: 0; }
  .journey-track time { font-size: 30px; }
  .journey-track strong { margin-top: 18px; }
  .journey-track p { max-width: 320px; }

  .home-closing { min-height: 560px; padding: 90px 0; }
  .home-closing-content h2 { font-size: clamp(38px, 11vw, 42px); }
  .mobile-break { display: inline; }
  .home-closing-content > div { flex-direction: column; align-items: center; gap: 24px; margin-top: 42px; }

  .nichful-home .footer-inner { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .home-intro { display: none !important; }
  .hero-thread path { stroke-dashoffset: 0; animation: none !important; }
  .constellation-icon,
  .cca-orbit,
  .motion-enabled [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
  .why-line::before { transform: scaleY(1); transition: none; }
  .maker-update-marquee {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .world-map-arcs path { stroke-dasharray: none; }
  .world-map-stage { margin-top: 0; opacity: 1 !important; transform: none !important; transition: none !important; }
  #worldDownloadsMap { transform: none !important; transition: none !important; }
  .world-map-nodes circle { opacity: .92 !important; transform: scale(1) !important; transition: none !important; }
  .world-map-nodes circle.is-selected { transform: scale(1.35) !important; }
  .maker-update-marquee::-webkit-scrollbar { display: none; }
  .maker-update-marquee::before,
  .maker-update-marquee::after { content: none; }
  .maker-update-track { animation: none; transform: none; }
  .maker-update-set[aria-hidden="true"] { display: none; }
  .maker-update-set li { scroll-snap-align: start; }
}
