:root {
  --home-paper: #f4f0e7;
  --home-paper-deep: #ebe5da;
  --home-ink: #151718;
  --home-muted: #77756f;
  --home-line: rgba(21, 23, 24, .15);
  --home-orange: #e76313;
  --home-green: #138c74;
  --home-navy: #071625;
}

body.home-active { background: var(--home-paper); }
body.home-active .public-footer { display: none; }
body.home-active .public-header {
  border-color: var(--home-line);
  background: rgba(244, 240, 231, .9);
  color: var(--home-ink);
  backdrop-filter: blur(16px);
}
body.home-active .public-header .wordmark { color: var(--home-ink); }
body.home-active .public-header .wordmark-core {
  position: relative;
  width: 2.15rem;
  height: 2.15rem;
  flex: 0 0 2.15rem;
  border: 0;
  border-radius: 50%;
  background: url("assets/home/cristallo-orbital-mark.png") center / contain no-repeat;
  isolation: isolate;
}
body.home-active .public-header .wordmark-core::before,
body.home-active .public-header .wordmark-core::after {
  content: "";
  position: absolute;
  display: block;
  pointer-events: none;
  border-radius: 50%;
}
body.home-active .public-header .wordmark-core::before {
  inset: .18rem;
  border: 1px solid rgba(19, 140, 116, .2);
}
body.home-active .public-header .wordmark-core::after {
  top: 50%;
  left: 50%;
  width: .31rem;
  aspect-ratio: 1;
  background: var(--home-orange);
  box-shadow: 0 0 0 .17rem rgba(231, 99, 19, .1);
  animation: wordmark-dot-orbit 5.2s linear infinite;
}
@keyframes wordmark-dot-orbit {
  from { transform: translate(-50%, -50%) rotate(-90deg) translateX(.9rem); }
  to { transform: translate(-50%, -50%) rotate(270deg) translateX(.9rem); }
}

.home-view {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 100svh;
  overflow: hidden;
  padding: 5.35rem max(1rem, env(safe-area-inset-right)) calc(5.9rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  background:
    radial-gradient(circle at 18% 8%, rgba(231, 99, 19, .07), transparent 17rem),
    radial-gradient(circle at 85% 76%, rgba(19, 140, 116, .055), transparent 18rem),
    linear-gradient(145deg, rgba(255,255,255,.34), transparent 46%),
    var(--home-paper);
  color: var(--home-ink);
}
.home-atmosphere {
  position: absolute;
  z-index: 0;
  inset: 4rem 0 4.2rem;
  overflow: hidden;
  pointer-events: none;
}
.home-atmosphere > img {
  position: absolute;
  top: 2%;
  left: 50%;
  width: min(29rem, 112vw);
  height: auto;
  transform: translateX(-50%);
  opacity: .055;
  filter: saturate(.6) contrast(.85);
  mix-blend-mode: multiply;
  animation: atmosphere-turn 42s linear infinite;
}
.atmosphere-orbit {
  position: absolute;
  left: 50%;
  aspect-ratio: 1;
  transform: translateX(-50%) rotate(-12deg);
  border: 1px solid rgba(19, 140, 116, .09);
  border-radius: 50%;
}
.atmosphere-orbit-one { top: 18%; width: min(26rem, 102vw); }
.atmosphere-orbit-two { top: 26%; width: min(19rem, 76vw); border-color: rgba(231, 99, 19, .09); }
.atmosphere-thread {
  position: absolute;
  top: 58%;
  left: 2%;
  width: 98%;
  height: 1px;
  transform: rotate(-11deg);
  transform-origin: center;
  background: linear-gradient(90deg, transparent, rgba(19,140,116,.2) 28%, rgba(231,99,19,.19) 67%, transparent);
}
.atmosphere-node {
  position: absolute;
  width: .36rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--home-paper);
  box-shadow: 0 0 0 1px rgba(19,140,116,.28), 0 0 0 .32rem rgba(19,140,116,.035);
}
.atmosphere-node.node-a { top: 39%; left: 12%; }
.atmosphere-node.node-b { top: 54%; left: 57%; background: var(--home-orange); box-shadow: 0 0 0 .32rem rgba(231,99,19,.055); }
.atmosphere-node.node-c { top: 72%; right: 10%; }
@keyframes atmosphere-turn { to { transform: translateX(-50%) rotate(1turn); } }
.home-view::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .28;
  background-image:
    repeating-linear-gradient(0deg, transparent 0 5px, rgba(46, 39, 29, .015) 6px),
    radial-gradient(circle, rgba(26, 25, 23, .18) 0 .55px, transparent .75px);
  background-size: auto, 37px 37px;
  mask-image: linear-gradient(to bottom, black, transparent 86%);
}

.home-intro, .home-apps, .work-door, .home-footnote {
  position: relative;
  z-index: 1;
  width: min(100%, 31rem);
  margin-inline: auto;
}
.home-intro { display: grid; justify-items: center; padding-top: .25rem; text-align: center; }
.home-mark { width: 2.65rem; height: 2.65rem; margin-bottom: .45rem; border-radius: 50%; mix-blend-mode: multiply; }
.home-state {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 .45rem;
  color: var(--home-muted);
  font-family: var(--sans);
  font-size: .52rem;
  letter-spacing: .19em;
}
.home-state span { width: .34rem; aspect-ratio: 1; border-radius: 50%; background: var(--home-orange); }
.home-intro h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.6rem, 7vw, 2.55rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.025em;
}
.home-intro > p:last-child { max-width: 25rem; margin: .45rem auto 0; color: var(--home-muted); font-family: Georgia, "Times New Roman", serif; font-size: .74rem; line-height: 1.35; }

.home-apps {
  align-self: center;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.05rem .6rem;
  padding: clamp(1.25rem, 4.5vh, 2.5rem) 0 1rem;
}
.home-app {
  display: grid;
  justify-items: center;
  gap: .28rem;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.home-app strong { font-family: var(--sans); font-size: .68rem; font-weight: 700; letter-spacing: .04em; }
.home-app small { max-width: 6.2rem; overflow: hidden; color: var(--home-muted); font-family: var(--sans); font-size: .56rem; text-overflow: ellipsis; white-space: nowrap; }
.home-app:focus-visible { outline: 0; }
.home-app:focus-visible .app-art { outline: 2px solid var(--home-orange); outline-offset: 4px; }
.home-app:active .app-art { transform: scale(.965); }
.app-art {
  position: relative;
  display: block;
  width: min(100%, 6.6rem);
  aspect-ratio: 1 / .82;
  overflow: hidden;
  border: 1px solid rgba(21, 23, 24, .16);
  border-radius: 1.1rem;
  background: #f6f2e9;
  box-shadow: 0 .5rem 1.2rem rgba(35, 29, 22, .09), inset 0 1px rgba(255,255,255,.85);
  transition: transform .18s ease, box-shadow .18s ease;
}
.app-art::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.32); }
.app-art img { display: block; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.app-art-portrait img { object-position: center 44%; }
.app-art-swiza img { object-position: center 48%; filter: saturate(1.02) contrast(1.02); mix-blend-mode: normal; }
.app-art-katoying img { object-position: center; filter: saturate(1.08) contrast(1.04); mix-blend-mode: normal; }
.home-app-life { grid-column: 2; }
.app-art-life { border-color: rgba(229, 102, 20, .32); background: #171717; }
.app-art-life img { object-position: center 66%; filter: saturate(1.06) contrast(1.05); mix-blend-mode: normal; }
.app-art-mark img { object-fit: contain; padding: .5rem; }
.app-art-recipe-image {
  border-color: rgba(19, 140, 116, .34);
  background: #f4eee2;
}
.app-art-recipe-image img {
  object-fit: contain;
  object-position: center;
  padding: .18rem;
  transform: none;
  filter: saturate(1.04) contrast(1.03);
  mix-blend-mode: normal;
  transition: transform .28s ease;
}
.home-app-recipe:hover .app-art-recipe-image img,
.home-app-recipe:focus-visible .app-art-recipe-image img { transform: scale(1.025); }
.app-art-love { border-color: rgba(231, 99, 19, .28); background: #d8c9ad; }
.app-art-community { border-color: rgba(19, 140, 116, .3); background: #eee4d2; }
.app-art-love img,
.app-art-community img {
  object-position: center;
  filter: saturate(1.04) contrast(1.03);
  mix-blend-mode: normal;
  transition: transform .3s ease, filter .3s ease;
}
.home-app-love:hover .app-art-love img,
.home-app-love:focus-visible .app-art-love img,
.home-app-community:hover .app-art-community img,
.home-app-community:focus-visible .app-art-community img { transform: scale(1.045); }

.work-door {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .72rem;
  min-height: 4.25rem;
  margin-top: .12rem;
  padding: .5rem .72rem .5rem .5rem;
  border: 1px solid rgba(21, 23, 24, .15);
  border-radius: 1.05rem;
  background: rgba(250, 247, 239, .76);
  color: var(--home-ink);
  box-shadow: 0 .65rem 1.6rem rgba(35, 29, 22, .075), inset 0 1px rgba(255,255,255,.86);
  text-align: left;
  cursor: pointer;
  backdrop-filter: blur(10px);
}
.work-door:hover, .work-door:focus-visible { border-color: rgba(19,140,116,.45); box-shadow: 0 .75rem 1.7rem rgba(19,104,91,.11), inset 0 1px #fff; }
.work-door:focus-visible { outline: 2px solid var(--home-orange); outline-offset: 3px; }
.work-time {
  display: grid;
  width: 3.25rem;
  aspect-ratio: 1;
  place-content: center;
  border: 1px solid rgba(231,99,19,.35);
  border-radius: 50%;
  background: rgba(255,250,242,.78);
  text-align: center;
}
.work-time strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.02rem; font-weight: 400; line-height: .8; }
.work-time small { margin-top: .18rem; color: var(--home-muted); font-size: .38rem; letter-spacing: .04em; }
.work-door-copy { display: grid; min-width: 0; gap: .12rem; }
.work-door-copy > small { color: var(--home-orange); font-size: .43rem; font-weight: 800; letter-spacing: .12em; }
.work-door-copy > strong { font-family: var(--sans); font-size: .72rem; }
.work-door-copy > span { overflow: hidden; color: var(--home-muted); font-size: .52rem; text-overflow: ellipsis; white-space: nowrap; }
.work-door > i { color: var(--home-green); font-family: Georgia, "Times New Roman", serif; font-size: 1.1rem; font-style: normal; }
.home-footnote { margin-top: auto; color: #8d8980; text-align: center; font-family: var(--sans); font-size: .54rem; letter-spacing: .1em; text-transform: uppercase; }

.pulse-edge {
  position: fixed;
  z-index: 28;
  right: 0;
  bottom: calc(.85rem + env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .58rem;
  width: 11.4rem;
  min-height: 3.55rem;
  padding: .5rem .75rem .5rem .65rem;
  border: 1px solid rgba(231, 99, 19, .28);
  border-right: 0;
  border-radius: 1rem 0 0 1rem;
  background: linear-gradient(135deg, rgba(255,250,241,.97), rgba(242,224,197,.96));
  color: var(--home-ink);
  box-shadow: 0 .7rem 1.8rem rgba(102, 70, 36, .16), inset 0 1px rgba(255,255,255,.9);
  touch-action: pan-y;
  cursor: pointer;
}
.pulse-edge > span:nth-child(2) { display: grid; gap: .12rem; text-align: left; }
.pulse-edge strong { font-family: var(--sans); font-size: .63rem; letter-spacing: .09em; }
.pulse-edge small { overflow: hidden; color: #857c70; font-family: var(--sans); font-size: .47rem; text-overflow: ellipsis; white-space: nowrap; }
.pulse-play { display: grid; width: 1.65rem; aspect-ratio: 1; place-items: center; border-radius: 50%; background: var(--home-green); color: #fffaf1; font-size: .66rem; }
.pulse-edge > i { display: flex; align-items: end; gap: 2px; height: .92rem; }
.pulse-edge b { width: 2px; height: 42%; border-radius: 2px; background: var(--home-orange); }
.pulse-edge b:nth-child(2) { height: 88%; }
.pulse-edge b:nth-child(3) { height: 60%; }
.pulse-edge b:nth-child(4) { height: 76%; }
.pulse-edge.is-playing b { animation: pulse-edge-wave .72s ease-in-out infinite alternate; }
.pulse-edge.is-playing b:nth-child(2) { animation-delay: -.42s; }
.pulse-edge.is-playing b:nth-child(3) { animation-delay: -.18s; }
.pulse-edge.is-playing b:nth-child(4) { animation-delay: -.55s; }
@keyframes pulse-edge-wave { to { height: 100%; background: var(--home-green); } }

.pulse-scrim { position: fixed; z-index: 58; inset: 0; background: rgba(14, 16, 17, .48); backdrop-filter: blur(5px); }
.pulse-drawer {
  position: fixed;
  z-index: 60;
  inset: 0 0 0 auto;
  display: grid;
  width: min(100%, 31rem);
  height: 100dvh;
  grid-template-rows: auto auto minmax(0, 1fr);
  overflow: hidden;
  padding: calc(1.05rem + env(safe-area-inset-top)) 1.05rem calc(1.3rem + env(safe-area-inset-bottom));
  background: var(--home-paper);
  color: var(--home-ink);
  box-shadow: -1.4rem 0 4rem rgba(0,0,0,.28);
  touch-action: pan-y;
}
.pulse-drawer[hidden] { display: none; }
.pulse-header {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr) 2.45rem 2.45rem;
  align-items: end;
  gap: .65rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--home-line);
}
.pulse-library-cover, .pulse-current-cover, .pulse-track-cover { display: block; object-fit: cover; background: #ece7dc; }
.pulse-library-cover { width: 4.5rem; height: 4.5rem; border-radius: 1rem; }
.pulse-library-copy { min-width: 0; }
.pulse-header p, .sheet-kicker { margin: 0 0 .35rem; color: var(--home-green); font-family: var(--sans); font-size: .5rem; font-weight: 750; letter-spacing: .14em; }
.pulse-header h2 { margin: 0; overflow: hidden; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 10vw, 3.5rem); font-weight: 400; line-height: .86; letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap; }
.pulse-library-copy > span { display: block; margin-top: .55rem; overflow: hidden; color: var(--home-muted); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.pulse-close, .sheet-close { width: 2.7rem; aspect-ratio: 1; border: 1px solid var(--home-line); border-radius: 50%; background: rgba(255,255,255,.24); color: inherit; font-size: 1.4rem; cursor: pointer; }
.pulse-header .pulse-close, .pulse-external { display: grid; width: 2.45rem; height: 2.45rem; place-items: center; align-self: center; border: 1px solid var(--home-line); border-radius: 50%; background: rgba(255,255,255,.28); color: var(--home-ink); font-size: 1.15rem; text-decoration: none; }

.pulse-now-playing {
  display: grid;
  grid-template-columns: 3.15rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .7rem;
  padding: .9rem 0;
  border-bottom: 1px solid var(--home-line);
}
.pulse-current-cover { width: 3.15rem; height: 3.15rem; border-radius: .75rem; }
.pulse-current-copy { display: grid; min-width: 0; gap: .2rem; }
.pulse-current-copy strong { overflow: hidden; font-family: var(--sans); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.pulse-current-copy span { color: var(--home-muted); font-size: .58rem; font-variant-numeric: tabular-nums; }
.pulse-controls { display: flex; align-items: center; gap: .35rem; }
.pulse-controls button {
  display: grid;
  width: 2.15rem;
  height: 2.15rem;
  place-items: center;
  border: 1px solid var(--home-line);
  border-radius: 50%;
  background: transparent;
  color: var(--home-ink);
  font-size: 1.15rem;
  cursor: pointer;
}
.pulse-controls .pulse-play-toggle { width: 2.55rem; height: 2.55rem; border-color: rgba(231,99,19,.42); background: linear-gradient(145deg, var(--home-green), #0f7665); color: #fffaf1; font-size: .72rem; }
.pulse-controls button:disabled { cursor: default; opacity: .3; }
.pulse-now-playing input[type="range"] { width: 100%; height: 2px; grid-column: 1 / -1; margin: .15rem 0 0; accent-color: var(--home-green); }

.pulse-track-list { min-height: 0; margin: 0; padding: .45rem 0 1rem; overflow-y: auto; list-style: none; scrollbar-color: rgba(18,94,84,.5) transparent; scrollbar-width: thin; }
.pulse-track { display: grid; width: 100%; min-height: 3.8rem; grid-template-columns: 1.6rem 2.65rem minmax(0, 1fr) auto; align-items: center; gap: .65rem; padding: .45rem .35rem; border: 0; border-bottom: 1px solid var(--home-line); background: transparent; color: var(--home-muted); text-align: left; cursor: pointer; }
.pulse-track:hover, .pulse-track:focus-visible, .pulse-track.is-current { background: rgba(18,94,84,.08); color: var(--home-ink); }
.pulse-track.is-current { box-shadow: inset 2px 0 var(--home-green); }
.pulse-track-number, .pulse-track time { color: #918c82; font-size: .55rem; font-variant-numeric: tabular-nums; }
.pulse-track-cover { width: 2.65rem; height: 2.65rem; border-radius: .65rem; }
.pulse-track strong { min-width: 0; overflow: hidden; font-family: var(--sans); font-size: .72rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.pulse-loading, .pulse-load-fallback { display: grid; min-height: 11rem; place-items: center; }
.pulse-load-fallback { color: var(--home-muted); text-decoration: none; }
.pulse-loading > span { display: inline-flex; height: 1.5rem; align-items: center; gap: 3px; }
.pulse-loading i { width: 2px; height: 6px; background: var(--home-green); animation: pulse-loading-wave .82s ease-in-out infinite alternate; }
.pulse-loading i:nth-child(2) { animation-delay: -.52s; }
.pulse-loading i:nth-child(3) { animation-delay: -.22s; }
.pulse-loading i:nth-child(4) { animation-delay: -.64s; }
@keyframes pulse-loading-wave { to { height: 1.4rem; } }
.pulse-engine { position: fixed !important; top: -2px !important; left: -2px !important; width: 1px !important; height: 1px !important; border: 0 !important; opacity: .01; pointer-events: none; }

.community-sheet, .work-sheet { position: fixed; z-index: 62; left: 50%; bottom: 0; width: min(100%, 31rem); max-height: calc(100dvh - 1.25rem); overflow-y: auto; padding: 1.4rem 1.25rem calc(2rem + env(safe-area-inset-bottom)); transform: translateX(-50%); border-radius: 1.5rem 1.5rem 0 0; background: var(--home-paper); color: var(--home-ink); box-shadow: 0 -2rem 5rem rgba(0,0,0,.3); }
.community-sheet[hidden], .work-sheet[hidden] { display: none; }
.community-sheet .sheet-close, .work-sheet .sheet-close { float: right; }
.community-sheet h2, .work-sheet h2 { max-width: 23rem; margin: 2.4rem 0 .8rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 10vw, 3rem); font-weight: 400; line-height: .96; }
.community-sheet > p:last-child { max-width: 23rem; color: var(--home-muted); line-height: 1.55; }
.work-lead { max-width: 26rem; color: var(--home-muted); font-size: .82rem; line-height: 1.55; }
.work-conditions { display: grid; gap: .55rem; margin: 1.25rem 0; padding: 0; list-style: none; }
.work-conditions li { display: grid; grid-template-columns: 8.4rem 1fr; gap: .65rem; padding-top: .55rem; border-top: 1px solid var(--home-line); }
.work-conditions strong { font-family: var(--sans); font-size: .67rem; }
.work-conditions span { color: var(--home-muted); font-size: .65rem; line-height: 1.38; }
.work-contact { display: flex; min-height: 3.25rem; align-items: center; justify-content: space-between; padding: .7rem .9rem; border-radius: .9rem; background: var(--home-green); color: #fffaf1; font-family: var(--sans); font-size: .76rem; font-weight: 800; text-decoration: none; }
.work-contact:hover, .work-contact:focus-visible { background: #0f7665; }
.work-contact:focus-visible { outline: 2px solid var(--home-orange); outline-offset: 3px; }
.work-boundary { margin: .72rem 0 0; color: var(--home-muted); font-size: .55rem; line-height: 1.4; }

@media (min-width: 701px) {
  .home-view::after { content: ""; position: absolute; z-index: 0; inset: 5.2rem 50% 1rem auto; width: min(33rem, calc(100vw - 3rem)); transform: translateX(50%); border: 1px solid var(--home-line); border-radius: 2rem; box-shadow: 0 2rem 5rem rgba(43,35,26,.11); }
  .home-apps { grid-template-columns: repeat(8, minmax(0, 1fr)); gap-inline: .35rem; }
  .home-app { grid-column: span 2; }
  .home-app:nth-child(5) { grid-column: 2 / span 2; }
}
@media (max-width: 700px) {
  body.home-active .public-header { min-height: 3.65rem; padding-inline: 1rem; }
  body.home-active .public-header .motion-toggle { display: grid; place-items: center; width: 2rem; aspect-ratio: 1; padding: 0; border: 1px solid var(--home-line); border-radius: 50%; font-size: 0; }
  body.home-active .public-header .motion-toggle::before { content: "∿"; color: var(--home-green); font-size: .9rem; }
  body.home-active .public-header .motion-toggle[aria-pressed="true"]::before { content: "Ⅱ"; }
  body.home-active .public-header .wordmark { font-size: .61rem; }
  .home-view { padding-top: 4.75rem; }
}
@media (max-height: 700px) {
  .home-view { padding-top: 4.35rem; padding-bottom: 5rem; }
  .home-mark { width: 2rem; height: 2rem; margin-bottom: .2rem; }
  .home-intro > p:last-child, .home-app small, .home-footnote, .work-door-copy > span { display: none; }
  .home-apps { padding-block: .65rem; gap-block: .55rem; }
  .app-art { width: min(100%, 5.75rem); }
  .work-door { min-height: 3.8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .home-app:active .app-art { transform: none; }
  body.home-active .public-header .wordmark-core::before,
  body.home-active .public-header .wordmark-core::after,
  .home-atmosphere > img { animation: none; }
}
body.motion-paused.home-active .public-header .wordmark-core::before,
body.motion-paused.home-active .public-header .wordmark-core::after,
body.motion-paused .home-atmosphere > img { animation-play-state: paused; }

/* Home v12: the worlds carry the first screen instead of sitting inside a frame. */
.home-view {
  --home-live-accent: var(--home-orange);
  grid-template-rows: auto auto auto auto 1fr;
  align-content: start;
  overflow-x: hidden;
  overflow-y: auto;
  padding: clamp(5rem, 9vh, 6.4rem) clamp(1rem, 4vw, 4rem) calc(5.4rem + env(safe-area-inset-bottom));
  background:
    linear-gradient(112deg, transparent 0 57%, rgba(19, 140, 116, .1) 57% 71%, transparent 71%),
    linear-gradient(168deg, rgba(255, 255, 255, .58) 0 31%, transparent 31% 68%, rgba(231, 99, 19, .1) 68% 78%, transparent 78%),
    var(--home-paper);
  transition: --home-live-accent .2s ease;
}
.home-view::after { display: none; }
.home-atmosphere { inset: 3.75rem 0 3.8rem; }
.home-atmosphere > img {
  top: 4%;
  width: min(46rem, 76vw);
  opacity: .085;
  animation-duration: 32s;
}
.atmosphere-orbit-one { top: 12%; width: min(48rem, 84vw); }
.atmosphere-orbit-two { top: 19%; width: min(35rem, 66vw); }
.atmosphere-thread {
  top: 52%;
  left: -5%;
  width: 110%;
  height: 2px;
  background: linear-gradient(90deg, transparent 4%, rgba(19,140,116,.36) 31%, var(--home-live-accent) 58%, rgba(231,99,19,.28) 75%, transparent 96%);
  background-size: 180% 100%;
  animation: home-thread-run 5.5s ease-in-out infinite alternate;
}
@keyframes home-thread-run { to { background-position: 100% 0; } }
.atmosphere-node.node-b { background: var(--home-live-accent); transition: background .2s ease; }

.home-intro, .home-apps, .home-footnote {
  width: min(100%, 74rem);
}
.home-intro { padding-top: 0; }
.home-state {
  margin-bottom: .55rem;
  color: var(--home-ink);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: 0;
}
.home-state span { background: var(--home-live-accent); transition: background .2s ease; }
.home-intro h1 {
  font-size: clamp(2.65rem, 5.2vw, 4.8rem);
  line-height: .96;
  letter-spacing: 0;
}
.home-signal {
  display: grid;
  max-width: 48rem;
  gap: .18rem;
  margin: .8rem auto 0;
  border-top: 1px solid rgba(21, 23, 24, .22);
  border-bottom: 1px solid rgba(21, 23, 24, .22);
  padding: .7rem 1rem .75rem;
  color: var(--home-ink);
}
.home-signal strong {
  color: var(--home-live-accent);
  font-family: var(--sans);
  font-size: clamp(.82rem, 1.4vw, 1.05rem);
  line-height: 1.2;
  transition: color .2s ease;
}
.home-signal span {
  color: #585953;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(.72rem, 1.15vw, .9rem);
  line-height: 1.35;
}
.home-signal.is-changing { animation: home-signal-arrive .24s ease-out; }
@keyframes home-signal-arrive {
  from { opacity: .35; transform: translateY(.2rem); }
}

.home-apps {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  align-items: start;
  gap: clamp(.55rem, 1.2vw, 1rem);
  padding: clamp(1.3rem, 3.4vh, 2.25rem) 0 1.25rem;
}
.home-app {
  grid-column: auto;
  gap: .42rem;
  transition: opacity .22s ease, filter .22s ease, transform .22s ease;
  animation: home-door-arrive .52s ease-out;
}
.home-app:nth-child(2) { animation-delay: .04s; }
.home-app:nth-child(3) { animation-delay: .08s; }
.home-app:nth-child(4) { animation-delay: .12s; }
.home-app:nth-child(5) { animation-delay: .16s; }
.home-app:nth-child(6) { animation-delay: .2s; }
.home-app:nth-child(7) { animation-delay: .24s; }
.home-app:nth-child(5) { grid-column: auto; }
@keyframes home-door-arrive {
  from { opacity: 0; transform: translateY(1rem) scale(.96); }
}
.home-app:nth-child(even) { transform: translateY(.8rem); }
.home-apps.has-signal .home-app:not(.is-sounding) { opacity: .58; filter: saturate(.68); }
.home-app.is-sounding { z-index: 2; transform: translateY(-.55rem) scale(1.055); }
.home-app:nth-child(even).is-sounding { transform: translateY(.15rem) scale(1.055); }
.home-app strong {
  color: var(--home-ink);
  font-size: .76rem;
  letter-spacing: 0;
}
.home-app small {
  display: block;
  min-height: 1.55rem;
  max-width: 8.5rem;
  overflow: visible;
  font-size: .6rem;
  line-height: 1.25;
  text-overflow: clip;
  white-space: normal;
}
.app-art {
  width: 100%;
  max-width: 10rem;
  aspect-ratio: 1 / .9;
  border-radius: .5rem;
  box-shadow: 0 .55rem 1.4rem rgba(35, 29, 22, .13), inset 0 1px rgba(255,255,255,.85);
  transition: transform .26s ease, border-color .22s ease, box-shadow .26s ease;
}
.app-art::after { border-radius: .5rem; }
.app-art img { transition: transform .38s ease, filter .3s ease; }
.home-app.is-sounding .app-art {
  border-color: var(--home-live-accent);
  box-shadow: 0 1rem 2rem rgba(35, 29, 22, .2), 0 0 0 2px color-mix(in srgb, var(--home-live-accent) 28%, transparent);
}
.home-app.is-sounding .app-art img { transform: scale(1.055); }
.home-app-recipe:hover .app-art-recipe-image img,
.home-app-recipe:focus-visible .app-art-recipe-image img,
.home-app-recipe.is-sounding .app-art-recipe-image img { transform: scale(1.055); }
.app-art-katoying img { object-position: center 51%; filter: saturate(1.03) contrast(1.03); mix-blend-mode: normal; }
.home-app-life { grid-column: auto; }

.work-door {
  width: min(100%, 50rem);
  min-height: 4.65rem;
  margin-top: clamp(.25rem, 1vh, .75rem);
  border-color: rgba(21, 23, 24, .8);
  border-radius: .5rem;
  background: var(--home-ink);
  color: #fffdf7;
  box-shadow: .55rem .55rem 0 color-mix(in srgb, var(--home-live-accent) 52%, #d8b34c);
  transition: transform .2s ease, box-shadow .2s ease;
}
.work-door:hover, .work-door:focus-visible {
  border-color: var(--home-ink);
  transform: translate(-.12rem, -.12rem);
  box-shadow: .75rem .75rem 0 color-mix(in srgb, var(--home-live-accent) 68%, #d8b34c);
}
.work-time { border-color: rgba(255,255,255,.42); background: var(--home-live-accent); }
.work-time strong, .work-time small { color: #fffdf7; }
.work-door-copy > small { color: #ffc274; letter-spacing: 0; }
.work-door-copy > strong { font-size: .95rem; }
.work-door-copy > span { color: rgba(255,253,247,.68); font-size: .6rem; }
.work-door > i { color: #fffdf7; }
.signal-door {
  position: relative;
  display: grid;
  grid-template-columns: 6.75rem minmax(0, 1fr) auto;
  align-items: center;
  align-self: start;
  justify-self: center;
  width: min(100%, 50rem);
  height: 6.4rem;
  min-height: 6.4rem;
  margin-top: 1.35rem;
  overflow: hidden;
  border-top: 1px solid rgba(21, 23, 24, .28);
  border-bottom: 1px solid rgba(21, 23, 24, .28);
  color: var(--home-ink);
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease;
}
.signal-door::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 6.75rem;
  height: 2px;
  background: var(--home-orange);
  transform: scaleX(.14);
  transform-origin: left;
  transition: transform .32s ease;
}
.signal-door:hover,
.signal-door:focus-visible { border-color: rgba(21, 23, 24, .62); background: rgba(255,255,255,.24); outline: none; }
.signal-door:hover::after,
.signal-door:focus-visible::after { transform: scaleX(1); }
.signal-door-art { align-self: stretch; overflow: hidden; background: #e9e2d5; }
.signal-door-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 52% 46%; transition: transform .45s ease; }
.signal-door:hover .signal-door-art img,
.signal-door:focus-visible .signal-door-art img { transform: scale(1.045); }
.signal-door-copy { display: grid; gap: .2rem; min-width: 0; padding: .9rem 1.1rem; }
.signal-door-copy small { color: var(--home-orange); font-size: .48rem; font-weight: 800; letter-spacing: .12em; }
.signal-door-copy strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.12rem; font-weight: 400; line-height: 1.05; }
.signal-door-copy span { color: var(--home-muted); font-size: .58rem; }
.signal-door > i { padding-right: 1rem; color: var(--home-orange); font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; font-style: normal; }
.home-footnote { margin-top: .9rem; letter-spacing: 0; }

.pulse-edge {
  border-color: rgba(255,255,255,.16);
  background: var(--home-ink);
  color: #fffdf7;
  box-shadow: 0 .8rem 1.8rem rgba(0,0,0,.22);
}
.pulse-edge small { color: rgba(255,253,247,.66); }
.pulse-play { background: var(--home-live-accent); transition: background .2s ease; }

@media (min-width: 701px) and (max-width: 1100px) {
  .home-apps { max-width: 52rem; grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .home-app { grid-column: span 2; }
  .home-app:nth-child(5) { grid-column: 2 / span 2; }
  .home-app-life { grid-column: span 2; }
  .app-art { max-width: 8.75rem; }
}
@media (max-width: 700px) {
  .home-view { padding-top: 4.8rem; padding-bottom: calc(5.8rem + env(safe-area-inset-bottom)); }
  .home-atmosphere > img { width: min(32rem, 126vw); }
  .atmosphere-orbit-one { width: 120vw; }
  .atmosphere-orbit-two { width: 88vw; }
  .home-intro h1 { max-width: 22rem; font-size: clamp(2.35rem, 12vw, 3.25rem); }
  .home-signal { max-width: 24rem; margin-top: .7rem; padding-inline: .45rem; }
  .home-apps { max-width: 32rem; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem .55rem; padding-top: 1.35rem; }
  .home-app, .home-app:nth-child(even) { grid-column: auto; transform: none; }
  .home-app-life { grid-column: 2; }
  .home-app.is-sounding, .home-app:nth-child(even).is-sounding { transform: translateY(-.35rem) scale(1.035); }
  .app-art { max-width: 7.25rem; }
  .home-app small { min-height: 1.45rem; font-size: .56rem; }
  .work-door { width: min(100%, 32rem); }
  .signal-door { grid-template-columns: 5.4rem minmax(0, 1fr) auto; width: min(100%, 32rem); height: 5.5rem; min-height: 5.5rem; }
  .signal-door::after { left: 5.4rem; }
  .signal-door-copy { padding: .75rem .8rem; }
  .signal-door-copy strong { font-size: .94rem; }
  .signal-door-copy span { font-size: .52rem; }
}
@media (max-height: 700px) {
  .home-view { padding-top: 4.45rem; padding-bottom: 4.6rem; }
  .home-intro h1 { font-size: 2.75rem; }
  .home-intro > p.home-signal:last-child { display: grid; margin-top: .45rem; padding-block: .42rem; }
  .home-signal strong { font-size: .78rem; }
  .home-signal span { font-size: .68rem; }
  .home-apps { gap-block: .4rem; padding-block: .75rem .45rem; }
  .app-art { width: 100%; max-width: 7.15rem; }
  .home-app small { display: block; min-height: 1.2rem; font-size: .5rem; }
  .work-door { min-height: 3.85rem; margin-top: .1rem; }
  .work-door-copy > span { display: block; }
}
@media (prefers-reduced-motion: reduce) {
  .home-app, .home-signal, .atmosphere-thread { animation: none; transition: none; }
  .home-app.is-sounding, .home-app:nth-child(even).is-sounding { transform: none; }
}
body.motion-paused .atmosphere-thread { animation-play-state: paused; }

/* Home v20: Cristallo is a walk through living doors, not an app launcher. */
body.home-active {
  --home-paper: #f1eee6;
  --home-ink: #181b19;
  --home-muted: #686b65;
  overflow-x: hidden;
  background: var(--home-paper);
}
body.home-active .public-header {
  min-height: 4.75rem;
  padding-inline: clamp(1rem, 3vw, 3rem);
  border-color: rgba(24, 27, 25, .16);
  background: rgba(241, 238, 230, .86);
  backdrop-filter: blur(14px);
}
body.home-active .public-header .wordmark-core {
  width: 2.25rem;
  height: 2.25rem;
}

.home-view {
  display: block;
  min-height: 100svh;
  overflow: visible;
  padding: 4.75rem 0 0;
  background:
    linear-gradient(118deg, rgba(255, 255, 255, .62), transparent 44%),
    var(--home-paper);
}
body.home-active .home-view.active {
  animation: none;
  transform: none;
}
.home-view::before {
  position: fixed;
  opacity: .2;
  mask-image: linear-gradient(to bottom, black, transparent 78%);
}
.home-view::after { display: none; }
.home-atmosphere {
  position: absolute;
  inset: 4.75rem 0 auto;
  height: 78svh;
}
.home-atmosphere > img {
  top: 50%;
  left: 50%;
  width: min(40rem, 72%);
  transform: translate(-50%, -50%);
  opacity: .11;
  animation-duration: 38s;
}
.atmosphere-orbit-one {
  top: 15%;
  width: min(43rem, 78%);
}
.atmosphere-orbit-two {
  top: 24%;
  width: min(31rem, 58%);
}
.atmosphere-thread {
  top: 68%;
  height: 1px;
  background: linear-gradient(90deg, transparent 3%, rgba(19, 140, 116, .32) 34%, var(--home-live-accent) 63%, transparent 97%);
}

.home-intro {
  position: relative;
  z-index: 2;
  display: grid;
  width: min(100% - 2rem, 72rem);
  min-height: calc(78svh - 4.75rem);
  align-content: center;
  justify-items: center;
  margin-inline: auto;
  padding: 2rem 0 4.5rem;
  text-align: center;
}
.home-state {
  margin: 0 0 .9rem;
  color: var(--home-ink);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: 0;
}
.home-intro h1 {
  max-width: 12ch;
  margin: 0;
  font-size: 5.25rem;
  font-weight: 400;
  line-height: .98;
  letter-spacing: 0;
  text-wrap: balance;
}
.home-intro > p.home-signal:last-of-type,
.home-signal {
  display: grid;
  width: min(100%, 39rem);
  gap: .2rem;
  margin: 1.25rem auto 0;
  padding: .8rem 1rem .9rem;
  border-top: 1px solid rgba(24, 27, 25, .2);
  border-bottom: 1px solid rgba(24, 27, 25, .2);
  color: var(--home-ink);
}
.home-signal strong {
  color: var(--home-live-accent);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.25;
  transition: color .2s ease;
}
.home-signal span {
  color: #565a54;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .9rem;
  line-height: 1.4;
}
.home-descent {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  margin-top: 1.45rem;
  border: 1px solid rgba(24, 27, 25, .28);
  border-radius: 50%;
  color: var(--home-ink);
  font-family: var(--sans);
  font-size: 1.25rem;
  text-decoration: none;
  transition: border-color .2s ease, color .2s ease, transform .2s ease;
}
.home-descent:hover,
.home-descent:focus-visible {
  border-color: var(--home-live-accent);
  color: var(--home-live-accent);
  transform: translateY(.2rem);
}

.home-apps {
  position: relative;
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.home-apps::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(19, 106, 89, .3);
  pointer-events: none;
}
.home-app {
  --door-accent: #e76313;
  --image-x: 0px;
  --image-y: 0px;
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  min-height: 76svh;
  grid-template-columns: minmax(16rem, 36rem) minmax(16rem, 36rem);
  grid-auto-flow: dense;
  align-items: center;
  justify-content: center;
  gap: clamp(4.5rem, 8vw, 8rem);
  margin: 0;
  padding: 5rem max(2rem, calc((100% - 80rem) / 2));
  border: 0;
  border-top: 1px solid rgba(24, 27, 25, .17);
  border-radius: 0;
  background: #f1eee6;
  color: var(--home-ink);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  opacity: 1;
  filter: none;
  transform: none;
  transition: background-color .35s ease, color .35s ease;
}
.home-app-recipe { --door-accent: #168f9d; background: #e8eeea; }
.home-app-katoying { --door-accent: #b98216; background: #f0e4ce; }
.home-app-swiza { --door-accent: #d74a2d; background: #d7e7df; }
.home-app-traversee { --door-accent: #e76313; background: #f2efe8; }
.home-app-life { --door-accent: #138c74; background: #e1e9e4; color: var(--home-ink); }
.home-app-community { --door-accent: #138c74; background: #e2ecec; }
.home-app-love { --door-accent: #e97724; background: #f2ddc2; }
.home-app:hover,
.home-app:focus-visible,
.home-app.is-sounding {
  z-index: 3;
  outline: 0;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--door-accent) 78%, transparent);
  transform: none;
}
.home-apps.has-signal .home-app:not(.is-sounding) {
  opacity: 1;
  filter: none;
}
.home-app:nth-child(even) { transform: none; }
.home-app:nth-child(even).is-sounding { transform: none; }

.home-door-number {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: 50%;
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  transform: translate(-50%, -50%);
  border: 1px solid color-mix(in srgb, var(--door-accent) 58%, #181b19);
  border-radius: 50%;
  background: #f7f3ea;
  color: #343733;
  font-family: var(--sans);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: 0;
  transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
.home-app-life .home-door-number {
  background: #1a1d1b;
  color: #f5f1e8;
}
.home-app:hover .home-door-number,
.home-app:focus-visible .home-door-number,
.home-app.is-sounding .home-door-number {
  transform: translate(-50%, -50%) scale(1.08);
  background: var(--door-accent);
  color: #fffdf7;
}

.app-art {
  position: relative;
  display: block;
  width: 100%;
  max-width: 36rem;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--door-accent) 42%, rgba(24, 27, 25, .28));
  border-radius: .375rem;
  background: #eee9df;
  box-shadow: 0 1.4rem 3.5rem rgba(31, 31, 27, .14);
  transform: translateY(.7rem) scale(.98);
  transition: transform .55s cubic-bezier(.16, .72, .2, 1), box-shadow .35s ease;
}
.app-art::after {
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28);
}
.app-art img,
.app-art-recipe-image img,
.app-art-love img,
.app-art-community img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  object-fit: cover;
  object-position: center;
  mix-blend-mode: normal;
  filter: saturate(.98) contrast(1.025);
  transform: translate(var(--image-x), var(--image-y)) scale(1.045);
  transition: transform .65s cubic-bezier(.16, .72, .2, 1), filter .3s ease;
}
.app-art-recipe-image img { object-fit: contain; }
.app-art-swiza img { object-position: center 44%; }
.app-art-life img { object-position: center 64%; }
.home-app.is-in-view .app-art,
.home-app:hover .app-art,
.home-app:focus-visible .app-art,
.home-app.is-sounding .app-art {
  box-shadow: 0 1.8rem 4rem rgba(31, 31, 27, .2);
  transform: translateY(0) scale(1);
}
.home-app:hover .app-art img,
.home-app:focus-visible .app-art img,
.home-app.is-sounding .app-art img,
.home-app-recipe:hover .app-art-recipe-image img,
.home-app-recipe:focus-visible .app-art-recipe-image img,
.home-app-recipe.is-sounding .app-art-recipe-image img {
  transform: translate(var(--image-x), var(--image-y)) scale(1.085);
}
.home-app:nth-child(even) .app-art {
  grid-column: 2;
  grid-row: 1;
}

.home-app-copy {
  position: relative;
  display: grid;
  max-width: 29rem;
  gap: .72rem;
  align-content: center;
  justify-self: start;
  padding: 1rem 0;
}
.home-app:nth-child(even) .home-app-copy {
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
}
.home-app-copy > small {
  display: block;
  min-height: 0;
  max-width: none;
  overflow: visible;
  color: var(--door-accent);
  font-family: var(--sans);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: 0;
  line-height: 1.2;
  white-space: normal;
}
.home-app-copy > strong {
  color: inherit;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 4rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: .95;
}
.home-app-copy > span {
  max-width: 25rem;
  color: color-mix(in srgb, currentColor 72%, transparent);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.12rem;
  line-height: 1.5;
}
.home-app-copy > i {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  margin-top: .65rem;
  border: 1px solid color-mix(in srgb, currentColor 35%, transparent);
  border-radius: 50%;
  color: var(--door-accent);
  font-family: var(--sans);
  font-size: 1.1rem;
  font-style: normal;
  transition: transform .25s ease, background-color .25s ease, color .25s ease;
}
.home-app:hover .home-app-copy > i,
.home-app:focus-visible .home-app-copy > i {
  transform: translate(.2rem, .2rem);
  border-color: var(--door-accent);
  background: var(--door-accent);
  color: #fffdf7;
}
.home-footnote {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  margin: 0;
  padding: 4rem 1rem 6.5rem;
  border-top: 1px solid rgba(24, 27, 25, .17);
  background: #dfeae6;
  color: #4f5752;
  font-size: .66rem;
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 760px) {
  body.home-active .public-header {
    min-height: 3.8rem;
    padding-inline: .9rem;
  }
  body.home-active .public-header .wordmark-core {
    width: 2rem;
    height: 2rem;
  }
  .home-view { padding-top: 3.8rem; }
  .home-atmosphere {
    inset: 3.8rem 0 auto;
    height: 72svh;
  }
  .home-atmosphere > img {
    width: min(27rem, 112%);
  }
  .home-intro {
    width: min(100% - 2rem, 34rem);
    min-height: calc(72svh - 3.8rem);
    padding: 2rem 0 3rem;
  }
  .home-intro h1 {
    max-width: 10ch;
    font-size: 3.35rem;
  }
  .home-intro > p.home-signal:last-of-type,
  .home-signal {
    display: grid;
    margin-top: 1rem;
    padding: .7rem .25rem .75rem;
  }
  .home-signal strong { font-size: .86rem; }
  .home-signal span { font-size: .8rem; }
  .home-descent {
    width: 2.7rem;
    height: 2.7rem;
    margin-top: 1.1rem;
  }
  .home-apps::before { left: 1.55rem; }
  .home-app,
  .home-app:nth-child(even) {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.35rem;
    padding: 4.2rem 1rem 4.8rem 3.65rem;
    transform: none;
  }
  .home-door-number {
    top: 4.25rem;
    left: 1.55rem;
    width: 2.35rem;
    height: 2.35rem;
    transform: translate(-50%, 0);
  }
  .home-app:hover .home-door-number,
  .home-app:focus-visible .home-door-number,
  .home-app.is-sounding .home-door-number {
    transform: translate(-50%, 0) scale(1.06);
  }
  .home-app .app-art,
  .home-app:nth-child(even) .app-art {
    grid-column: 1;
    grid-row: 1;
    order: 0;
    width: 100%;
    max-width: none;
    aspect-ratio: 1.12 / 1;
  }
  .home-app .home-app-copy,
  .home-app:nth-child(even) .home-app-copy {
    grid-column: 1;
    grid-row: 2;
    order: 1;
    justify-self: start;
    padding: .25rem 0 0;
  }
  .home-app-copy > strong { font-size: 2.75rem; }
  .home-app-copy > span { font-size: 1rem; }
  .home-app-copy > i {
    width: 2.5rem;
    height: 2.5rem;
  }
  .home-footnote { padding-bottom: 6rem; }
}

@media (max-width: 390px) {
  .home-intro h1 { font-size: 2.85rem; }
  .home-app { padding-right: .75rem; }
  .home-app-copy > strong { font-size: 2.4rem; }
}

@media (prefers-reduced-motion: reduce) {
  .home-descent,
  .home-app,
  .home-door-number,
  .app-art,
  .app-art img,
  .home-app-copy > i {
    transition: none;
  }
}
body.motion-paused .home-descent,
body.motion-paused .home-door-number,
body.motion-paused .app-art,
body.motion-paused .app-art img,
body.motion-paused .home-app-copy > i {
  transition: none;
  transform: none;
}
body.motion-paused .home-door-number { transform: translate(-50%, -50%); }
@media (max-width: 760px) {
  body.motion-paused .home-door-number { transform: translate(-50%, 0); }
}

/* Home v21: a compact threshold followed by stable, image-led doors. */
body.home-active .public-header {
  min-height: 4rem;
  padding-inline: 1.25rem;
  border-color: rgba(24, 27, 25, .14);
  background: rgba(241, 238, 230, .92);
}
body.home-active .public-header .wordmark {
  gap: .72rem;
  font-size: .72rem;
  letter-spacing: 0;
}
body.home-active .public-header .wordmark-core {
  width: 2.25rem;
  height: 2.25rem;
  flex-basis: 2.25rem;
}
body.home-active .support-link {
  color: #30332f;
  letter-spacing: 0;
  transition: color .2s ease;
}
body.home-active .support-heart {
  color: #d95724;
  transition: transform .2s ease;
}
body.home-active .support-link:hover,
body.home-active .support-link:focus-visible {
  color: #b7441a;
}
body.home-active .support-link:hover .support-heart,
body.home-active .support-link:focus-visible .support-heart {
  transform: scale(1.08);
}

.home-view {
  min-height: 100svh;
  padding: 4rem 0 0;
  overflow: visible;
  background:
    linear-gradient(118deg, rgba(255, 255, 255, .62), transparent 44%),
    var(--home-paper);
}
.home-atmosphere {
  inset: 4rem 0 auto;
  height: 13.5rem;
  overflow: hidden;
}
.home-atmosphere > img {
  top: 50%;
  left: 50%;
  width: 24rem;
  transform: translate(-50%, -50%);
  opacity: .13;
  filter: saturate(.72) contrast(.92);
  animation-duration: 48s;
}
.atmosphere-orbit-one {
  top: -3rem;
  width: 25rem;
}
.atmosphere-orbit-two {
  top: 1.5rem;
  width: 18rem;
}
.atmosphere-thread {
  top: 58%;
  left: -2%;
  width: 104%;
  opacity: .7;
  background: linear-gradient(90deg, transparent 2%, rgba(19, 140, 116, .34) 30%, rgba(231, 99, 19, .42) 66%, transparent 98%);
  animation: home-thread-breathe 7s ease-in-out infinite alternate;
}
.atmosphere-node.node-a { top: 30%; }
.atmosphere-node.node-b { top: 56%; }
.atmosphere-node.node-c { top: 72%; }
@keyframes home-thread-breathe {
  from { opacity: .45; }
  to { opacity: .82; }
}

.home-intro {
  width: min(100% - 2rem, 60rem);
  min-height: 13.5rem;
  align-content: center;
  padding: 1.25rem 0 1.6rem;
}
.home-intro h1 {
  max-width: 21ch;
  font-size: 3.25rem;
  line-height: 1.02;
  letter-spacing: 0;
}
.home-intro > p.home-signal:last-of-type,
.home-signal {
  display: block;
  width: auto;
  margin: .8rem auto 0;
  padding: 0;
  border: 0;
  color: #5f625d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .95rem;
  line-height: 1.4;
}

.home-apps {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}
.home-apps::before { display: none; }
.home-app {
  --door-accent: #e76313;
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  min-height: 31rem;
  grid-template-columns: minmax(0, 27rem) minmax(0, 27rem);
  align-items: center;
  justify-content: center;
  gap: 5.5rem;
  margin: 0;
  padding: 3rem 2rem;
  overflow: hidden;
  border: 0;
  border-top: 1px solid rgba(24, 27, 25, .15);
  border-radius: 0;
  color: var(--home-ink);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  opacity: 1;
  filter: none;
  transform: none;
  animation: none;
  transition: box-shadow .25s ease, background-color .25s ease;
}
.home-app-recipe { --door-accent: #168f9d; background: #e5ece8; }
.home-app-katoying { --door-accent: #a97215; background: #efe2cb; }
.home-app-swiza { --door-accent: #d44329; background: #d8e9e1; }
.home-app-traversee { --door-accent: #d95d18; background: #f0ede5; }
.home-app-exploration { --door-accent: #397f6f; background: #e3ebe5; }
.home-app-life { --door-accent: #138c74; background: #e1e9e4; color: var(--home-ink); }
.home-app-community { --door-accent: #138c74; background: #dfebeb; }
.home-app-love { --door-accent: #df6b20; background: #f0dcc3; }
.home-app:hover,
.home-app:focus-visible,
.home-app.is-sounding {
  z-index: 2;
  outline: 0;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--door-accent) 70%, transparent);
  transform: none;
}
.home-apps.has-signal .home-app:not(.is-sounding),
.home-app:nth-child(even),
.home-app:nth-child(even).is-sounding {
  opacity: 1;
  filter: none;
  transform: none;
}

.app-art,
.home-app .app-art,
.home-app:nth-child(even) .app-art {
  position: relative;
  display: block;
  width: 100%;
  max-width: 27rem;
  aspect-ratio: 1;
  grid-column: 1;
  grid-row: 1;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--door-accent) 42%, rgba(24, 27, 25, .3));
  border-radius: .375rem;
  background: #eee9df;
  box-shadow: 0 1rem 2.75rem rgba(31, 31, 27, .14);
  transform: none;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.home-app.home-app-traversee .app-art { aspect-ratio: 640 / 428; }
.home-app.home-app-life .app-art { aspect-ratio: 640 / 525; }
.home-app-recipe .app-art { background: #eee8dc; }
.home-app-katoying .app-art { background: #b9975f; }
.home-app-swiza .app-art { background: #249ed2; }
.home-app-exploration .app-art { background: #d8ddd4; }
.home-app-life .app-art { background: #171817; }
.home-app-community .app-art { background: #e9e1d2; }
.home-app-love .app-art { background: #d5c4a7; }
.app-art::after { border-radius: inherit; }
.home-app .app-art img,
.home-app:hover .app-art img,
.home-app:focus-visible .app-art img,
.home-app.is-sounding .app-art img,
.home-app-recipe:hover .app-art-recipe-image img,
.home-app-recipe:focus-visible .app-art-recipe-image img,
.home-app-recipe.is-sounding .app-art-recipe-image img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  object-fit: contain;
  object-position: center;
  mix-blend-mode: normal;
  filter: none;
  transform: none;
  transition: filter .25s ease;
}
.home-app:hover .app-art,
.home-app:focus-visible .app-art,
.home-app.is-sounding .app-art,
.home-app.is-in-view .app-art {
  border-color: color-mix(in srgb, var(--door-accent) 72%, rgba(24, 27, 25, .24));
  box-shadow: 0 1.2rem 3rem rgba(31, 31, 27, .18);
  transform: none;
}
.home-app:nth-child(even) .app-art {
  grid-column: 2;
}

.home-app-copy,
.home-app:nth-child(even) .home-app-copy {
  display: grid;
  max-width: 24rem;
  grid-template-columns: auto minmax(0, 1fr);
  grid-column: 2;
  grid-row: 1;
  align-content: center;
  justify-self: start;
  gap: .7rem .75rem;
  padding: 0;
}
.home-app:nth-child(even) .home-app-copy {
  grid-column: 1;
  justify-self: end;
}
.home-door-number {
  position: static;
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  transform: none;
  border: 1px solid color-mix(in srgb, var(--door-accent) 58%, #181b19);
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font-family: var(--sans);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: 0;
  transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}
.home-app-life .home-door-number { background: transparent; color: inherit; }
.home-app:hover .home-door-number,
.home-app:focus-visible .home-door-number,
.home-app.is-sounding .home-door-number {
  transform: none;
  border-color: var(--door-accent);
  background: var(--door-accent);
  color: #fffdf7;
}
.home-app-copy > small {
  align-self: center;
  color: var(--door-accent);
  font-family: var(--sans);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.2;
}
.home-app-copy > strong,
.home-app-copy > span:not(.home-door-number),
.home-app-copy > i {
  grid-column: 1 / -1;
}
.home-app-copy > strong {
  color: inherit;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 3.2rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}
.home-app-copy > span:not(.home-door-number) {
  max-width: 23rem;
  color: color-mix(in srgb, currentColor 74%, transparent);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
  line-height: 1.5;
}
.home-app-copy > i {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  margin-top: .35rem;
  border: 1px solid color-mix(in srgb, currentColor 34%, transparent);
  border-radius: 50%;
  color: var(--door-accent);
  font-family: var(--sans);
  font-size: 1rem;
  font-style: normal;
  transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}
.home-app:hover .home-app-copy > i,
.home-app:focus-visible .home-app-copy > i {
  transform: none;
  border-color: var(--door-accent);
  background: var(--door-accent);
  color: #fffdf7;
}
.home-footnote {
  padding: 3rem 1rem 6rem;
}

@media (max-width: 980px) {
  .home-app {
    min-height: 27rem;
    grid-template-columns: minmax(0, 22rem) minmax(0, 22rem);
    gap: 3rem;
    padding-inline: 1.5rem;
  }
  .app-art,
  .home-app .app-art,
  .home-app:nth-child(even) .app-art {
    max-width: 22rem;
  }
  .home-app-copy > strong { font-size: 2.65rem; }
}

@media (max-width: 760px) {
  body.home-active .public-header {
    min-height: 3.7rem;
    padding-inline: .9rem;
  }
  body.home-active .public-header .wordmark {
    gap: .6rem;
    font-size: .66rem;
  }
  body.home-active .public-header .wordmark-core {
    width: 2rem;
    height: 2rem;
    flex-basis: 2rem;
  }
  body.home-active .support-label { display: none; }
  body.home-active .support-heart { font-size: 1.55rem; }
  .home-view { padding-top: 3.7rem; }
  .home-atmosphere {
    inset: 3.7rem 0 auto;
    height: 10rem;
  }
  .home-atmosphere > img {
    width: 19rem;
    opacity: .14;
  }
  .atmosphere-orbit-one { top: -4rem; width: 21rem; }
  .atmosphere-orbit-two { top: -.5rem; width: 15rem; }
  .home-intro {
    width: min(100% - 2rem, 34rem);
    min-height: 10rem;
    padding: 1rem 0 1.25rem;
  }
  .home-intro h1 {
    max-width: 12ch;
    font-size: 2.3rem;
  }
  .home-intro > p.home-signal:last-of-type,
  .home-signal {
    margin-top: .55rem;
    padding: 0;
    font-size: .84rem;
  }
  .home-app,
  .home-app:nth-child(even) {
    min-height: 0;
    grid-template-columns: minmax(0, 34rem);
    gap: 1.5rem;
    padding: 2.5rem 1rem 3rem;
  }
  .app-art,
  .home-app .app-art,
  .home-app:nth-child(even) .app-art {
    width: 100%;
    max-width: 34rem;
    grid-column: 1;
    grid-row: 1;
  }
  .home-app-copy,
  .home-app:nth-child(even) .home-app-copy {
    width: 100%;
    max-width: 34rem;
    grid-column: 1;
    grid-row: 2;
    justify-self: center;
  }
  .home-app-copy > strong { font-size: 2.35rem; }
  .home-app-copy > span:not(.home-door-number) { font-size: .98rem; }
  .home-door-number,
  body.motion-paused .home-door-number {
    width: 2.15rem;
    height: 2.15rem;
    transform: none;
  }
}

@media (max-width: 390px) {
  .home-intro h1 { font-size: 2.05rem; }
  .home-app,
  .home-app:nth-child(even) { padding-inline: .85rem; }
  .home-app-copy > strong { font-size: 2.15rem; }
}

@media (prefers-reduced-motion: reduce) {
  .home-atmosphere > img,
  .atmosphere-thread,
  .support-heart { animation: none; transition: none; }
}

/* Home v25: every passage keeps its complete 3:2 image. */
.home-view {
  min-height: 100svh;
  padding: 4rem clamp(1rem, 3vw, 3rem) 4rem;
  overflow: visible;
  background:
    linear-gradient(118deg, rgba(255, 255, 255, .66), transparent 34rem),
    var(--home-paper);
}
.home-atmosphere {
  inset: 4rem 0 auto;
  height: 12rem;
}
.home-intro {
  width: min(100%, 78rem);
  min-height: 11rem;
  align-content: center;
  padding: 1.4rem 0 1.8rem;
}
.home-intro h1 {
  max-width: 12ch;
  font-size: clamp(2.8rem, 4.8vw, 5rem);
  line-height: .95;
  letter-spacing: 0;
}
.home-intro > p.home-signal:last-of-type,
.home-signal {
  margin-top: .8rem;
  font-size: 1rem;
}
.home-apps {
  display: grid;
  width: min(100%, 78rem);
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: .8rem;
  margin: 0 auto;
  padding: 0;
}
.home-app,
.home-app:nth-child(even) {
  display: grid;
  height: auto;
  min-height: 0;
  aspect-ratio: 31 / 12;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 58%) minmax(0, 42%);
  grid-template-rows: 1fr;
  align-items: stretch;
  justify-items: stretch;
  justify-content: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(24, 27, 25, .18);
  border-radius: .375rem;
  text-align: left;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.home-apps > .home-app,
.home-apps > .home-app:nth-child(even) {
  grid-column: 1;
}
.home-app:hover,
.home-app:focus-visible,
.home-app.is-sounding {
  transform: translateY(-.2rem);
  border-color: color-mix(in srgb, var(--door-accent) 72%, #181b19);
  box-shadow: 0 1rem 2.25rem rgba(31, 31, 27, .18);
}
.home-apps.has-signal .home-app:not(.is-sounding) {
  opacity: 1;
  filter: none;
}
.app-art,
.home-app .app-art,
.home-app:nth-child(even) .app-art {
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  grid-column: 1;
  grid-row: 1;
  border: 0;
  border-right: 1px solid rgba(24, 27, 25, .16);
  border-radius: 0;
  box-shadow: none;
}
.home-app .app-art img,
.home-app:hover .app-art img,
.home-app:focus-visible .app-art img,
.home-app.is-sounding .app-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home-app-copy,
.home-app:nth-child(even) .home-app-copy {
  width: 100%;
  max-width: none;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto 1fr;
  grid-column: 2;
  grid-row: 1;
  align-content: center;
  justify-self: stretch;
  gap: .55rem 1.5rem;
  padding: clamp(1.35rem, 3vw, 2.6rem);
}
.home-app-copy > small {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  font-size: .6rem;
  letter-spacing: .1em;
}
.home-app-copy > strong {
  grid-column: 1;
  grid-row: 2;
  font-size: clamp(2.15rem, 3.4vw, 3.45rem);
  line-height: 1;
}
.home-app-copy > span {
  grid-column: 1;
  grid-row: 3;
  max-width: 38rem;
  align-self: start;
  font-size: clamp(.9rem, 1.25vw, 1.05rem);
  line-height: 1.45;
}
.home-app-copy > i {
  width: 2.35rem;
  height: 2.35rem;
  grid-column: 2;
  grid-row: 1 / -1;
  align-self: end;
  justify-self: end;
  margin: 0;
}
.home-footnote {
  width: min(100%, 78rem);
  margin-inline: auto;
  padding: 2rem 0 1rem;
  border: 0;
  background: transparent;
  color: #75786f;
  font-size: .58rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

@media (max-width: 820px) {
  .home-app,
  .home-app:nth-child(even) {
    height: auto;
    min-height: 0;
    aspect-ratio: 31 / 12;
    grid-template-columns: minmax(0, 58%) minmax(0, 42%);
  }
  .app-art,
  .home-app .app-art,
  .home-app:nth-child(even) .app-art { min-height: 0; }
  .home-app-copy,
  .home-app:nth-child(even) .home-app-copy { padding: 1.5rem; }
  .home-app-copy > strong { font-size: clamp(1.85rem, 4.2vw, 2.55rem); }
}

@media (max-width: 760px) {
  .home-view { padding: 3.7rem .75rem 3rem; }
  .home-atmosphere { inset: 3.7rem 0 auto; height: 10rem; }
  .home-intro {
    width: 100%;
    min-height: 9.75rem;
    padding: 1.15rem .25rem 1.45rem;
  }
  .home-intro h1 {
    max-width: 9ch;
    font-size: 2.7rem;
  }
  .home-intro > p.home-signal:last-of-type,
  .home-signal {
    margin-top: .65rem;
    font-size: .86rem;
  }
  .home-apps {
    grid-template-columns: 1fr;
    gap: .65rem;
  }
  .home-app,
  .home-app:nth-child(even) {
    height: auto;
    min-height: 0;
    aspect-ratio: auto;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
  }
  .app-art,
  .home-app .app-art,
  .home-app:nth-child(even) .app-art,
  .home-app.home-app-traversee .app-art,
  .home-app.home-app-life .app-art {
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
    grid-column: 1;
    grid-row: 1;
    border-right: 0;
    border-bottom: 1px solid rgba(24, 27, 25, .16);
  }
  .home-app .home-app-copy,
  .home-app:nth-child(even) .home-app-copy {
    min-height: 9.25rem;
    grid-column: 1;
    grid-row: 2;
    gap: .35rem .55rem;
    padding: .85rem;
  }
  .home-app-copy > small { font-size: .49rem; }
  .home-app-copy > strong { font-size: clamp(1.3rem, 6.1vw, 1.62rem); }
  .home-app-copy > span {
    font-size: clamp(.68rem, 3.15vw, .78rem);
    line-height: 1.35;
  }
  .home-app-copy > i {
    width: 1.65rem;
    height: 1.65rem;
    font-size: .8rem;
  }
  .pulse-edge {
    z-index: 31;
    top: .55rem;
    right: 3.45rem;
    bottom: auto;
    width: 2.55rem;
    min-height: 2.55rem;
    grid-template-columns: 1fr;
    padding: .45rem;
    border-right: 1px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
  }
  .pulse-edge > span:nth-child(2),
  .pulse-edge > i { display: none; }
  .pulse-edge .pulse-play {
    width: 1.65rem;
    justify-self: center;
  }
  .home-footnote { padding: 1.5rem .2rem 4.5rem; }
}

@media (max-width: 390px) {
  .home-intro h1 { font-size: 2.35rem; }
  .home-app,
  .home-app:nth-child(even) { grid-template-columns: minmax(0, 1fr); }
}
