:root {
  --presence-ink: #f4efe3;
  --presence-deep: #11130f;
  --presence-soft: rgba(244,239,227,.72);
  --presence-line: rgba(244,239,227,.18);
  --presence-glow: rgba(211,190,136,.16);
}

/* The threshold between rooms */
.presence-threshold {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 2rem;
  background:
    radial-gradient(circle at 50% 45%, rgba(226,210,162,.16), transparent 35%),
    #11130f;
  color: var(--presence-ink);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .38s ease, visibility 0s linear .38s;
}
.presence-threshold::before,
.presence-threshold::after {
  content: "";
  position: absolute;
  inset: 12%;
  border: 1px solid rgba(244,239,227,.14);
  border-radius: 50%;
  transform: scale(.72);
  opacity: 0;
}
.presence-threshold::after { inset: 22%; }
.presence-threshold-inner { position: relative; z-index: 1; text-align: center; max-width: 34rem; }
.presence-threshold-mark {
  width: 4.6rem;
  height: 4.6rem;
  margin: 0 auto 1.25rem;
  border: 1px solid rgba(244,239,227,.35);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1.35rem;
  box-shadow: 0 0 0 1rem rgba(244,239,227,.025), 0 0 4rem rgba(218,196,135,.12);
}
.presence-threshold strong { display:block; font-family: var(--font-display, Georgia, serif); font-size: clamp(1.65rem,4vw,3rem); font-weight: 500; }
.presence-threshold span { display:block; margin-top:.6rem; color:rgba(244,239,227,.68); letter-spacing:.04em; }
body.presence-crossing .presence-threshold,
body.presence-arriving .presence-threshold { opacity:1; visibility:visible; transition-delay:0s; }
body.presence-crossing .presence-threshold::before,
body.presence-crossing .presence-threshold::after { animation: presence-ring .75s ease forwards; }
body.presence-crossing .presence-threshold::after { animation-delay:.08s; }
@keyframes presence-ring { to { transform:scale(1); opacity:.6; } }

/* The Living Visit hub becomes a remembered world */
.presence-hub {
  position: relative;
  overflow: hidden;
  margin-top: 1.25rem;
  padding: clamp(1.4rem,4vw,3rem);
  border: 1px solid var(--presence-line);
  border-radius: 1.6rem;
  background:
    radial-gradient(circle at var(--presence-x,50%) var(--presence-y,50%), rgba(215,194,137,.12), transparent 26rem),
    linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.008));
}
.presence-hub-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(17rem,.95fr); gap:clamp(1.5rem,5vw,4rem); align-items:center; }
.presence-hub h2 { margin-top:.35rem; max-width:15ch; font-size:clamp(1.8rem,4vw,3.5rem); }
.presence-hub-copy p { max-width:44rem; }
.presence-memory-line { color:var(--presence-soft); margin-top:1rem; }
.presence-orbit {
  --known: 0;
  position:relative;
  width:min(23rem,76vw);
  aspect-ratio:1;
  margin:auto;
  display:grid;
  place-items:center;
}
.presence-orbit::before,
.presence-orbit::after {
  content:"";
  position:absolute;
  inset:8%;
  border:1px solid rgba(244,239,227,.14);
  border-radius:50%;
  box-shadow:0 0 calc(var(--known) * .7rem) rgba(218,194,127,.14);
}
.presence-orbit::after { inset:24%; border-style:dashed; animation:presence-turn 28s linear infinite; }
.presence-core {
  width:34%;
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(244,239,227,.28);
  display:grid;
  place-items:center;
  text-align:center;
  padding:.6rem;
  background:radial-gradient(circle, rgba(215,194,137,.15), rgba(16,18,14,.7));
  box-shadow:0 0 4rem rgba(215,194,137,calc(.04 + var(--known) * .018));
}
.presence-core strong { font-size:clamp(1.4rem,4vw,2.3rem); font-family:var(--font-display,Georgia,serif); font-weight:500; }
.presence-core small { display:block; color:var(--presence-soft); }
.presence-seed { position:absolute; width:2.45rem; height:2.45rem; border-radius:50%; border:1px solid rgba(244,239,227,.19); display:grid; place-items:center; background:#171a14; color:rgba(244,239,227,.54); font-size:.68rem; letter-spacing:.08em; }
.presence-seed.is-known { color:#fff5d2; border-color:rgba(232,207,139,.58); box-shadow:0 0 1.4rem rgba(218,194,127,.18); }
.presence-seed:nth-of-type(1) { top:2%; left:45%; }
.presence-seed:nth-of-type(2) { top:28%; right:1%; }
.presence-seed:nth-of-type(3) { bottom:7%; right:17%; }
.presence-seed:nth-of-type(4) { bottom:7%; left:17%; }
.presence-seed:nth-of-type(5) { top:28%; left:1%; }
@keyframes presence-turn { to { transform:rotate(360deg); } }

.sensory-room-card { position:relative; }
.sensory-room-card .presence-room-memory { display:block; margin-top:.55rem; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(242,224,169,.78); }
.sensory-room-card.is-known { border-color:rgba(226,204,145,.4); box-shadow:0 0 0 1px rgba(226,204,145,.06), 0 1rem 3rem rgba(0,0,0,.12); }

/* The daily mirror is received, not presented as a widget */
[data-daily-mirror].presence-mirror-veiled blockquote,
[data-daily-mirror].presence-mirror-veiled [data-mirror-practice],
[data-daily-mirror].presence-mirror-veiled [data-copy-mirror] {
  opacity:0;
  filter:blur(.38rem);
  transform:translateY(.45rem);
  pointer-events:none;
  max-height:0;
  overflow:hidden;
  margin-top:0;
  transition:opacity .7s ease, filter .7s ease, transform .7s ease, max-height .7s ease, margin .7s ease;
}
[data-daily-mirror].presence-mirror-revealed blockquote,
[data-daily-mirror].presence-mirror-revealed [data-mirror-practice],
[data-daily-mirror].presence-mirror-revealed [data-copy-mirror] {
  opacity:1;
  filter:none;
  transform:none;
  pointer-events:auto;
  max-height:18rem;
}

/* The five rooms no longer share one physical law */
.living-law {
  position:relative;
  overflow:hidden;
  padding:clamp(1.4rem,4vw,3.4rem);
  border:1px solid var(--presence-line);
  border-radius:1.7rem;
  background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008));
  isolation:isolate;
}
.living-law + .daily-mirror-strip { margin-top:1.25rem; }
.living-law-header { max-width:50rem; margin-bottom:clamp(1.35rem,4vw,2.6rem); }
.living-law h2 { margin:.35rem 0 .8rem; font-size:clamp(1.75rem,4vw,3rem); max-width:19ch; }
.living-law p { max-width:48rem; }
.living-law form { margin-top:1.25rem; }
.living-law input,
.living-law textarea { width:100%; }
.living-law-action { margin-top:1rem; }
.living-law-result { margin-top:1rem; color:rgba(247,239,215,.88); min-height:1.5em; }
.living-law-note { color:var(--presence-soft); font-size:.9rem; }

/* River */
.living-law--river { background:radial-gradient(circle at 80% 20%,rgba(95,159,169,.18),transparent 36%),linear-gradient(145deg,rgba(23,72,78,.28),rgba(12,27,29,.42)); }
.river-current { position:relative; height:10rem; margin-top:1.4rem; overflow:hidden; border-radius:999px; border:1px solid rgba(176,225,228,.18); background:linear-gradient(90deg,rgba(113,187,193,.03),rgba(113,187,193,.16),rgba(113,187,193,.03)); }
.river-current::before,
.river-current::after { content:""; position:absolute; left:-20%; right:-20%; height:3rem; border:1px solid rgba(190,231,233,.18); border-radius:50%; animation:river-breathe 7s ease-in-out infinite; }
.river-current::before { top:1.4rem; }
.river-current::after { bottom:1rem; animation-delay:-3.5s; }
.river-word { position:absolute; left:8%; top:50%; transform:translateY(-50%); color:#e9ffff; opacity:0; font-family:var(--font-display,Georgia,serif); font-size:clamp(1.2rem,3vw,2rem); }
.river-word.is-moving { animation:river-carry 4s ease-in-out forwards; }
@keyframes river-carry { 0%{opacity:0;left:8%;filter:blur(.2rem)} 15%{opacity:1;filter:none} 75%{opacity:.8} 100%{opacity:0;left:88%;filter:blur(.35rem)} }
@keyframes river-breathe { 50% { transform:translateX(8%) scaleY(1.25); opacity:.45; } }

/* Forest */
.living-law--forest { background:radial-gradient(circle at 75% 15%,rgba(182,205,117,.15),transparent 34%),linear-gradient(145deg,rgba(31,65,42,.35),rgba(13,27,18,.5)); }
.forest-anchors { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-top:1.25rem; }
.forest-anchor { min-height:6rem; border:1px solid rgba(214,231,176,.18); border-radius:1rem; background:rgba(255,255,255,.025); color:inherit; cursor:pointer; padding:1rem; text-align:left; }
.forest-anchor strong { display:block; margin-bottom:.35rem; }
.forest-anchor[aria-pressed="true"] { border-color:rgba(226,238,184,.58); background:rgba(172,205,113,.1); transform:translateY(-.16rem); }
.forest-root-system { --roots:0; position:relative; height:10rem; margin-top:1.4rem; }
.forest-root-system::before { content:""; position:absolute; width:1px; height:calc(2.2rem + var(--roots) * 1.15rem); top:0; left:50%; background:rgba(222,232,184,.65); transform-origin:top; transition:height .7s ease; }
.forest-root-system span { position:absolute; top:2.25rem; left:50%; width:calc(var(--roots) * 8%); height:calc(var(--roots) * 1.05rem); border-bottom:1px solid rgba(222,232,184,.34); border-radius:50%; opacity:calc(var(--roots) / 4); transition:.7s ease; }
.forest-root-system span:nth-child(1){transform:translateX(-100%) rotate(18deg)}
.forest-root-system span:nth-child(2){transform:rotate(-18deg)}
.forest-root-system span:nth-child(3){top:4rem;transform:translateX(-100%) rotate(-12deg)}
.forest-root-system span:nth-child(4){top:4rem;transform:rotate(12deg)}

/* Quiet */
.living-law--quiet { min-height:27rem; display:grid; align-items:center; background:radial-gradient(circle at 50% 45%,rgba(216,214,195,.08),transparent 36%),#141511; text-align:center; }
.living-law--quiet .living-law-header { margin-inline:auto; }
.quiet-center { display:grid; justify-items:center; gap:1rem; }
.quiet-center .quiet-point { width:1.1rem; aspect-ratio:1; border-radius:50%; background:rgba(246,240,220,.72); box-shadow:0 0 0 1rem rgba(246,240,220,.025),0 0 4rem rgba(246,240,220,.1); transition:transform 12s ease, box-shadow 12s ease; }
body.presence-quiet-deep .quiet-point { transform:scale(.55); box-shadow:0 0 0 3rem rgba(246,240,220,.012),0 0 8rem rgba(246,240,220,.07); }
body.presence-quiet-deep .site-header,
body.presence-quiet-deep .room-switcher,
body.presence-quiet-deep .sensory-stage .sensory-meta,
body.presence-quiet-deep .sensory-stage .soundscape-control,
body.presence-quiet-deep .founder-voice-slot,
body.presence-quiet-deep .site-footer { opacity:.12; filter:blur(.08rem); transition:opacity 2s ease,filter 2s ease; }
body.presence-quiet-deep .living-law--quiet { min-height:70vh; }
.quiet-return { display:none; }
body.presence-quiet-deep .quiet-return { display:inline-flex; }
body.presence-quiet-deep .quiet-lower { display:none; }

/* Fire */
.living-law--fire { background:radial-gradient(circle at 76% 44%,rgba(224,129,67,.18),transparent 24%),linear-gradient(145deg,rgba(82,39,24,.35),rgba(29,17,13,.55)); }
.fire-separation { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.fire-bowl { position:relative; min-height:10rem; margin-top:1.25rem; display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.fire-smoke,
.fire-ember { border:1px solid rgba(244,218,183,.15); border-radius:1rem; padding:1.1rem; display:grid; place-items:center; text-align:center; color:var(--presence-soft); }
.fire-smoke.is-releasing { animation:smoke-away 3.5s ease forwards; }
.fire-ember.is-lit { color:#fff2cf; border-color:rgba(244,185,108,.46); box-shadow:inset 0 0 4rem rgba(222,104,44,.11),0 0 2.6rem rgba(222,104,44,.12); }
@keyframes smoke-away { to { opacity:.12; transform:translateY(-1rem); filter:blur(.45rem); } }

/* Sky */
.living-law--sky { background:linear-gradient(180deg,rgba(104,142,173,.18),rgba(22,33,44,.5)); }
.sky-perspectives { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; }
.sky-perspectives button { border:1px solid rgba(218,232,244,.2); border-radius:999px; background:rgba(255,255,255,.03); color:inherit; padding:.7rem 1rem; cursor:pointer; }
.sky-perspectives button[aria-pressed="true"] { border-color:rgba(222,237,247,.62); background:rgba(175,207,228,.1); }
.sky-horizon { --open:0; position:relative; min-height:12rem; margin-top:1.4rem; overflow:hidden; border-radius:1.2rem; border:1px solid rgba(222,237,247,.16); background:linear-gradient(180deg,rgba(139,181,211,.08),rgba(255,255,255,.015)); }
.sky-horizon::before { content:""; position:absolute; left:50%; top:50%; width:calc(8% + var(--open) * 22%); height:1px; background:rgba(230,240,247,.68); transform:translate(-50%,-50%); box-shadow:0 0 3rem rgba(203,225,239,.25); transition:width 1.2s ease; }
.sky-coordinate { position:absolute; inset:0; display:grid; place-items:center; padding:2rem; text-align:center; color:rgba(240,248,252,.9); }

/* One-degree ending and departure object */
.living-delta { margin-top:1.25rem; padding:clamp(1.4rem,4vw,3rem); border:1px solid rgba(231,215,169,.22); border-radius:1.6rem; background:radial-gradient(circle at 50% 0,rgba(224,202,142,.09),transparent 46%),rgba(255,255,255,.015); }
.living-delta h2 { font-size:clamp(1.7rem,4vw,2.9rem); max-width:18ch; }
.living-delta-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin-top:1.2rem; }
.living-delta-option { min-height:4.4rem; border:1px solid rgba(244,239,227,.16); border-radius:1rem; background:rgba(255,255,255,.025); color:inherit; text-align:left; padding:.85rem 1rem; cursor:pointer; }
.living-delta-option:hover,
.living-delta-option:focus-visible,
.living-delta-option[aria-pressed="true"] { border-color:rgba(232,211,153,.55); background:rgba(232,211,153,.08); }
.living-keepsake { margin-top:1.4rem; padding:clamp(1.2rem,4vw,2rem); border:1px solid rgba(232,211,153,.28); border-radius:1.2rem; display:grid; grid-template-columns:auto 1fr; gap:1rem 1.2rem; align-items:center; background:linear-gradient(135deg,rgba(232,211,153,.08),rgba(255,255,255,.015)); }
.living-keepsake-symbol { width:4.3rem; aspect-ratio:1; border:1px solid rgba(236,219,170,.42); border-radius:50%; display:grid; place-items:center; font-size:1.25rem; box-shadow:0 0 2rem rgba(223,198,131,.1); }
.living-keepsake h3 { margin:0 0 .25rem; }
.living-keepsake p { margin:0; color:var(--presence-soft); }
.living-keepsake-actions { grid-column:2; display:flex; flex-wrap:wrap; gap:.65rem; }
.living-keepsake-status { grid-column:2; min-height:1.3em; color:var(--presence-soft); font-size:.88rem; }

.presence-return-line { margin-top:.75rem; color:rgba(244,226,171,.76); font-size:.88rem; letter-spacing:.04em; }

/* Let the sanctuary remain the foreground while a room is active */
body.living-room-page .site-header .desktop-nav { display:none; }
body.living-room-page .site-header .header-inner { grid-template-columns:1fr auto auto; }
body.living-room-page .site-footer .footer-group { display:none; }
body.living-room-page .site-footer .footer-top { grid-template-columns:1fr; }
body.living-room-page .site-footer .footer-bottom span:not(:first-child) { display:none; }


@media (max-width: 760px) {
  .presence-hub-grid { grid-template-columns:1fr; }
  .presence-orbit { width:min(19rem,82vw); }
  .forest-anchors { grid-template-columns:1fr 1fr; }
  .fire-separation,
  .fire-bowl { grid-template-columns:1fr; }
  .living-delta-options { grid-template-columns:1fr; }
  .living-keepsake { grid-template-columns:auto 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .presence-threshold,
  .presence-threshold::before,
  .presence-threshold::after,
  .presence-orbit::after,
  .river-current::before,
  .river-current::after,
  .river-word,
  .fire-smoke,
  .forest-root-system::before,
  .forest-root-system span { animation:none !important; transition:none !important; }
  .river-word.is-moving { left:50%; opacity:1; transform:translate(-50%,-50%); }
}

/* Contrast and room-options repair */
.presence-hub { color:#1c1f19; }
.presence-hub-copy p,
.presence-memory-line { color:rgba(28,31,25,.74); }
.presence-orbit::before,
.presence-orbit::after { border-color:rgba(28,31,25,.18); }
.presence-core {
  color:#f6f0df;
  border-color:rgba(28,31,25,.28);
  background:radial-gradient(circle,#8a8c7d,#4d5148 68%,#292c27);
}
.living-law:not(.living-law--quiet) { color:#20231d; }
.living-law:not(.living-law--quiet) .living-law-result,
.living-law:not(.living-law--quiet) .living-law-note { color:rgba(27,30,24,.78); }
.fire-smoke,
.fire-ember { color:rgba(35,30,25,.72); }
.fire-ember.is-lit { color:#3a2414; }
.living-law--quiet,
.living-law--quiet h2,
.living-law--quiet p { color:#f1ecdf; }
.living-law--quiet .living-law-header p,
.living-law--quiet .living-law-result { color:rgba(241,236,223,.75); }
.living-law--quiet .quiet-lower {
  background:#eee8da;
  color:#171913;
  border-color:#eee8da;
}
.living-room-options {
  max-width:38rem;
  margin-top:1rem;
  color:#f1ecdf;
}
.living-room-options summary {
  display:inline-flex;
  align-items:center;
  min-height:2.75rem;
  padding:.65rem 1rem;
  border:1px solid rgba(244,239,227,.28);
  border-radius:999px;
  cursor:pointer;
  font-weight:800;
  background:rgba(16,19,16,.2);
}
.living-room-options summary:hover,
.living-room-options summary:focus-visible { background:rgba(255,255,255,.08); }
.living-room-options[open] summary { background:rgba(16,19,16,.82); }
.living-room-options .living-exit-dock {
  position:static;
  width:100%;
  margin:.55rem 0 0;
  padding:.55rem;
  justify-content:flex-start;
  border-radius:1rem;
  box-shadow:none;
  overflow:visible;
}
@media(max-width:620px){
  .living-room-options { width:100%; }
  .living-room-options .living-exit-dock { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.living-room-options {
  width:fit-content;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.living-room-options[open] { width:min(38rem,100%); }
.living-room-options summary {
  color:#f1ecdf!important;
  background:rgba(16,19,16,.76)!important;
  list-style:none;
}
.living-room-options summary::-webkit-details-marker { display:none; }
.living-room-options summary::after { content:'+'; margin-left:.7rem; opacity:.72; }
.living-room-options[open] summary::after { content:'−'; }
body.living-room-page .site-header { position:static; }
.living-keepsake p,
.living-keepsake-status { color:rgba(27,30,24,.72); }
.sky-step-label { display:block; margin-top:1rem; }
