:root {
  color-scheme: light;
  --ink: #183b34;
  --ink-soft: #47645d;
  --evergreen: #174f43;
  --evergreen-deep: #103c34;
  --sage: #b7cbb8;
  --sage-pale: #e7eee4;
  --moss: #718e73;
  --paper: #f8f3e7;
  --paper-bright: #fffdf7;
  --paper-deep: #eee5d3;
  --clay: #9d5b49;
  --clay-pale: #f4dfd3;
  --blue: #88a7a6;
  --blue-pale: #dce9e6;
  --gold: #c6a361;
  --danger: #8c302d;
  --danger-pale: #f5dfda;
  --line: rgba(27, 65, 57, .17);
  --line-strong: rgba(27, 65, 57, .32);
  --shadow: 0 24px 65px rgba(44, 54, 42, .11);
  --shadow-small: 0 10px 30px rgba(44, 54, 42, .08);
  font-family: "DM Sans", system-ui, sans-serif;
  font-size: 16px;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

:root[data-font-scale="large"] { font-size: 18px; }
:root[data-font-scale="largest"] { font-size: 20px; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--paper); }
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 5%, rgba(255,255,255,.9), transparent 26rem),
    radial-gradient(circle at 90% 42%, rgba(181,202,181,.18), transparent 30rem),
    repeating-linear-gradient(0deg, rgba(73,85,68,.017) 0 1px, transparent 1px 4px);
}
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: var(--evergreen); }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
h1, h2 { font-family: "Newsreader", Georgia, serif; font-weight: 500; letter-spacing: -.025em; }
h3 { font-weight: 600; }
p { line-height: 1.68; }
button, a, input, textarea, select { outline-offset: 4px; }
:focus-visible { outline: 3px solid var(--clay); }
::selection { color: var(--evergreen-deep); background: #f1cfaf; }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 200; left: 1rem; top: -5rem; padding: .8rem 1rem; background: var(--paper-bright); border: 2px solid var(--evergreen); border-radius: .4rem; }
.skip-link:focus { top: 1rem; }
.muted { color: var(--ink-soft); }

.offline-strip { background: var(--evergreen-deep); color: white; text-align: center; padding: .55rem 1rem; font-size: .83rem; letter-spacing: .01em; }
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  min-height: 78px;
  padding: .65rem clamp(1rem, 3.5vw, 3.75rem);
  display: grid;
  grid-template-columns: minmax(210px, 1fr) auto minmax(210px, 1fr);
  align-items: center;
  gap: 1rem;
  background: color-mix(in srgb, var(--paper) 93%, transparent);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--line);
}
.brand { appearance: none; border: 0; background: none; padding: 0; display: inline-flex; align-items: center; gap: .7rem; cursor: pointer; justify-self: start; text-align: left; min-height: 48px; }
.brand img { width: 42px; height: 42px; border-radius: 50%; box-shadow: 0 5px 14px rgba(23,79,67,.16); }
.brand span { display: flex; flex-direction: column; }
.brand strong { font-family: "Newsreader", Georgia, serif; font-size: 1.2rem; letter-spacing: .13em; line-height: 1; }
.brand sup, .footer-mark sup { font-family: "DM Sans", system-ui, sans-serif; font-size: .4em; vertical-align: top; letter-spacing: 0; }
.brand small { margin-top: .28rem; color: var(--ink-soft); font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: .87rem; letter-spacing: .025em; }
.main-nav { display: flex; align-items: center; gap: .2rem; padding: .28rem; border: 1px solid var(--line); border-radius: .65rem; background: color-mix(in srgb, var(--paper-bright) 62%, transparent); box-shadow: 0 5px 20px rgba(44,54,42,.035); }
.main-nav button { position: relative; min-height: 42px; padding: .55rem .92rem; appearance: none; background: transparent; border: 0; border-radius: .42rem; color: var(--ink-soft); font-size: .88rem; cursor: pointer; }
.main-nav button::after { content: ""; position: absolute; left: .82rem; right: .82rem; bottom: .3rem; height: 2px; background: var(--clay); transform: scaleX(0) rotate(-1deg); transition: transform .2s ease; }
.main-nav button:hover { color: var(--ink); }
.main-nav button.active { color: var(--evergreen); font-weight: 600; }
.main-nav button.active::after { transform: scaleX(1) rotate(-1deg); }
.header-tools { justify-self: end; display: flex; align-items: center; gap: .25rem; }
.header-tool, .icon-button { appearance: none; border: 0; background: transparent; cursor: pointer; }
.header-tool { min-width: 54px; min-height: 48px; padding: .35rem .45rem; display: grid; justify-items: center; gap: .12rem; border-radius: .5rem; color: var(--ink-soft); }
.header-tool span { font-size: .66rem; }
.header-tool:hover, .header-tool.active { background: var(--sage-pale); color: var(--evergreen); }
.header-tool:disabled { opacity: .42; cursor: not-allowed; }
.sound-anchor { position: relative; }
.sound-menu { position: absolute; right: 0; top: calc(100% + .75rem); width: 250px; padding: .85rem; background: var(--paper-bright); border: 1px solid var(--line); box-shadow: var(--shadow-small); border-radius: .65rem; }
.sound-menu > div { display: flex; justify-content: space-between; align-items: center; }
.sound-menu > p { margin: .4rem 0 .7rem; color: var(--ink-soft); font-size: .76rem; line-height: 1.45; }
.sound-menu > button { width: 100%; min-height: 42px; padding: .5rem .65rem; display: flex; align-items: center; gap: .7rem; background: transparent; border: 0; border-top: 1px solid var(--line); text-align: left; cursor: pointer; }
.sound-menu > button span { width: 1.4rem; font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 1.25rem; }
.sound-menu > button.active { color: var(--evergreen); font-weight: 700; background: var(--sage-pale); }
.icon-button { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; }
.icon-button:hover { background: var(--sage-pale); }

main { min-height: 72vh; }
.page { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(3.5rem, 7vw, 7rem) 0 clamp(5rem, 8vw, 8rem); }
.page-intro { position: relative; max-width: 770px; margin: 0 0 clamp(3rem, 6vw, 5rem); }
.eyebrow { margin-bottom: .55rem; color: var(--clay); font-size: .73rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.page-intro h1 { margin-bottom: 1rem; font-size: clamp(2.75rem, 6.5vw, 5.6rem); line-height: .95; color: var(--evergreen-deep); }
.intro-copy { max-width: 650px; color: var(--ink-soft); font-family: "Newsreader", Georgia, serif; font-size: clamp(1.08rem, 1.7vw, 1.3rem); }
.intro-copy p { line-height: 1.55; }
.ink-line { width: clamp(130px, 28vw, 300px); height: 13px; margin-top: 1.4rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 14'%3E%3Cpath d='M2 8C48 4 82 11 124 7s95-5 174 1' fill='none' stroke='%239d5b49' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat; }
.hand-label { margin: 0 0 .22rem; color: var(--clay); font-family: "Caveat", "Segoe Print", cursive; font-size: 1.16rem; font-weight: 600; letter-spacing: .01em; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.section-heading h2 { margin: 0; font-size: clamp(1.7rem, 3vw, 2.45rem); }
.wide-heading { margin-bottom: 2rem; align-items: end; }
.wide-heading > p { max-width: 420px; margin: 0; color: var(--ink-soft); font-size: .92rem; }
.optional { padding: .2rem .45rem; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 999px; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

.torn-card { position: relative; background: var(--paper-bright); box-shadow: var(--shadow); }
.torn-card::before, .torn-card::after { content: ""; position: absolute; left: 0; right: 0; height: 9px; pointer-events: none; background: linear-gradient(135deg, transparent 5px, var(--paper-bright) 0) 0 0/11px 11px repeat-x; }
.torn-card::before { top: -8px; }
.torn-card::after { bottom: -8px; transform: rotate(180deg); }
.checkin-card { padding: clamp(1.4rem, 3vw, 2.4rem); }
.feeling-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: .65rem; margin: 1.6rem 0; }
.feeling-choice { min-height: 105px; padding: .8rem .4rem; display: grid; align-content: center; justify-items: center; gap: .5rem; border: 1px solid var(--line); border-radius: .55rem; background: color-mix(in srgb, var(--paper) 42%, transparent); cursor: pointer; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.feeling-choice:nth-child(2n) { transform: rotate(.35deg); }
.feeling-choice:nth-child(3n) { transform: rotate(-.35deg); }
.feeling-choice:hover { transform: translateY(-3px); border-color: var(--moss); }
.feeling-choice.selected { border: 2px solid var(--evergreen); background: var(--sage-pale); color: var(--evergreen); }
.feeling-mark { font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 1.95rem; line-height: 1; }
.feeling-choice span:last-child { font-size: .82rem; font-weight: 600; }
.suggestion-inset { margin: 1.5rem -.3rem -.35rem; padding: 1.35rem 1.5rem; display: flex; justify-content: space-between; align-items: end; gap: 2rem; border: 1px dashed var(--line-strong); background: var(--sage-pale); }
.suggestion-inset h3 { margin: .1rem 0 .3rem; font-family: "Newsreader", Georgia, serif; font-size: 1.55rem; }
.suggestion-inset p { max-width: 640px; margin: 0; font-size: .9rem; }
.button-row { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.button { min-height: 46px; padding: .7rem 1rem; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; border-radius: .35rem; border: 1px solid transparent; cursor: pointer; text-decoration: none; font-weight: 600; font-size: .86rem; }
.button.primary { color: white; background: var(--evergreen); border-color: var(--evergreen); box-shadow: 0 7px 15px rgba(23,79,67,.15); }
.button.primary:hover { background: var(--evergreen-deep); }
.button.secondary { background: transparent; border-color: var(--line-strong); }
.button.secondary:hover { background: var(--paper-bright); border-color: var(--evergreen); }
.button.danger { color: white; background: var(--danger); }
.button:disabled { opacity: .4; cursor: not-allowed; }
.danger-link { color: var(--danger); background: transparent; border-color: transparent; }
.text-link, .back-link { appearance: none; border: 0; border-bottom: 1px solid currentColor; background: transparent; padding: .25rem 0; display: inline-flex; align-items: center; gap: .35rem; color: var(--evergreen); font-weight: 700; font-size: .84rem; cursor: pointer; text-decoration: none; }
.status-note { margin: 1rem 0 0; padding: .7rem .85rem; border-left: 3px solid var(--moss); background: rgba(231,238,228,.7); color: var(--ink-soft); font-size: .79rem; line-height: 1.5; }
.support-action-note { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .55rem 1rem; }
.support-action-note button { padding: 0; color: var(--evergreen); background: transparent; border: 0; border-bottom: 1px solid currentColor; font: inherit; font-weight: 700; cursor: pointer; }
.status-error { border-left-color: var(--danger); background: var(--danger-pale); color: var(--ink); }
.status-success { color: var(--evergreen); }
.status-warning { border-color: var(--clay); background: var(--clay-pale); color: #69342c; }

.orbit-section { padding: clamp(5rem, 9vw, 8rem) 0; }
.orbit-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .5fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.orbit-map { position: relative; min-height: 560px; border-radius: 50%; border: 1px dashed rgba(23,79,67,.21); background: radial-gradient(circle, rgba(183,203,184,.38) 0 18%, transparent 18.5%), radial-gradient(circle, transparent 0 48%, rgba(201,130,105,.08) 48.5% 49%, transparent 49.5%); }
.orbit-map::before { content: ""; position: absolute; inset: 15%; border: 1px solid rgba(23,79,67,.16); border-radius: 50%; transform: rotate(-6deg); }
.orbit-centre { position: absolute; left: 50%; top: 50%; width: 116px; height: 116px; transform: translate(-50%,-50%) rotate(-2deg); display: grid; place-items: center; border-radius: 50% 48% 53% 47%; background: var(--evergreen); color: white; box-shadow: 0 18px 35px rgba(23,79,67,.2); text-align: center; font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 1.3rem; line-height: 1.05; }
.orbit-item { position: absolute; width: 190px; min-height: 105px; padding: 1rem; display: grid; align-content: center; text-align: left; background: var(--paper-bright); border: 1px solid var(--line); border-radius: 48% 52% 46% 54% / 52% 45% 55% 48%; box-shadow: var(--shadow-small); cursor: pointer; }
.orbit-item:hover { border-color: var(--clay); }
.orbit-item strong { font-family: "Newsreader", Georgia, serif; font-size: 1.35rem; }
.orbit-item small { margin-top: .25rem; color: var(--ink-soft); line-height: 1.3; }
.orbit-1 { left: calc(50% - 95px); top: 2%; transform: rotate(-2deg); }
.orbit-2 { right: 1%; top: calc(50% - 52px); transform: rotate(2deg); }
.orbit-3 { left: calc(50% - 95px); bottom: 2%; transform: rotate(1deg); }
.orbit-4 { left: 1%; top: calc(50% - 52px); transform: rotate(-2deg); }
.margin-note { position: relative; padding: 1.65rem 1.7rem; background: var(--clay-pale); border-left: 4px solid var(--clay); box-shadow: var(--shadow-small); }
.margin-note::before { display: none; }
.margin-note p:not(.hand-label) { font-family: "Newsreader", Georgia, serif; font-size: 1.05rem; }
.quick-section { padding-top: 1rem; }
.doorway-grid { display: grid; grid-template-columns: 1fr; gap: .75rem; }
.doorway { width: 100%; min-height: 108px; padding: 1.25rem 1.5rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.25rem; border: 0; border-left: 5px solid var(--evergreen); text-align: left; cursor: pointer; }
.doorway > span { display: grid; gap: .2rem; }
.doorway strong { font-family: "Newsreader", Georgia, serif; font-size: 1.45rem; font-weight: 600; }
.doorway small { color: var(--ink-soft); font-size: .84rem; }
.doorway-sage { background: var(--sage-pale); transform: rotate(-.18deg); }
.doorway-blue { background: var(--blue-pale); transform: rotate(.12deg); border-color: var(--blue); }
.doorway-clay { background: var(--clay-pale); transform: rotate(-.1deg); border-color: var(--clay); }
.doorway:hover { filter: saturate(1.08); box-shadow: var(--shadow-small); }

.tool-chooser { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.tool-card { position: relative; min-height: 350px; padding: 2rem 1.6rem; display: flex; flex-direction: column; align-items: flex-start; border: 1px solid var(--line); text-align: left; cursor: pointer; overflow: hidden; }
.tool-card::after { content: ""; position: absolute; width: 180px; height: 180px; right: -60px; bottom: -75px; border: 1px dashed currentColor; border-radius: 50%; opacity: .2; }
.tool-card:hover { transform: translateY(-4px) rotate(.15deg); box-shadow: var(--shadow); }
.tool-ground { background: var(--sage-pale); transform: rotate(-.35deg); }
.tool-reframe { background: var(--paper-bright); transform: rotate(.3deg); }
.tool-plan { background: var(--clay-pale); transform: rotate(-.18deg); }
.tool-number { align-self: flex-end; font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; color: var(--ink-soft); }
.scribble-icon { font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 2.3rem; line-height: 1; }
.tool-card h2 { margin: 2.7rem 0 .8rem; font-size: 2rem; line-height: 1.05; }
.tool-card p { color: var(--ink-soft); font-size: .92rem; }
.tool-card .text-link { margin-top: auto; }
.back-link { margin: 0 0 2rem; }
.practice-workspace { display: grid; grid-template-columns: minmax(230px, .42fr) minmax(0, .58fr); gap: clamp(2rem, 7vw, 7rem); align-items: start; }
.practice-side { position: sticky; top: 115px; }
.practice-side h2 { margin-bottom: 1rem; font-size: clamp(2.15rem, 3.8vw, 3.3rem); line-height: 1.07; }
.practice-side > p:not(.hand-label) { color: var(--ink-soft); }
.ground-card, .form-paper, .journal-paper { padding: clamp(1.5rem, 4vw, 3rem); background: var(--paper-bright); box-shadow: var(--shadow); }
.giant-count { display: block; margin: -.2rem 0 .55rem; color: var(--sage); font-family: "Newsreader", Georgia, serif; font-size: clamp(5.1rem, 9vw, 7.5rem); line-height: .82; }
.ground-card h3 { max-width: 560px; margin: 0 0 1rem; font-family: "Newsreader", Georgia, serif; font-size: clamp(1.75rem, 3vw, 2.35rem); font-weight: 500; line-height: 1.14; }
.ground-card .eyebrow { margin: 0 0 .72rem; line-height: 1.35; }
.practice-side .hand-label { margin-bottom: .5rem; }
.ground-card .button-row { margin-top: 2rem; }
.step-dots { list-style: none; padding: 0; margin: 2rem 0 0; display: flex; gap: .4rem; }
.step-dots li { width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-size: .75rem; }
.step-dots li.active { background: var(--evergreen); color: white; }
.form-paper label, .journal-paper label, .settings-grid label:not(.toggle-row) { display: block; margin: 0 0 .45rem; font-size: .79rem; font-weight: 700; }
input, textarea, select { width: 100%; min-height: 48px; padding: .8rem .9rem; color: var(--ink); border: 1px solid var(--line-strong); border-radius: .25rem; background: rgba(255,253,247,.85); }
textarea { resize: vertical; line-height: 1.65; }
input::placeholder, textarea::placeholder { color: #748881; opacity: 1; }
.form-paper textarea + .field-meta { margin-bottom: 1.2rem; }
.field-meta { display: flex; justify-content: space-between; gap: 1rem; margin: .4rem 0 1rem; color: var(--ink-soft); font-size: .7rem; }
.reframe-result { position: relative; margin: 2rem 0 0; padding: 1.5rem; border: 1px dashed var(--line-strong); background: var(--sage-pale); }
.reframe-result h3 { font-family: "Newsreader", Georgia, serif; font-size: 1.65rem; }
.reframe-result blockquote { margin: 1.2rem 0; padding: 1.2rem; border-left: 3px solid var(--clay); background: var(--paper-bright); font-family: "Newsreader", Georgia, serif; font-size: 1.15rem; line-height: 1.55; }
.reframe-result p { font-size: .88rem; }
.ruled-paper { background-color: var(--paper-bright); background-image: repeating-linear-gradient(transparent 0 35px, rgba(88,126,125,.13) 35px 36px); }
.plan-workspace .form-paper { display: grid; gap: .65rem; }
.plan-workspace .form-paper input, .plan-workspace .form-paper select { margin-bottom: 1rem; background: rgba(255,253,247,.9); }
.two-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.plan-workspace .button.primary { justify-self: end; }

.domain-explorer { display: grid; grid-template-columns: minmax(220px, .32fr) minmax(0, .68fr); border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.domain-tabs { padding: 1rem 0; border-right: 1px solid var(--line); }
.domain-tabs button { width: 100%; min-height: 92px; padding: 1rem 1.1rem; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .8rem; align-items: center; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; cursor: pointer; }
.domain-tabs button > svg { color: var(--evergreen); }
.domain-tabs button > span { min-width: 0; display: grid; gap: .22rem; }
.domain-tabs button strong { font-family: "Newsreader", Georgia, serif; font-size: 1.2rem; line-height: 1.1; }
.domain-tabs button small { color: var(--ink-soft); line-height: 1.35; }
.domain-tabs button.active { border-right: 4px solid var(--evergreen); background: var(--sage-pale); }
.domain-detail { min-height: 545px; padding: clamp(2rem, 5vw, 4.5rem); background: rgba(255,253,247,.5); }
.domain-detail h2 { margin-bottom: .7rem; font-size: clamp(2.5rem, 5vw, 4.2rem); }
.domain-lede { max-width: 650px; color: var(--ink-soft); font-family: "Newsreader", Georgia, serif; font-size: 1.2rem; }
.domain-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin: 2.5rem 0; }
.domain-columns h3 { font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.domain-columns ul { padding: 0; list-style: none; }
.domain-columns li { position: relative; margin: .75rem 0; padding-left: 1.25rem; color: var(--ink-soft); font-size: .89rem; }
.domain-columns li::before { content: "↝"; position: absolute; left: 0; color: var(--clay); }
.next-step { margin: 0; padding: 1.2rem 1.4rem; border-left: 3px solid var(--clay); background: var(--clay-pale); font-family: "Newsreader", Georgia, serif; font-size: 1.08rem; line-height: 1.55; }
.next-step span { display: block; margin-bottom: .25rem; font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; color: var(--clay); font-size: 1.1rem; }
.foundations-section { padding: clamp(5rem, 9vw, 8rem) 0; }
.foundation-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.foundation-grid article { min-height: 210px; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.foundation-mark { color: var(--clay); font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 2rem; }
.foundation-grid h3 { margin: 1.3rem 0 .5rem; font-family: "Newsreader", Georgia, serif; font-size: 1.4rem; }
.foundation-grid p { color: var(--ink-soft); font-size: .84rem; }
.breathing-note { padding: 2.2rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; background: var(--blue-pale); }
.breathing-note > div { max-width: 700px; }
.breathing-note h2 { font-size: 2rem; }

.journal-workspace { display: grid; grid-template-columns: minmax(260px, .37fr) minmax(0, .63fr); gap: 0; align-items: stretch; box-shadow: var(--shadow); }
.prompt-drawer { padding: clamp(1.5rem, 4vw, 3rem); background: var(--evergreen); color: white; }
.prompt-drawer .hand-label { color: #efbba5; }
.prompt-drawer h2 { font-size: 2rem; }
.theme-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1.5rem 0 2.2rem; }
.theme-chips button { min-height: 39px; padding: .4rem .65rem; color: rgba(255,255,255,.77); background: transparent; border: 1px solid rgba(255,255,255,.25); border-radius: 1.3rem; cursor: pointer; font-size: .7rem; }
.theme-chips button.active { color: var(--evergreen-deep); background: var(--paper-bright); border-color: var(--paper-bright); }
.prompt-drawer blockquote { margin: 0 0 1.5rem; padding: 0; font-family: "Newsreader", Georgia, serif; font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.35; }
.prompt-drawer .text-link { color: white; }
.prompt-drawer .muted { margin-top: 2rem; color: rgba(255,255,255,.67); font-size: .76rem; }
.journal-paper { box-shadow: none; }
.journal-paper textarea { min-height: 370px; padding: .2rem .4rem; border: 0; background: transparent; font-family: "Newsreader", Georgia, serif; font-size: 1.18rem; line-height: 36px; }
.journal-paper textarea:focus-visible { outline-offset: 6px; }
.journal-actions { margin-top: 1.2rem; display: flex; justify-content: space-between; align-items: center; }
.journal-actions > span { color: var(--ink-soft); font-size: .7rem; }
.records-section { padding: clamp(5rem, 9vw, 8rem) 0; }
.record-tabs { display: flex; border-bottom: 1px solid var(--line-strong); }
.record-tabs button { min-height: 48px; padding: .7rem 1.2rem; border: 0; border-bottom: 3px solid transparent; background: transparent; cursor: pointer; }
.record-tabs button[aria-selected="true"] { border-color: var(--clay); color: var(--evergreen); font-weight: 700; }
.record-tabs span { display: inline-grid; min-width: 1.6rem; min-height: 1.6rem; place-items: center; margin-left: .3rem; border-radius: 50%; background: var(--sage-pale); font-size: .68rem; }
.record-list { display: grid; gap: .8rem; padding-top: 1rem; }
.record-card { padding: 1.3rem 1.4rem; border: 1px solid var(--line); background: rgba(255,253,247,.65); }
.record-card > div:first-child { display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: var(--ink-soft); font-size: .72rem; }
.record-card > div:first-child span { color: var(--clay); text-transform: uppercase; letter-spacing: .09em; }
.record-card h3 { margin: .9rem 0 .4rem; font-family: "Newsreader", Georgia, serif; font-size: 1.15rem; }
.record-card p { margin: 0; color: var(--ink-soft); white-space: pre-wrap; font-size: .86rem; }
.compact-record > div:first-child { font-size: .86rem; }
.plan-record label { display: flex; gap: 1rem; cursor: pointer; }
.plan-record input { width: 22px; min-height: 22px; margin-top: .15rem; }
.plan-record span { display: grid; gap: .25rem; }
.plan-record small, .plan-record em { color: var(--ink-soft); font-size: .78rem; font-style: normal; }
.plan-record.done { opacity: .65; }
.plan-record.done strong { text-decoration: line-through; }
.empty-record { min-height: 140px; display: grid; place-items: center; align-content: center; padding: 2rem; border: 1px dashed var(--line-strong); color: var(--ink-soft); text-align: center; }
.empty-record > span { color: var(--clay); font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 2rem; }
.empty-record p { margin: 0; }
.privacy-drawer { padding: 1.6rem; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; border-top: 2px solid var(--evergreen); border-bottom: 1px solid var(--line); }
.privacy-drawer h2 { margin-bottom: .4rem; }
.privacy-drawer p:not(.hand-label) { max-width: 660px; margin: 0; color: var(--ink-soft); font-size: .82rem; }
.privacy-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }

.urgent-panel { padding: clamp(1.5rem, 4vw, 3rem); color: #fff8ef; background: var(--evergreen-deep); box-shadow: var(--shadow); }
.urgent-heading { display: flex; align-items: flex-start; gap: 1rem; }
.urgent-heading .eyebrow { color: #eab59f; }
.urgent-heading h2 { max-width: 820px; font-size: clamp(2rem, 4vw, 3.1rem); }
.pulse-mark { width: 14px; height: 14px; flex: 0 0 auto; margin-top: .35rem; border: 3px solid #f2aa8c; border-radius: 50%; box-shadow: 0 0 0 5px rgba(242,170,140,.15); }
.urgent-panel > p { max-width: 850px; color: rgba(255,248,239,.8); }
.helpline-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin: 2rem 0 1.1rem; }
.helpline-card { min-height: 135px; padding: 1.1rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; color: var(--evergreen-deep); background: var(--paper-bright); border-left: 4px solid var(--sage); text-decoration: none; }
.helpline-card:hover { transform: translateY(-2px); }
.helpline-card.emergency { background: var(--clay-pale); border-color: var(--clay); }
.helpline-card span { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.helpline-card strong { margin: .25rem 0; font-family: "Newsreader", Georgia, serif; font-size: 1.65rem; }
.helpline-card small { color: var(--ink-soft); }
.urgent-footnote { margin-bottom: 0; font-size: .72rem; }
.care-section { padding: clamp(5rem, 9vw, 8rem) 0; }
.care-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.care-grid article { min-height: 240px; padding: 1.4rem; background: var(--paper); }
.care-grid span { color: var(--clay); font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 1.2rem; }
.care-grid h3 { margin: 3rem 0 .7rem; font-family: "Newsreader", Georgia, serif; font-size: 1.35rem; }
.care-grid p { color: var(--ink-soft); font-size: .82rem; }
.guidance-library { padding: clamp(2rem, 5vw, 4rem); background: var(--sage-pale); }
.guidance-heading { display: grid; grid-template-columns: 1fr minmax(240px, .45fr); gap: 2rem; align-items: end; margin-bottom: 2rem; }
.guidance-heading h2 { margin-bottom: .5rem; font-size: clamp(2rem, 4vw, 3rem); }
.guidance-heading p:not(.hand-label) { max-width: 650px; margin: 0; color: var(--ink-soft); }
.search-field { position: relative; }
.search-field input { padding-right: 2.5rem; background: var(--paper-bright); }
.search-field > span:last-child { position: absolute; right: .9rem; top: .55rem; font-size: 1.4rem; }
.guidance-list { border-top: 1px solid var(--line-strong); }
.guidance-list article { border-bottom: 1px solid var(--line-strong); }
.guidance-list article > button { width: 100%; min-height: 82px; padding: 1rem .4rem; display: flex; justify-content: space-between; align-items: center; border: 0; background: transparent; text-align: left; cursor: pointer; }
.guidance-list article > button span { display: grid; gap: .25rem; }
.guidance-list article > button small { color: var(--clay); font-size: .65rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.guidance-list article > button strong { font-family: "Newsreader", Georgia, serif; font-size: 1.25rem; }
.guidance-list article > button b { font-family: "Newsreader", Georgia, serif; font-size: 1.8rem; font-weight: 400; }
.guidance-answer { padding: 0 2rem 1.5rem; }
.guidance-answer ol { margin: 0; padding-left: 1.2rem; }
.guidance-answer li { margin: .75rem 0; padding-left: .4rem; color: var(--ink-soft); font-size: .87rem; line-height: 1.6; }
.boundary-note { padding: .7rem; border-left: 3px solid var(--clay); background: var(--clay-pale); font-size: .78rem; }
.clinical-boundary { max-width: 850px; margin: 5rem auto 0; text-align: center; }
.clinical-boundary h2 { font-size: 2rem; }
.clinical-boundary p { color: var(--ink-soft); }
.clinical-boundary div { display: flex; justify-content: center; gap: 1.2rem; }
.clinical-boundary a { font-size: .82rem; }

.site-footer { padding: 3.2rem clamp(1rem, 4vw, 4rem) 1.2rem; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; color: rgba(255,255,255,.78); background: var(--evergreen-deep); }
.footer-mark { display: flex; align-items: center; gap: .8rem; }
.footer-mark img { width: 42px; height: 42px; border-radius: 50%; }
.footer-mark strong { color: white; font-family: "Newsreader", Georgia, serif; letter-spacing: .12em; }
.footer-mark p { margin: .25rem 0 0; font-size: .75rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.footer-links a { color: rgba(255,255,255,.76); font-size: .75rem; }
.footer-boundary { text-align: right; }
.footer-boundary p { margin: 0 0 .35rem; font-size: .74rem; }
.footer-boundary button { padding: 0; color: white; background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,.6); cursor: pointer; font-size: .78rem; }
.copyright { grid-column: 1 / -1; margin: 2rem 0 0; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.13); font-size: .64rem; text-align: center; }
.mobile-nav { display: none; }

.modal-backdrop { position: fixed; inset: 0; z-index: 100; padding: 1rem; display: grid; place-items: center; background: rgba(12,38,32,.7); backdrop-filter: blur(7px); }
.modal-sheet { width: min(560px, 100%); max-height: min(88vh, 900px); overflow-y: auto; background: var(--paper); border: 1px solid rgba(255,255,255,.45); box-shadow: 0 30px 90px rgba(5,28,22,.35); }
.modal-wide { width: min(900px, 100%); }
.modal-head { position: sticky; top: 0; z-index: 3; min-height: 68px; padding: .9rem 1.1rem .9rem 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: color-mix(in srgb, var(--paper) 96%, transparent); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.modal-head h2 { margin: 0; font-size: 1.7rem; }
.confirm-copy, .safety-modal, .practice-modal { padding: 1.5rem; }
.practice-meta { display: flex; justify-content: space-between; margin-bottom: 1.5rem; color: var(--clay); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.practice-invitation { color: var(--ink-soft); font-family: "Newsreader", Georgia, serif; font-size: 1.2rem; }
.practice-step { min-height: 190px; padding: 1.5rem; display: grid; grid-template-columns: auto 1fr; gap: 1.2rem; align-items: center; background: var(--sage-pale); }
.practice-step span { color: var(--clay); font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 1.5rem; }
.practice-step p { margin: 0; font-family: "Newsreader", Georgia, serif; font-size: clamp(1.5rem, 3.5vw, 2.2rem); line-height: 1.35; }
.practice-modal > .muted { margin-top: 1rem; font-size: .78rem; }
.practice-complete { padding: 2rem; text-align: center; }
.practice-complete > span { display: block; color: var(--moss); font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 4rem; }
.practice-complete h3 { font-family: "Newsreader", Georgia, serif; font-size: 2rem; }
.toggle-row { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); cursor: pointer; }
.toggle-row input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.toggle-row i { position: relative; width: 42px; height: 24px; flex: 0 0 auto; border-radius: 12px; background: #b7c1bc; transition: background .2s; }
.toggle-row i::after { content: ""; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; border-radius: 50%; background: white; box-shadow: 0 2px 4px rgba(0,0,0,.2); transition: transform .2s; }
.toggle-row input:checked + i { background: var(--evergreen); }
.toggle-row input:checked + i::after { transform: translateX(18px); }
.toggle-row input:focus-visible + i { outline: 3px solid var(--clay); outline-offset: 3px; }
.field-note { color: var(--ink-soft); font-size: .72rem; line-height: 1.5; }
.storage-options { display: grid; gap: .55rem; }
.storage-options label { min-height: 82px; padding: .8rem; display: flex !important; gap: .7rem; border: 1px solid var(--line); cursor: pointer; }
.storage-options label.active { border: 2px solid var(--evergreen); background: var(--sage-pale); }
.storage-options input { width: 19px; min-height: 19px; }
.storage-options span { display: grid; gap: .2rem; }
.storage-options small { color: var(--ink-soft); font-size: .69rem; line-height: 1.4; }
.offline-status { display: flex; gap: .8rem; align-items: flex-start; }
.offline-status > span { width: 11px; height: 11px; flex: 0 0 auto; margin-top: .25rem; border-radius: 50%; background: var(--gold); }
.offline-status.ready > span { background: var(--moss); }
.offline-status strong { font-size: .86rem; }
.offline-status p { margin: .3rem 0 0; color: var(--ink-soft); font-size: .73rem; }
.safety-modal { display: grid; grid-template-columns: 54px 1fr; gap: 1.2rem; }
.safety-mark { width: 54px; height: 54px; display: grid; place-items: center; border: 2px solid var(--danger); border-radius: 50%; color: var(--danger); font-family: "Newsreader", Georgia, serif; font-size: 2rem; }
.safety-modal > div:nth-child(2) p { margin-bottom: .7rem; }
.safety-modal .helpline-grid, .safety-modal .urgent-footnote, .safety-modal .button-row { grid-column: 1 / -1; }
.helpline-grid.compact { margin: .5rem 0; }
.helpline-grid.compact .helpline-card { min-height: 100px; }
.toast { position: fixed; z-index: 150; right: 1.2rem; bottom: 1.2rem; max-width: 370px; padding: .85rem 1rem; color: white; background: var(--evergreen-deep); border-left: 4px solid var(--clay); box-shadow: var(--shadow); font-size: .8rem; }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: 1fr auto; }
  .main-nav { display: none; }
  .feeling-grid { grid-template-columns: repeat(3, 1fr); }
  .orbit-layout { grid-template-columns: 1fr; }
  .margin-note { width: min(500px, 90%); margin: 0 auto; }
  .care-grid { grid-template-columns: repeat(2, 1fr); }
  .privacy-drawer { grid-template-columns: 1fr; }
  .privacy-actions { justify-content: flex-start; }
  .site-footer { grid-template-columns: 1fr 1fr; padding-bottom: 6.2rem; }
  .footer-links { justify-content: flex-end; }
  .footer-boundary { grid-column: 1 / -1; text-align: left; }
  .mobile-nav { position: fixed; z-index: 60; left: 50%; bottom: .75rem; width: min(620px, calc(100% - 1rem)); transform: translateX(-50%); padding: .35rem; display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid rgba(255,255,255,.25); border-radius: .7rem; background: rgba(16,60,52,.96); box-shadow: 0 10px 35px rgba(10,35,29,.3); backdrop-filter: blur(16px); }
  .mobile-nav button { min-height: 50px; display: grid; place-items: center; align-content: center; gap: .08rem; color: rgba(255,255,255,.68); background: transparent; border: 0; border-radius: .45rem; cursor: pointer; }
  .mobile-nav button span { font-size: .62rem; }
  .mobile-nav button.active { color: var(--evergreen-deep); background: var(--paper); }
}

@media (max-width: 760px) {
  .site-header { min-height: 68px; padding: .5rem .8rem; }
  .brand img { width: 38px; height: 38px; }
  .brand small { display: none; }
  .header-tool { min-width: 44px; padding: .25rem; }
  .header-tool span { display: none; }
  .page { width: min(100% - 1.25rem, 1180px); padding-top: 3.5rem; }
  .page-intro { margin-bottom: 3rem; }
  .page-intro h1 { font-size: clamp(2.6rem, 13vw, 4.5rem); }
  .section-heading, .wide-heading { display: block; }
  .wide-heading > p { margin-top: .7rem; }
  .feeling-grid { grid-template-columns: repeat(2, 1fr); }
  .suggestion-inset { display: block; }
  .suggestion-inset .button-row { margin-top: 1rem; justify-content: flex-start; }
  .orbit-map { min-height: 470px; }
  .orbit-item { width: 145px; min-height: 92px; padding: .75rem; }
  .orbit-item strong { font-size: 1.1rem; }
  .orbit-item small { font-size: .65rem; }
  .orbit-1, .orbit-3 { left: calc(50% - 72px); }
  .orbit-centre { width: 96px; height: 96px; }
  .doorway { padding: 1rem; gap: .8rem; }
  .doorway strong { font-size: 1.25rem; }
  .tool-chooser { grid-template-columns: 1fr; }
  .tool-card { min-height: 260px; }
  .practice-workspace { grid-template-columns: 1fr; gap: 1.5rem; }
  .practice-side { position: static; }
  .practice-side h2 { font-size: clamp(2.2rem, 10vw, 2.75rem); line-height: 1.08; }
  .two-fields { grid-template-columns: 1fr; }
  .domain-explorer { grid-template-columns: 1fr; }
  .domain-tabs { display: grid; grid-template-columns: repeat(2, 1fr); border-right: 0; border-bottom: 1px solid var(--line); }
  .domain-tabs button { min-height: 80px; border-right: 1px solid var(--line); }
  .domain-tabs button.active { border-right: 1px solid var(--line); border-bottom: 4px solid var(--evergreen); }
  .domain-detail { padding: 1.5rem; }
  .domain-columns { grid-template-columns: 1fr; gap: .5rem; }
  .foundation-grid { grid-template-columns: repeat(2, 1fr); }
  .breathing-note { display: block; }
  .breathing-note .button { margin-top: 1.2rem; }
  .journal-workspace { grid-template-columns: 1fr; }
  .journal-paper textarea { min-height: 320px; }
  .record-tabs { overflow-x: auto; }
  .record-tabs button { padding: .7rem .75rem; white-space: nowrap; }
  .helpline-grid { grid-template-columns: 1fr; }
  .helpline-card { min-height: 105px; }
  .care-grid { grid-template-columns: 1fr; }
  .care-grid article { min-height: 190px; }
  .care-grid h3 { margin-top: 1.5rem; }
  .guidance-library { padding: 1.3rem; }
  .guidance-heading { grid-template-columns: 1fr; }
  .guidance-answer { padding-left: .8rem; padding-right: .8rem; }
  .settings-grid { grid-template-columns: 1fr; }
  .settings-grid section { border-right: 0; }
  .site-footer { grid-template-columns: 1fr; }
  .footer-links { justify-content: flex-start; }
  .modal-backdrop { padding: .35rem; align-items: end; }
  .modal-sheet { width: 100%; max-height: 94vh; }
  .safety-modal { grid-template-columns: 1fr; }
  .safety-modal .helpline-grid, .safety-modal .urgent-footnote, .safety-modal .button-row { grid-column: 1; }
  .toast { left: .7rem; right: .7rem; bottom: 5.2rem; }
}

@media (max-width: 430px) {
  .brand strong { font-size: 1rem; }
  .feeling-grid { gap: .45rem; }
  .feeling-choice { min-height: 92px; }
  .orbit-map { min-height: 420px; }
  .orbit-item { width: 126px; min-height: 82px; }
  .orbit-item small { display: none; }
  .orbit-1, .orbit-3 { left: calc(50% - 63px); }
  .orbit-centre { width: 82px; height: 82px; font-size: 1.05rem; }
  .foundation-grid { grid-template-columns: 1fr; }
  .mobile-nav button span { font-size: .55rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
:root[data-motion="reduced"] *, :root[data-motion="reduced"] *::before, :root[data-motion="reduced"] *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }

@media print {
  .site-header, .mobile-nav, .site-footer, .header-tools, .privacy-actions, .button { display: none !important; }
  body { background: white; }
  .page { width: 100%; padding: 1rem; }
  .record-card { break-inside: avoid; }
}

/* v3.1 consolidation: quieter pathways, deeper practices, safer exit */
.steady-start-note { margin: -1rem 0 1.5rem; padding: 1rem 1.2rem; display: grid; grid-template-columns: auto 1fr; gap: .85rem; align-items: start; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); background: rgba(255,253,247,.48); }
.steady-start-note > span { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--sage); border-radius: 50%; color: var(--evergreen); font-family: "Newsreader", Georgia, serif; }
.steady-start-note p { margin: .15rem 0 0; color: var(--ink-soft); font-size: .84rem; line-height: 1.6; }
.steady-start-note button { padding: 0; color: var(--evergreen); background: transparent; border: 0; border-bottom: 1px solid currentColor; font: inherit; font-weight: 700; cursor: pointer; }
.tool-chooser-five { grid-template-columns: repeat(6, 1fr); }
.tool-chooser-five .tool-card { grid-column: span 2; min-height: 315px; }
.tool-chooser-five .tool-card:nth-child(4) { grid-column: 2 / span 2; }
.tool-chooser-five .tool-card:nth-child(5) { grid-column: 4 / span 2; }
.tool-reduce { background: #f2eee0; transform: rotate(.18deg); }
.tool-breathe { background: var(--blue-pale); transform: rotate(-.22deg); }
.simple-practice-card .practice-meta { margin-bottom: 1.5rem; }
.simple-practice-card .status-note { margin: 1.2rem 0 0; }
.practice-evidence-note { margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid var(--line); font-size: .8rem !important; }
.practice-complete-inline { padding: .6rem 0; }
.practice-complete-inline > span { width: 56px; height: 56px; margin-bottom: 1rem; display: grid; place-items: center; border: 1px solid var(--sage); border-radius: 50%; color: var(--evergreen); font-family: "Newsreader", Georgia, serif; font-size: 2rem; }
.practice-complete-inline h3 { margin: .3rem 0 .8rem; }
.practice-complete-inline p:not(.hand-label) { max-width: 620px; color: var(--ink-soft); }
.practice-rationale { margin: 1.1rem 0; padding: .9rem 1rem; border-left: 3px solid var(--sage); background: var(--sage-pale); color: var(--ink-soft); font-size: .83rem; line-height: 1.55; }
.private-exit-panel { margin-top: 1.2rem; padding: 1.4rem 1.5rem; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; border: 1px solid var(--line-strong); border-left: 5px solid var(--clay); background: var(--clay-pale); }
.private-exit-panel h2 { margin: .15rem 0 .45rem; font-size: clamp(1.7rem, 3vw, 2.4rem); }
.private-exit-panel p:not(.hand-label) { max-width: 800px; margin: 0; color: var(--ink-soft); font-size: .84rem; }
.quick-exit-button { color: white; background: var(--evergreen-deep); border-color: var(--evergreen-deep); white-space: nowrap; }
.quick-exit-button:hover { background: #0c3029; }

@media (max-width: 1050px) {
  .tool-chooser-five { grid-template-columns: repeat(2, 1fr); }
  .tool-chooser-five .tool-card,
  .tool-chooser-five .tool-card:nth-child(4),
  .tool-chooser-five .tool-card:nth-child(5) { grid-column: auto; }
  .tool-chooser-five .tool-card:last-child { grid-column: 1 / -1; min-height: 250px; }
}

@media (max-width: 760px) {
  .tool-chooser-five { grid-template-columns: 1fr; }
  .tool-chooser-five .tool-card,
  .tool-chooser-five .tool-card:nth-child(4),
  .tool-chooser-five .tool-card:nth-child(5),
  .tool-chooser-five .tool-card:last-child { grid-column: auto; min-height: 235px; }
  .tool-chooser-five .tool-card h2 { margin-top: 1.7rem; }
  .private-exit-panel { grid-template-columns: 1fr; gap: 1rem; }
  .quick-exit-button { justify-self: start; }
}

/* Curated self-awareness thought: noticeable without becoming a motivational banner. */
.awareness-thought {
  position: relative;
  margin: clamp(1.7rem, 4vw, 3rem) auto;
  padding: clamp(1.25rem, 3vw, 1.8rem) clamp(1.25rem, 4vw, 2.25rem);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem 1.35rem;
  align-items: center;
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line);
  background: linear-gradient(90deg, color-mix(in srgb, var(--sage-pale) 74%, transparent), color-mix(in srgb, var(--paper-bright) 82%, transparent) 55%, color-mix(in srgb, var(--clay-pale) 55%, transparent));
}
.awareness-thought::after {
  content: "";
  position: absolute;
  right: 1.5rem;
  top: -.45rem;
  width: 56px;
  height: 12px;
  background: rgba(224,201,157,.48);
  transform: rotate(2deg);
  pointer-events: none;
}
.awareness-thought-mark {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--sage);
  border-radius: 50%;
  color: var(--evergreen);
  font-family: "Newsreader", Georgia, serif;
  font-size: 1.55rem;
}
.awareness-thought-copy { min-width: 0; }
.awareness-thought .hand-label { margin-bottom: .2rem; }
.awareness-thought blockquote {
  margin: 0;
  color: var(--evergreen-deep);
  font-family: "Caveat", "Segoe Print", cursive;
  font-size: clamp(1.55rem, 3.2vw, 2.05rem);
  font-weight: 600;
  line-height: 1.22;
}
.awareness-thought-note {
  max-width: 720px;
  margin: .45rem 0 0;
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.45;
}
.awareness-thought-next { white-space: nowrap; justify-self: end; }

@media (max-width: 720px) {
  .awareness-thought {
    grid-template-columns: auto 1fr;
    align-items: start;
  }
  .awareness-thought-next {
    grid-column: 2;
    justify-self: start;
  }
}

@media (max-width: 460px) {
  .awareness-thought {
    grid-template-columns: 1fr;
    gap: .75rem;
  }
  .awareness-thought-mark { width: 34px; height: 34px; font-size: 1.25rem; }
  .awareness-thought-next { grid-column: 1; }
}

/* v3.3 final design system: structured journal, accessible personalization */
:root {
  --writing-ink: var(--ink);
}
:root[data-appearance="night"] {
  color-scheme: dark;
  --ink: #ecf1ec;
  --ink-soft: #bdcbc5;
  --evergreen: #a9d0bf;
  --evergreen-deep: #0d2924;
  --sage: #78988a;
  --sage-pale: #1b3730;
  --moss: #97b49b;
  --paper: #101d1a;
  --paper-bright: #172723;
  --paper-deep: #0c1714;
  --clay: #dfa58e;
  --clay-pale: #3a2923;
  --blue: #94b6b2;
  --blue-pale: #1d3434;
  --gold: #d3b879;
  --danger: #e38e88;
  --danger-pale: #432624;
  --line: rgba(230,240,234,.16);
  --line-strong: rgba(230,240,234,.31);
  --shadow: 0 24px 65px rgba(0,0,0,.28);
  --shadow-small: 0 10px 30px rgba(0,0,0,.2);
}
@media (prefers-color-scheme: dark) {
  :root[data-appearance="system"] {
    color-scheme: dark;
    --ink: #ecf1ec;
    --ink-soft: #bdcbc5;
    --evergreen: #a9d0bf;
    --evergreen-deep: #0d2924;
    --sage: #78988a;
    --sage-pale: #1b3730;
    --moss: #97b49b;
    --paper: #101d1a;
    --paper-bright: #172723;
    --paper-deep: #0c1714;
    --clay: #dfa58e;
    --clay-pale: #3a2923;
    --blue: #94b6b2;
    --blue-pale: #1d3434;
    --gold: #d3b879;
    --danger: #e38e88;
    --danger-pale: #432624;
    --line: rgba(230,240,234,.16);
    --line-strong: rgba(230,240,234,.31);
    --shadow: 0 24px 65px rgba(0,0,0,.28);
    --shadow-small: 0 10px 30px rgba(0,0,0,.2);
  }
}
:root[data-contrast="high"] {
  --ink: #072a24;
  --ink-soft: #24473f;
  --evergreen: #073e34;
  --clay: #7f4538;
  --line: rgba(7, 42, 36, .38);
  --line-strong: rgba(7, 42, 36, .62);
}
:root[data-appearance="night"][data-contrast="high"] {
  --ink: #ffffff;
  --ink-soft: #d9e4df;
  --evergreen: #c8eadb;
  --clay: #f0b29a;
  --line: rgba(255,255,255,.32);
  --line-strong: rgba(255,255,255,.56);
}
:root[data-writing-ink="charcoal"] { --writing-ink: #343936; }
:root[data-writing-ink="blue"] { --writing-ink: #183e67; }
:root[data-writing-ink="forest"] { --writing-ink: #174f43; }
:root[data-writing-ink="brown"] { --writing-ink: #704b39; }
:root[data-appearance="night"][data-writing-ink="charcoal"],
:root[data-appearance="night"][data-writing-ink="blue"],
:root[data-appearance="night"][data-writing-ink="forest"],
:root[data-appearance="night"][data-writing-ink="brown"] { --writing-ink: #edf1ed; }

/* Keep journal intimacy in writing, not in functional text. */
.personal-writing,
.personal-writing-record > p {
  color: var(--writing-ink);
  font-family: "DM Sans", system-ui, sans-serif;
}
:root[data-writing-font="handwritten"] .personal-writing,
:root[data-writing-font="handwritten"] .personal-writing-record > p {
  font-family: "Caveat", "Segoe Print", "Bradley Hand", "Lucida Handwriting", cursive, "Noto Sans Devanagari", "Nirmala UI", "Mangal", system-ui, sans-serif;
  font-size: 1.2em;
  line-height: 1.58;
  letter-spacing: .01em;
}
.journal-paper .personal-writing { min-height: 360px; padding: 1.15rem 1.2rem; }
.writing-preview { min-height: 72px; padding: 1rem 1.1rem; display: flex; align-items: center; border: 1px solid var(--line-strong); background: var(--paper-bright); font-size: 1rem; }


/* A unified hand-sketched icon treatment without sacrificing recognition. */
.header-tool svg, .doorway > svg, .tool-card > svg, .settings-section-title svg, .foundation-grid article > svg {
  filter: drop-shadow(.35px .25px 0 currentColor);
}
.tool-card > svg { color: var(--evergreen); transform: rotate(-2deg); }
.tool-card:nth-child(even) > svg { transform: rotate(2deg); }
.scribble-icon { display: none; }

/* Rebuilt whole-person map: exact geometry with lightly hand-drawn borders. */
.orbit-map {
  position: relative;
  min-height: 560px;
  display: grid;
  grid-template-columns: minmax(160px,1fr) minmax(150px,.8fr) minmax(160px,1fr);
  grid-template-rows: 1fr 1fr 1fr;
  gap: 1rem;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.orbit-map::before { display: none; }
.orbit-connections { position: absolute; inset: 4%; width: 92%; height: 92%; overflow: visible; pointer-events: none; }
.orbit-connections path, .orbit-connections ellipse { fill: none; stroke: var(--line-strong); stroke-width: 1.3; stroke-linecap: round; stroke-dasharray: 2 3; vector-effect: non-scaling-stroke; }
.orbit-connections path:nth-child(2), .orbit-connections path:nth-child(4) { stroke-dasharray: 4 4; }
.orbit-centre {
  position: relative;
  inset: auto;
  grid-column: 2;
  grid-row: 2;
  width: 118px;
  height: 118px;
  transform: rotate(-1deg);
  z-index: 2;
}
.orbit-item {
  position: relative;
  inset: auto;
  width: min(230px, 100%);
  min-height: 112px;
  padding: 1rem 1.15rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
  border-radius: 18px 21px 17px 20px;
  box-shadow: var(--shadow-small);
  transform: none;
  z-index: 2;
}
.orbit-item::after { content:""; position:absolute; inset:4px -4px -4px 4px; border:1px solid color-mix(in srgb, var(--line-strong) 65%, transparent); border-radius: 19px 16px 21px 17px; pointer-events:none; opacity:.52; }
.orbit-item strong { display:block; font-size: 1.3rem; line-height: 1.05; }
.orbit-item small { display:block; margin-top:.42rem; font-size:.78rem; line-height:1.38; }
.orbit-1 { grid-column:2; grid-row:1; }
.orbit-2 { grid-column:3; grid-row:2; }
.orbit-3 { grid-column:2; grid-row:3; }
.orbit-4 { grid-column:1; grid-row:2; }

/* Less visual scattering: remove arbitrary rotations from primary interaction surfaces. */
.feeling-choice:nth-child(2n), .feeling-choice:nth-child(3n),
.doorway-sage, .doorway-blue, .doorway-clay,
.tool-ground, .tool-reframe, .tool-plan, .tool-reduce, .tool-breathe { transform: none; }
.feeling-choice:hover { transform: translateY(-2px); }
.tool-card:hover { transform: translateY(-3px); }
.margin-note { transform: none; }

/* Night surfaces must retain the journal hierarchy without generic black cards. */
:root[data-appearance="night"] .site-header,
:root[data-appearance="night"] .modal-head { background: rgba(16,29,26,.95); }
:root[data-appearance="night"] .main-nav,
:root[data-appearance="night"] input,
:root[data-appearance="night"] textarea,
:root[data-appearance="night"] select,
:root[data-appearance="night"] .record-card { background: rgba(23,39,35,.9); }
:root[data-appearance="night"] .torn-card::before,
:root[data-appearance="night"] .torn-card::after { opacity: .22; }

@media (max-width: 760px) {
  .orbit-map {
    min-height: auto;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    gap: .8rem;
    padding: 1rem 0;
  }
  .orbit-connections { display: none; }
  .orbit-centre { grid-column: 1 / -1; grid-row: 1; width: 94px; height: 94px; margin-bottom:.25rem; }
  .orbit-item { width: 100%; min-height: 108px; }
  .orbit-1 { grid-column:1; grid-row:2; }
  .orbit-2 { grid-column:2; grid-row:2; }
  .orbit-3 { grid-column:1; grid-row:3; }
  .orbit-4 { grid-column:2; grid-row:3; }
}
@media (max-width: 430px) {
  .orbit-map { grid-template-columns: 1fr; }
  .orbit-centre, .orbit-1, .orbit-2, .orbit-3, .orbit-4 { grid-column:1; }
  .orbit-centre { grid-row:1; }
  .orbit-1 { grid-row:2; } .orbit-2 { grid-row:3; } .orbit-3 { grid-row:4; } .orbit-4 { grid-row:5; }
  .orbit-item small { display:block; font-size:.74rem; }
}


/* v3.4 coherent journal controls */
:root[data-appearance="paper"][data-paper-tone="warm"] {
  --paper: #f6edda;
  --paper-bright: #fffaf0;
  --paper-deep: #eadcc5;
}
:root[data-appearance="paper"][data-paper-tone="ivory"] {
  --paper: #fbf8ef;
  --paper-bright: #fffefb;
  --paper-deep: #eee9dc;
}
@media (prefers-color-scheme: light) {
  :root[data-appearance="system"][data-paper-tone="warm"] {
    --paper: #f6edda;
    --paper-bright: #fffaf0;
    --paper-deep: #eadcc5;
  }
  :root[data-appearance="system"][data-paper-tone="ivory"] {
    --paper: #fbf8ef;
    --paper-bright: #fffefb;
    --paper-deep: #eee9dc;
  }
}

.preferences-panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--line);
  gap: 1px;
}
.preferences-intro {
  grid-column: 1 / -1;
  padding: 1rem 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  background: var(--paper-deep);
}
.preferences-intro p { margin: 0; color: var(--ink-soft); }
.preferences-intro span { white-space: nowrap; font-size: .78rem; color: var(--ink-soft); }
.preference-section {
  padding: clamp(1.25rem, 3vw, 1.75rem);
  background: var(--paper);
}
.preference-appearance { grid-column: 1 / -1; }
.settings-section-title {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
  margin-bottom: 1.35rem;
}
.settings-section-title > svg { width: 26px; height: 26px; margin-top: .05rem; color: var(--evergreen); }
.settings-section-title h3 { margin: 0; font-family: "Newsreader", Georgia, serif; font-size: 1.35rem; }
.settings-section-title p { margin: .22rem 0 0; color: var(--ink-soft); font-size: .75rem; line-height: 1.45; }
.preference-control { margin-top: 1.15rem; }
.preference-label { display: block; margin-bottom: .55rem; color: var(--ink); font-size: .78rem; font-weight: 700; }
.preference-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.preference-choices.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.page-mode-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.preference-choice {
  min-height: 46px;
  padding: .65rem .75rem;
  border: 1px solid var(--line-strong);
  border-radius: .45rem;
  background: var(--paper-bright);
  color: var(--ink-soft);
  cursor: pointer;
  font-size: .78rem;
  font-weight: 650;
}
.preference-choice:hover { border-color: var(--evergreen); color: var(--ink); }
.preference-choice.active { border: 2px solid var(--evergreen); background: var(--sage-pale); color: var(--evergreen); }
.preference-split { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.paper-tone-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.paper-tone {
  min-height: 64px;
  padding: .55rem .6rem;
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: .55rem;
  align-items: center;
  border: 1px solid var(--line-strong);
  border-radius: .45rem;
  background: var(--paper-bright);
  color: var(--ink-soft);
  text-align: left;
  cursor: pointer;
  font-size: .75rem;
  font-weight: 650;
}
.paper-tone i { width: 28px; height: 36px; display: block; border: 1px solid rgba(24,59,52,.25); border-radius: 3px; box-shadow: inset 0 0 0 2px rgba(255,255,255,.35); }
.paper-tone.journal i { background: #f8f3e7; }
.paper-tone.warm i { background: #f6edda; }
.paper-tone.ivory i { background: #fbf8ef; }
.paper-tone.active { border: 2px solid var(--evergreen); color: var(--evergreen); }
.ink-choices { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .45rem; }
.ink-choice {
  min-height: 58px;
  padding: .5rem .35rem;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: .35rem;
  border: 1px solid var(--line-strong);
  border-radius: .45rem;
  background: var(--paper-bright);
  color: var(--ink-soft);
  cursor: pointer;
  font-size: .68rem;
  font-weight: 650;
}
.ink-choice i { width: 18px; height: 18px; border: 1px solid rgba(24,59,52,.3); border-radius: 50%; }
.ink-auto i { background: linear-gradient(135deg, #343936 0 49%, #f8f3e7 50% 100%); }
.ink-charcoal i { background: #343936; }
.ink-blue i { background: #183e67; }
.ink-forest i { background: #174f43; }
.ink-brown i { background: #704b39; }
.ink-choice.active { border: 2px solid var(--evergreen); color: var(--evergreen); }
.preference-static {
  min-height: 48px;
  padding: .7rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-size: .8rem;
}
.preference-static span { color: var(--ink-soft); }
.field-note { margin: .65rem 0 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.5; }
.preference-section .toggle-row { margin-top: 1.2rem; }
.preferences-panel .storage-options { margin-bottom: 1rem; }
.writing-preview { margin-top: 1rem; }

.foundation-grid article > svg { margin-bottom: .75rem; color: var(--clay); }
.domain-detail { min-height: 0; }

@media (prefers-color-scheme: dark) {
  :root[data-appearance="system"] .site-header,
  :root[data-appearance="system"] .modal-head { background: rgba(16,29,26,.95); }
  :root[data-appearance="system"] .main-nav,
  :root[data-appearance="system"] input,
  :root[data-appearance="system"] textarea,
  :root[data-appearance="system"] select,
  :root[data-appearance="system"] .record-card { background: rgba(23,39,35,.9); }
}

@media (max-width: 760px) {
  .preferences-panel { grid-template-columns: 1fr; }
  .preferences-intro, .preference-appearance { grid-column: 1; }
  .preferences-intro { display: grid; }
  .preferences-intro span { white-space: normal; }
  .preference-split { grid-template-columns: 1fr; gap: 0; }
  .ink-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .page-mode-choices, .paper-tone-choices, .preference-choices.compact { grid-template-columns: 1fr; }
  .ink-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Dark surfaces keep controls readable while preserving the journal palette. */
:root[data-appearance="night"] .button.primary,
:root[data-appearance="night"] .step-dots li.active { background: #2f6f5f; border-color: #2f6f5f; color: #fff; }
:root[data-appearance="night"] .button.primary:hover { background: #3d806f; }
:root[data-appearance="night"] .awareness-thought::after { display: none; }
:root[data-appearance="night"] .paper-tone { background: var(--paper-bright); }
@media (prefers-color-scheme: dark) {
  :root[data-appearance="system"] .button.primary,
  :root[data-appearance="system"] .step-dots li.active { background: #2f6f5f; border-color: #2f6f5f; color: #fff; }
  :root[data-appearance="system"][data-writing-ink="charcoal"],
  :root[data-appearance="system"][data-writing-ink="blue"],
  :root[data-appearance="system"][data-writing-ink="forest"],
  :root[data-appearance="system"][data-writing-ink="brown"] { --writing-ink: #edf1ed; }
}
.awareness-thought::after { display: none; }
.paper-tone:disabled { opacity: .5; cursor: not-allowed; }

.foundations-details { margin-top: 3.5rem; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); }
.foundations-details > summary { min-height: 64px; padding: .85rem .2rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.foundations-details > summary::-webkit-details-marker { display: none; }
.foundations-details > summary span { display: grid; gap: .12rem; }
.foundations-details > summary small { color: var(--clay); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.foundations-details > summary strong { font-family: "Newsreader", Georgia, serif; font-size: 1.25rem; font-weight: 600; }
.foundations-details[open] > summary > svg { transform: rotate(90deg); }
.foundations-intro { max-width: 680px; margin: .25rem 0 1.35rem; color: var(--ink-soft); font-size: .85rem; }
.foundations-details .foundation-grid { padding-bottom: 1.5rem; }
.sound-menu > button svg { flex: 0 0 auto; color: var(--evergreen); }


/* v3.4 final coherence */
.feeling-choice,.feeling-choice:nth-child(2n),.feeling-choice:nth-child(3n),.doorway,.doorway-sage,.doorway-blue,.doorway-clay,.tool-card,.tool-ground,.tool-reduce,.tool-breathe,.tool-reframe,.tool-plan{transform:none}
.feeling-choice:hover,.tool-card:hover{transform:translateY(-2px)}
.torn-card::before,.torn-card::after{display:none}
.torn-card{border:1px solid var(--line)}
input,textarea,select{color:var(--ink);background:color-mix(in srgb,var(--paper-bright) 92%,var(--paper));border-color:var(--line-strong)}
input::placeholder,textarea::placeholder{color:var(--ink-soft);opacity:.78}


/* v3.5 preference control alignment */
.preferences-panel .toggle-row{width:max-content;max-width:100%;min-height:44px;padding:.6rem .75rem;display:inline-flex;align-items:center;justify-content:flex-start;gap:.65rem;border:1px solid var(--line-strong);border-radius:.45rem;background:var(--paper-bright);color:var(--ink);font-weight:600;cursor:pointer}.preferences-panel .toggle-row input{order:-1;margin:0;flex:0 0 auto}


/* v3.5 device-theme correction: system dark must win over the generic high-contrast light palette. */
@media (prefers-color-scheme: dark) {
  :root[data-appearance="system"][data-contrast="high"] {
    --ink: #ffffff;
    --ink-soft: #d9e4df;
    --evergreen: #c8eadb;
    --clay: #f0b29a;
    --line: rgba(255,255,255,.32);
    --line-strong: rgba(255,255,255,.56);
  }
  :root[data-appearance="system"] { --writing-ink: var(--ink); }
  :root[data-appearance="system"] .page-intro h1,
  :root[data-appearance="system"] .awareness-thought blockquote,
  :root[data-appearance="system"] .theme-chips button.active,
  :root[data-appearance="system"] .helpline-card,
  :root[data-appearance="system"] .mobile-nav button.active { color: var(--ink); }
}
:root[data-appearance="night"] .page-intro h1,
:root[data-appearance="night"] .awareness-thought blockquote,
:root[data-appearance="night"] .theme-chips button.active,
:root[data-appearance="night"] .helpline-card,
:root[data-appearance="night"] .mobile-nav button.active { color: var(--ink); }
.paper-tone:disabled.active{border-color:var(--line-strong)!important;color:var(--ink-soft)!important;background:var(--paper-bright)!important}

/* v3.6 responsive journal rhythm: one spacing and colour system across viewport sizes. */
:root {
  --page-gutter: clamp(1rem, 4vw, 2rem);
  --section-rhythm: clamp(4rem, 7vw, 6rem);
  --section-rhythm-small: clamp(2.2rem, 4vw, 3.2rem);
}
:root[data-appearance="paper"] { color-scheme: light; }
:root[data-appearance="paper"][data-paper-tone="journal"] { --paper:#f8f3e7; --paper-bright:#fffdf7; --paper-deep:#eee5d3; }
:root[data-appearance="paper"][data-paper-tone="warm"] { --paper:#f6edda; --paper-bright:#fffaf0; --paper-deep:#eadcc5; }
:root[data-appearance="paper"][data-paper-tone="ivory"] { --paper:#fbf8ef; --paper-bright:#fffefb; --paper-deep:#eee9dc; }
@media (prefers-color-scheme: light) {
  :root[data-appearance="system"][data-paper-tone="journal"] { color-scheme:light; --paper:#f8f3e7; --paper-bright:#fffdf7; --paper-deep:#eee5d3; }
  :root[data-appearance="system"][data-paper-tone="warm"] { color-scheme:light; --paper:#f6edda; --paper-bright:#fffaf0; --paper-deep:#eadcc5; }
  :root[data-appearance="system"][data-paper-tone="ivory"] { color-scheme:light; --paper:#fbf8ef; --paper-bright:#fffefb; --paper-deep:#eee9dc; }
}
html, body, #root, .app-shell { min-height:100%; background-color:var(--paper); }
.page {
  width: min(1180px, calc(100% - 2 * var(--page-gutter)));
  padding-top: clamp(3.25rem, 6vw, 5.5rem);
  padding-bottom: clamp(4rem, 7vw, 6rem);
}
.page-intro { margin-bottom: clamp(2.75rem, 5vw, 4rem); }
.page-today .orbit-section,
.page-today .quick-section,
.page-reflect .records-section,
.page-support .care-section { padding:0; margin-top:var(--section-rhythm); }
.page-support .guidance-library,
.page-support .clinical-boundary { margin-top:var(--section-rhythm); }
.page-reflect .privacy-drawer { margin-top:var(--section-rhythm-small); }
.page-today .awareness-thought { margin:var(--section-rhythm-small) 0 0; }
.page-today .orbit-layout { gap:clamp(1.75rem, 5vw, 4.5rem); }
.site-footer {
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:1.25rem 2rem;
  padding:2.6rem max(1rem, calc((100vw - 1180px) / 2)) 1.25rem;
}
.footer-links { justify-content:flex-end; align-items:center; }
.copyright { margin:.4rem 0 0; text-align:left; }

@media (max-width: 1050px) {
  .site-footer { grid-template-columns:minmax(0,1fr) auto; padding-bottom:calc(6.4rem + env(safe-area-inset-bottom)); }
  .mobile-nav { bottom:max(.55rem, env(safe-area-inset-bottom)); }
}

@media (max-width: 760px) {
  :root { --page-gutter:1rem; --section-rhythm:3rem; --section-rhythm-small:2.25rem; }
  .site-header { padding:.5rem 1rem; gap:.5rem; }
  .header-tools { gap:0; }
  .header-tool { min-width:40px; }
  .brand { gap:.5rem; }
  .page { width:calc(100% - 2rem); padding-top:2.5rem; padding-bottom:3.6rem; }
  .page-intro { margin-bottom:2.25rem; }
  .page-intro h1 { font-size:clamp(2.45rem, 11.2vw, 3.35rem); line-height:1.02; }
  .intro-copy { font-size:1.02rem; }
  .section-heading h2 { font-size:clamp(1.7rem, 7vw, 2.05rem); line-height:1.08; }
  .wide-heading { margin-bottom:1.35rem; }
  .wide-heading > p { margin-top:.55rem; font-size:.86rem; }
  .checkin-card { padding:1.1rem; }
  .feeling-grid { gap:.5rem; margin:1.25rem 0; }
  .feeling-choice { min-height:90px; padding:.65rem .35rem; }
  .suggestion-inset { margin:1.1rem 0 0; padding:1rem; }
  .page-today .awareness-thought {
    padding:1.05rem;
    grid-template-columns:34px minmax(0,1fr);
    gap:.8rem .9rem;
    align-items:start;
  }
  .awareness-thought-mark { width:34px; height:34px; font-size:1.2rem; }
  .awareness-thought blockquote { font-size:clamp(1.45rem, 7vw, 1.75rem); line-height:1.22; }
  .awareness-thought-next { grid-column:2; justify-self:start; }
  .page-today .orbit-section { padding:0; margin-top:3rem; }
  .orbit-layout { gap:1.35rem; }
  .orbit-map {
    min-height:auto;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:auto;
    gap:.65rem;
    padding:0;
  }
  .orbit-map::before, .orbit-connections { display:none; }
  .orbit-centre { grid-column:1 / -1; grid-row:1; width:88px; height:88px; margin:0 auto .15rem; }
  .orbit-item { width:100%; min-height:108px; padding:.8rem .85rem; }
  .orbit-item strong { font-size:1.08rem; line-height:1.08; }
  .orbit-item small { display:block; margin-top:.35rem; font-size:.7rem; line-height:1.35; }
  .orbit-1 { grid-column:1; grid-row:2; }
  .orbit-2 { grid-column:2; grid-row:2; }
  .orbit-3 { grid-column:1; grid-row:3; }
  .orbit-4 { grid-column:2; grid-row:3; }
  .margin-note { width:100%; margin:0; padding:1.15rem 1.2rem; box-shadow:none; }
  .margin-note p:not(.hand-label) { font-size:.98rem; }
  .page-today .quick-section { padding:0; margin-top:3rem; }
  .doorway { min-height:96px; padding:.9rem .95rem; gap:.75rem; }
  .doorway strong { font-size:1.18rem; line-height:1.12; }
  .doorway small { font-size:.77rem; line-height:1.4; }
  .site-footer {
    grid-template-columns:1fr;
    align-items:start;
    gap:1rem;
    padding:2.2rem 1rem calc(6.4rem + env(safe-area-inset-bottom));
  }
  .footer-links { justify-content:flex-start; gap:.65rem 1rem; }
  .copyright { grid-column:1; margin:.2rem 0 0; padding-top:.9rem; text-align:left; }
  .coherence-preferences-backdrop, .modal-backdrop { padding:.4rem; align-items:end; }
  .coherence-preferences-sheet, .modal-sheet { max-height:94dvh; border-radius:12px 12px 0 0; }
  .coh-pref-grid > section, .preference-section { padding:1.15rem; }
  .coh-split, .preference-split { gap:.7rem; }
}

@media (max-width: 520px) {
  .coh-span [data-pref="appearanceMode"], .page-mode-choices { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .coh-paper, .paper-tone-choices { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .coh-split, .preference-split { grid-template-columns:1fr; }
  .text-controls, .preference-choices.compact { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .contrast-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .coh-ink, .ink-choices { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 440px) {
  /* Keep the whole-person view as a coherent 2 x 2 map instead of a fragmented vertical list. */
  .orbit-map { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .orbit-centre { grid-column:1 / -1; grid-row:1; }
  .orbit-1 { grid-column:1; grid-row:2; }
  .orbit-2 { grid-column:2; grid-row:2; }
  .orbit-3 { grid-column:1; grid-row:3; }
  .orbit-4 { grid-column:2; grid-row:3; }
  .orbit-item small { display:block; }
  .awareness-thought { grid-template-columns:34px minmax(0,1fr); }
  .awareness-thought-next { grid-column:2; }
}

@media (max-width: 360px) {
  .site-header { padding-inline:.7rem; }
  .brand strong { font-size:.92rem; letter-spacing:.1em; }
  .brand img { width:34px; height:34px; }
  .header-tool { min-width:36px; }
  .page { width:calc(100% - 1.5rem); }
  .orbit-map { gap:.5rem; }
  .orbit-item { min-height:112px; padding:.75rem; }
  .orbit-item strong { font-size:1rem; }
  .orbit-item small { font-size:.66rem; }
  .doorway { grid-template-columns:auto minmax(0,1fr) auto; }
}

/* Theme-consistent mobile navigation. */
@media (max-width: 1050px) {
  .mobile-nav {
    color:var(--ink);
    background:color-mix(in srgb, var(--paper-bright) 94%, transparent);
    border-color:var(--line-strong);
    box-shadow:0 10px 35px rgba(10,35,29,.16);
  }
  .mobile-nav button { color:var(--ink-soft); }
  .mobile-nav button.active { color:var(--evergreen); background:var(--sage-pale); }
}
@media (max-width:760px) {
  .steady-start-note { margin:0 0 1.25rem; }
}

/* v3.7 multilingual writing and compatible preference states */
.personal-writing[lang^="hi"],
.personal-writing-record > p[lang^="hi"] {
  font-family: "Noto Sans Devanagari", "Nirmala UI", "Mangal", system-ui, sans-serif;
  letter-spacing: 0;
  line-height: 1.75;
}
.writing-language-note {
  margin: .7rem .2rem 0;
  color: var(--ink-soft);
  font-family: "Noto Sans Devanagari", "Nirmala UI", "Mangal", system-ui, sans-serif;
  font-size: .78rem;
  line-height: 1.6;
}
.preference-control select {
  width: 100%;
  min-height: 46px;
  padding: .65rem .8rem;
  border: 1px solid var(--line-strong);
  background: var(--paper-bright);
  color: var(--ink);
  font: inherit;
}
.preference-choice:disabled,
.ink-choice:disabled,
.paper-tone:disabled {
  opacity: .42;
  cursor: not-allowed;
}


/* v3.8 writing input */
.writing-input-toolbar { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; margin:0 0 .75rem; }
.writing-input-toolbar .button { min-height:42px; }
.writing-input-toolbar [hidden] { display:none !important; }
.voice-input-status { margin:.2rem 0 .75rem; padding:.65rem .8rem; border-left:3px solid var(--moss); background:color-mix(in srgb,var(--sage-pale) 76%,transparent); color:var(--ink-soft); font-size:.8rem; line-height:1.45; }
.hindi-keyboard { margin:.8rem 0 1rem; padding:1rem; border:1px solid var(--line-strong); border-radius:.55rem; background:color-mix(in srgb,var(--paper-bright) 88%,transparent); }
.hindi-keyboard-head { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; margin-bottom:.8rem; }
.hindi-keyboard-head strong { display:block; color:var(--evergreen-deep); font-family:"Nirmala UI","Noto Sans Devanagari","Mangal",sans-serif; font-size:1.05rem; }
.hindi-keyboard-head small { display:block; margin-top:.15rem; color:var(--ink-soft); line-height:1.4; }
.hindi-key-group { margin:.7rem 0; }
.hindi-key-group>span { display:block; margin-bottom:.35rem; color:var(--ink-soft); font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.hindi-key-group>div { display:flex; flex-wrap:wrap; gap:.35rem; }
.hindi-key-group button,.hindi-keyboard-actions button { min-width:42px; min-height:42px; padding:.42rem .55rem; border:1px solid var(--line-strong); border-radius:.35rem; background:var(--paper); color:var(--ink); cursor:pointer; font-family:"Nirmala UI","Noto Sans Devanagari","Mangal",sans-serif; font-size:1.05rem; }
.hindi-key-group button:hover,.hindi-keyboard-actions button:hover { border-color:var(--evergreen); background:var(--sage-pale); }
.hindi-keyboard-actions { display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.75rem; }
.hindi-keyboard-actions button { font-family:"DM Sans",sans-serif; font-size:.8rem; min-width:auto; }
.hindi-keyboard>p { margin:.75rem 0 0; color:var(--ink-soft); font-size:.78rem; line-height:1.45; }
@media (max-width:640px){ .writing-input-toolbar .button{flex:1 1 auto}.hindi-keyboard{padding:.8rem}.hindi-key-group button{min-width:40px;min-height:40px} }


/* v3.10 coherent bilingual input */
.user-input {
  width: 100%;
  color: var(--writing-ink, var(--ink));
  font-family: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  letter-spacing: 0;
}
:root[data-writing-font="handwritten"] .user-input {
  font-family: "Caveat", "Segoe Print", "Bradley Hand", "Lucida Handwriting", cursive, "Noto Sans Devanagari", "Nirmala UI", "Mangal", system-ui, sans-serif;
  font-size: 1.2rem;
  line-height: 1.65;
}
.user-input:lang(hi), .user-input[lang^="hi"] {
  font-family: "Noto Sans Devanagari", "Nirmala UI", "Mangal", system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.75;
}
.input-visible-label { display:block; margin:0 0 .35rem; font-weight:700; color:var(--ink); }
.bilingual-input-assist { margin:.55rem 0 .8rem; }
.input-assist-row { display:flex; flex-wrap:wrap; gap:.48rem; align-items:center; }
.input-assist-label { color:var(--ink-soft); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.input-channel { display:inline-flex; align-items:center; gap:.4rem; min-height:42px; padding:.25rem .3rem .25rem .5rem; border:1px solid var(--line-strong); border-radius:.55rem; background:color-mix(in srgb,var(--paper-bright) 92%,transparent); }
.input-channel-name { display:inline-flex; align-items:center; gap:.34rem; min-width:max-content; color:var(--ink); font:700 .75rem/1 "DM Sans",sans-serif; }
.input-channel-name svg { flex:0 0 auto; }
.input-language-toggle { display:inline-grid; grid-template-columns:repeat(2, minmax(44px,auto)); border:1px solid var(--line-strong); border-radius:.42rem; overflow:hidden; background:var(--paper); }
.input-language-toggle button { min-height:36px; padding:.38rem .62rem; border:0; border-right:1px solid var(--line-strong); background:transparent; color:var(--ink-soft); font:700 .76rem/1 "DM Sans",sans-serif; cursor:pointer; }
.input-language-toggle button:last-child { border-right:0; }
.input-language-toggle button.active { color:var(--paper-bright); background:var(--evergreen); }
.input-mic, .input-install, .input-hindi-keys { min-height:40px; padding:.46rem .68rem; border:1px solid var(--line-strong); border-radius:.45rem; background:var(--paper-bright); color:var(--ink); font:600 .76rem/1.2 "DM Sans",sans-serif; cursor:pointer; }
.input-mic { display:inline-flex; gap:.36rem; align-items:center; }
.input-mic.active { color:var(--paper-bright); background:var(--evergreen); border-color:var(--evergreen); }
.input-hindi-keys { font-family:"Noto Sans Devanagari","Nirmala UI","Mangal","DM Sans",sans-serif; }
.input-assist-note { margin:.4rem 0 0; color:var(--ink-soft); font-size:.76rem; line-height:1.5; }
.bilingual-input-assist.compact .input-assist-note { max-width:72ch; }
.practice-capture { margin:1rem 0 .25rem; padding:1rem; background:color-mix(in srgb, var(--sage-pale) 64%, transparent); border-left:3px solid var(--moss); }
.practice-capture label { display:block; margin-bottom:.4rem; font-weight:700; color:var(--ink); }
.practice-capture textarea { min-height:94px; resize:vertical; }
.guidance-search-wrap { min-width:min(100%, 420px); }

@media (max-width:720px) {
  .input-assist-row { align-items:stretch; }
  .input-assist-label { width:100%; }
  .input-channel { width:100%; justify-content:flex-start; flex-wrap:wrap; }
  .input-channel-name { min-width:62px; }
  .input-language-toggle { flex:0 0 auto; }
  .input-mic { margin-left:auto; }
  .input-install, .input-hindi-keys { flex:1 1 auto; }
  .practice-capture { padding:.85rem; }
}

/* v3.10.1 language/input and Reflect record links */
.record-origin-action{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.8rem 0 1rem;padding:.85rem 1rem;border-left:3px solid var(--moss);background:color-mix(in srgb,var(--sage-pale) 72%,transparent)}
.record-origin-action>div{display:grid;gap:.18rem}.record-origin-action strong{font-family:"Newsreader",Georgia,serif;font-size:1.08rem}.record-origin-action span{color:var(--ink-soft);font-size:.84rem;line-height:1.45}
@media(max-width:640px){.record-origin-action{align-items:stretch;flex-direction:column}.record-origin-action .button{width:100%;justify-content:center}}

/* v3.10.2 detail coherence: explicit Hindi key cues and visible record entry points */
.hindi-keyboard-guide {
  margin:.55rem 0 .65rem;
  color:var(--ink-soft);
  font-size:.76rem;
  line-height:1.5;
}
.hindi-direct-key {
  display:inline-grid;
  grid-template-rows:auto auto;
  place-items:center;
  gap:.12rem;
  min-width:52px !important;
  min-height:52px !important;
  padding:.34rem .46rem !important;
}
.hindi-direct-key b {
  font-family:"Noto Sans Devanagari","Nirmala UI","Mangal",system-ui,sans-serif;
  font-size:1.05rem;
  font-weight:500;
  line-height:1.05;
}
.hindi-direct-key small {
  color:var(--ink-soft);
  font:600 .6rem/1.05 "DM Sans",system-ui,sans-serif;
  letter-spacing:0;
  text-transform:none;
}
.hindi-add-button { white-space:normal; }
.record-create-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
  margin:.8rem 0 1rem;
  padding:.75rem .85rem;
  border:1px solid var(--line-strong);
  background:color-mix(in srgb,var(--paper-bright) 88%,transparent);
}
.record-create-actions > span {
  margin-right:auto;
  color:var(--ink-soft);
  font:700 .72rem/1.3 "DM Sans",system-ui,sans-serif;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.record-create-actions .button { min-height:42px; }
.record-create-actions .button small {
  margin-left:.35rem;
  color:inherit;
  font-size:.68rem;
  font-weight:500;
  opacity:.72;
}
@media(max-width:640px){
  .hindi-direct-key { min-width:48px !important; min-height:50px !important; }
  .record-create-actions { align-items:stretch; flex-direction:column; }
  .record-create-actions > span { width:100%; margin-right:0; }
  .record-create-actions .button { width:100%; justify-content:center; }
}

/* v3.10.3 unified text/voice input */
.hindi-direct-keys.open{margin-top:.75rem}.hindi-direct-keys.open .hindi-key-group{margin-top:.7rem}


/* v3.10.22 Reflect: instructions sit above a dedicated ruled writing surface. */
.page-reflect .journal-paper {
  padding: 0;
  overflow: hidden;
  background: var(--paper-bright);
}
.journal-entry-intro {
  padding: 1.25rem 1.55rem .82rem;
}
.journal-entry-intro .input-visible-label {
  margin: 0 0 .22rem;
  font-size: .82rem;
}
.journal-entry-intro .field-note {
  margin: 0;
  max-width: 64ch;
  font-size: .74rem;
}
.journal-writing-surface {
  min-height: 370px;
  background-color: var(--paper-bright);
  background-image: repeating-linear-gradient(to bottom, transparent 0 28px, rgba(88,126,125,.15) 28px 29px, transparent 29px 36px);
  background-position: 0 4px;
}
.page-reflect .journal-writing-surface textarea.user-input,
.page-reflect .journal-writing-surface textarea#journal-entry {
  min-height: 370px;
  margin: 0;
  padding: 4px 1.55rem 10px !important;
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  line-height: 36px !important;
  resize: vertical;
}
.page-reflect .journal-writing-surface textarea.user-input:focus-visible,
.page-reflect .journal-writing-surface textarea#journal-entry:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--clay) 72%, transparent);
  outline-offset: -3px;
}
.journal-controls {
  padding: .7rem 1.55rem 1.25rem;
  border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
}
.journal-controls .bilingual-input-assist { margin-top: 0; }
:root[data-writing-font="handwritten"] .personal-writing:lang(hi),
:root[data-writing-font="handwritten"] .personal-writing[lang^="hi"],
:root[data-writing-font="handwritten"] .user-input:lang(hi),
:root[data-writing-font="handwritten"] .user-input[lang^="hi"] {
  font-family: "Caveat", "Segoe Print", "Bradley Hand", "Lucida Handwriting", cursive, "Noto Sans Devanagari", "Nirmala UI", "Mangal", system-ui, sans-serif;
  font-size: 1.2rem;
  line-height: 1.65;
}
@media (max-width: 640px) {
  .journal-entry-intro { padding: 1.05rem 1rem .72rem; }
  .page-reflect .journal-writing-surface textarea.user-input,
  .page-reflect .journal-writing-surface textarea#journal-entry { padding-left: 1rem !important; padding-right: 1rem !important; }
  .journal-controls { padding: .65rem 1rem 1rem; }
}


/* v3.10.10 footer: one concise role note, one responsive layout. */
.site-footer {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "footer-mark footer-links" "footer-copy footer-copy";
  align-items: center;
  gap: .8rem 2rem;
  padding: 2.35rem max(1rem, calc((100vw - 1180px) / 2)) 1.15rem;
}
.footer-mark { grid-area: footer-mark; min-width: 0; align-items: flex-start; }
.footer-mark p {
  display: block;
  max-width: 58ch;
  margin: .18rem 0 0;
  color: rgba(255,255,255,.72);
  font-size: .72rem;
  line-height: 1.45;
}
.footer-links { grid-area: footer-links; justify-content: flex-end; align-items: center; }
.footer-links a { display: inline-flex; align-items: center; min-height: 36px; }
.footer-boundary { display: none; }
.copyright {
  grid-area: footer-copy;
  grid-column: auto;
  width: 100%;
  margin: .55rem 0 0;
  padding-top: .75rem;
  text-align: left;
}
@media (max-width: 1050px) {
  .site-footer { padding-bottom: calc(6.2rem + env(safe-area-inset-bottom)); }
}
@media (max-width: 760px) {
  .site-footer {
    grid-template-columns: 1fr;
    grid-template-areas: "footer-mark" "footer-links" "footer-copy";
    align-items: start;
    gap: .8rem;
    padding: 1.85rem 1rem calc(6.35rem + env(safe-area-inset-bottom));
  }
  .footer-mark { align-items: center; }
  .footer-mark img { width: 38px; height: 38px; }
  .footer-mark p { max-width: 42ch; font-size: .7rem; line-height: 1.45; }
  .footer-links { justify-content: flex-start; gap: .35rem .9rem; }
  .footer-links a { min-height: 40px; }
  .copyright { margin: .05rem 0 0; padding-top: .7rem; }
}


/* v3.10.11 footer hierarchy: purpose first, boundary second. */
.footer-mark .footer-purpose {
  margin: .16rem 0 0;
  max-width: 36ch;
  color: rgba(255,255,255,.82);
  font-size: .75rem;
  line-height: 1.35;
}
.footer-mark .footer-boundary-line {
  margin: .08rem 0 0;
  max-width: 42ch;
  color: rgba(255,255,255,.58);
  font-size: .66rem;
  line-height: 1.35;
}
@media (max-width: 760px) {
  .footer-mark .footer-purpose { font-size: .72rem; }
  .footer-mark .footer-boundary-line { font-size: .65rem; max-width: 38ch; }
}

/* v3.10.12 footer compaction: same hierarchy, tighter single-unit spacing. */
.site-footer {
  gap: .5rem 2rem;
  padding-top: 1.8rem;
  padding-bottom: .8rem;
}
.footer-mark { align-items: center; }
.footer-links { align-self: center; }
.copyright {
  margin-top: .28rem;
  padding-top: .5rem;
}
@media (max-width: 1050px) {
  .site-footer {
    padding-top: 1.75rem;
    padding-bottom: calc(6rem + env(safe-area-inset-bottom));
  }
}
@media (max-width: 760px) {
  .site-footer {
    gap: .5rem;
    padding: 1.5rem 1rem calc(6.05rem + env(safe-area-inset-bottom));
  }
  .footer-mark { align-items: center; }
  .footer-links { gap: .25rem .85rem; }
  .copyright {
    margin-top: 0;
    padding-top: .55rem;
  }
}


/* v3.10.22 footer: compact, aligned, and visually secondary to the wellbeing content. */
.site-footer {
  gap: .45rem 2.5rem;
  padding-top: 1.25rem;
  padding-bottom: .65rem;
}
.footer-mark { align-items: center; }
.footer-mark img { width: 38px; height: 38px; }
.footer-mark .footer-purpose {
  max-width: none;
  margin-top: .12rem;
  font-size: .72rem;
}
.footer-mark .footer-boundary-line {
  max-width: none;
  margin-top: .04rem;
  font-size: .64rem;
}
.footer-links { gap: .35rem 1rem; }
.footer-links a {
  min-height: 32px;
  text-decoration-thickness: .7px;
  text-decoration-color: rgba(255,255,255,.38);
  text-underline-offset: 3px;
}
.copyright {
  grid-area: footer-copy;
  grid-column: 1 / -1;
  width: 100%;
  margin: .08rem 0 0;
  padding-top: .42rem;
  border-top-color: rgba(255,255,255,.11);
  text-align: left;
}
.copyright a {
  color: inherit;
  text-decoration-color: rgba(255,255,255,.32);
  text-underline-offset: 2px;
}
@media (min-width: 900px) {
  .footer-mark .footer-purpose, .footer-mark .footer-boundary-line { white-space: nowrap; }
}
@media (max-width: 1050px) {
  .site-footer {
    padding-top: 1.2rem;
    padding-bottom: calc(5.75rem + env(safe-area-inset-bottom));
  }
}
@media (max-width: 760px) {
  .site-footer {
    grid-template-columns: 1fr;
    grid-template-areas: "footer-mark" "footer-links" "footer-copy";
    gap: .42rem;
    padding: 1.15rem 1rem calc(5.8rem + env(safe-area-inset-bottom));
  }
  .footer-mark img { width: 36px; height: 36px; }
  .footer-links { gap: .15rem .8rem; }
  .footer-links a { min-height: 38px; }
  .copyright { margin-top: 0; padding-top: .48rem; }
}

/* v3.10.22 final hardening: canonical reflow and quieter long-form guidance. */
.domain-explorer,
.domain-tabs,
.domain-detail,
.domain-columns { min-width: 0; }
.domain-detail { overflow-wrap: anywhere; }
.thought-boundary { display: grid; gap: .55rem; }
.thought-boundary p { margin: 0; }
.thought-boundary .text-link { width: fit-content; }
.guidance-more { margin-top: 1rem; display: flex; justify-content: flex-start; }

@media (max-width: 360px) {
  .domain-tabs { grid-template-columns: 1fr; }
  .domain-tabs button {
    min-height: 68px;
    padding: .72rem .8rem;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: .65rem;
    border-right: 0;
  }
  .domain-tabs button.active {
    border-right: 0;
    border-left: 4px solid var(--evergreen);
    border-bottom: 1px solid var(--line);
  }
  .domain-detail { padding: 1.15rem; }
  .domain-detail h2 { font-size: clamp(2rem, 12vw, 2.65rem); }
}


/* v3.10.22 guidance search: one quiet search field, no redundant language/input selector. */
.guidance-search-input {
  width: 100%;
  min-height: 48px;
  padding: .8rem 2.6rem .8rem .9rem;
  color: var(--ink);
  border: 1px solid var(--line-strong);
  border-radius: .25rem;
  background: var(--paper-bright);
  font-family: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.45;
}
.guidance-search-input::placeholder { color: #748881; opacity: 1; }
.guidance-search-note { margin: .35rem 0 0; color: var(--ink-soft); font-size: .68rem; line-height: 1.4; }


/* v3.10.25 connected orbit map, calmer grounding numerals, and shared plan input controls. */
.orbit-connections { z-index: 1; }
.orbit-path { opacity: .5; }
.orbit-map.is-animated .orbit-centre { animation: orbitCentrePulse 1.25s ease-out 1 both; }
.orbit-map.is-animated .orbit-path { stroke-dasharray: 0 100; opacity: .18; animation: orbitPathReveal 1.15s ease-out forwards; }
.orbit-map.is-animated .orbit-path-1 { animation-delay: .05s; }
.orbit-map.is-animated .orbit-path-2 { animation-delay: .18s; }
.orbit-map.is-animated .orbit-path-3 { animation-delay: .31s; }
.orbit-map.is-animated .orbit-path-4 { animation-delay: .44s; }
.orbit-map.is-animated .orbit-item { opacity: .78; animation: orbitCardGlow .9s ease-out forwards; }
.orbit-map.is-animated .orbit-1 { animation-delay: .14s; }
.orbit-map.is-animated .orbit-2 { animation-delay: .28s; }
.orbit-map.is-animated .orbit-3 { animation-delay: .42s; }
.orbit-map.is-animated .orbit-4 { animation-delay: .56s; }
.orbit-item:focus-visible, .orbit-item:hover { border-color: var(--clay); box-shadow: 0 10px 22px rgba(23,79,67,.11); }
@keyframes orbitCentrePulse {
  0% { transform: scale(.96) rotate(-1deg); box-shadow: 0 0 0 rgba(23,79,67,0); }
  40% { transform: scale(1.02) rotate(-1deg); box-shadow: 0 0 0 12px rgba(183,203,184,.1); }
  100% { transform: scale(1) rotate(-1deg); box-shadow: 0 18px 35px rgba(23,79,67,.2); }
}
@keyframes orbitPathReveal {
  0% { stroke-dasharray: 0 100; opacity: .12; }
  100% { stroke-dasharray: 18 0; opacity: .5; }
}
@keyframes orbitCardGlow {
  0% { opacity: .72; transform: translateY(2px); }
  60% { opacity: 1; transform: translateY(-1px); box-shadow: 0 12px 24px rgba(23,79,67,.1); }
  100% { opacity: 1; transform: translateY(0); box-shadow: var(--shadow-small); }
}
:root[data-motion="reduced"] .orbit-map.is-animated .orbit-centre,
:root[data-motion="reduced"] .orbit-map.is-animated .orbit-path,
:root[data-motion="reduced"] .orbit-map.is-animated .orbit-item { animation: none; opacity: 1; }
.ground-step-head { display: grid; gap: .55rem; margin: 0 0 1rem; }
.ground-step-head .giant-count { margin: 0; line-height: .84; }
.ground-step-head .eyebrow { margin: 0; color: var(--clay); font-size: .88rem; letter-spacing: .14em; text-transform: uppercase; }
.shared-input-panel { margin-bottom: .75rem; padding: .95rem 1rem .8rem; border-left: 3px solid var(--moss); background: color-mix(in srgb, var(--sage-pale) 68%, transparent); }
.shared-input-title { margin: 0 0 .15rem; color: var(--evergreen-deep); font-family: "Newsreader", Georgia, serif; font-size: 1.15rem; }
.shared-input-panel .field-note { margin: 0 0 .4rem; }
.shared-input-panel .bilingual-input-assist { margin: .2rem 0 0; }
@media (max-width: 760px) {
  .shared-input-panel { padding: .85rem .85rem .75rem; }
  .ground-step-head { gap: .4rem; }
  .ground-step-head .eyebrow { font-size: .8rem; letter-spacing: .12em; }
}


/* v3.10.25 typography system, grounding numeral metrics, and complete wellbeing connections. */
:root {
  --type-page-title: clamp(2.7rem, 5.2vw, 4.65rem);
  --type-practice-title: clamp(2.15rem, 3.6vw, 3.05rem);
  --type-section-title: clamp(1.75rem, 2.8vw, 2.4rem);
  --type-card-title: 1.3rem;
  --type-body-leading: 1.65;
  --type-label: .75rem;
}
.page-intro h1 {
  font-size: var(--type-page-title);
  line-height: 1.01;
  letter-spacing: -.026em;
}
.intro-copy { font-size: clamp(1.06rem, 1.5vw, 1.2rem); }
.section-heading h2,
.guidance-heading h2 { font-size: var(--type-section-title); line-height: 1.08; }
.practice-side h2,
.domain-detail h2 { font-size: var(--type-practice-title); line-height: 1.08; }
.ground-card h3 { font-size: clamp(1.65rem, 2.5vw, 2.2rem); line-height: 1.18; }
.tool-card h2 { font-size: clamp(1.45rem, 2vw, 1.7rem); line-height: 1.1; }
.doorway strong,
.orbit-item strong { font-size: var(--type-card-title); line-height: 1.1; }
.care-grid h3,
.guidance-list article > button strong { font-size: 1.2rem; line-height: 1.2; }
.eyebrow { font-size: var(--type-label); line-height: 1.35; }
.hand-label { font-size: 1.12rem; line-height: 1.2; }

/* Grounding count is a distinct fixed typographic row: lining numerals + normal line box. */
.ground-step-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .62rem;
  margin: 0 0 1.15rem;
}
.ground-step-head .giant-count {
  display: block;
  margin: 0;
  min-width: 1ch;
  color: var(--sage);
  font-family: "Newsreader", Georgia, serif;
  font-size: clamp(4.7rem, 7.2vw, 6.15rem);
  font-weight: 400;
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
  letter-spacing: -.035em;
  line-height: 1;
}
.ground-step-head .eyebrow {
  margin: 0;
  color: var(--clay);
  font-size: .8rem;
  line-height: 1.25;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* Show both relationships: each domain shapes the moment, and the domains influence one another. */
.orbit-domain-link {
  fill: none;
  stroke: color-mix(in srgb, var(--line-strong) 67%, transparent);
  stroke-width: .9;
  stroke-linecap: round;
  stroke-dasharray: 1.5 3.5;
  vector-effect: non-scaling-stroke;
  opacity: .34;
}
.orbit-map.is-animated .orbit-domain-link {
  stroke-dasharray: 0 100;
  opacity: .12;
  animation: orbitDomainReveal 1.35s ease-out forwards;
}
.orbit-map.is-animated .orbit-domain-link-1 { animation-delay: .55s; }
.orbit-map.is-animated .orbit-domain-link-2 { animation-delay: .65s; }
.orbit-map.is-animated .orbit-domain-link-3 { animation-delay: .75s; }
.orbit-map.is-animated .orbit-domain-link-4 { animation-delay: .85s; }
@keyframes orbitDomainReveal {
  from { stroke-dasharray: 0 100; opacity: .1; }
  to { stroke-dasharray: 12 3; opacity: .34; }
}
:root[data-motion="reduced"] .orbit-map.is-animated .orbit-domain-link {
  animation: none;
  stroke-dasharray: 1.5 3.5;
  opacity: .34;
}

/* Guidance is a section, not a floating card: quiet block boundaries only. */
.guidance-library {
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
  border-left: 0;
  border-right: 0;
}

@media (max-width: 760px) {
  :root {
    --type-page-title: clamp(2.4rem, 10.8vw, 3.25rem);
    --type-practice-title: clamp(2rem, 8.8vw, 2.65rem);
    --type-section-title: clamp(1.65rem, 7vw, 2rem);
    --type-card-title: 1.12rem;
  }
  .ground-step-head { gap: .5rem; }
  .ground-step-head .giant-count { font-size: clamp(4.35rem, 23vw, 5.35rem); }
  .ground-step-head .eyebrow { font-size: .76rem; letter-spacing: .115em; }
  .orbit-domain-link { display: none; }
}

/* v3.10.25 final diagram contrast: visible without becoming decorative. */
.orbit-connections .orbit-path {
  stroke: rgba(23,79,67,.22);
  stroke-width: 1.15;
  opacity: 1;
}
.orbit-connections .orbit-domain-link {
  stroke: rgba(23,79,67,.14);
  stroke-width: .9;
  opacity: 1;
}
.orbit-map.is-animated .orbit-path { opacity: .18; }
.orbit-map.is-animated .orbit-domain-link { opacity: .08; }
@keyframes orbitPathReveal {
  0% { stroke-dasharray: 0 100; opacity: .08; }
  100% { stroke-dasharray: 18 0; opacity: 1; }
}
@keyframes orbitDomainReveal {
  from { stroke-dasharray: 0 100; opacity: .04; }
  to { stroke-dasharray: 12 3; opacity: 1; }
}
:root[data-motion="reduced"] .orbit-map.is-animated .orbit-path,
:root[data-motion="reduced"] .orbit-map.is-animated .orbit-domain-link {
  opacity: 1;
}


/* v3.10.28: keep optional plan input tools secondary to the plan itself. */
.shared-input-panel-after-action {
  margin: .35rem 0 0;
  padding: .8rem .9rem .7rem;
  border-left-width: 2px;
  background: color-mix(in srgb, var(--sage-pale) 48%, transparent);
}
.shared-input-panel-after-action .shared-input-title { font-size: 1rem; }
.shared-input-panel-after-action .input-assist-note { max-width: 76ch; }
@media (max-width: 760px) {
  .shared-input-panel-after-action { margin-top: .25rem; }
}
