/* Motion thesis: the shadow-study flow unfolds through the visitor's scroll. */
:root {
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --motion-fast: 160ms;
  --motion-state: 280ms;
  --motion-scene: 480ms;
}
html { scrollbar-color:#665438 #0b0b0d; }
h1,h2 { text-wrap:balance; }
.hero h1 { letter-spacing:-.035em; }
.reading-progress { position:absolute; inset:0 0 auto; height:2px; pointer-events:none; }
.reading-progress span { display:block; width:100%; height:100%; background:var(--gold); transform:scaleX(0); transform-origin:left; }
.site-header { transition:border-color var(--motion-state); }
.site-header.has-scrolled { border-bottom-color:#645032; }
.site-header nav>a:not(.nav-cta) { position:relative; }
.site-header nav>a:not(.nav-cta)::after { content:''; position:absolute; inset:auto 0 5px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform var(--motion-state) var(--ease-out); }
.site-header nav>a[aria-current=location]:not(.nav-cta) { color:var(--gold); }
.site-header nav>a[aria-current=location]:not(.nav-cta)::after { transform:scaleX(1); }
.button, .nav-cta { transition:background var(--motion-fast), color var(--motion-fast), transform var(--motion-fast); }
.button>span, .text-link>span, .nav-cta>span, .publication-read>span { display:inline-block; transition:transform var(--motion-state) var(--ease-out); }
.button:hover>span, .nav-cta:hover>span, .publication-card:hover .publication-read>span { transform:translate(3px,-3px); }
.text-link:hover>span { transform:translateY(3px); }
.button:active, .decision-actions button:active { transform:translateY(1px) scale(.985); }
.review-window { border-radius:12px; box-shadow:none; }
.demo-tabs button { transition:color var(--motion-fast), border-color var(--motion-state); }
.decision-actions button { transition:background var(--motion-fast), border-color var(--motion-fast), transform var(--motion-fast); }
.evidence-plus { transition:transform var(--motion-state) var(--ease-out); }
.evidence-toggle:hover .evidence-plus { transform:rotate(90deg); }
.publication-art .orbit { transition:transform var(--motion-scene) var(--ease-out); }
.publication-card:hover .orbit-one { transform:translate(-55%,-45%); }
.publication-card:hover .orbit-two { transform:translate(-45%,-45%); }
.publication-card:hover .orbit-three { transform:translate(-50%,-60%); }
.rhythm-lines i { transform-origin:center; transition:transform var(--motion-scene) var(--ease-out); }
.publication-card:hover .rhythm-lines i:nth-child(odd) { transform:scaleY(.78); }
.publication-card:hover .rhythm-lines i:nth-child(even) { transform:scaleY(1.12); }
.attention-lines i { transition:transform var(--motion-scene) var(--ease-out); }
.publication-card:hover .attention-lines i:nth-child(even) { transform:translateY(0); }
.publication-card:hover .attention-lines i:nth-child(odd) { transform:translateY(10px); }
.faq-list summary>span { transition:transform var(--motion-state) var(--ease-out); }
.back-to-top { position:fixed; right:22px; bottom:22px; z-index:40; width:44px; height:44px; border:1px solid #76613e; border-radius:50%; background:#141416; color:var(--gold); font-size:20px; transition:background var(--motion-fast), transform var(--motion-fast); }
.back-to-top:hover { background:#2b251a; transform:translateY(-2px); }

.method-experience { position:relative; }
.method-sticky { display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; align-items:center; }
.method-experience.is-scroll-driven { height:calc(100svh + 850px); }
.is-scroll-driven .method-sticky { position:sticky; top:112px; }
.method-experience .method-flow { display:block; border-top:1px solid var(--rule); }
.method-experience .method-flow>li,
.method-experience .method-flow>li+li { padding:22px 0 22px 35px; border:0; border-bottom:1px solid var(--rule); transition:border-color var(--motion-state); }
.method-experience .method-flow .step-number { position:absolute; top:26px; left:0; font-size:10px; color:#b9b2a6; transition:color var(--motion-state); }
.method-experience .step-visual { display:none; }
.method-experience .method-flow h3 { font-size:19px; min-height:0; margin-bottom:9px; }
.method-experience .method-flow h3>button { display:flex; gap:18px; align-items:center; text-align:left; width:100%; padding:0; border:0; background:transparent; font:inherit; color:#c9c2b7; transition:color var(--motion-state); }
.method-experience .method-flow h3>button>span { margin-left:auto; font-size:15px; transform:translate(-4px,4px); opacity:0; transition:opacity var(--motion-state), transform var(--motion-state); }
.method-experience .method-flow p { max-width:370px; font-size:12px; line-height:1.75; }
.method-experience .method-flow>li.is-current { border-bottom-color:#8c7145; }
.method-experience .method-flow>li.is-current h3>button { color:var(--ink); }
.method-experience .method-flow>li.is-current .step-number, .method-experience .method-flow>li.is-past .step-number { color:var(--gold); }
.method-experience .method-flow>li.is-current h3>button>span, .method-experience .method-flow h3>button:hover>span { opacity:1; transform:none; }
.method-experience .method-flow h3>button:hover { color:var(--gold); }
.method-stage { margin:0; min-width:0; border:1px solid #4a4031; border-radius:12px; background:#141416; overflow:hidden; scroll-margin-top:94px; }
.method-stage-head { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:18px 24px; border-bottom:1px solid var(--rule); }
.method-stage-head>.mono { font-size:9px; color:var(--gold); letter-spacing:.4px; }
.method-stage-head .micro-label { font-size:8px; }
.method-scenes { height:320px; position:relative; overflow:hidden; }
.method-scene { position:absolute; inset:0; opacity:0; transform:translateY(16px); visibility:hidden; transition:opacity var(--motion-state), transform var(--motion-scene) var(--ease-out), visibility var(--motion-state); }
.method-stage[data-stage="0"] .scene-feed, .method-stage[data-stage="1"] .scene-decoy, .method-stage[data-stage="2"] .scene-review, .method-stage[data-stage="3"] .scene-evidence { opacity:1; transform:none; visibility:visible; }
.scene-title { position:absolute; top:25px; left:25px; right:25px; font-size:13px; letter-spacing:-.1px; color:#ddd7cd; }
.scene-bottom { position:absolute; bottom:20px; left:25px; right:25px; font-size:8px; letter-spacing:.6px; color:var(--muted); }
.case-stack { position:absolute; inset:70px 20px 55px; }
.study-sheet { position:absolute; left:50%; top:50%; width:174px; height:175px; border:1px solid #5a4a32; border-radius:5px; background:#1d1c18; padding:18px; transform-origin:bottom center; transition:transform var(--motion-scene) var(--ease-out); }
.study-sheet>span { display:block; font-family:var(--mono); font-size:7px; color:#c8b893; letter-spacing:.5px; margin-bottom:16px; }
.study-sheet>b { font-size:13px; font-weight:400; display:block; margin-bottom:17px; }
.study-sheet i { display:block; width:100%; height:3px; background:#5c5343; margin-bottom:9px; }
.study-sheet i:nth-of-type(2) { width:80%; }
.study-sheet i:nth-of-type(3) { width:50%; }
.sheet-footer { font-family:var(--mono); font-size:8px; padding-top:15px; margin-top:15px; border-top:1px solid #514735; color:#c4b79d; }
.sheet-back { transform:translate(-88%,-57%) rotate(-13deg); background:#24211b; }
.sheet-middle { transform:translate(-25%,-56%) rotate(10deg); background:#26231c; }
.sheet-front { transform:translate(-50%,-40%); background:#171718; }
.method-stage:not([data-stage="0"]) .study-sheet { transform:translate(-50%,-35%) rotate(0); }
.case-array { position:absolute; top:80px; left:50%; transform:translateX(-50%); width:285px; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.case-array>span { height:52px; border:1px solid #4e4537; border-radius:4px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; background:#1c1b19; font-family:var(--mono); font-size:8px; color:#bdb4a5; }
.case-array>.seeded-case { color:#e4c68e; border-color:var(--gold); background:#2c2519; transform:scale(1.06); transition:transform var(--motion-scene) var(--ease-out); }
.seeded-case>i { font-style:normal; font-family:var(--sans); font-size:8px; color:#dac59f; }
.method-stage:not([data-stage="1"]) .seeded-case { transform:scale(.92); }
.review-route { position:absolute; top:95px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:23px; }
.route-source { border:1px solid #5a4a32; border-radius:5px; background:#1c1b19; width:108px; height:108px; padding:19px 14px; }
.route-source>span { display:block; font-family:var(--mono); font-size:8px; color:#c6bbab; margin-bottom:18px; }
.route-source i { display:block; height:3px; background:#706044; margin-bottom:9px; }
.route-source i:last-child { width:55%; }
.route-arrow { font-size:26px; color:var(--gold); }
.route-gate { border:1px solid #9b7d4c; border-radius:50%; width:120px; height:120px; display:flex; flex-direction:column; gap:12px; align-items:center; justify-content:center; color:#e0c38a; }
.gate-eye { font-size:38px; line-height:1; }
.route-gate>span:last-child { font-family:var(--mono); font-size:8px; }
.review-evidence { display:flex; gap:10px; position:absolute; top:235px; left:50%; transform:translateX(-50%); white-space:nowrap; }
.review-evidence>span { border:1px solid #52432b; border-radius:3px; padding:6px 9px; font-size:9px; color:#d1c1a3; }
.evidence-ledger { position:absolute; top:82px; left:32px; right:32px; }
.evidence-ledger>div { display:grid; grid-template-columns:22px 1fr 1.3fr; gap:12px; align-items:center; padding-block:18px; border-bottom:1px solid #453b2c; }
.ledger-symbol { font-size:18px; color:var(--gold); }
.evidence-ledger strong { font-size:14px; font-weight:400; }
.evidence-ledger div>span:last-child { font-size:11px; color:var(--muted); text-align:right; }
.method-stage-footer { border-top:1px solid var(--rule); padding:21px 24px 18px; }
.method-stage-track { height:2px; background:#393226; overflow:hidden; margin-bottom:16px; }
.method-stage-track>span { display:block; background:var(--gold); width:100%; height:100%; transform:scaleX(.25); transform-origin:left; }
.method-stage figcaption { font-size:13px; line-height:1.75; color:#d1c7b9; min-height:46px; }
.method-stage-hint { font-size:9px; color:var(--muted); display:flex; justify-content:space-between; align-items:center; margin-top:18px; }
.method-stage-hint>span { font-size:15px; color:var(--gold); }
@media(min-width:861px) and (max-width:1150px) {
  .method-sticky { grid-template-columns:.95fr 1.05fr; gap:32px; }
  .method-stage-head { padding-inline:18px; }
  .method-stage-head>.mono { font-size:8px; }
  .method-stage-head .micro-label { font-size:7px; }
  .scene-title,.scene-bottom { left:20px; right:20px; }
  .method-stage-footer { padding-inline:20px; }
  .method-stage figcaption { font-size:12px; min-height:64px; }
  .method-experience .method-flow h3 { font-size:17px; }
}
@media(max-width:860px) {
  .method-sticky { display:flex; flex-direction:column; gap:28px; align-items:stretch; }
  .method-stage { order:-1; }
  .method-experience .method-flow>li, .method-experience .method-flow>li+li { padding-block:18px; padding-left:30px; }
  .method-experience .method-flow .step-number { top:23px; }
  .method-experience .method-flow h3>button { min-height:36px; }
  .method-experience .method-flow p { max-width:600px; font-size:13px; }
  .method-experience .method-flow h3 { font-size:18px; margin-bottom:7px; }
  .method-stage-head { padding:16px 18px; }
  .method-stage-head>.mono { font-size:8px; }
  .method-stage-head .micro-label { font-size:7px; }
  .method-scenes { height:295px; }
  .scene-title,.scene-bottom { left:20px; right:20px; }
  .scene-title { font-size:12px; }
  .case-stack { inset:65px 10px 50px; }
  .study-sheet { width:155px; height:159px; padding:15px; }
  .study-sheet>b { font-size:12px; }
  .case-array { width:250px; gap:10px; top:76px; }
  .case-array>span { height:48px; }
  .review-route { top:82px; gap:15px; }
  .route-source { width:100px; height:100px; }
  .route-gate { width:112px; height:112px; }
  .review-evidence { top:215px; }
  .evidence-ledger { top:72px; left:20px; right:20px; }
  .evidence-ledger>div { gap:10px; }
  .evidence-ledger strong { font-size:13px; }
  .evidence-ledger div>span:last-child { font-size:10px; }
  .method-stage-footer { padding:18px 20px; }
  .method-stage figcaption { font-size:12px; min-height:60px; }
  .method-stage-hint { margin-top:14px; }
  .back-to-top { right:15px; bottom:15px; width:40px; height:40px; }
}
@media(prefers-reduced-motion:reduce) {
  .method-scene { transform:none; transition:none; }
  .is-scroll-driven .method-sticky { position:static; }
  .method-experience.is-scroll-driven { height:auto; }
  .publication-art * { transition:none; }
}

.motion-toggle { font:inherit; color:inherit; border:0; background:transparent; padding:8px 0; cursor:pointer; text-decoration:underline; text-underline-offset:4px; min-height:36px; }
.motion-toggle:hover { color:var(--gold); }
.motion-toggle:disabled { text-decoration:none; cursor:default; }
html.reduce-motion { scroll-behavior:auto; }
.reduce-motion *, .reduce-motion *::before, .reduce-motion *::after { animation:none!important; transition:none!important; }
.reduce-motion .method-scene { transform:none; }
.reduce-motion .method-experience.is-scroll-driven { height:auto; }
.reduce-motion .is-scroll-driven .method-sticky { position:static; }
@media(max-width:720px) { .footer-inner>div { flex-wrap:wrap; gap:14px; } }

h2 em,h1 em { font-weight:500; }
