/* Codex coherence slice: approved Thread identity; existing structure and assets retained. */
/* One reading surface, one active path. Other tiers remain available in the static reading. */
.has-motion .scene-scope .scope-beats li:not(.is-on){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.has-motion .scene-scope .scope-beats li.is-on{opacity:1}
.has-motion .scene-scope .scope-beats li.is-on p{opacity:1;color:var(--platinum)}
.has-motion .scene-scope .scope-system-key{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.has-motion .scene-scope .scope-system-state{position:absolute;top:0;bottom:auto;left:0;right:0;margin:0;max-width:65ch;min-height:3em;font:400 clamp(17px,1.4vw,21px)/1.45 var(--f-display);color:var(--bone)}
.has-motion .scene-scope .scope-art{padding-top:0;min-height:0;height:min(72svh,670px)}
.has-motion .scene-scope .scope-spatial{position:absolute;inset:74px 0 62px;min-height:0}
.scope-route{display:none}.scope-focus{display:none}
.has-motion .scene-scope .scope-spatial .spatial-label{visibility:hidden!important}
.has-motion .scene-scope .scope-focus{display:grid;gap:5px;position:absolute;left:0;bottom:-45px;z-index:4;max-width:100%;pointer-events:none}
.scope-focus b{font:400 25px/1.15 var(--f-display);color:var(--signal)}
.scope-authority .scope-focus b{color:var(--champagne)}
.scope-focus span{font:400 14px/1.45 var(--f-body);color:var(--platinum)}
.has-motion .scene-scope .scope-art figcaption{position:absolute;bottom:0;left:0;right:0;margin:0;font-size:11px;color:var(--platinum)}
.scope-tile:focus-visible{outline-color:var(--signal)}
.scope-tile.is-open .tile-detail{border-color:var(--signal);background:var(--ink)}
@media(max-width:960px){
 .has-motion .scene-scope .scene-stage{gap:18px;padding-top:112px;align-content:start}
 .has-motion .scene-scope .scene-head{min-height:0}
 .has-motion .scene-scope .scope-beats{margin-top:14px}
 .has-motion .scene-scope .scope-beats li.is-on p{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .has-motion .scene-scope .scope-art{height:calc(100svh - 365px);min-height:320px;max-height:620px;position:relative}
 .has-motion .scene-scope .scope-system-state{position:absolute;top:0;font-size:18px;min-height:0;line-height:1.35}
 .has-motion .scene-scope .scope-spatial{inset:90px 0 80px}
 .has-motion .scene-scope .scope-focus{bottom:-65px;left:0;right:0;gap:7px}
 .scope-focus b{font-size:27px}.scope-focus span{font-size:15px;max-width:36ch}
 .has-motion .scene-scope .scope-route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;position:absolute;left:0;right:0;top:-22px;z-index:3;pointer-events:none}
 .scope-route span{padding-top:8px;border-top:3px solid var(--bronze);font:400 12px/1.25 var(--f-body);color:var(--platinum)}
 .scope-route .is-current,.scope-route .is-past{border-color:var(--signal);color:var(--bone)}
 .scope-authority .scope-route .is-current{border-color:var(--champagne)}
 .has-motion .scene-scope .scope-art figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
}
@media(max-width:600px){
 .has-motion .scene-scope .display{font-size:clamp(25px,6.7vw,32px);line-height:1.08}
 .has-motion .scene-scope .scope-beats li.is-on b{font-size:18px;line-height:1.25}
 .has-motion .scene-scope .scope-beats li{padding:0 0 0 12px}
 .has-motion .scene-scope .scope-status{font-size:11px;letter-spacing:.1em}
 .has-motion .scene-scope .scope-art{height:calc(100svh - 350px);min-height:300px}
}
@media(max-width:960px) and (max-height:740px){
 .has-motion .scene-scope{height:400svh}
 .has-motion .scene-scope>.scene-stage{position:sticky;top:0;height:100svh;overflow:clip}
 .has-motion .scene-scope .scope-beats{margin-top:8px}
 .has-motion .scene-scope .scope-art{height:calc(100svh - 315px);min-height:290px}
 .has-motion .scene-scope .scope-system-state{font-size:16px}
 .has-motion .scene-scope .scope-spatial{inset:82px 0 70px}
 .scope-focus b{font-size:23px}.scope-focus span{font-size:14px}
}
.is-static .scope-route,.is-static .scope-focus{display:none}
@media(prefers-reduced-motion:reduce){.scope-route span,.scope-focus{transition:none;animation:none}}

/* Green is a directional segment of the existing strand, not a second ambient decoration. */
.world-thread .world-signal-track{fill:none;stroke:var(--signal);stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 1px 0 var(--ink));opacity:0}
.handoff-route{position:fixed;inset:0;width:100vw;height:100svh;z-index:39;pointer-events:none;opacity:0;overflow:visible}
.handoff-route path{fill:none;stroke-linecap:round}
.handoff-route path:first-child{stroke:var(--ink);stroke-width:8;opacity:.6}
.handoff-route path:last-child{stroke:var(--signal);stroke-width:5}
.handoff-spark{width:14px;height:14px;box-shadow:0 2px 4px rgba(4,0,30,.35);border:1px solid var(--ink)}
.is-static .handoff-route,.is-static .world-signal-track{display:none}
@media(prefers-reduced-motion:reduce){.handoff-route,.world-signal-track{display:none}}

.has-motion .scene-scope:not(.has-spatial-system) .scope-route,.has-motion .scene-scope:not(.has-spatial-system) .scope-focus{display:none}
@media(max-width:960px){.has-motion .scene-scope .scope-art{max-width:100%}}

.has-motion .has-spatial-system .scope-art{display:block}
.has-motion .scene-scope .scope-system-state,.has-motion .scene-scope .scope-spatial,.has-motion .scene-scope .scope-art figcaption{grid-area:auto}

@media(min-width:601px) and (max-width:960px){.has-motion .scene-scope .scene-stage{padding-top:148px}.has-motion .scene-scope .scope-art{height:calc(100svh - 420px)}}

/* Semantic signal: diagnosis, prepared context and the phrases that reveal the structural problem. */
.signal-word{color:var(--signal)}
.absurd-track .signal-word{color:var(--signal)}
.act-copy .signal-word,.frag-label .signal-word{color:var(--signal)}
/* The still reading places the opening statements on ivory: retain the exact green with an ink ground. */
.is-static .act-copy .signal-word{color:var(--signal)}

/* Distributed meaning: the promise, retained value, human voice, goal and wayfinding. */
.hero-copy .promise em,.signal-on-ivory{color:var(--signal)}
.ledger .ledger-to.signal-word{color:var(--signal)}
.ledger li:nth-child(3).is-in .dot.keep,.ledger li:nth-child(5).is-in .dot.keep{background:var(--signal)}
.rail li:nth-child(2).is-lit{color:var(--champagne)}
.rail li:nth-child(2).is-lit::before{background:var(--champagne)}
.nav .chapter-links a{color:var(--signal)}
.nav .chapter-links a[aria-current],.nav .chapter-links a:hover{color:var(--bone);text-decoration-color:var(--signal)}
.nav .chapter-links a:focus-visible{outline:2px solid var(--signal);outline-offset:5px}
.brand-lockup{position:relative}
/* Luminance mask uses the original pixels and crop: only the existing Raske lettering changes hue. */
@supports(mask-mode:luminance){
 .nav .brand-lockup::after{content:"";position:absolute;inset:0;background:var(--signal);mask-image:url("media/brand/stacy-raske-lockup-open-s-v1.webp");mask-mode:luminance;mask-size:cover;mask-position:center;mask-repeat:no-repeat;clip-path:inset(0 0 0 60.5%);pointer-events:none}
}

/* Signal grammar correction: identity/wayfinding is distinct from current process state. */
.world-signal-track,.handoff-route,.handoff-spark{display:none!important}
.has-motion .asym-slips li.is-permitted:not(.is-active){background:var(--bone);border-color:var(--satin);box-shadow:none}
.has-motion .asym-slips li[data-route-example].is-active{background:var(--signal);border-color:var(--ink)}
.has-motion .asym-slips li[data-route-example="human"].is-active[data-current-check="1"],.has-motion .asym-slips li[data-route-example="human"].is-landing{background:var(--champagne)}
.slip-current{display:none}
.has-motion .asym-slips li.is-active .slip-current{display:block;font-size:10px;line-height:1.25;font-weight:500;letter-spacing:.02em;margin:0 0 5px;color:var(--ink)}
.has-motion .asym-slips li.is-active .slip-stamps{font-size:11px}

.world-thread .thread-signal{display:none}
@media(max-width:600px){.has-motion .thread-meaning{top:112px}}

/* Clean signal typography: contrast comes from the section surface, never edging or word chips. */
.signal-word,.hero-copy .promise em,.signal-on-ivory,.nav .chapter-links a{background:transparent;border:0;box-shadow:none;text-shadow:none;-webkit-text-stroke:0;filter:none;padding:0}
.act{background:var(--bone)}
.hero-copy .display,.hero-copy .promise,.hero-copy .hero-person{color:var(--ink)}
.hero-copy .lede{color:rgba(4,0,30,.78)}
.hero-copy .promise em{color:#3d6518}
#absurd,#absurd .absurd-stage,#question,#question .scene-stage{background:var(--ink)!important;color:var(--bone)}
#absurd .display,#absurd .absurd-track p,#question .display,#question .scene-beats li,#question .person>b{color:var(--bone)}
#absurd .absurd-head>p,#absurd .absurd-head .body,#question .person>em,#question .scene-beats li p,#question .question-next{color:var(--platinum)}
#absurd .absurd-track li.coda p{color:var(--platinum)}
#absurd .absurd-track li.coda p em{color:var(--bone)}
#question .person.is-supported .burden.is-carried{background:rgba(200,255,124,.2)!important;color:var(--bone)!important;border-color:var(--bronze)!important}
#question .person .burden{color:var(--ink)}
#question .question-next .btn{color:var(--bone);border-color:var(--champagne)}

#question .scene-beats li b{color:var(--bone)}
.act .act-copy .display,.act .act-copy .decision-explanation{color:var(--bone)}

/* Resolved success is durable. Checking is lighter; human decisions and held work are not success. */
.has-motion .asym-slips li.is-permitted.is-routed:not(.is-active){background:var(--signal);color:var(--ink);border-color:var(--satin);box-shadow:0 6px 14px -10px rgba(4,0,30,.4)}
.has-motion .asym-slips li.is-permitted.is-routed .slip-current{display:block;font-size:10px;line-height:1.25;font-weight:500;color:var(--ink);margin-bottom:5px}
.has-motion .asym-slips li[data-route-example].is-active{background:#e6ffbf}
.has-motion .asym-slips li[data-route-example="human"].is-active[data-current-check="1"],.has-motion .asym-slips li[data-route-example="human"].is-landing{background:var(--champagne)}

.is-static .asym-slips li[data-route-example="carry"]{background:var(--signal);color:var(--ink);border-color:var(--satin)}

#absurd .absurd-track li.coda p em.signal-word{color:var(--signal)}

/* Green heading emphasis only; body, navigation and state labels retain their existing style. */
:is(h1,h2,h3,h4,h5,h6) .signal-word{font-style:italic}
#asym-title .signal-word{color:var(--signal);font-style:italic;background:transparent;text-shadow:none;-webkit-text-stroke:0}

/* Destination faces: clean green titles on a full ink face, with success/pending states separate. */
#asymmetry .asym-slips li[data-route-example].is-routed{background:var(--ink);color:var(--bone)}
#asymmetry .asym-slips li[data-route-example].is-routed .slip-title{color:var(--signal);font-style:normal}
#asymmetry .asym-slips li[data-route-example].is-routed .slip-reason{color:var(--bone)}
#asymmetry .asym-slips li[data-route-example="carry"].is-routed{border:2px solid var(--signal)}
#asymmetry .asym-slips li[data-route-example="carry"].is-routed .slip-current{background:var(--signal);color:var(--ink);padding:3px 9px;margin:-7px -9px 6px;border-radius:5px 5px 0 0}
#asymmetry .asym-slips li[data-route-example="human"].is-routed{border-color:var(--champagne)}
#asymmetry .asym-slips li[data-route-example="hold"].is-routed{border-color:var(--platinum)}

#asymmetry .asym-slips li[data-route-example].is-routed{padding:4px 8px}
#asymmetry .asym-slips li[data-route-example="carry"].is-routed .slip-current{padding:1px 8px;margin:-4px -8px 4px}

/* Opening fragment label set: every word is green, not just selected inner spans. */
.frag-labels .frag-label{color:var(--signal);font-style:normal}
.is-static .frag-labels{display:flex;position:relative;inset:auto;gap:12px 22px;flex-wrap:wrap;justify-content:center;padding:16px}
.is-static .frag-labels .frag-label{position:static;opacity:1;transform:none!important;color:var(--signal)}
.is-static .frag-labels .frag-label::before{display:none}

/* Approved correction: white editorial heading; green routing destinations. */
#asym-title,#asym-title .signal-word{color:var(--ink);background:transparent}
#asymmetry .asym-lanes .lane{transform:none;background:var(--signal);color:var(--ink);padding:10px;border:1px solid var(--ink);border-radius:6px;max-width:none;box-sizing:border-box}
#asymmetry .asym-lanes .lane b,#asymmetry .asym-lanes .lane small{color:var(--ink)}
#asymmetry .asym-slips li[data-route-example].is-routed{background:var(--signal);color:var(--ink);border:1px solid var(--ink);padding:6px 8px;box-shadow:none}
#asymmetry .asym-slips li[data-route-example].is-routed :is(.slip-title,.slip-reason,.slip-current){color:var(--ink);background:transparent;font-style:normal}
#asymmetry .asym-slips li[data-route-example].is-routed .slip-current{display:block;font-size:10px;line-height:1.25;font-weight:600;padding:0;margin:0 0 5px}
#asymmetry .asym-slips li[data-route-example].is-routed::before{display:none}
#asymmetry .asym-slips li[data-route-example]{transform-origin:0 0}
.has-motion #asymmetry .asym-slips li[data-route-example]{width: min(190px,46%);max-width:46%}
.has-motion #asymmetry .asym-person{display:none}
@media(min-width:601px){.has-motion #asymmetry .asym-slips li[data-route-example]{width:min(190px,30%);max-width:30%}}
@media(max-width:600px){#asymmetry .asym-lanes .lane{padding:7px}#asymmetry .asym-lanes .lane b{font-size:12px}#asymmetry .asym-lanes .lane small{font-size:10px}}

.has-motion #asymmetry .asym-slips li[data-route-example] .slip-stamps span{display:none;animation:none}
.has-motion #asymmetry .asym-slips li[data-current-check="0"] .slip-stamps span:nth-child(1),
.has-motion #asymmetry .asym-slips li[data-current-check="1"] .slip-stamps span:nth-child(2),
.has-motion #asymmetry .asym-slips li[data-current-check="2"] .slip-stamps span:nth-child(3){display:block}
@media(min-width:601px){.has-motion #asymmetry .asym-slips li[data-route-example]{width:34%;max-width:34%}}
@media(max-width:600px){.has-motion #asymmetry .asym-art{min-height:0}#asymmetry .asym-slips li[data-route-example].is-routed{padding:5px 6px}#asymmetry .asym-slips li[data-route-example].is-routed .slip-current{font-size:9px;margin-bottom:3px}#asymmetry .asym-slips li[data-route-example] .slip-reason{font-size:10px}#asymmetry .asym-lanes .lane b{font-size:11px;margin-bottom:4px}#asymmetry .asym-lanes .lane small{font-size:10px;line-height:1.25}}

#asymmetry .asym-slips li[data-route-example].is-routed .slip-stamps{display:none!important}
@media(max-width:600px){#asymmetry .asym-slips li[data-route-example].is-routed .slip-current{line-height:1.1}#asymmetry .asym-slips li[data-route-example].is-routed .slip-reason{line-height:1.2;margin-top:3px}#asymmetry .asym-slips li[data-route-example].is-routed .slip-title{font-size:11px;line-height:1.2}}

@media(min-width:601px) and (max-height:780px){#asymmetry .asym-lanes .lane{padding:7px}#asymmetry .asym-lanes .lane b{font-size:13px;margin-bottom:4px}#asymmetry .asym-lanes .lane small{font-size:11px;line-height:1.25}#asymmetry .asym-slips li[data-route-example].is-routed .slip-current{font-size:9px;margin-bottom:3px}#asymmetry .asym-slips li[data-route-example].is-routed .slip-title{font-size:12px;line-height:1.2}#asymmetry .asym-slips li[data-route-example].is-routed .slip-reason{font-size:11px;line-height:1.2;margin-top:3px}}

@media(max-width:600px){#asymmetry .asym-slips li[data-route-example].is-landing{padding:5px 6px}#asymmetry .asym-slips li[data-route-example].is-landing .slip-current{font-size:9px;line-height:1.1;margin:0 0 3px}#asymmetry .asym-slips li[data-route-example].is-landing .slip-reason{font-size:10px;line-height:1.2;margin-top:3px}#asymmetry .asym-slips li[data-route-example].is-landing .slip-title{font-size:11px;line-height:1.2}}

/* Let the complete people component determine its frame; use native flow when it cannot fit. */
.has-motion #question .scene-stage{height:auto;min-height:100svh;grid-template-rows:auto auto;overflow:visible;padding-bottom:36px}
.has-motion #question .ten-art{align-content:start}
.has-motion #question .ten-art figcaption{display:block}
.has-motion #question.ten-flow .ten-pin{height:auto}
.has-motion #question.ten-flow .scene-stage{position:relative;top:auto}

@media(min-width:601px) and (max-height:780px){#asymmetry .asym-lanes .lane{padding:6px}#asymmetry .asym-slips li[data-route-example].is-routed{padding:4px 7px}#asymmetry .asym-slips li[data-route-example].is-routed .slip-current{margin-bottom:2px}#asymmetry .asym-slips li[data-route-example].is-routed .slip-reason{margin-top:2px}}

.has-motion #asymmetry .asym-art figcaption{top:calc(100% + 12px);bottom:auto}
.has-motion #asymmetry .asym-slips li.is-landing .slip-reason{font-size:11px;line-height:1.2;margin-top:3px}
.has-motion #asymmetry .asym-slips li.is-landing{padding:5px 7px}
.has-motion #asymmetry .asym-slips li.is-landing .slip-current{font-size:9px;line-height:1.1;margin-bottom:3px}
@media(max-width:600px){.has-motion #asymmetry .asym-slips li.is-landing .slip-reason{font-size:10px}}

/* Opening: readable signal on depth, fading to ivory around the incoming blue window. */
.hero-copy::before{content:"";position:absolute;z-index:-1;left:50%;top:-200px;bottom:-64px;width:100vw;transform:translateX(-50%);background:linear-gradient(180deg,var(--ink) 0%,var(--deep,#0b0035) calc(100% - 64px),var(--bone) 100%);pointer-events:none}
.hero-copy .display,.hero-copy .promise,.hero-copy .hero-person{color:var(--bone)}
.hero-copy .lede{color:var(--platinum)}
.hero-copy .promise em{color:var(--signal)}
@media(max-width:600px){.hero-copy::before{bottom:-100px;background:linear-gradient(180deg,var(--ink) 0%,#0b0035 calc(100% - 100px),var(--bone) 100%)}}

/* Approved signal-filled credential badges on the introduction’s ivory surface. */
#architect .creds li{background:var(--signal);color:var(--ink);border-color:var(--signal);font-style:normal}
