:root{--paper:#f4f1e8;--ink:#252a23;--muted:#62675d;--line:#d0d2c6;--dark:#0e120f;--lime:#d8ef9b;--display:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;--mono:'Courier New',monospace;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}::selection{background:#cde998;color:#0e120f}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #779336;outline-offset:6px}h1,h2,h3,p{margin:0}p{line-height:1.65}h1,h2{font-family:var(--display);font-weight:400;letter-spacing:-.02em}h2{font-size:clamp(42px,5vw,76px);line-height:1.09}h2 em,h1 em{font-weight:400;color:inherit}h3{font-weight:400}svg{display:block}section{scroll-margin-top:0}.skip{position:fixed;z-index:100;top:-100px;left:16px;padding:16px;background:var(--lime);color:var(--ink)}.skip:focus{top:15px}.header{height:94px;padding:0 5%;display:flex;align-items:center;gap:40px;background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:10}.brand{display:inline-flex;align-items:center;gap:11px;font-size:25px;letter-spacing:.16em;font-weight:500}.brand svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.5}.header nav{display:flex;gap:32px;margin:auto;font-size:12px;color:#4b5047}.header nav a{position:relative;padding:15px 0}.header nav a:after{content:'';position:absolute;bottom:8px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}.header nav a:hover:after{transform:scaleX(1)}.header-contact{font-size:12px;border-bottom:1px solid #9b9e90;padding:12px 0}.header-contact span{margin-left:18px}.menu{display:none}.hero{background:var(--dark);color:#f0f0e5;position:relative;overflow:hidden;padding:85px 5% 0;display:grid;grid-template-columns:1.03fr 1fr;min-height:790px}.hero-grid{position:absolute;inset:0;background:radial-gradient(ellipse at 80% 52%,#3a4430 0,transparent 48%),linear-gradient(90deg,transparent calc(50% - .5px),#d8ef9b0b 50%,transparent calc(50% + .5px));pointer-events:none}.hero-copy{position:relative;z-index:2;padding-bottom:84px}.eyebrow,.section-label,.art-top,.art-bottom,.chain-caption,.horizon-caption{font-family:var(--mono);font-size:10px;letter-spacing:.09em;line-height:1.5;font-weight:400}.eyebrow{display:flex;gap:10px;align-items:center}.status-dot,.small-dot{width:5px;height:5px;display:inline-block;background:var(--lime);border-radius:50%;flex-shrink:0}.hero .eyebrow{color:#c8d0bc;text-transform:uppercase}.hero h1{font-size:clamp(76px,7.9vw,125px);line-height:.98;margin:35px 0 30px}.hero h1 em{color:var(--lime)}.hero-sub{font-size:20px;line-height:1.4;letter-spacing:-.02em}.hero-description{font-size:13px;max-width:350px;color:#b7c0ae;margin:19px 0 27px}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:17px 23px;font-size:12px;border:1px solid transparent;transition:background .25s,transform .3s var(--ease),box-shadow .3s;text-align:left}.button:hover{transform:translateY(-3px);box-shadow:0 8px 20px #00000012}.button span{font-size:17px}.button.light{color:#262d22;background:#e9ecdf}.button.light:hover{background:var(--lime)}.sculpture{position:relative;align-self:stretch;min-width:0;padding-top:10px;display:flex;flex-direction:column;justify-content:center;margin-left:-15px}.gate-art{width:118%;height:auto;margin-left:-8%;margin-top:-40px;margin-bottom:-30px;flex:none}.art-top,.art-bottom{color:#9fa995;display:flex;justify-content:space-between;position:absolute;left:4%;right:0;z-index:2;font-size:8px}.art-top{top:8px}.art-bottom{bottom:65px}.authority-plane{animation:plane-in 2s var(--ease) both}.action-point{animation:approach 2s var(--ease) both}.hero-bottom{position:relative;grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #65715b60;padding:23px 0;color:#aab49f;font-family:var(--mono);font-size:9px;letter-spacing:.03em}.hero-bottom a{display:flex;gap:35px;padding:7px 0}.section{padding:74px 7% 90px}.section-label{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:69px;font-size:9px;color:var(--muted)}.principle-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:8%}.principle h2{font-size:clamp(40px,4.7vw,70px)}.principle h2 em{color:#7c846e}.principle-copy{padding-top:7px}.lead{font-size:18px;line-height:1.65;letter-spacing:-.01em}.principle-copy>p+p{color:var(--muted);font-size:13px;margin-top:22px}.text-link{display:inline-flex;align-items:center;gap:35px;border-bottom:1px solid #8b9481;font-size:12px;padding:13px 0;margin-top:18px}.principle-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;border-top:1px solid var(--line);margin-top:65px;padding-top:32px}.principle-notes>div{display:grid;grid-template-columns:35px 1fr;align-content:start;gap:16px}.index{font-family:var(--display);font-style:italic;color:#7b856a;font-size:20px}.principle-notes h3{font-size:18px;line-height:1.4}.principle-notes p{grid-column:2;font-size:12px;color:var(--muted);max-width:270px}.boundary{background:#131915;color:#eef0e5}.boundary .section-label{border-color:#56604d;color:#acb79f}.boundary-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;align-items:end;margin-bottom:43px}.boundary-heading em{color:var(--lime)}.boundary-heading>div>p{font-size:14px;max-width:420px;color:#cad1c1}.boundary-heading .fine{font-size:10px;color:#a5b198;margin-top:17px;line-height:1.7}.scenario-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:7px}.scenario-picker button{background:transparent;border:1px solid #56634c;text-align:left;min-height:65px;padding:16px 20px;font-size:12px;display:flex;align-items:center;gap:12px;transition:background .2s,color .2s,border-color .2s}.scenario-picker button>span{font-family:var(--mono);font-size:9px;color:#aab69b}.scenario-picker b{font-size:18px;font-weight:400;margin-left:auto}.scenario-picker button[aria-pressed=true]{background:var(--lime);color:#27311c;border-color:var(--lime)}.scenario-picker button[aria-pressed=true]>span{color:#4b5d2e}.scenario-picker button:hover{border-color:#d8ef9b}.lab{display:grid;grid-template-columns:.85fr 1.4fr;border:1px solid #56634c;--signal:var(--lime);--signal-bg:#d8ef9b0b}.lab[data-state=deny]{--signal:#c98a73;--signal-bg:#c98a7309}.lab[data-state=review]{--signal:#bfa266;--signal-bg:#bfa26609}.proposal{padding:37px 35px;border-right:1px solid #56634c;background:#0a0d0b}.proposal .eyebrow{color:#a5b198;font-size:9px}.proposal-icon{width:39px;height:39px;border:1px solid #69775b;display:grid;place-items:center;margin:30px 0 20px;font-size:23px;color:#d1d9c7}.proposal h3{font-size:14px;color:#bdc7b2}.amount{font-family:var(--display);font-size:46px;letter-spacing:-.015em;margin:12px 0 33px}.amount span{font-size:26px;color:#9caa90}dl{margin:0}dl>div{display:flex;justify-content:space-between;gap:15px}dt,dd{margin:0} .proposal dl>div{padding:11px 0;border-top:1px solid #3f4a37;font-size:10px}.proposal dt{color:#a0ae94}.proposal dd{display:flex;align-items:center;gap:6px}.proposal-note{font-family:var(--mono);color:#99a68d;font-size:9px;margin-top:20px}.decision{padding:30px 35px;min-width:0;display:flex;flex-direction:column}.decision-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.decision-head .eyebrow{font-size:9px;color:#b8c6a9}.decision-led{width:6px;height:6px;background:var(--signal);border-radius:50%}.mini-boundary{height:76px;position:relative;margin:14px 0}.path-line{height:1px;background:linear-gradient(90deg,transparent,#879f6b,transparent);position:absolute;left:0;right:0;top:44px}.boundary-line{position:absolute;height:70px;width:13px;left:60%;top:4px;border:1px solid var(--signal);transform:skewY(-30deg);background:#d8ef9b12}.packet{position:absolute;left:24%;top:32px;border:1px solid var(--signal);background:#2f3c25;display:grid;place-items:center;width:25px;height:25px;color:var(--signal);font-size:16px;transition:left .7s var(--ease),opacity .3s}.exit-label{font-family:var(--mono);font-size:7px;color:#9caa91;position:absolute;right:0;top:60px}.lab.running .packet{left:56%}.lab.complete[data-state=allow] .packet{left:90%}.lab.complete[data-state=deny] .packet{left:50%;background:#614539}.lab.complete[data-state=review] .packet{left:50%;background:#5c5233}.checks{list-style:none;padding:0;margin:0}.checks li{display:grid;grid-template-columns:23px 1fr;gap:3px 7px;padding:10px 0;border-bottom:1px solid #424e3a;font-size:11px}.checks small{grid-column:2;font-size:9px;color:#a7b49b}.check-symbol{color:var(--signal);grid-row:span 2;align-self:center;font-size:14px}.checks li.active{background:#d8ef9b08}.result{margin-top:23px;display:flex;gap:19px;align-items:flex-start;min-height:55px}.result>span{font-size:10px;letter-spacing:.08em;color:var(--signal);border:1px solid var(--signal);padding:7px 9px;white-space:nowrap}.result p{font-size:11px;color:#ccd5c2;max-width:300px;line-height:1.6}.lab-actions{display:flex;align-items:center;gap:20px;margin-top:22px}.button.lime{background:var(--lime);color:#27311c;min-height:44px;padding:11px 17px;font-size:10px;gap:22px}.lab-actions>span{font-family:var(--mono);font-size:8px;color:#a5b198;max-width:145px;line-height:1.5}.receipt{border:1px solid #56634c;border-top:0}.receipt summary{padding:22px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;font-size:11px;list-style:none}.receipt summary::-webkit-details-marker{display:none}.receipt summary>span:first-child{display:flex;align-items:center;gap:14px}.receipt-icon{color:var(--lime);font-size:17px}.plus{font-size:20px;transition:transform .3s}.receipt[open] .plus{transform:rotate(45deg)}.receipt-body{padding:0 28px 26px;display:grid;grid-template-columns:1.2fr 1fr;gap:8%}.receipt-body dl>div{font-family:var(--mono);font-size:9px;border-top:1px solid #424e3a;padding:10px 0}.receipt-body dt{color:#a6b598}.receipt-body dd{text-align:right}.receipt-body>p{font-size:11px;color:#b6c2a9}.no-script{margin-top:20px;font-size:12px;color:var(--lime)}.architecture{padding-bottom:65px}.architecture-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:15%;align-items:end}.architecture-intro>p{font-size:14px;color:var(--muted);max-width:400px}.chain{margin-top:65px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #aeb5a3}.chain article{padding:25px 24px 0;border-right:1px solid var(--line);position:relative}.chain article:first-child{padding-left:0}.chain article:last-child{border-right:0;padding-right:0}.chain-number{font-family:var(--mono);font-size:10px;color:#69785c;border:1px solid #b5bdab;border-radius:50%;width:31px;height:31px;display:grid;place-items:center;background:var(--paper);margin-top:-41px;margin-bottom:29px}.chain h3{font-family:var(--display);font-size:30px;letter-spacing:-.01em;margin-bottom:17px}.chain p{font-size:12px;color:var(--muted);min-height:84px}.chain-caption{display:block;font-size:8px;color:#727b66;margin-top:24px;letter-spacing:.03em}.architecture-foot{display:flex;gap:25px;align-items:center;border-top:1px solid var(--line);padding-top:28px;margin-top:45px}.seal{width:46px;height:46px;display:grid;place-items:center;border:1px solid #9ba78d;border-radius:50%;font-family:var(--display);font-size:24px}.architecture-foot p{font-size:13px;line-height:1.5}.architecture-foot p strong{font-weight:400;color:#6e7a5f}.architecture-foot>span:last-child{margin-left:auto;font-size:10px;line-height:1.6;color:var(--muted)}.progress{background:#e6e8dd}.progress-heading{display:grid;grid-template-columns:1.4fr 1fr;gap:12%;align-items:end;margin-bottom:48px}.progress h2{font-size:clamp(42px,4.8vw,70px)}.progress-heading p{font-size:13px;color:#5e6856}.evidence-list{border-top:1px solid #aeb7a1}.evidence-list article{padding:26px 0;border-bottom:1px solid #bcc4b0;display:grid;grid-template-columns:1.4fr 1fr;gap:12%;align-items:center}.badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.035em;font-size:8px;display:inline-flex;align-items:center;gap:8px;color:#475739}.badge:before{content:'';width:5px;height:5px;background:#677d48;border-radius:50%}.badge.sandbox{color:#3b625e}.badge.sandbox:before{background:#477972}.badge.designed{color:#675739}.badge.designed:before{background:#947b4a}.badge.planned{color:#5e6657}.badge.planned:before{background:none;border:1px solid #68765c}.evidence-list h3{font-family:var(--display);font-size:25px;letter-spacing:-.01em;margin-top:10px}.evidence-list p{font-size:11px;color:#596350;line-height:1.7}.proof-note{font-size:10px;color:#626d58;margin-top:23px;display:flex;gap:16px;max-width:800px}.proof-note>span{font-size:18px}.horizon{background:#0e120f;color:#eef0e5;position:relative;overflow:hidden}.horizon:after{content:'';width:60vw;height:60vw;border:1px solid #d8ef9b13;transform:rotate(30deg);position:absolute;right:-35vw;top:15%;pointer-events:none}.horizon .section-label{border-color:#526046;color:#a7b299}.horizon-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:12%}.horizon h2 em{color:var(--lime)}.horizon-layout>div{padding-top:8px}.horizon-layout .lead{font-size:18px;color:#d1d9c6}.horizon-layout>div>p+p{font-size:12px;color:#a7b59a;margin-top:22px}.horizon-layout>div>.horizon-caption{font-family:var(--mono);font-size:8px;color:#d1ddbf;margin-top:35px;letter-spacing:.08em}.horizon-rule{display:flex;align-items:center;gap:28px;margin-top:65px;font-family:var(--mono);font-size:9px;color:#9aaa89}.horizon-rule i{height:1px;background:#697a55;flex:1}.horizon-rule b{font-size:17px;color:var(--lime);font-family:var(--sans);letter-spacing:.15em;font-weight:400;border:1px solid #718660;padding:15px 23px}.contact{padding-bottom:85px}.contact .section-label{margin-bottom:65px}.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:10%;align-items:center}.contact h2{margin:22px 0;font-size:clamp(44px,5.4vw,80px)}.contact .eyebrow{font-size:8px;color:#6c775e}.contact-grid>div>p:not(.eyebrow){font-size:12px;color:var(--muted);max-width:410px}.button.dark{background:#262f21;color:#edf0e4;margin-top:28px;font-size:11px}.button.dark:hover{background:#3d4b31}.contact-person{padding-left:15%;border-left:1px solid var(--line)}.contact-mark{font-size:65px;color:#84946f;letter-spacing:-.08em;font-family:var(--display);display:block;margin-bottom:45px}.contact-person>div>span{font-family:var(--mono);font-size:8px;color:#6f7a63;letter-spacing:.06em}.contact-person h3{font-family:var(--display);font-size:28px;letter-spacing:-.01em;margin:13px 0 8px}.contact-person p{font-size:10px;color:var(--muted)}.contact-person a{font-size:12px;display:inline-flex;gap:35px;border-bottom:1px solid #b4bba8;padding:16px 0 10px}footer{padding:35px 5%;border-top:1px solid var(--line);display:flex;gap:40px;align-items:center}footer .brand{font-size:20px}footer .brand svg{width:25px;height:25px}footer>p{font-family:var(--display);font-style:italic;font-size:15px;color:#768268}footer>div{margin-left:auto;display:flex;align-items:center;gap:30px;font-size:8px;color:#626b5a}footer>div>a{padding:15px 0}
@keyframes approach{from{transform:translate(-80px,46px);opacity:0}to{transform:none;opacity:1}}@keyframes plane-in{from{opacity:0}to{opacity:1}}
@media(min-width:1600px){.hero{padding-left:max(5%,calc((100vw - 1500px)/2));padding-right:max(5%,calc((100vw - 1500px)/2))}.section{padding-left:max(7%,calc((100vw - 1360px)/2));padding-right:max(7%,calc((100vw - 1360px)/2))}.hero h1{font-size:125px}}
@media(max-width:1050px){.header{gap:25px;height:80px}.header nav{gap:20px}.header-contact{font-size:10px}.hero{padding-top:64px;min-height:720px;grid-template-columns:1.08fr 1fr}.hero h1{font-size:clamp(72px,8.8vw,98px)}.hero-description{max-width:300px}.hero-sub{font-size:18px}.gate-art{width:145%;margin-left:-25%}.hero-bottom{font-size:8px}.hero-bottom a{gap:12px}.section{padding:60px 6% 70px}.section-label{margin-bottom:48px}.principle-layout,.boundary-heading,.architecture-intro,.progress-heading,.horizon-layout{gap:7%}.principle-notes{gap:22px}.principle-notes>div{grid-template-columns:24px 1fr;gap:12px}.principle-notes h3{font-size:16px}.principle-notes p{font-size:11px}.proposal,.decision{padding:28px 24px}.amount{font-size:38px}.scenario-picker button{padding:14px;font-size:10px;gap:8px}.chain article{padding-left:18px;padding-right:18px}.chain p{min-height:110px}.chain-caption{font-size:7px}.contact-person{padding-left:10%}.art-top{font-size:7px}.art-bottom{font-size:7px}.contact-grid{gap:6%}}
@media(max-width:760px){html{scroll-padding-top:30px}.header{height:76px;padding:0 6%;gap:15px;flex-wrap:wrap}.brand{font-size:22px}.brand svg{width:25px}.header-contact{margin-left:auto;font-size:10px}.header-contact span{margin-left:8px}.menu{display:flex;align-items:center;gap:10px;padding:12px 0 12px 10px;font-size:10px;background:none;border:0;min-height:44px}.menu span{font-size:20px}.header nav{display:none;position:absolute;top:76px;left:0;right:0;padding:16px 6% 22px;background:var(--paper);border-bottom:1px solid var(--line);gap:10px}.header nav.open{display:flex;flex-direction:column}.header nav a{padding:12px 0}.hero{display:flex;flex-direction:column;padding:51px 6% 0;min-height:0}.hero-copy{padding-bottom:0}.hero h1{font-size:clamp(66px,13.6vw,100px);margin:29px 0 24px;line-height:1.0}.hero h1 br:nth-of-type(2){display:none}.hero h1 em{display:block}.hero-sub{font-size:18px;line-height:1.4}.hero-description{font-size:12px;max-width:355px;margin:18px 0 24px}.hero .button{font-size:11px;min-height:49px;padding:14px 19px}.sculpture{width:100%;height:430px;margin:30px 0 0;padding:0;align-self:center}.gate-art{width:100%;max-height:480px;margin:-30px 0 -20px;object-fit:contain}.art-top{top:0;left:0;font-size:7px}.art-bottom{bottom:5px;left:0;font-size:7px}.hero-bottom{margin-top:20px;flex-direction:column;align-items:flex-start;gap:10px;padding:20px 0;font-size:8px}.hero-bottom a{justify-content:space-between;width:100%;padding:8px 0}.hero-bottom a span{font-size:16px}.hero-grid{background:radial-gradient(ellipse at 70% 75%,#3a4430 0,transparent 48%)}.section{padding:43px 6% 55px}.section-label{margin-bottom:38px;font-size:8px;padding-bottom:16px}.section-label>span:last-child{max-width:150px;text-align:right;font-size:7px}.principle-layout,.boundary-heading,.architecture-intro,.progress-heading,.horizon-layout,.contact-grid{grid-template-columns:1fr;gap:26px}h2,.principle h2,.progress h2{font-size:clamp(38px,8.4vw,60px)}.principle-copy{padding-top:0}.lead{font-size:16px}.principle-copy>p+p{font-size:12px;margin-top:17px}.principle-notes{grid-template-columns:1fr;gap:0;margin-top:38px;padding-top:0;border-top:0}.principle-notes>div{grid-template-columns:28px 1fr;gap:12px;padding:23px 0;border-top:1px solid var(--line)}.principle-notes h3{font-size:17px}.principle-notes h3 br{display:none}.principle-notes p{font-size:12px;max-width:100%}.principle-notes>div:last-child{padding-bottom:0}.boundary-heading{margin-bottom:27px;gap:22px}.boundary-heading>div>p{font-size:13px}.boundary-heading .fine{font-size:10px;max-width:350px}.scenario-picker{gap:4px}.scenario-picker button{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:9px;font-size:10px;line-height:1.4;min-height:97px;padding:12px 10px;position:relative}.scenario-picker b{position:absolute;right:10px;top:10px;font-size:13px}.scenario-picker button>span{font-size:8px}.lab{grid-template-columns:1fr}.proposal{border-right:0;border-bottom:1px solid #56634c;padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.proposal>.eyebrow{grid-column:1/-1;margin-bottom:17px}.proposal-icon{display:none}.proposal h3{font-size:12px;align-self:end}.amount{grid-column:1;grid-row:3;font-size:35px;margin:8px 0 15px}.amount span{font-size:21px}.proposal dl{grid-column:2;grid-row:2/4;align-self:center}.proposal dl>div{font-size:8px;padding:9px 0;gap:7px}.proposal dd{gap:4px}.proposal-note{grid-column:1/-1;font-size:8px;margin:0}.decision{padding:24px 22px}.mini-boundary{height:68px;margin:8px 0}.boundary-line{height:61px}.checks li{font-size:11px;padding:11px 0}.checks small{font-size:9px}.result{gap:15px;min-height:58px}.result p{font-size:11px}.result>span{font-size:9px}.lab-actions{justify-content:space-between;gap:15px}.lab-actions>span{font-size:8px;max-width:130px}.receipt summary{padding:18px;font-size:10px}.receipt summary>span:first-child{gap:10px}.receipt-body{padding:0 18px 20px;grid-template-columns:1fr;gap:20px}.receipt-body dl>div{font-size:8px}.architecture-intro>p{font-size:13px;max-width:100%}.chain{grid-template-columns:1fr 1fr;gap:35px 0;margin-top:42px}.chain article{padding:22px 17px 0}.chain article:nth-child(2){border-right:0;padding-right:0}.chain article:nth-child(3){padding-left:0;border-top:1px solid #aeb5a3}.chain article:nth-child(4){border-top:1px solid #aeb5a3}.chain-number{margin-top:-38px;margin-bottom:22px}.chain h3{font-size:28px}.chain p{font-size:11px;min-height:91px;max-width:230px}.chain-caption{font-size:6.5px;min-height:20px;margin-top:15px}.architecture-foot{gap:14px;flex-wrap:wrap;margin-top:30px;padding-top:23px}.architecture-foot>span:last-child{margin-left:60px;font-size:10px;width:100%}.architecture-foot .seal{width:46px}.architecture-foot p{font-size:13px}.progress-heading{margin-bottom:30px}.progress-heading p{font-size:12px}.evidence-list article{grid-template-columns:1fr;gap:16px;padding:24px 0}.badge{font-size:7px}.evidence-list h3{font-size:24px}.evidence-list p{font-size:12px;max-width:480px}.proof-note{font-size:10px;gap:11px}.horizon-layout .lead{font-size:16px}.horizon-layout>div>p+p{font-size:12px}.horizon-layout>div>.horizon-caption{font-size:7px;max-width:280px;line-height:1.8;margin-top:26px}.horizon-rule{gap:13px;font-size:7px;margin-top:35px}.horizon-rule b{font-size:13px;padding:12px 15px}.contact .section-label{margin-bottom:35px}.contact .eyebrow{font-size:7px}.contact h2{font-size:clamp(43px,9.5vw,65px);margin-top:19px}.contact-grid>div>p:not(.eyebrow){font-size:12px}.contact-person{padding:28px 0 0;border-left:0;border-top:1px solid var(--line);display:flex;align-items:center;gap:28px;margin-top:8px}.contact-mark{font-size:46px;margin:0}.contact-person h3{font-size:24px;margin-top:10px}.contact-person a{font-size:11px;gap:25px}.contact-person p{font-size:9px}footer{padding:28px 6% 24px;gap:20px;flex-wrap:wrap}footer>p{font-size:13px;margin-left:auto}footer>div{width:100%;justify-content:space-between;font-size:8px;padding-top:5px}footer .brand{font-size:17px;gap:8px}footer .brand svg{width:22px}}
@media(max-width:370px){.header-contact{display:none}.menu{margin-left:auto}.hero h1{font-size:62px}.sculpture{height:370px}.section-label{font-size:7px}.proposal{padding:18px}.amount{font-size:30px}.proposal dl>div{font-size:7px}.decision{padding:22px 18px}.scenario-picker button{font-size:9px}.lab-actions{align-items:flex-start}.lab-actions>span{max-width:95px}.chain p{min-height:110px}.contact-person{gap:20px}.contact-mark{font-size:37px}footer>p{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover{transform:none}}

/* Keep compact editorial labels legible and links touch-friendly. */
.section-label,.eyebrow,.badge,.chain-caption,.horizon-caption,.proposal-note,.decision-head .eyebrow,.lab-actions>span,.contact-person>div>span{font-size:max(9px,.58rem)}
.header-contact,footer a,.text-link,.contact-person a{min-height:44px}
@media(max-width:760px){.section-label,.section-label>span:last-child,.contact .eyebrow,.badge,.horizon-layout>div>.horizon-caption{font-size:9px}.scenario-picker button{font-size:11px}.proposal dl>div{font-size:9px}.proposal{grid-template-columns:1fr 1.15fr}.checks small,.receipt-body dl>div{font-size:10px}.chain-caption{font-size:9px}.chain p{min-height:100px}.contact-person p{font-size:11px}.contact-person a{font-size:12px}footer>div{font-size:10px}.lab-actions>span{font-size:9px}.hero-bottom{font-size:9px}}

/* Version 2: navigation, a manipulable proposal and a quieter editorial finish. */
.header{position:sticky;top:0;box-shadow:0 1px 0 #1e28110d}
.header nav a[aria-current=location]:after{transform:scaleX(1)}
.header nav a[aria-current=location]{color:#243316}
.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:40;pointer-events:none}
.reading-progress span{display:block;width:100%;height:100%;background:#879e58;transform:scaleX(0);transform-origin:left}
.gate-art{transform:translate(var(--art-x,0px),var(--art-y,0px));transition:transform .7s var(--ease)}
.hero-description{font-size:14px;max-width:360px}
#payment-amount{font-size:inherit;color:inherit}
.amount{white-space:nowrap}
.amount-control{margin-top:25px;padding-top:19px;border-top:1px solid #46523d}
.amount-control label{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#d2dac8;gap:15px}
.amount-control label span{font-size:18px;color:var(--lime)}
.amount-control input{appearance:none;-webkit-appearance:none;width:100%;height:44px;margin:8px 0 0;background:transparent;cursor:ew-resize;display:block}
.amount-control input::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,var(--lime) var(--range-fill,26.3%),#667459 var(--range-fill,26.3%))}
.amount-control input::-moz-range-track{height:2px;background:#667459}
.amount-control input::-moz-range-progress{height:2px;background:var(--lime)}
.amount-control input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;height:18px;width:18px;border-radius:50%;background:var(--lime);border:4px solid #283321;box-shadow:0 0 0 1px #d8ef9b;margin-top:-8px}
.amount-control input::-moz-range-thumb{height:11px;width:11px;border-radius:50%;background:var(--lime);border:3px solid #283321;box-shadow:0 0 0 1px #d8ef9b}
.amount-control input:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:2px}
.range-scale{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:#aebda0}
.amount-control p{font-size:11px;color:#adbc9f;margin-top:16px;line-height:1.6;max-width:280px}
.proposal-note{margin-top:19px}
.decision{padding-top:33px;padding-bottom:26px}
.checks li{padding:12px 0}
.checks small{font-size:10px;line-height:1.5}
.result{margin-top:25px;min-height:62px}
.result p{font-size:12px}
.lab-actions{margin-top:auto;padding-top:24px;justify-content:space-between;gap:12px}
.revoke{padding:11px 0;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#cfdbbf;font-size:11px;border:0;border-bottom:1px solid #687a57;background:none}
.revoke:hover{color:var(--lime);border-color:var(--lime)}
.run-note{font-family:var(--mono);font-size:9px;color:#a6b696;line-height:1.7;margin-top:16px;min-height:31px}
.receipt-body>div>p{font-size:11px;line-height:1.7;color:#b6c2a9}
.download-record{display:flex;align-items:center;gap:35px;background:transparent;border:0;border-bottom:1px solid #7f9269;min-height:44px;color:var(--lime);font-size:11px;margin:17px 0 9px;padding:10px 0}
.download-record:disabled{opacity:.4}
.receipt-body small{font-family:var(--mono);font-size:9px;line-height:1.5;color:#a5b397;display:block}
.questions{background:#ebece3}
.questions-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:12%}
.questions h2{font-size:clamp(40px,4.4vw,66px)}
.questions-layout>div>p{font-size:13px;color:var(--muted);max-width:310px;margin-top:25px}
.question-list{border-top:1px solid #b6beaa}
.question-list details{border-bottom:1px solid #b6beaa}
.question-list summary{cursor:pointer;list-style:none;display:flex;gap:25px;align-items:center;justify-content:space-between;font-size:14px;line-height:1.6;padding:23px 0;min-height:70px}
.question-list summary::-webkit-details-marker{display:none}
.question-list summary span{font-family:var(--mono);font-size:20px;color:#64794a;transition:transform .3s;flex-shrink:0}
.question-list details[open] summary span{transform:rotate(45deg)}
.question-list details>p{font-size:12px;color:#59634f;padding:0 30px 24px 0;line-height:1.85;max-width:520px}
.questions .text-link{margin-top:22px}
section{scroll-margin-top:0}
@media(min-width:761px){.proposal-icon{background:linear-gradient(145deg,#3c4933,#20281c);width:47px;height:47px}.decision .mini-boundary{margin-top:20px;margin-bottom:20px}.chain p{font-size:13px;min-height:95px}.evidence-list p{font-size:12px}.principle-notes p{font-size:13px}.header nav{gap:25px}.header nav a{font-size:12px}}
@media(max-width:1050px) and (min-width:761px){.header{gap:18px}.header nav{gap:18px}.header nav a{font-size:10px}.brand{font-size:22px}.lab-actions{align-items:flex-start;flex-direction:column}.amount{font-size:34px}.revoke{width:100%;padding-bottom:7px}.result{min-height:86px}.questions-layout{gap:7%}}
@media(max-width:760px){
 .header{height:72px;background:#f4f1e8f7}.header nav{top:72px}.header nav.open{box-shadow:0 14px 25px #19231012}
 .hero-description{font-size:13px}.sculpture{height:390px;margin-top:35px}.gate-art{max-height:435px}
 .amount-control{grid-column:1/-1;grid-row:4;margin-top:13px;padding-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
 .amount-control label{grid-column:1/-1;font-size:12px}
 .amount-control input{grid-column:1/-1;margin-top:0}
 .amount-control .range-scale{grid-column:1/-1;font-size:10px}
 .amount-control p{grid-column:1/-1;font-size:11px;max-width:100%;margin-top:13px}
 .proposal-note{grid-row:5;margin-top:14px;font-size:9px}
 .proposal .amount{font-size:36px}.proposal .amount>span:last-child{font-size:22px}
 .proposal dl>div{font-size:10px}.proposal dl>div:last-child{padding-bottom:0}
 .decision{padding:25px 22px}.decision-head .eyebrow{font-size:9px}.checks li{padding:12px 0}.checks small{font-size:11px}
 .lab-actions{align-items:center;flex-wrap:wrap;gap:10px;padding-top:19px;margin-top:0}.button.lime{font-size:11px}.revoke{font-size:11px;gap:10px}
 .result{min-height:72px}.result p{font-size:12px}.run-note{font-size:10px;min-height:32px}
 .receipt-body dl>div{font-size:10px}.receipt-body>div>p{font-size:12px}.receipt-body small{font-size:10px}
 .questions-layout{grid-template-columns:1fr;gap:33px}.questions h2{font-size:clamp(38px,8.4vw,60px)}.questions-layout>div>p{font-size:13px;max-width:100%;margin-top:20px}
 .question-list summary{font-size:14px;padding:21px 0;gap:20px}.question-list details>p{font-size:13px;padding-right:16px}.question-list summary span{font-size:20px}
 .architecture-foot>span:last-child{margin-left:60px;width:calc(100% - 60px)}
 .principle-copy>p+p,.principle-notes p,.architecture-intro>p,.evidence-list p,.contact-grid>div>p:not(.eyebrow){font-size:13px}
}
@media(max-width:370px){.proposal .amount{font-size:29px}.proposal dl>div{font-size:9px}.lab-actions{align-items:flex-start;flex-direction:column}.revoke{width:100%}.result{gap:11px}.sculpture{height:345px}.header nav{top:72px}}
@media(prefers-reduced-motion:reduce){.gate-art{transform:none!important}.reading-progress span{transition:none!important}}
@media print{.header,.reading-progress,.hero-grid,.sculpture,.scenario-picker,.lab-actions,.amount-control,#download-record{display:none!important}.hero,.boundary,.horizon{background:#fff;color:#111}.section,.hero{padding:25px 0;min-height:0}.hero{display:block}.hero h1{font-size:54px}.hero h1 em,.horizon h2 em,.boundary h2 em{color:#111}.hero-copy{padding-bottom:0}.section-label{margin-bottom:25px}.questions details>p{display:block}.contact-person{border:0}a{color:#111}.lab{break-inside:avoid}.checks small,.result p,.proposal,.decision{color:#111;background:#fff}.chain{break-inside:avoid}}

/* Version 3: browser-QA fixes for the phone header, contrast and the example threshold. */
.nav-contact{display:none}
.range-scale{position:relative}
.range-threshold{position:absolute;left:calc(9px + (100% - 18px)*.3421);transform:translateX(-50%);color:#bfa266}
.range-threshold:before{content:'';position:absolute;left:50%;bottom:calc(100% + 4px);width:1px;height:16px;background:#bfa266;opacity:.75;pointer-events:none}
.index{color:#5f6a50}.chain-number{color:#56644a;border-color:#9ba590}.chain-caption{color:#5d6653}.architecture-foot p strong{color:#556148}.proof-note{color:#555f4c}.contact .eyebrow{color:#5a6450}.contact-mark{color:#6e7d5a}.contact-person>div>span{color:#5a6450}footer>p{color:#5f6a52}
@media(max-width:760px){.header{flex-wrap:nowrap}.art-top,.art-bottom{font-size:8px}}
@media(max-width:480px){.header-contact{display:none}.menu{margin-left:auto}.header nav.open .nav-contact{display:block}}

/* Version 4: motion reel. Everything here is decorative; reduced motion and print restore static content. */
:root{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--spring:cubic-bezier(.16,1,.3,1)}
.hero-grid{background:var(--grain),radial-gradient(ellipse at 80% 52%,#3a4430 0,transparent 48%),linear-gradient(90deg,transparent calc(50% - .5px),#d8ef9b0b 50%,transparent calc(50% + .5px));animation:fade-in 1.8s ease both}
.boundary{background:var(--grain),radial-gradient(640px circle at var(--sx,82%) var(--sy,8%),#d8ef9b12,transparent 62%),#131915}
.horizon{background:var(--grain),radial-gradient(ellipse at 15% 110%,#3a4430 0,transparent 55%),#0e120f}

/* Hero intro: frames assemble, the boundary draws itself, then the stream begins. */
.gate-art .halo{animation:fade-in 2.4s ease both}
.gate-art .frame{animation:frame-rise 1.6s var(--spring) both}
.gate-art .frame-3{animation-delay:.05s}.gate-art .frame-2{animation-delay:.22s}.gate-art .frame-1{animation-delay:.4s}
.gate-art .authority-plane{stroke-dasharray:1;animation:draw 1.3s var(--ease) .9s both,plane-fill 1.2s ease 1.6s both}
.gate-art .beam{stroke-dasharray:1;animation:draw 1s var(--ease) 1.25s both}
.gate-art .leaders{stroke-dasharray:1;animation:draw 1.1s var(--ease) 1.9s both}
.gate-art .art-label{animation:fade-in .9s ease 2.2s both}
.gate-art .action-point{animation:approach 1.6s var(--ease) 1.3s both}
.hero.is-live .gate-art .halo{animation:fade-in 2.4s ease both,breathe 6s ease-in-out 2.4s infinite}
.gate-art .frame-3{translate:calc(var(--hp,0)*110px) calc(var(--hp,0)*-150px)}
.gate-art .frame-2{translate:calc(var(--hp,0)*55px) calc(var(--hp,0)*-80px)}
.gate-art .frame-1{translate:calc(var(--hp,0)*-20px) calc(var(--hp,0)*10px)}
.hero-copy{translate:0 calc(var(--hp,0)*-90px);opacity:calc(1 - var(--hp,0)*.9)}
.gate-canvas{position:absolute;pointer-events:none;opacity:0;transition:opacity 1.4s ease;transform:translate(var(--art-x,0px),var(--art-y,0px))}
.gate-canvas.on{opacity:1}
.hero .eyebrow,.hero-sub,.hero-description,.hero-copy>.button{animation:rise .9s var(--spring) both}
.hero .eyebrow{animation-delay:.1s}.hero-sub{animation-delay:.75s}.hero-description{animation-delay:.9s}.hero-copy>.button{animation-delay:1.05s}
.hero-bottom{animation:fade-in 1s ease 1.4s both}
.motion-toggle{display:inline-flex;align-items:center;gap:10px;margin-left:auto;margin-right:40px;min-height:44px;padding:0;border:0;background:none;color:#c6d0b9;font-family:var(--mono);font-size:max(9px,.58rem);letter-spacing:.08em;text-transform:uppercase}
.motion-toggle i{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 0 #d8ef9b80;animation:ping 2.2s ease-out infinite}
.motion-toggle[aria-pressed=true] i{background:transparent;border:1px solid #c6d0b9;animation:none}
.motion-toggle:hover{color:var(--lime)}

/* Split headings rise line by line. */
.split .line{display:block;overflow:hidden;padding:0 .12em .14em 0;margin-bottom:-.14em}
.motion-ok .split .line-in{display:inline-block;transform:translateY(108%) rotate(2deg);transform-origin:0 100%;transition:transform 1.15s var(--spring);transition-delay:calc(var(--i)*110ms + 80ms)}
.motion-ok .split.in .line-in{transform:none}
.motion-ok .hero h1 .line-in{transition-delay:calc(var(--i)*130ms + 150ms)}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
 .motion-ok .hero h1 em{background:linear-gradient(100deg,var(--lime) 42%,#fbffe9 50%,var(--lime) 58%) 100% 0/260% 100% no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:sheen 2.2s ease 1.5s both}
}

/* Generic reveals and drawn section rules. */
.motion-ok .rv{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform 1.1s var(--spring);transition-delay:var(--d,0ms)}
.motion-ok .rv.in{opacity:1;transform:none}
.motion-ok .section-label{position:relative;border-bottom-color:transparent}
.motion-ok .section-label:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--line);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--spring) .1s}
.motion-ok .boundary .section-label:after{background:#56604d}.motion-ok .horizon .section-label:after{background:#526046}
.motion-ok .section-label.in:after{transform:scaleX(1)}
.button{translate:var(--bx,0px) var(--by,0px);transition:background .25s,transform .3s var(--ease),box-shadow .3s,translate .45s var(--spring)}

/* Kinetic type band, driven by scroll position and velocity. */
.reel{overflow:hidden;padding:46px 0 38px;background:var(--paper);border-top:1px solid var(--line);user-select:none}
.reel-row{display:flex;width:max-content;white-space:nowrap;font-family:var(--display);font-size:clamp(54px,8.6vw,138px);line-height:1.04;letter-spacing:-.02em;color:var(--ink);transform:translateX(calc(var(--rx,0)*-1px)) skewX(var(--skew,0deg));will-change:transform}
.reel-row span{padding-right:.3em}.reel-row em{color:#6f8a3a}
.reel-outline{color:transparent;-webkit-text-stroke:1px #8b937f;transform:translateX(calc(var(--rx,0)*1px - 55%)) skewX(var(--skew,0deg))}

/* Control chain fills as it scrolls into view. */
.chain{position:relative}
.chain:before{content:'';position:absolute;left:0;top:-1px;height:2px;width:calc(var(--cp,0)*100%);background:linear-gradient(90deg,#8aa456,#5d7a2c);z-index:1}
.chain-number{position:relative;z-index:2;transition:background .5s,color .5s,border-color .5s,transform .6s var(--spring)}
.chain article.lit .chain-number{background:var(--ink);color:var(--lime);border-color:var(--ink);transform:scale(1.12)}
.chain article.lit h3{color:#2c3a1d}

/* The demo responds with physical cues. */
.mini-boundary:after{content:'';position:absolute;left:calc(60% + 6px);top:39px;width:12px;height:12px;border:1px solid var(--signal);border-radius:50%;opacity:0;pointer-events:none}
.packet:before{content:'';position:absolute;right:100%;top:50%;width:0;height:1px;background:linear-gradient(90deg,transparent,var(--signal));transition:width .7s var(--ease)}
.lab.running .packet:before,.lab.complete[data-state=allow] .packet:before{width:90px}
.lab.running .boundary-line{animation:boundary-glow .7s ease-in-out infinite alternate}
.lab.running .decision-led{animation:blink .35s steps(2) infinite}
.lab.complete .boundary-line{animation:boundary-hit .8s ease-out}
.lab.complete[data-state=deny] .packet{animation:shake .5s cubic-bezier(.36,.07,.19,.97) .55s both}
.lab.complete[data-state=deny] .mini-boundary:after,.lab.complete[data-state=review] .mini-boundary:after{animation:ripple 1.1s ease-out .5s 2}
.lab.complete[data-state=review] .packet{animation:hold-pulse 1s ease-in-out .5s 3}
.checks li{position:relative;overflow:hidden}
.checks li.active:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#d8ef9b1c,transparent);animation:scan .55s ease-in-out infinite}
.lab.complete .result>span{animation:stamp .55s var(--spring)}
.lab.complete .check-symbol{animation:pop .5s var(--spring) both}
.lab.complete .checks li:nth-child(2) .check-symbol{animation-delay:.06s}.lab.complete .checks li:nth-child(3) .check-symbol{animation-delay:.12s}.lab.complete .checks li:nth-child(4) .check-symbol{animation-delay:.18s}

/* Ambient loops (pausable). */
.hero.is-live .authority-plane{animation:draw 1.3s var(--ease) .9s both,plane-fill 1.2s ease 1.6s both,plane-breathe 4.5s ease-in-out 2.8s infinite}
.horizon-rule i{position:relative;overflow:visible}
.horizon-rule i:after{content:'';position:absolute;top:-2px;left:0;width:5px;height:5px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px 2px #d8ef9b66;animation:travel 3.2s cubic-bezier(.6,0,.4,1) infinite}
.horizon-rule i:last-of-type:after{animation-delay:1.6s}
.horizon-rule b{animation:seal-glow 3.2s ease-in-out 1.3s infinite}
.motion-paused .hero .halo,.motion-paused .authority-plane,.motion-paused .horizon-rule i:after,.motion-paused .horizon-rule b{animation-play-state:paused!important}

@keyframes fade-in{from{opacity:0}}
@keyframes rise{from{opacity:0;transform:translateY(26px)}}
@keyframes frame-rise{from{opacity:0;transform:translateY(90px)}}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes plane-fill{from{fill-opacity:0}}
@keyframes plane-breathe{50%{fill-opacity:.16}}
@keyframes breathe{50%{opacity:.55}}
@keyframes sheen{from{background-position:100% 0}to{background-position:0 0}}
@keyframes ping{0%{box-shadow:0 0 0 0 #d8ef9b80}80%,100%{box-shadow:0 0 0 9px #d8ef9b00}}
@keyframes boundary-glow{to{box-shadow:0 0 22px 2px var(--signal);background:#d8ef9b2a}}
@keyframes boundary-hit{0%{box-shadow:0 0 30px 6px var(--signal)}100%{box-shadow:0 0 0 0 transparent}}
@keyframes blink{50%{opacity:.2}}
@keyframes shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-7px)}40%,60%{transform:translateX(7px)}}
@keyframes ripple{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(7)}}
@keyframes hold-pulse{50%{box-shadow:0 0 0 8px #bfa26622}}
@keyframes scan{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes stamp{0%{transform:scale(1.7);opacity:0;filter:blur(3px)}100%{transform:none;opacity:1;filter:none}}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.35)}100%{transform:none}}
@keyframes travel{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:100%;opacity:0}}
@keyframes seal-glow{50%{box-shadow:0 0 28px #d8ef9b40;border-color:var(--lime)}}

@media(max-width:760px){.motion-toggle{margin:0}.reel{padding:32px 0 26px}.reel-row{font-size:clamp(46px,14vw,80px)}.gate-art .frame-3{translate:calc(var(--hp,0)*60px) calc(var(--hp,0)*-90px)}.gate-art .frame-2{translate:calc(var(--hp,0)*30px) calc(var(--hp,0)*-45px)}}
@media(prefers-reduced-motion:reduce){.motion-ok .rv,.motion-ok .split .line-in{opacity:1!important;transform:none!important}.gate-art .frame,.hero-copy{translate:none!important}.hero-copy{opacity:1!important}.gate-canvas,.motion-toggle{display:none!important}.reel-row{transform:none!important}.reel-outline{transform:translateX(-20%)!important}.chain:before{width:100%}.motion-ok .section-label:after{transform:none}}
@media print{.reel,.gate-canvas,.motion-toggle{display:none!important}.rv,.line-in{opacity:1!important;transform:none!important}.hero-copy{translate:none;opacity:1}.boundary,.horizon{clip-path:none!important;background:#fff}.motion-ok .hero h1 em{-webkit-text-fill-color:#111;background:none}}

/* Consistent vectors: no platform-font-dependent arrow or status glyphs. */
.ui-icon{display:inline-block;flex:none;width:18px;height:18px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.header-contact,.text-link,.contact-person a,footer a{align-items:center}
.header-contact>span,.button>span,.text-link>span,.scenario-picker b,.revoke>span,.download-record>span,.scene-skip>span,.plus,.check-symbol{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.check-symbol .ui-icon{width:14px;height:14px}.packet .ui-icon{width:16px;height:16px}.proposal-icon .ui-icon{width:24px;height:24px}.proof-note>span{display:inline-flex;padding-top:2px}.menu>span>.ui-icon,.plus .ui-icon{width:16px;height:16px}
[hidden]{display:none!important}
:root{--header-height:94px}html{scroll-padding-top:calc(var(--header-height) + 16px)}
.global-motion-toggle{position:fixed;inset:auto 20px 20px auto;z-index:50;margin:0!important;background:#0e120fee;color:#e9efd9;padding:0 17px;border:1px solid #879a6b;border-radius:999px;box-shadow:0 5px 25px #0002;backdrop-filter:blur(12px);font-size:10px;min-height:44px}

/* Scroll chapters: sticky holds the stage while native scrolling scrubs its depth. */
.scroll-scene{--scene-p:.5;background:#0e120f;color:#edf0e3;position:relative}
.scene-sticky{padding:36px 7% 30px;min-height:650px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;overflow:hidden;isolation:isolate}
.scroll-scene.pin-enabled{height:250svh}
.pin-enabled>.scene-sticky{position:sticky;top:var(--header-height);height:calc(100svh - var(--header-height));min-height:0}
.scene-meta,.scene-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;font-family:var(--mono);font-size:9px;letter-spacing:.05em;position:relative;z-index:2}
.scene-meta{border-bottom:1px solid #667259;padding-bottom:13px;color:#bbc7ac}
.scene-skip{display:inline-flex;align-items:center;gap:14px;min-height:44px;letter-spacing:0}
.scene-skip:hover{color:var(--lime)}
.scene-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:6%;align-items:center;flex:1;min-height:0}
.scene-copy h2{font-size:clamp(42px,5vw,74px);line-height:1.03;margin:19px 0 21px;position:relative;z-index:2}
.scene-copy h2 em{color:var(--lime)}
.scene-copy>p:not(.eyebrow){font-size:13px;color:#b8c7a9;max-width:330px;line-height:1.7}
.scene-copy .eyebrow{font-size:9px;color:#b2c69b}
.scene-steps{list-style:none;padding:0;margin:28px 0 0;max-width:380px}
.scene-steps li{display:flex;gap:17px;padding:12px 0;border-top:1px solid #4d5b42;color:#aebd9f;transition:color .2s}
.scene-steps li>span{font-family:var(--mono);font-size:9px;line-height:1.7;width:20px;flex:none}
.scene-steps strong{display:block;font-size:12px;font-weight:400;line-height:1.5}
.scene-steps small{font-size:10px;display:block;line-height:1.6;margin-top:3px;color:#a9b99a}
.scene-steps li.is-current{color:var(--lime)}
.scene-steps li.is-current>span{color:#0e120f;background:var(--lime);height:20px;width:20px;display:grid;place-items:center;border-radius:50%}
.scene-footer{color:#aabc98;font-size:8px;min-height:20px}
.scene-meter{height:1px;background:#60734c;flex:1;max-width:360px;margin-left:auto}
.scene-meter i{display:block;height:2px;background:var(--lime);transform:scaleX(var(--scene-p,.5));transform-origin:left}
.spatial-art,.evidence-art{position:relative;min-width:0;width:100%;height:410px;perspective:1100px;perspective-origin:50% 45%;display:grid;place-items:center;isolation:isolate}
.spatial-art:before{content:'';position:absolute;inset:-15%;background:radial-gradient(ellipse,#c9e69b14,transparent 65%);pointer-events:none}
.spatial-floor{position:absolute;width:420px;height:340px;left:50%;top:60%;background:repeating-linear-gradient(0deg,transparent 0 39px,#a9c17e20 40px),repeating-linear-gradient(90deg,transparent 0 39px,#a9c17e20 40px);transform:translate(-50%,-50%) rotateX(75deg) rotateZ(-25deg);mask-image:radial-gradient(ellipse,#000,transparent 70%)}
.portal-rig{position:relative;width:210px;height:285px;transform-style:preserve-3d;transform:rotateX(calc(8deg + var(--scene-p)*10deg)) rotateY(calc(-38deg + var(--scene-p)*42deg)) rotateZ(-7deg);margin-top:-35px}
.portal-frame{position:absolute;inset:0;border:23px solid #a3ac90;box-shadow:inset 0 0 0 1px #e5ecd2,0 0 0 1px #b7c4a0;transform-style:preserve-3d;background:transparent}
.portal-frame:after{content:'';position:absolute;right:-23px;top:-23px;bottom:-23px;width:20px;background:linear-gradient(90deg,#535f48,#35412c);transform:rotateY(90deg);transform-origin:right}
.portal-frame i{position:absolute;left:-23px;right:-23px;top:-23px;height:20px;background:#bec9ac;transform:rotateX(90deg);transform-origin:top}
.portal-back{transform:translateZ(calc(-130px - var(--scene-p)*50px));opacity:.55}
.portal-middle{transform:translateZ(calc(0px + var(--scene-p)*15px));border-color:#b6bca8}
.portal-front{transform:translateZ(calc(130px + var(--scene-p)*70px));border-color:#d2d4c2}
.portal-membrane{position:absolute;inset:18px 20px;background:linear-gradient(135deg,#d8ef9b15,#d8ef9b03);border:1px solid #d8ef9b;box-shadow:0 0 30px #d8ef9b18;transform:translateZ(50px);display:grid;place-items:center}
.portal-membrane span{font-family:var(--mono);font-size:8px;line-height:1.8;letter-spacing:.1em;color:#d8ef9b;text-align:center}
.action-cube{position:absolute;left:50%;top:62%;width:16px;height:16px;transform-style:preserve-3d;transform:translate3d(calc(-200px + var(--scene-p)*340px),0,260px) rotateY(-20deg)}
.action-cube i{position:absolute;inset:0;background:#e0f4ae;box-shadow:0 0 25px #d8ef9b70}
.action-cube i:nth-child(2){background:#8aa855;transform:rotateY(90deg);transform-origin:right}
.action-cube i:nth-child(3){background:#b8d884;transform:rotateX(90deg);transform-origin:top}
.spatial-trace{position:absolute;left:-160px;right:-120px;top:65%;height:1px;background:linear-gradient(90deg,transparent,#d8ef9b99,transparent);transform:translateZ(150px)}
.spatial-outcomes{position:absolute;bottom:42px;display:flex;gap:8px;font-family:var(--mono);font-size:8px;opacity:calc(.3 + var(--scene-p)*.7);transform:translateY(calc(12px - var(--scene-p)*12px))}
.spatial-outcomes span{padding:8px 12px;border:1px solid #8caa5c;color:#d8ef9b}.spatial-outcomes span:nth-child(2){color:#f1b4a0;border-color:#a87862}.spatial-outcomes span:nth-child(3){color:#bfa266;border-color:#98864f}
.spatial-caption{position:absolute;bottom:0;left:0;right:0;text-align:center;font-family:var(--mono);font-size:8px;line-height:1.6;letter-spacing:.03em;color:#b1c49e}
.evidence-scene{background:#e8eae0;color:var(--ink)}
.evidence-scene .scene-meta{border-color:#b9c1ac;color:#566548}.evidence-scene .scene-copy h2 em{color:#60763f}.evidence-scene .scene-copy .eyebrow,.evidence-scene .scene-copy>p:not(.eyebrow){color:#536545}
.evidence-scene .scene-steps li{border-color:#bdc7b0;color:#59694b}.evidence-scene .scene-steps small{color:#59694b}.evidence-scene .scene-steps li.is-current{color:#26391b}.evidence-scene .scene-steps li.is-current>span{background:#354a24;color:var(--lime)}.evidence-scene .scene-footer,.evidence-scene .spatial-caption{color:#556747}.evidence-scene .scene-meter{background:#b7c4a6}.evidence-scene .scene-meter i{background:#49652d}.evidence-scene .scene-skip:hover{color:#283e1a}
.record-rig{position:relative;width:290px;height:210px;transform-style:preserve-3d;transform:rotateX(calc(54deg - var(--scene-p)*46deg)) rotateY(calc(-14deg + var(--scene-p)*14deg)) rotateZ(calc(-26deg + var(--scene-p)*22deg));margin-top:-10px}
.record-layer{position:absolute;inset:0;padding:23px;background:#f5f5ec;border:1px solid #aebf95;border-radius:5px;box-shadow:0 16px 25px #1a2d1614;backface-visibility:hidden;display:flex;flex-direction:column}
.record-layer:after{content:'';position:absolute;left:5px;right:5px;bottom:-5px;height:5px;background:#a6b597;border-radius:0 0 4px 4px}
.record-action{transform:translate3d(calc(-45px + var(--scene-p)*45px),0,calc(-130px + var(--scene-p)*50px));background:#d9decd}
.record-authority{transform:translate3d(calc(15px - var(--scene-p)*15px),0,0);background:#e8eddc}
.record-evidence{transform:translate3d(calc(60px - var(--scene-p)*60px),0,calc(130px - var(--scene-p)*50px));background:linear-gradient(145deg,#fcfcf4,#e5eecf)}
.record-layer>span{font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:#526b3d}.record-layer>b{font-family:var(--display);font-weight:400;font-size:38px;letter-spacing:-.02em;margin:16px 0;color:#2e4420}.record-layer>i{height:1px;background:#acbd98;width:88%;margin-bottom:10px}.record-layer>i:nth-of-type(2){width:65%}.record-layer>small{font-family:var(--mono);font-size:7px;letter-spacing:.06em;margin-top:auto;color:#526b3d}
.evidence-orbit{position:absolute;width:390px;height:390px;border:1px solid #b5c5a2;border-radius:50%;transform:rotateX(68deg) rotateZ(calc(var(--scene-p)*40deg));opacity:.55;box-shadow:0 0 0 55px #becba214,0 0 0 100px #becba20a}
.hero-scroll,.horizon-scroll{--scene-p:0}
@media(min-width:1000px) and (min-height:800px){
 .hero-scroll.pin-enabled{height:170svh}.hero-scroll.pin-enabled>.hero{position:sticky;top:var(--header-height);height:calc(100svh - var(--header-height));min-height:0;padding-top:35px}
 .hero-scroll.pin-enabled .hero-copy{padding-bottom:30px;opacity:calc(1 - var(--scene-p)*.35);translate:0 calc(var(--scene-p)*-35px)}
 .hero-scroll.pin-enabled .hero h1{font-size:clamp(72px,6.7vw,100px);margin:24px 0 22px}
 .hero-scroll.pin-enabled .hero-description{margin:14px 0 23px}.hero-scroll.pin-enabled .hero-sub{font-size:18px}
 .hero-scroll.pin-enabled .sculpture{transform:perspective(1100px) rotateY(calc(var(--scene-p)*-9deg)) scale(calc(1 + var(--scene-p)*.08));transform-origin:55% 50%}
 .horizon-scroll.pin-enabled{height:170svh}.horizon-scroll.pin-enabled>.horizon{position:sticky;top:var(--header-height);min-height:calc(100svh - var(--header-height));display:flex;flex-direction:column;justify-content:center}
 .horizon-scroll.pin-enabled .horizon-rule{perspective:800px}.horizon-scroll.pin-enabled .horizon-rule b{transform:rotateY(calc(-28deg + var(--scene-p)*56deg)) rotateX(calc(12deg - var(--scene-p)*24deg)) translateZ(45px);box-shadow:calc(var(--scene-p)*-20px) 18px 35px #0002}
}
@media(max-width:1050px){.scene-sticky{padding-left:6%;padding-right:6%}.scene-layout{gap:4%}.scene-copy h2{font-size:48px}.portal-rig{width:170px;height:245px}.spatial-art,.evidence-art{height:370px}.record-rig{width:250px;height:190px}.record-layer{padding:19px}.record-layer>b{font-size:34px}.scene-meta{font-size:8px}}
@media(max-width:760px){
 .scene-sticky{padding:17px 6% 19px;min-height:710px;gap:16px}.scroll-scene.pin-enabled{height:210svh}.scene-layout{display:flex;flex-direction:column;align-items:stretch;gap:0;justify-content:center}
 .scene-meta{font-size:8px;gap:16px;padding-bottom:8px}.scene-meta>span{max-width:130px;line-height:1.7}.scene-skip{font-family:var(--sans);font-size:10px;gap:8px;text-align:right;max-width:170px;line-height:1.5}
 .scene-copy .eyebrow{font-size:8px}.scene-copy h2{font-size:clamp(36px,8.5vw,52px);margin:12px 0}.scene-copy h2 br{display:none}.scene-copy h2 em{display:block}
 .scene-copy>p:not(.eyebrow){font-size:12px;max-width:100%}.scene-steps{margin-top:16px;display:grid;grid-template-columns:repeat(3,1fr);max-width:100%;gap:10px}
 .scene-steps li{display:block;padding:10px 0;position:relative}.scene-steps li>span{display:grid;height:20px;width:20px;place-items:center;margin-bottom:8px}.scene-steps strong{font-size:10px;line-height:1.5}.scene-steps small{font-size:10px;margin-top:4px}
 .spatial-art,.evidence-art{height:240px;min-height:205px;flex:1;max-height:310px;perspective:950px}
 .portal-rig{width:110px;height:150px;margin-top:-4px}.portal-frame{border-width:14px}.portal-frame:after{right:-14px;top:-14px;bottom:-14px;width:14px}.portal-frame i{left:-14px;right:-14px;top:-14px;height:14px}
 .portal-membrane{inset:10px 11px}.portal-membrane span{font-size:5px}.portal-back{transform:translateZ(calc(-75px - var(--scene-p)*25px))}.portal-front{transform:translateZ(calc(75px + var(--scene-p)*35px))}
 .spatial-trace{left:-100px;right:-100px;transform:translateZ(80px)}.action-cube{width:12px;height:12px;transform:translate3d(calc(-130px + var(--scene-p)*240px),0,140px)}
 .spatial-outcomes{bottom:21px;font-size:7px}.spatial-outcomes span{padding:5px 9px}.spatial-caption{font-size:7px;bottom:0}.spatial-floor{width:300px;height:240px}
 .scene-footer{font-size:7px;gap:15px;min-height:17px}.scene-meter{max-width:180px}
 .record-rig{width:190px;height:140px;margin-top:0}.record-layer{padding:14px}.record-layer>b{font-size:28px;margin:11px 0}.record-layer>span{font-size:6px}.record-layer>small{font-size:5px}.record-layer>i{margin-bottom:7px}.record-evidence{transform:translate3d(calc(35px - var(--scene-p)*35px),0,calc(85px - var(--scene-p)*30px))}.record-action{transform:translate3d(calc(-35px + var(--scene-p)*35px),0,calc(-85px + var(--scene-p)*30px))}
 .evidence-orbit{width:260px;height:260px}.global-motion-toggle{right:12px;bottom:12px;padding:0 13px;font-size:9px;min-height:42px}
 footer{padding-bottom:78px}
}
@media(max-height:700px) and (max-width:760px){.scene-sticky{min-height:640px}.scene-steps small{display:none}.scene-copy h2{font-size:34px}.spatial-art,.evidence-art{height:205px;min-height:180px}}
@media(prefers-reduced-motion:reduce){.scroll-scene.pin-enabled,.hero-scroll.pin-enabled,.horizon-scroll.pin-enabled{height:auto!important}.pin-enabled>.scene-sticky,.hero-scroll.pin-enabled>.hero,.horizon-scroll.pin-enabled>.horizon{position:relative!important;top:auto!important;height:auto!important;min-height:0}.scene-sticky{padding-top:35px;padding-bottom:35px}.hero-scroll .hero{min-height:0}.portal-rig,.record-rig,.horizon-rule b,.hero-scroll .sculpture{transform:none!important}.scene-meter i{transform:scaleX(1)}.global-motion-toggle{display:none!important}}
@media print{.scroll-scene,.hero-scroll,.horizon-scroll{height:auto!important}.scene-sticky,.pin-enabled>.scene-sticky,.hero-scroll>.hero,.horizon-scroll>.horizon{position:relative!important;top:auto!important;height:auto!important;min-height:0}.scene-sticky{padding:25px 0}.scroll-scene{background:#fff;color:#111}.scene-copy h2 em,.scene-copy p,.scene-steps li,.scene-steps small{color:#111!important}.spatial-art,.evidence-art,.scene-footer,.scene-skip,.global-motion-toggle{display:none!important}.scene-layout{display:block}.scene-steps{max-width:none}.scene-steps li>span{color:#111!important;background:#fff!important}}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;transition:none!important}
.motion-paused .rv,.motion-paused .split .line-in{opacity:1!important;transform:none!important}
.motion-paused .section-label:after{transform:none!important}
.motion-paused .gate-art .frame,.motion-paused .hero-copy{translate:none!important}.motion-paused .hero-copy{opacity:1!important}
.motion-paused .gate-art{transform:none!important}.motion-paused .button{translate:none!important}
.motion-paused .horizon,.motion-paused .boundary{clip-path:none!important}
/* The canvas and SVG keep one coordinate system; depth lives inside their frames. */
.hero-scroll.pin-enabled .sculpture{transform:none}

/* Chapter film: settled beats, large camera moves and cards passing through depth. */
.scroll-scene.pin-enabled{height:340svh}
.scene-meter i{transform:scaleX(var(--track-p,.5))}
.portal-rig{transform:rotateX(calc(28deg - var(--scene-p)*34deg)) rotateY(calc(-62deg + var(--scene-p)*95deg)) rotateZ(calc(-14deg + var(--scene-p)*18deg)) scale(calc(.78 + var(--scene-p)*.42))}
.portal-front{transform:translateZ(calc(90px + var(--scene-p)*140px))}.portal-back{transform:translateZ(calc(-90px - var(--scene-p)*130px))}
.record-rig{transform:rotateX(calc(70deg - var(--scene-p)*82deg)) rotateY(calc(-28deg + var(--scene-p)*42deg)) rotateZ(calc(-38deg + var(--scene-p)*45deg)) scale(calc(.75 + var(--scene-p)*.3))}
.record-action{transform:translate3d(calc(-100px + var(--scene-p)*100px),calc(-40px + var(--scene-p)*40px),calc(-190px + var(--scene-p)*100px))}
.record-evidence{transform:translate3d(calc(110px - var(--scene-p)*110px),calc(45px - var(--scene-p)*45px),calc(190px - var(--scene-p)*100px))}
.spatial-art:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,#e6f9c208 50%,transparent 65%);transform:translateX(calc(-80% + var(--scene-p)*160%));pointer-events:none}
.editorial-scene{background:transparent;color:var(--ink);margin-top:45px}
.editorial-stage{padding:25px 0;min-height:0;gap:20px}
.editorial-scene .scene-meta{color:#566548;border-color:#aebba1}.editorial-scene .scene-skip:hover{color:#283e1a}.editorial-scene .scene-footer{color:#526441}.editorial-scene .scene-meter{background:#b0bda1}.editorial-scene .scene-meter i{background:#526b36}
.editorial-caption>span{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#5e734a;display:block;margin-bottom:14px}
.editorial-caption>h3{font-family:var(--display);font-size:clamp(34px,4.2vw,66px);line-height:1.05;letter-spacing:-.02em;font-weight:400;max-width:850px}
.pin-deck{perspective:1100px}
.editorial-scene.pin-enabled{height:360svh}
.editorial-scene[data-scroll-scene=proof].pin-enabled{height:460svh}
.editorial-scene.pin-enabled .pin-deck{position:relative;flex:1;min-height:240px;max-height:390px;border:0;margin:0;display:block;isolation:isolate}
.editorial-scene.pin-enabled .pin-deck>*{position:absolute;inset:0;opacity:var(--panel-opacity,0);z-index:var(--panel-z,0);transform:translate3d(calc(var(--panel-offset,0)*22%),calc(var(--panel-depth,0)*16px),calc(var(--panel-depth,0)*-100px)) rotateY(calc(var(--panel-offset,0)*-24deg)) rotateX(calc(var(--panel-depth,0)*4deg));background:linear-gradient(130deg,#fafbf3,#e4ebd8);border:1px solid #a9b998;border-radius:4px;box-shadow:0 22px 45px #27331b14;backface-visibility:hidden;padding:clamp(25px,4vw,55px);transition:none;overflow:visible;min-height:0;pointer-events:none}
.editorial-scene.pin-enabled .pin-deck>*.panel-current{pointer-events:auto}
.editorial-scene.pin-enabled .principle-notes>div{display:grid;grid-template-columns:70px 1fr;gap:20px;align-content:center}
.editorial-scene.pin-enabled .principle-notes h3{font-family:var(--display);font-size:clamp(28px,4.3vw,58px);line-height:1.08;letter-spacing:-.015em;max-width:650px}.editorial-scene.pin-enabled .principle-notes p{font-size:15px;max-width:550px;margin:0}.editorial-scene.pin-enabled .principle-notes .index{font-size:48px;color:#627c45}
.editorial-scene.pin-enabled .chain article{display:flex;flex-direction:column;justify-content:center;border:1px solid #a9b998}.editorial-scene.pin-enabled .chain-number{margin:0 0 20px}.editorial-scene.pin-enabled .chain h3{font-size:clamp(38px,5vw,68px);margin:0 0 17px}.editorial-scene.pin-enabled .chain p{min-height:0;font-size:16px;max-width:560px}.editorial-scene.pin-enabled .chain-caption{font-size:10px;margin-top:22px}.editorial-scene.pin-enabled .chain:before{display:none}
.editorial-scene.pin-enabled .evidence-list article{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:23px}.editorial-scene.pin-enabled .evidence-list h3{font-size:clamp(30px,4.5vw,60px);line-height:1.08;max-width:700px;margin-top:16px}.editorial-scene.pin-enabled .evidence-list p{font-size:16px;max-width:650px}.editorial-scene.pin-enabled .badge{font-size:10px}
.scene-counter{min-width:55px;text-align:right}.editorial-scene.pin-enabled .rv{opacity:var(--panel-opacity,0);transition:none!important}
.compact-scene .scene-copy h2{font-size:clamp(32px,4vw,52px);margin:12px 0}.compact-scene .scene-steps{margin-top:15px}.compact-scene .scene-steps li{padding:9px 0}.compact-scene .spatial-art,.compact-scene .evidence-art{height:330px}
@media(min-width:761px){.editorial-scene.pin-enabled .pin-deck>*{inset:0 7%}}
@media(max-width:760px){
 .scroll-scene.pin-enabled{height:300svh}.editorial-scene{margin-top:30px}.editorial-stage{padding:17px 0 22px;gap:20px}.editorial-scene.pin-enabled{height:350svh}.editorial-scene[data-scroll-scene=proof].pin-enabled{height:450svh}
 .editorial-caption>h3{font-size:clamp(31px,7.8vw,46px)}.editorial-caption>span{font-size:9px;margin-bottom:12px}
 .editorial-scene .scene-meta>span{max-width:48%;font-size:8px}.editorial-scene .scene-skip{max-width:45%;font-size:10px}
 .editorial-scene.pin-enabled .pin-deck{min-height:270px;max-height:360px}
 .editorial-scene.pin-enabled .pin-deck>*{padding:27px 23px;transform:translate3d(calc(var(--panel-offset,0)*19%),calc(var(--panel-depth,0)*16px),calc(var(--panel-depth,0)*-100px)) rotateY(calc(var(--panel-offset,0)*-22deg))}
 .editorial-scene.pin-enabled .principle-notes>div{grid-template-columns:1fr;align-content:center;gap:20px}.editorial-scene.pin-enabled .principle-notes p{grid-column:1;font-size:14px}.editorial-scene.pin-enabled .principle-notes h3{font-size:36px}.editorial-scene.pin-enabled .principle-notes .index{font-size:28px}
 .editorial-scene.pin-enabled .chain h3{font-size:44px}.editorial-scene.pin-enabled .chain p{font-size:14px;max-width:100%}.editorial-scene.pin-enabled .chain-caption{font-size:9px}
 .editorial-scene.pin-enabled .evidence-list h3{font-size:34px}.editorial-scene.pin-enabled .evidence-list p{font-size:14px}.editorial-scene.pin-enabled .badge{font-size:9px}.editorial-scene.pin-enabled .evidence-list article{gap:18px}
 .pin-enabled>.scene-sticky{height:calc(100svh - var(--header-height));min-height:0}
 .compact-scene .scene-copy h2{font-size:34px;line-height:1.04}.compact-scene .scene-copy>p:not(.eyebrow){font-size:11px}.compact-scene .scene-steps small{display:none}.compact-scene .scene-steps{margin-top:12px}.compact-scene .scene-steps strong{font-size:10px}.compact-scene .spatial-art,.compact-scene .evidence-art{height:220px;min-height:170px;max-height:260px}
 .compact-scene .scene-layout{justify-content:space-between}.compact-scene .scene-meta{min-height:48px}.compact-scene .scene-footer{min-height:18px}
 .portal-front{transform:translateZ(calc(55px + var(--scene-p)*65px))}.portal-back{transform:translateZ(calc(-55px - var(--scene-p)*65px))}
 .record-action{transform:translate3d(calc(-55px + var(--scene-p)*55px),calc(-20px + var(--scene-p)*20px),calc(-100px + var(--scene-p)*45px))}.record-evidence{transform:translate3d(calc(55px - var(--scene-p)*55px),calc(20px - var(--scene-p)*20px),calc(100px - var(--scene-p)*45px))}
}
@media(max-width:760px) and (min-height:600px){
 .hero-scroll.pin-enabled{height:240svh}.hero-scroll.pin-enabled>.hero{position:sticky;top:var(--header-height);height:calc(100svh - var(--header-height));min-height:0;padding:20px 6% 0;gap:0}
 .hero-scroll.pin-enabled .hero-copy{flex:none;padding:0;translate:none;opacity:1}.hero-scroll.pin-enabled .hero h1{font-size:clamp(45px,11vw,65px);line-height:.95;margin:13px 0 14px}.hero-scroll.pin-enabled .hero-sub{font-size:14px;line-height:1.4}.hero-scroll.pin-enabled .hero-description{display:none}.hero-scroll.pin-enabled .hero .button{margin-top:14px;min-height:44px;font-size:10px;padding:11px 15px}
 .hero-scroll.pin-enabled .hero .eyebrow{font-size:8px}.hero-scroll.pin-enabled .sculpture{height:auto;flex:1;min-height:150px;max-height:300px;margin:12px 0 0}.hero-scroll.pin-enabled .gate-art{height:100%;width:100%;max-height:280px;margin:0;object-fit:contain}.hero-scroll.pin-enabled .art-top,.hero-scroll.pin-enabled .art-bottom{display:none}.hero-scroll.pin-enabled .hero-bottom{margin-top:0;padding:10px 0;gap:0;min-height:30px}.hero-scroll.pin-enabled .hero-bottom>a{display:none}.hero-scroll.pin-enabled .hero-bottom>span{font-size:8px}
}
@media(prefers-reduced-motion:reduce){.editorial-scene.pin-enabled,.scroll-scene.pin-enabled{height:auto!important}.editorial-scene .pin-deck>*{position:relative!important;inset:auto!important;opacity:1!important;transform:none!important;pointer-events:auto!important;box-shadow:none!important}.editorial-scene .pin-deck{display:grid!important;max-height:none!important;min-height:0!important}.scene-sticky{height:auto!important}}
@media print{.editorial-scene .pin-deck>*{position:relative!important;inset:auto!important;opacity:1!important;transform:none!important}.editorial-scene .pin-deck{display:block!important;height:auto!important;max-height:none!important}.editorial-scene .scene-sticky{display:block!important}}
@media(max-width:760px){.compact-scene.editorial-scene .editorial-stage{gap:12px;padding:14px 0}.compact-scene.editorial-scene .editorial-caption>h3{font-size:31px}.compact-scene.editorial-scene .editorial-caption>span{margin-bottom:9px}.compact-scene.editorial-scene .scene-meta{min-height:44px}.compact-scene.editorial-scene .pin-deck{min-height:260px;max-height:350px}.compact-scene.editorial-scene .evidence-list h3{font-size:30px}.compact-scene.editorial-scene .evidence-list p{font-size:13px}.compact-scene.editorial-scene .pin-deck>*{padding:23px 21px}}
/* Executive narrative: commercial clarity within the established spatial identity. */
.usecase{background:#e9ecdf}.usecase-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:10%;align-items:center}.usecase .eyebrow{font-size:9px;color:#5b7144;margin-bottom:22px}.usecase h2{font-size:clamp(42px,5.2vw,76px);margin-bottom:25px}.usecase .lead{font-size:17px}.usecase-layout>div>p:not(.lead):not(.eyebrow){font-size:13px;color:#58664d;margin-top:20px}.supplier-visual{border:1px solid #a6b796;padding:29px;background:linear-gradient(140deg,#f5f7ef,#e1e9d5);box-shadow:15px 22px 50px #25321e10;transform:perspective(1200px) rotateY(-7deg) rotateX(3deg)}.supplier-visual>span{font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:#546b3b}.supplier-row{display:flex;flex-direction:column;gap:8px;padding:22px 0;border-bottom:1px solid #bdc9ad}.supplier-row small{font-size:10px;color:#5a694e}.supplier-row strong{font-family:var(--display);font-size:25px;font-weight:400;letter-spacing:-.02em}.supplier-row.emphasis{color:#37551d}.supplier-visual>p{font-size:10px;color:#59694c;margin-top:22px}
.platforms{background:#0e120f;color:#eef2e6}.platforms .section-label{color:#b4c3a4;border-color:#586d46}.platforms-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:10%;align-items:end}.platforms-heading h2{font-size:clamp(42px,4.8vw,70px)}.platforms-heading h2 em{color:var(--lime)}.platforms-heading p{font-size:14px;color:#bccab0}.platform-names{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin-top:45px;border:1px solid #637351}.platform-names span{display:grid;place-items:center;min-height:90px;font-family:var(--sans);font-size:18px;letter-spacing:-.02em;border-right:1px solid #637351}.platform-names span:last-child{border:0}.platform-note{font-size:10px;color:#bac9ac;margin-top:20px;max-width:800px}
.bank-change{margin:25px 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.bank-change>div{border:1px solid #61734e;padding:13px 10px}.bank-change small{font-size:9px;color:#adbf9b;display:block;margin-bottom:8px}.bank-change strong{font-family:var(--display);font-size:20px;font-weight:400}.proposal>h3{line-height:1.4}.contact h2{font-size:clamp(39px,4.7vw,68px)}.contact .pilot-priority{margin-top:20px}.contact .pilot-priority strong{font-weight:600;color:#344b22}.ecosystem{background:#e8ecdf}.ecosystem>h2{font-size:clamp(40px,4.8vw,68px);max-width:900px}.ecosystem-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:42px;border-top:1px solid #aebc9d;border-left:1px solid #aebc9d}.ecosystem-grid article{padding:30px;border-right:1px solid #aebc9d;border-bottom:1px solid #aebc9d}.ecosystem-grid article>span{font-family:var(--mono);font-size:9px;letter-spacing:.03em;color:#536b3b}.ecosystem-grid h3{font-family:var(--display);font-size:30px;letter-spacing:-.01em;margin:22px 0 15px}.ecosystem-grid p{font-size:13px;color:#58674c;max-width:480px}.ecosystem-note{font-size:11px;color:#55664a;margin-top:24px;max-width:850px}.horizon .horizon-caption{line-height:1.8}.decision .lab-actions{margin-top:22px}.receipt-body>p{font-size:12px;line-height:1.8}.proposal-note{line-height:1.7}
@media(max-width:1050px){.platform-names{grid-template-columns:repeat(3,1fr)}.platform-names span{min-height:80px;border-bottom:1px solid #637351}.platform-names span:nth-child(3){border-right:0}.platform-names span:nth-child(n+4){border-bottom:0}.platforms-heading{gap:6%}.usecase-layout{gap:6%}}
@media(max-width:760px){.usecase-layout,.platforms-heading{grid-template-columns:1fr;gap:32px}.usecase h2{font-size:clamp(39px,9vw,57px)}.usecase .lead{font-size:16px}.usecase-layout>div>p:not(.lead):not(.eyebrow){font-size:13px}.supplier-visual{padding:23px;transform:none}.supplier-row{padding:18px 0}.supplier-row strong{font-size:24px}.platforms-heading h2{font-size:clamp(38px,8.5vw,58px)}.platforms-heading p{font-size:13px}.platform-names span{font-size:16px;min-height:75px}.platform-note{font-size:11px}.proposal .bank-change{grid-column:1/-1;grid-row:4;margin:18px 0 8px}.proposal>h3{grid-column:1;grid-row:2/4;font-size:15px;align-self:center}.proposal dl{font-size:10px}.bank-change strong{font-size:23px}.proposal .proposal-note{grid-row:5}.ecosystem-grid{grid-template-columns:1fr}.ecosystem-grid article{padding:25px 22px}.ecosystem-grid h3{font-size:29px}.ecosystem>h2{font-size:39px}.ecosystem-note{font-size:12px}.contact h2{font-size:clamp(39px,9vw,58px)}.contact-person>div>span{font-size:8px}.horizon-rule{gap:10px}.horizon-rule>span{font-size:7px;max-width:110px}}

/* Version 8 (Claude): depth tunnel decks, header motion control, 3D tilt, platform orbit, company section. */
.motion-toggle[hidden],.share-site[hidden]{display:none!important}
.header .global-motion-toggle{position:static;inset:auto;width:40px;height:40px;min-height:40px;padding:0;margin:0 0 0 18px!important;border-radius:50%;justify-content:center;gap:0;background:transparent;color:var(--ink);border:1px solid #b6bcaa;box-shadow:none;backdrop-filter:none;flex:none;transition:border-color .25s,background .25s}
.header .global-motion-toggle:hover{background:#e3e7d6;border-color:#6f8a3a;color:var(--ink)}
.header .global-motion-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.header .global-motion-toggle i{width:10px;height:12px;border-radius:0;background:none;border:solid currentColor;border-width:0 3px;box-shadow:none;animation:none}
.header .global-motion-toggle[aria-pressed=true] i{width:0;height:0;border-width:6px 0 6px 10px;border-color:transparent transparent transparent currentColor;margin-left:3px}
@media(max-width:480px){.header .global-motion-toggle{margin-left:auto!important}.header .menu{margin-left:8px}}

/* Card decks become a depth tunnel: the next card waits deeper in space, the last one flies past the camera. */
.scroll-cinema .editorial-scene.pin-enabled{height:250svh}
.scroll-cinema .editorial-scene[data-scroll-scene=proof].pin-enabled{height:270svh}
.scroll-cinema .scroll-scene.pin-enabled:not(.editorial-scene){height:235svh}
.scroll-cinema .editorial-scene.pin-enabled .pin-deck{perspective:1200px;perspective-origin:30% 45%;transform-style:preserve-3d}
.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*,.scroll-cinema .editorial-scene.pin-enabled .pin-deck>.rv{
 --in:max(0,var(--panel-offset,0));--out:max(0,var(--panel-offset,0)*-1);
 opacity:calc(1 - var(--out)*2.3 - var(--in)*.6);
 transform:translate3d(calc(var(--in)*30%),calc(var(--out)*-24%),calc(var(--in)*-380px + var(--out)*240px)) rotateY(calc(var(--in)*-17deg)) rotateX(calc(var(--out)*16deg));
 filter:blur(calc(var(--out)*7px));box-shadow:0 30px 60px #27331b1f,0 2px 0 #fff inset}
.scroll-cinema .editorial-scene.pin-enabled .pin-deck>.panel-current{box-shadow:0 40px 80px #27331b29,0 0 0 1px #8aa45666,0 2px 0 #fff inset}
.deck-ghost{position:absolute;right:3%;top:52%;z-index:-1;pointer-events:none;font-family:var(--display);font-size:clamp(200px,30vw,470px);line-height:.8;letter-spacing:-.07em;color:transparent;-webkit-text-stroke:1px #8f9f7a66;transform:translateY(calc(-50% + var(--scene-p,0)*-90px));transition:none}
.scroll-cinema .editorial-scene.pin-enabled .editorial-stage:after{content:'';position:absolute;left:-30%;right:-30%;bottom:-8%;height:58%;z-index:-2;pointer-events:none;background-image:linear-gradient(#93a37c38 1px,transparent 1px),linear-gradient(90deg,#93a37c38 1px,transparent 1px);background-size:70px 70px;background-position:0 calc(var(--scene-p,0)*-560px);transform:perspective(520px) rotateX(64deg);transform-origin:50% 100%;-webkit-mask-image:linear-gradient(to top,#000 10%,transparent 90%);mask-image:linear-gradient(to top,#000 10%,transparent 90%)}
.editorial-caption>span{color:#4b5f3b}
@media(max-width:760px){
 .scroll-cinema .editorial-scene.pin-enabled .pin-deck>*,.scroll-cinema .editorial-scene.pin-enabled .pin-deck>.rv{transform:translate3d(0,calc(var(--in)*11% + var(--out)*-30%),calc(var(--in)*-280px + var(--out)*200px)) rotateX(calc(var(--out)*18deg - var(--in)*6deg))}
 .scroll-cinema .editorial-scene.pin-enabled .pin-deck{perspective-origin:50% 20%}
 .deck-ghost{font-size:230px;top:70%;right:-4%}
 .scroll-cinema .hero-scroll.pin-enabled{height:190svh}
}

/* Hero gate tilts in 3D with the pointer; the action stream follows the same plane. */
.motion-ok .gate-art,.motion-ok .gate-canvas{transform:perspective(1000px) rotateY(calc(var(--tx,0)*16deg)) rotateX(calc(var(--ty,0)*-11deg)) translate(var(--art-x,0px),var(--art-y,0px));transition:transform .9s var(--ease),opacity 1.4s ease}

/* Cards tilt toward the pointer with a soft glare. */
.tilt{position:relative;transform-style:preserve-3d;transition:transform .55s var(--ease),opacity .9s ease;will-change:transform}
.tilt>*{position:relative}
.tilt:before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),#ffffff38,transparent 55%);opacity:0;transition:opacity .4s;z-index:1}
.tilt:hover:before{opacity:1}

/* Interoperability: the example environments orbit an independent core. Text stays in the DOM as before. */
@property --spin{syntax:'<angle>';inherits:true;initial-value:0deg}
@keyframes orbit-spin{to{--spin:360deg}}
@media(prefers-reduced-motion:no-preference){
 .motion-ok .platforms{overflow:hidden;position:relative}
 .motion-ok .platform-names{--r:min(270px,40vw);display:block;position:relative;width:calc(var(--r)*2.1);aspect-ratio:1;margin:calc(var(--r)*-.42) auto calc(var(--r)*-.5);border:0;transform:perspective(1300px) rotateX(63deg);transform-style:preserve-3d;animation:orbit-spin 46s linear infinite}
 .motion-ok .platform-names:before,.motion-ok .platform-names:after{content:'';position:absolute;inset:2%;border:1px solid #d8ef9b3d;border-radius:50%;box-shadow:0 0 60px #d8ef9b14 inset}
 .motion-ok .platform-names:after{inset:24%;border-style:dashed;border-color:#d8ef9b33}
 .motion-ok .platform-names span{position:absolute;left:50%;top:50%;min-height:0;display:block;padding:10px 18px;border:1px solid #6d8055;border-radius:999px;background:#0e120fd9;color:#eef2e6;font-size:15px;white-space:nowrap;--a:calc(var(--i)*60deg + var(--spin));transform:translate(-50%,-50%) rotateZ(var(--a)) translateX(var(--r)) rotateZ(calc(var(--a)*-1)) rotateX(-63deg);opacity:calc(.78 + .22*sin(var(--a)));scale:calc(.86 + .14*sin(var(--a)));z-index:calc(10 + round(sin(var(--a))*10))}
 .motion-ok .orbit-core{position:absolute;left:50%;top:50%;width:128px;height:128px;border-radius:50%;display:grid;place-content:center;text-align:center;gap:6px;font-weight:400;letter-spacing:.18em;font-size:17px;color:var(--lime);border:1px solid #9cb86a;background:radial-gradient(circle,#3a4a2a,#0e120f 70%);transform:translate(-50%,-50%) rotateX(-63deg) translateY(-22px);animation:core-pulse 4s ease-in-out infinite}
 .motion-ok .orbit-core small{font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:#b9c7a6;text-transform:uppercase}
 .motion-paused .platform-names,.motion-paused .orbit-core{animation-play-state:paused!important}
}
.orbit-core{display:none}
@keyframes core-pulse{50%{border-color:#e9ffb8;color:#f1ffd2}}

/* Company section. */
.about{background:var(--paper)}
.about-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:9%;align-items:start}
.about h2{font-size:clamp(40px,4.6vw,68px)}.about h2 em{color:#5f7a33}
.about .lead{margin-top:28px;max-width:560px;color:#3b4136}
.about-facts{border:1px solid var(--line);background:linear-gradient(140deg,#fbfbf5,#eaeee0);padding:10px 28px;border-radius:4px;box-shadow:0 24px 50px #27331b12}
.about-facts>div{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid #d6d9cc;align-items:baseline}
.about-facts>div:last-child{border:0}
.about-facts dt{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#56604c}
.about-facts dd{font-size:14px;line-height:1.55}.about-facts dd em{font-family:var(--display);font-size:19px}

/* Share. */
.share-site{display:inline-flex;align-items:center;gap:10px;margin:28px 0 0 22px;min-height:52px;padding:0 4px;border:0;border-bottom:1px solid #9b9e90;background:none;font-size:11px;color:var(--ink)}
.share-site:hover{color:#4f6a25;border-color:#4f6a25}
@media(max-width:760px){.about-layout{grid-template-columns:1fr;gap:30px}.about-facts{padding:6px 20px}.about-facts>div{grid-template-columns:1fr;gap:4px}.share-site{margin:18px 0 0}}

@media(prefers-reduced-motion:reduce){.deck-ghost,.scroll-cinema .editorial-scene .editorial-stage:after{display:none}.tilt{transform:none!important}.motion-ok .gate-art,.motion-ok .gate-canvas{transform:none}}
@media print{.deck-ghost,.orbit-core,.share-site,.global-motion-toggle{display:none!important}}
@media(prefers-reduced-motion:no-preference) and (max-width:760px){.motion-ok .platform-names{margin-top:24px;margin-bottom:-40px}.motion-ok .orbit-core{width:96px;height:96px;font-size:13px}.motion-ok .orbit-core small{font-size:6.5px}.motion-ok .platform-names span{font-size:13px;padding:8px 13px}}

/* Version 9 (Claude): self-hosted editorial typography and a deeper, rarer palette.
   Rule of thumb per screen: ~90% neutral, ~8% brass, ~2% lime. Lime means authority/allowed only. */
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-wght-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2')}
:root{--display:'Instrument Serif',Georgia,'Times New Roman',serif;--sans:'Inter',Arial,Helvetica,sans-serif;--mono:'IBM Plex Mono','Courier New',monospace;
 --dark:#0e120f;--paper:#f4f1e8;--ink:#1f231d;--brass:#c9b98f;--brass-soft:#c9b98f55;--brass-ink:#76643a;--terracotta:#c98a73;--ochre:#bfa266}
body{font-feature-settings:'ss01','cv11';text-rendering:optimizeLegibility}
h1,h2,h3{font-weight:400}
.hero h1{font-size:clamp(84px,8.6vw,138px);line-height:.92}
::selection{background:var(--brass);color:#0e120f}

/* Labels: never smaller than 11px; the mono face carries the precision. */
.section-label,.eyebrow,.badge,.chain-caption,.horizon-caption,.proposal-note,.scene-meta,.scene-footer,.spatial-caption,.run-note,.receipt-body dl>div,.editorial-caption>span,.contact-person>div>span,.about-facts dt,.record-layer span,.record-layer small,.portal-membrane span,.spatial-outcomes span,.range-scale,.decision-head .eyebrow,.hero-bottom,.ecosystem-grid article>span{font-size:11px!important;letter-spacing:.06em}
.art-top,.art-bottom{font-size:10px!important}

/* Brass: italics on dark, meters, numerals, seals, rings and the primary action on dark. */
.boundary-heading em,.horizon h2 em,.scene-copy h2 em,.platforms-heading h2 em,.evidence-scene h2 em{color:var(--brass)}
.principle h2 em,.contact h2 em,.about h2 em,.usecase h2 em,.progress h2 em,.architecture h2 em,.ecosystem h2 em,.questions h2 em,.editorial-caption em{color:var(--brass-ink)}
.reading-progress span{background:var(--brass)}
.scene-meter i{background:var(--brass)}
.scene-steps li.is-current{color:var(--brass)}
.scene-steps li.is-current>span,.evidence-scene .scene-steps li.is-current>span{background:var(--brass);color:#0e120f}
.chain:before{background:linear-gradient(90deg,#b8a678,var(--brass-ink))}
.chain article.lit .chain-number{color:var(--brass)}
.deck-ghost{-webkit-text-stroke:1px #a8955f5c}
.horizon-rule b{color:var(--brass);border-color:#8d7f5a}
.horizon-rule i:after{background:var(--brass);box-shadow:0 0 12px 2px #c9b98f66}
@keyframes seal-glow{50%{box-shadow:0 0 28px #c9b98f40;border-color:var(--brass)}}
.horizon:after{border-color:#c9b98f14}
.button.lime{background:var(--brass);color:#0e120f}
.button.lime:hover{background:#ddd0aa}
.button.light:hover{background:var(--brass)}
.scenario-picker button[aria-pressed=true]{background:#ece8dc;color:#0e120f;border-color:#ece8dc}
.scenario-picker button[aria-pressed=true]>span{color:#5b5a4f}
.scenario-picker button:hover{border-color:var(--brass)}
.revoke:hover,.scene-skip:hover{color:var(--brass);border-color:var(--brass)}
.motion-ok .platform-names:before{border-color:#c9b98f45;box-shadow:0 0 60px #c9b98f12 inset}
.motion-ok .platform-names:after{border-color:#c9b98f38}
.motion-ok .platform-names span{border-color:#7d7257}
.lab[data-state=deny]{--signal:var(--terracotta);--signal-bg:#c98a7309}
.lab[data-state=review]{--signal:var(--ochre);--signal-bg:#bfa26609}
.about-facts{background:linear-gradient(140deg,#fbf9f3,#ece6d6)}
.header .global-motion-toggle:hover{background:#ebe5d4;border-color:var(--brass-ink)}

/* Asset slots for Graeme's materials. Inactive until the files exist; see docs/ASSET_INTAKE.md. */
.founder-portrait{margin:0 0 22px;width:132px;height:auto;aspect-ratio:4/5;flex:none;align-self:flex-start;overflow:hidden;border-radius:3px;background:#e5dfcf;box-shadow:0 18px 40px #1f231d1f}
.founder-portrait{display:block;object-fit:cover;filter:grayscale(.25) contrast(1.02)}
.contact-person:has(.founder-portrait) .contact-mark{display:none}
.hero-film{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-film video,.hero-film img{width:100%;height:100%;object-fit:cover;mix-blend-mode:screen}
.sculpture:has(.hero-film) .gate-art,.sculpture:has(.hero-film) .gate-canvas{opacity:0}
@media(max-width:760px){.founder-portrait{width:96px}}
.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*,.scroll-cinema .editorial-scene.pin-enabled .pin-deck>.rv{background:linear-gradient(130deg,#fdfbf6,#ede7d7);border-color:#d3c8a9}
.scroll-cinema .editorial-scene.pin-enabled .pin-deck>.panel-current{box-shadow:0 40px 80px #2a24161f,0 0 0 1px #b9a77580,0 2px 0 #fff inset}
.scroll-cinema .editorial-scene.pin-enabled .editorial-stage:after{background-image:linear-gradient(#a8955f2e 1px,transparent 1px),linear-gradient(90deg,#a8955f2e 1px,transparent 1px)}

/* Version 10: the CAUVIA logo (traced from the supplied artwork; see brand/README.md).
   Site palette rendering: ink or ivory C, the core diamond in olive on light and lime on dark. */
.logo-sprite{position:absolute;width:0;height:0;overflow:hidden}
.brand{gap:12px;--logo-core:#6f8f2a}
.brand svg.logo-mark{width:31px;height:33px;fill:currentColor;stroke:none;flex:none}
.brand svg.logo-word{width:110px;height:15px;fill:none;stroke:none;flex:none}
footer .brand svg.logo-mark{width:26px;height:28px}
footer .brand svg.logo-word{width:94px;height:13px}
.contact-mark{display:block;width:72px;height:76px;margin-bottom:40px;color:#1f231d;--logo-core:#6f8f2a}
.motion-ok .orbit-core{--logo-core:var(--lime);color:#f4f1e8}
.orbit-mark{width:46px;height:48px;display:block;margin:0 auto 4px}
.contact-person:has(.founder-portrait) .contact-mark{display:none}
@media(max-width:760px){.brand svg.logo-mark{width:27px;height:29px}.brand svg.logo-word{width:96px;height:13px}.contact-mark{width:54px;height:57px;margin:0}.orbit-mark{width:34px;height:36px}}
@media print{.brand svg.logo-mark,.contact-mark{color:#111}}
.motion-ok .orbit-core small{max-width:96px;margin:0 auto;line-height:1.35;white-space:normal}

/* Version 11 (Claude): the hero film. Pinned for its track; scroll chooses the story beat.
   Without JavaScript, with reduced motion or on short screens, the original hero is shown instead. */
.film-canvas{display:none}
.film-on .hero-scroll{height:520svh}
.film-on .hero-scroll>.hero{position:sticky;top:var(--header-height,94px);height:calc(100svh - var(--header-height,94px));min-height:0;display:block;padding:0;overflow:hidden;background:#080b09}
.film-on .film-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0}
.film-on .sculpture,.film-on .hero-grid,.film-on .hero-bottom{display:none}
.film-on .hero:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#080b09f0 0,#080b09b3 30%,#080b0900 58%)}
.film-on .hero-copy{position:absolute;z-index:2;left:5%;top:8%;max-width:560px;padding:0;opacity:calc((.1 - var(--film-p,0))*16);translate:0 calc(var(--film-p,0)*-320px)}
.film-beats{list-style:none;margin:0;padding:0;position:absolute;z-index:2;left:5%;bottom:15%;width:min(640px,90%)}
.film-beats li{position:absolute;left:0;bottom:0;width:100%;opacity:0}
.film-beats span{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin-bottom:18px}
.film-beats strong{display:block;font-family:var(--display);font-weight:400;font-size:clamp(36px,4.2vw,64px);line-height:1.02;letter-spacing:-.015em;color:#f4f1e8}
.film-beats small{display:block;margin-top:18px;max-width:470px;font-size:16px;line-height:1.6;color:#cfc8b2}
.film-cta{display:inline-flex;align-items:center;gap:18px;margin-top:26px;min-height:48px;padding:0 22px;background:var(--brass);color:#0e120f;font-size:12px}
.film-cta:hover{background:#ddd0aa}
.film-hud{position:absolute;z-index:2;left:5%;right:5%;bottom:28px;display:flex;align-items:center;gap:24px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#b9b19a}
.film-skip{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:#e9e4d4;border-bottom:1px solid #6d6650}
.film-skip:hover{color:var(--brass)}
.film-progress{flex:1;height:2px;background:#ffffff1f}
.film-progress i{display:block;height:100%;background:var(--brass);transform:scaleX(0);transform-origin:left}
.film-hint{opacity:calc(1 - var(--film-p,0)*12)}
@media(max-width:760px){
 .film-on .hero-scroll{height:470svh}
 .film-on .hero:after{background:linear-gradient(180deg,#080b09e0 0,#080b0900 38%,#080b0900 52%,#080b09f2 82%)}
 .film-on .hero-copy{left:6%;right:6%;top:5%}
 .film-on .hero h1{font-size:clamp(52px,14vw,72px)}
 .film-on .hero-description{display:none}
 .film-beats{left:6%;width:88%;bottom:96px}
 .film-beats strong{font-size:clamp(28px,8vw,38px)}
 .film-beats small{font-size:14px;margin-top:12px}
 .film-beats span{margin-bottom:12px}
 .film-hud{left:6%;right:6%;bottom:18px;gap:14px}
 .film-hint{display:none}
}
@media print{.film-canvas,.film-ui{display:none!important}}

/* Scroll card sequence: one full card per stage, with a settled reading beat. */
html.scroll-cinema .editorial-scene.pin-enabled{height:340svh}
html.scroll-cinema .editorial-scene.pin-enabled .editorial-stage{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px;overflow:visible}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;position:relative;min-height:0;max-height:none;flex:1;margin:0;padding:0;perspective:1400px;isolation:isolate}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*,html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>.rv{grid-area:1/1;position:relative;inset:auto;min-width:0;min-height:0;margin:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:12px;opacity:var(--panel-opacity,0)!important;z-index:var(--panel-z,0);pointer-events:none;transform:translate3d(calc(var(--panel-offset)*8%),calc(var(--panel-offset)*7%),calc(var(--panel-depth)*-140px)) rotateY(calc(var(--panel-offset)*-12deg)) rotateX(calc(var(--panel-offset)*5deg))!important;transition:none!important;filter:none;background:linear-gradient(135deg,#fffdf7,#efe8d6);border:1px solid #b9a775;border-radius:6px;padding:clamp(20px,3vw,38px);box-shadow:0 24px 55px #2a241622;overflow:visible}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>.panel-current{pointer-events:auto}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck:before,html.scroll-cinema .editorial-scene.pin-enabled .pin-deck:after,html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*:before{display:none}
html.scroll-cinema .editorial-scene.pin-enabled .deck-ghost{display:none}
html.scroll-cinema .editorial-scene.pin-enabled .principle-notes p{max-width:650px;margin:0}
html.scroll-cinema .editorial-scene.pin-enabled .chain-number{margin:0}
html.scroll-cinema .editorial-scene.pin-enabled .chain p{min-height:0}
/* Orbit is scroll-driven now: no idle spin; platforms link to the core one by one. */
@media(prefers-reduced-motion:no-preference){
 .motion-ok .platform-names{animation:none}
 .motion-ok .platform-names span{transition:border-color .5s,color .5s,box-shadow .5s,background .5s}
 .motion-ok .platform-names span.linked{border-color:#d8ef9b;border-width:1.5px;color:#f4f1e8;background:#1e2a16}
 .motion-ok .platform-names.all-linked .orbit-core{border-color:var(--lime);border-width:2px}
}
.film-on .hero h1{font-size:min(clamp(84px,8.6vw,138px),13svh)}
.film-on .hero-copy{top:6%}
.film-hud{z-index:3}
@media(max-height:940px) and (min-width:761px){.film-on .hero-description{display:none}.film-on .hero-copy h1{margin:22px 0 22px}}

/* Version 12 (Claude): brand-book content and cards that show what they mean. */
/* Line icons: drawn when their card is revealed; the current card's accent stroke breathes. */
.ico{display:block;width:46px;height:46px;margin:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;color:#3a4232;overflow:visible}
.ico .acc{stroke:var(--brass-ink);stroke-width:1.8}
.motion-ok .rv .ico path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.3s var(--ease) calc(var(--d,0ms) + 250ms)}
.motion-ok .rv.in .ico path{stroke-dashoffset:0}
.motion-ok .rv.in .ico .acc{transition-delay:calc(var(--d,0ms) + 800ms)}
.panel-current .ico .acc{animation:acc-breathe 2.4s ease-in-out infinite}
@keyframes acc-breathe{50%{stroke:var(--brass);stroke-width:2.6}}
.principle-notes .ico{margin-top:4px}
.chain .ico{margin:6px 0 16px}
/* Edge light that follows the pointer. */
.glow{isolation:isolate}
.glow:after{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;background:radial-gradient(240px circle at var(--gx,50%) var(--gy,0%),#b9a775,transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .35s}
@media(pointer:fine){.glow:hover:after{opacity:1}}

/* The core question and what CAUVIA is / is not. */
.distinction{background:var(--paper)}
.core-question{margin:0 0 70px;max-width:1100px}
.core-question figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-ink);margin-bottom:22px}
.core-question blockquote{margin:0}
.core-question p{font-family:var(--display);font-size:clamp(34px,4.4vw,66px);line-height:1.08;letter-spacing:-.015em;color:var(--ink)}
.motion-ok .core-question p.words .w{color:#878270;transition:color .5s}
.motion-ok .core-question p.words .w.lit{color:var(--ink)}
.distinction-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}
.is-card,.isnot-card{position:relative;padding:clamp(28px,3vw,44px);border:1px solid #ddd4bd;background:#f7f3ea}
.is-card{background:linear-gradient(140deg,#13190f,#0b0f0c);color:#f1eee4;border-color:#2c3524}
.is-card .eyebrow{color:var(--lime);font-size:11px}
.isnot-card .eyebrow{color:#8a5a4a;font-size:11px}
.is-card h2{font-size:clamp(34px,3.4vw,52px);margin:18px 0 16px}.is-card h2 em{color:var(--lime)}
.is-card>p{color:#cfc8b2;font-size:15px;max-width:520px}
.flow{list-style:none;margin:30px 0 0;padding:0;display:flex;gap:10px;flex-wrap:wrap}
.flow li{display:flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid #3c4a2f;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#e3ecc8}
.flow li i{width:8px;height:8px;border-radius:50%;background:#3c4a2f}
.motion-ok .is-card.in .flow li i{animation:flow-on .6s var(--ease) forwards}
.motion-ok .is-card.in .flow li:nth-child(2) i{animation-delay:.5s}.motion-ok .is-card.in .flow li:nth-child(3) i{animation-delay:1s}
@keyframes flow-on{to{background:var(--lime);box-shadow:0 0 12px #d8ef9b88}}
.isnot{list-style:none;margin:22px 0 0;padding:0}
.isnot li{position:relative;width:max-content;max-width:100%;padding:11px 0;font-family:var(--display);font-size:clamp(22px,2vw,28px);line-height:1.2;color:var(--ink)}
.isnot li:after{content:'';position:absolute;left:-4px;right:-4px;top:54%;height:2px;background:var(--terracotta);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.motion-ok .isnot-card.in .isnot li{color:#8d8676;transition:color .6s}
.isnot-card .isnot li:after{transform:scaleX(1)}
.motion-ok .isnot-card .isnot li:after{transform:scaleX(0)}
.motion-ok .isnot-card.in .isnot li:after{transform:scaleX(1)}
.isnot li:nth-child(2):after,.isnot li:nth-child(2){transition-delay:.15s}.isnot li:nth-child(3):after,.isnot li:nth-child(3){transition-delay:.3s}.isnot li:nth-child(4):after,.isnot li:nth-child(4){transition-delay:.45s}.isnot li:nth-child(5):after,.isnot li:nth-child(5){transition-delay:.6s}.isnot li:nth-child(6):after,.isnot li:nth-child(6){transition-delay:.75s}
.isnot-card .fine{margin-top:24px;font-size:13px;color:var(--muted);max-width:440px}

/* Dated evidence. */
.stats{display:flex;gap:34px;margin-top:20px}
.stats div{display:grid;gap:4px}
.stat{font-family:var(--display);font-weight:400;font-size:clamp(40px,4vw,58px);line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.stats small{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#5a6050}
.stat-note{font-size:12px!important;color:#6a6658!important;margin-top:12px}
.proofs{margin:14px 0 10px;padding-left:20px;display:grid;gap:6px}
.proofs li{line-height:1.5}

/* Design partnership steps. */
.partner-steps{list-style:none;margin:70px 0 0;padding:34px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;position:relative}
.partner-steps:before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:#ddd4bd}
.partner-steps:after{content:'';position:absolute;left:0;top:0;height:2px;width:calc(var(--sp,1)*100%);background:var(--brass-ink)}
.partner-steps li{position:relative;padding:24px;border:1px solid #ddd4bd;background:#f7f3ea;transition:transform .5s var(--ease),border-color .5s,box-shadow .5s,background .5s}
.partner-steps li>span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--brass-ink)}
.partner-steps strong{display:block;font-family:var(--display);font-weight:400;font-size:24px;line-height:1.15;margin:14px 0 10px}
.partner-steps small{display:block;font-size:13px;line-height:1.55;color:var(--muted)}
.partner-steps li.lit{transform:translateY(-6px);border-color:#b9a775;background:linear-gradient(135deg,#fffdf7,#efe8d6);box-shadow:0 26px 50px #2a24161c}
.partner-steps li:before{content:'';position:absolute;top:-41px;left:24px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid #cbbf9f;transition:background .4s}
.partner-steps li.lit:before{background:var(--brass)}

/* Ecosystem cards: icon, number and a lift. */
.ecosystem-grid article{position:relative;transition:transform .5s var(--ease),box-shadow .5s,background .5s}
@media(pointer:fine){.ecosystem-grid article:hover{transform:translateY(-6px);box-shadow:0 30px 60px #2a24161c}}
.ecosystem-grid .ico{color:#2f3729}

@media(max-width:760px){
 .distinction-grid{grid-template-columns:1fr}
 .core-question{margin-bottom:40px}
 .partner-steps{grid-template-columns:1fr;padding:0 0 0 26px;margin-top:44px;gap:12px}
 .partner-steps:before{left:5px;right:auto;top:0;bottom:0;width:2px;height:auto}
 .partner-steps:after{left:5px;top:0;width:2px;height:calc(var(--sp,1)*100%)}
 .partner-steps li:before{top:26px;left:-27px}
 .partner-steps li.lit{transform:none}
 .stats{gap:24px}
}
@media(prefers-reduced-motion:reduce){.ico path{stroke-dashoffset:0!important}.isnot li:after{transform:scaleX(1)!important}}
@media print{.ico path{stroke-dashoffset:0!important}}
/* Deck titles sized for three columns; compact evidence on phones. */
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck h3{font-size:clamp(24px,2.1vw,32px);line-height:1.12;letter-spacing:-.01em}
html.scroll-cinema .editorial-scene.pin-enabled .evidence-list p{font-size:13px;line-height:1.6}
html.scroll-cinema .editorial-scene.pin-enabled .stats{margin-top:14px}
html.scroll-cinema .editorial-scene.pin-enabled .stat{font-size:clamp(34px,3vw,46px)}
@media(max-width:760px){
 html.scroll-cinema .editorial-scene.pin-enabled .stat{font-size:32px}
 html.scroll-cinema .editorial-scene.pin-enabled .stat-note{margin-top:8px}
 html.scroll-cinema .editorial-scene.pin-enabled .evidence-list p,html.scroll-cinema .editorial-scene.pin-enabled .proofs{font-size:13px;line-height:1.5}
}
@media(max-width:760px){
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-stage{gap:10px;padding-top:10px;padding-bottom:10px}
 html.scroll-cinema .editorial-scene.pin-enabled .scene-meta>span:first-child{display:none}
 html.scroll-cinema .editorial-scene.pin-enabled .scene-meta{padding-bottom:6px;min-height:0}
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-caption>span{margin-bottom:6px}
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-caption>h3{font-size:26px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*{padding:13px 16px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck{gap:8px}
}
@media(min-width:761px) and (max-height:820px){
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-stage{gap:12px;padding-top:12px;padding-bottom:14px}
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-caption>h3{font-size:clamp(28px,3vw,40px)}
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-caption>span{margin-bottom:6px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck{padding-top:20px;margin-top:4px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*:before{top:-27px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*{padding:18px 20px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck .ico{width:34px;height:34px;margin-bottom:10px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck h3{font-size:clamp(22px,1.9vw,28px)}
 html.scroll-cinema .editorial-scene.pin-enabled .stat{font-size:34px}
 html.scroll-cinema .editorial-scene.pin-enabled .chain-number{margin-bottom:10px}
}
.distinction-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
@media(max-width:760px){.distinction-grid{grid-template-columns:minmax(0,1fr)}.isnot li{width:auto}.is-card,.isnot-card{padding:24px 20px}.flow li{padding:9px 12px}}

/* Version 13 (Claude): readable 3D scenes. Every card title stays visible; the focused card is never covered. */
html.scroll-cinema .evidence-scene .record-rig{transform:rotateX(10deg) rotateY(-16deg);transition:transform .9s var(--ease)}
html.scroll-cinema .evidence-scene.assembled .record-rig{transform:rotateX(6deg) rotateY(-6deg)}
.record-action{--y:-100px;--z:0px}.record-authority{--y:0px;--z:30px}.record-evidence{--y:100px;--z:60px}
html.scroll-cinema .evidence-scene .record-layer{transform:translate3d(0,var(--y),var(--z));transition:transform .9s var(--ease),box-shadow .6s,background .6s,border-color .6s}
html.scroll-cinema .evidence-scene .record-layer.is-focus{transform:translate3d(var(--pop,150px),var(--y),calc(var(--z) + 90px));background:linear-gradient(145deg,#fffdf6,#eef3df);border-color:#8aa456;box-shadow:0 40px 70px #1a2d1630}
html.scroll-cinema .evidence-scene .evidence-orbit{opacity:.35}
.record-seal{position:absolute;right:18px;bottom:16px;width:56px;height:56px;border:1.5px solid #6f8f2a;border-radius:50%;display:grid;place-items:center;background:#f7f6ee;color:#1f231d;--logo-core:#6f8f2a;transform:scale(0) rotate(-40deg);opacity:0;transition:transform .7s var(--spring),opacity .4s}
.record-seal svg{width:28px;height:30px}
html.scroll-cinema .evidence-scene.assembled .record-seal{transform:none;opacity:1}
html:not(.scroll-cinema) .record-seal{transform:none;opacity:1}

html.scroll-cinema .authority-scene .portal-rig{transform:rotateX(calc(20deg - var(--scene-p)*14deg)) rotateY(calc(-55deg + var(--scene-p)*41deg)) rotateZ(calc(-10deg + var(--scene-p)*10deg)) scale(calc(.82 + var(--scene-p)*.18));z-index:1}
html.scroll-cinema .authority-scene .portal-membrane{transform:translateZ(260px);background:#0e120fb3;border-color:#d8ef9b}
.portal-membrane span{font-size:11px!important;letter-spacing:.12em;line-height:1.7}
.spatial-art .spatial-outcomes{z-index:5;opacity:calc(.55 + var(--scene-p)*.45)}
.spatial-outcomes span{background:#0e120fd9}

@media(max-width:760px){
 .record-action{--y:-60px}.record-evidence{--y:60px}
 html.scroll-cinema .evidence-scene .record-layer{--pop:60px}
 html.scroll-cinema .evidence-scene .evidence-art{height:280px;max-height:none}
 .record-seal{width:38px;height:38px;right:10px;bottom:10px}.record-seal svg{width:19px;height:20px}
 .portal-membrane span{font-size:9px!important}
}
@media(prefers-reduced-motion:reduce){.record-layer{transform:translate3d(0,var(--y),0)!important}.record-seal{transform:none;opacity:1}}
html.scroll-cinema .evidence-scene .record-rig{margin-top:-46px}
html.scroll-cinema .evidence-scene .spatial-caption{bottom:-6px;z-index:5}
@media(max-width:760px){.record-action{--y:-74px}.record-evidence{--y:74px}html.scroll-cinema .evidence-scene .evidence-art{height:310px}html.scroll-cinema .evidence-scene .record-rig{margin-top:-30px}}
html.scroll-cinema .authority-scene .portal-membrane{transform:translateZ(calc(50px + var(--scene-p)*210px))}
@media(max-width:760px){
 html.scroll-cinema .evidence-scene .record-rig{width:222px;height:150px;margin-top:6px}
 html.scroll-cinema .evidence-scene .record-layer>span{white-space:nowrap}
 html.scroll-cinema .authority-scene .portal-membrane{transform:translateZ(calc(30px + var(--scene-p)*100px))}
}
/* The gate's label always faces the reader; the 3D membrane keeps only its glow. */
.portal-membrane span{opacity:0}
.gate-label{position:absolute;left:50%;top:calc(50% - 40px);transform:translate(-50%,-50%);z-index:4;padding:9px 14px;font-family:var(--mono);font-size:11px;line-height:1.6;letter-spacing:.14em;text-transform:uppercase;text-align:center;color:var(--lime);background:#0e120fd9;border:1px solid #d8ef9b66;opacity:calc(.75 + var(--scene-p,1)*.25)}
@media(max-width:760px){
 .gate-label{top:calc(50% - 10px);font-size:10px;padding:7px 10px}
 html.scroll-cinema .evidence-scene .evidence-art{height:340px}
 html.scroll-cinema .evidence-scene .record-rig{margin-top:44px}
 .record-seal{top:10px;bottom:auto}
}
@media(max-width:760px){.record-action{--y:-66px}.record-evidence{--y:66px}html.scroll-cinema .evidence-scene .record-rig{margin-top:-6px}html.scroll-cinema .evidence-scene .spatial-caption{bottom:-2px}}
@media(max-width:760px){.record-action{--y:-72px}.record-evidence{--y:72px}.record-seal{top:46%;bottom:auto}}

/* Version 14 (Claude): fixes from the scroll-time readability audit. */
/* Unpinned chapters (screen too small to pin) flow naturally: full-height cards, no pinned-only chrome. */
.scroll-cinema .editorial-scene:not(.pin-enabled) .pin-deck{max-height:none!important;min-height:0!important;height:auto!important;display:grid;gap:14px}
.scroll-cinema .editorial-scene:not(.pin-enabled) .pin-deck>*{position:relative!important;inset:auto!important;opacity:1!important;transform:none!important;filter:none!important}
.scroll-cinema .editorial-scene:not(.pin-enabled) :is(.scene-footer,.deck-ghost){display:none!important}
.scroll-cinema .editorial-scene:not(.pin-enabled) .editorial-stage:after{display:none}
/* Small labels at the 11px floor. */
.exit-label{font-size:11px!important}
.scene-meta,.scene-meta>*,footer>div,footer>div>*{font-size:max(11px,1em)}
@media(max-width:760px){
 .motion-ok .orbit-core small{display:none}
 .spatial-art .spatial-outcomes{bottom:30px}
 .spatial-caption{bottom:0}
 html.scroll-cinema .evidence-scene .evidence-art{height:370px}
 html.scroll-cinema .evidence-scene .record-rig{margin-top:34px}
 html.scroll-cinema .evidence-scene .record-layer{--pop:44px}
}
@media(min-width:761px) and (max-width:1100px){html.scroll-cinema .evidence-scene .record-layer{--pop:80px}}
@media(max-width:760px){
 .record-action{--z:0px;--y:-64px}.record-authority{--z:12px}.record-evidence{--z:24px;--y:64px}
 html.scroll-cinema .evidence-scene .record-layer.is-focus{transform:translate3d(var(--pop,44px),var(--y),calc(var(--z) + 36px))}
 html.scroll-cinema .evidence-scene .evidence-art{height:330px}
 html.scroll-cinema .evidence-scene .record-rig{margin-top:0}
}
@media(max-width:760px){html.scroll-cinema .evidence-scene:not(.pin-enabled) .evidence-art{height:360px;max-height:none;min-height:0}}
@media(max-width:760px){html.scroll-cinema .evidence-scene:not(.pin-enabled) .evidence-art{flex:none}}
@media(min-width:761px) and (max-width:1100px){html.scroll-cinema .evidence-scene .spatial-caption{bottom:-26px}}
@media(min-width:761px){.compact-scene .record-action{--y:-80px}.compact-scene .record-evidence{--y:80px}html.scroll-cinema .compact-scene.evidence-scene .record-rig{margin-top:-40px}}
@media(min-width:761px){html.scroll-cinema .compact-scene.evidence-scene .spatial-caption{bottom:-30px}}
/* Audit pass 2. */
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck .rv:not(.pin-deck>*){opacity:1!important}
.motion-ok .pin-deck .stats.rv{transform:none}
@media(max-width:760px){
 html.scroll-cinema .evidence-scene .record-layer.is-focus{transform:translate3d(0,var(--y),calc(var(--z) + 20px))}
 html.scroll-cinema .evidence-scene .record-layer.after-focus{transform:translate3d(0,calc(var(--y) + 84px),var(--z))}
 html.scroll-cinema .evidence-scene.pin-enabled .evidence-art{height:400px}
}
.scene-meta,.scene-meta *{font-size:11px!important}
.scenario-picker button>span,.horizon-rule span{font-size:11px!important}
.motion-ok .orbit-core small{font-size:11px;letter-spacing:.06em}
.spatial-art .spatial-outcomes{opacity:calc(.82 + var(--scene-p)*.18)}
.motion-ok .platform-names span{opacity:calc(.86 + .14*sin(var(--a)))}

/* Version 14 evidence layout: a tilted column with gaps. Cards never overlap, so every title is always visible.
   Scroll lifts the current card; at the end the gaps close and the record locks together. */
.evidence-scene .record-rig{width:300px;height:calc(var(--gap,134px)*3);margin-top:0!important}
.evidence-scene .record-layer{inset:auto!important;left:0!important;right:0!important;top:50%!important;bottom:auto!important;height:var(--card-h,118px);margin-top:calc(var(--card-h,118px)/-2);padding:16px 20px;transform:translate3d(0,calc(var(--row)*var(--gap,134px)),0)!important;transition:transform .8s var(--ease),box-shadow .5s,background .5s,border-color .5s}
.record-action{--row:-1}.record-authority{--row:0}.record-evidence{--row:1}
.evidence-scene .record-layer>i{display:none}
.evidence-scene .record-layer>b{font-size:30px!important;margin:6px 0 4px!important;line-height:1.1}
.evidence-scene .record-layer>small{margin-top:auto}
.evidence-scene .record-layer:after{display:none}
html.scroll-cinema .evidence-scene .record-rig{transform:rotateX(8deg) rotateY(-14deg)!important}
html.scroll-cinema .evidence-scene.assembled .record-rig{transform:rotateX(4deg) rotateY(-4deg)!important}
html.scroll-cinema .evidence-scene .record-layer.is-focus{transform:translate3d(18px,calc(var(--row)*var(--gap,134px)),40px)!important;background:linear-gradient(145deg,#fffdf6,#eef3df);border-color:#8aa456;box-shadow:0 30px 60px #1a2d1630}
html.scroll-cinema .evidence-scene.assembled{--gap:118px}
html.scroll-cinema .evidence-scene.assembled .record-layer{border-radius:0}
html.scroll-cinema .evidence-scene.assembled .record-action{border-radius:6px 6px 0 0}
html.scroll-cinema .evidence-scene.assembled .record-evidence{border-radius:0 0 6px 6px}
.evidence-scene .record-seal{top:50%!important;bottom:auto!important;margin-top:-26px;width:52px;height:52px}
.evidence-scene .spatial-caption{bottom:-28px!important}
.evidence-scene .evidence-art{min-height:calc(var(--gap,134px)*3 + 40px)}
@media(max-width:760px){
 .evidence-scene{--gap:100px;--card-h:88px}
 html.scroll-cinema .evidence-scene.assembled{--gap:88px}
 .evidence-scene .record-rig{width:250px}
 .evidence-scene .record-layer{padding:11px 14px}
 .evidence-scene .record-layer>b{font-size:22px!important;margin:3px 0 2px!important}
 .evidence-scene .record-layer>small{display:none}
 html.scroll-cinema .evidence-scene .record-layer.is-focus{transform:translate3d(10px,calc(var(--row)*var(--gap)),24px)!important}
 .evidence-scene .record-seal{width:38px;height:38px;margin-top:-19px}
 html.scroll-cinema .evidence-scene .evidence-art,html.scroll-cinema .evidence-scene.pin-enabled .evidence-art,html.scroll-cinema .evidence-scene:not(.pin-enabled) .evidence-art{height:auto;min-height:340px;max-height:none;flex:none}
 .evidence-scene .spatial-caption{bottom:-4px!important}
}
@media(min-width:761px){.compact-scene.evidence-scene{--gap:116px;--card-h:104px}html.scroll-cinema .compact-scene.evidence-scene.assembled{--gap:104px}.compact-scene.evidence-scene .record-layer>b{font-size:26px!important}}
@media(prefers-reduced-motion:reduce){.evidence-scene .record-layer{transform:translate3d(0,calc(var(--row)*var(--gap,134px)),0)!important}}
.motion-ok .rv:focus-within,.motion-ok .rv:focus{opacity:1!important;transform:none!important;transition:none}
@media(max-width:760px){.gate-art .art-label{display:none}}
/* Orbit core sits on the ring (not raised) so labels on the far side pass clear of it. */
.motion-ok .orbit-core{transform:translate(-50%,-50%) rotateX(-63deg)!important;width:112px!important;height:112px!important}
@media(max-width:760px){.motion-ok .orbit-core{width:78px!important;height:78px!important}.orbit-mark{width:30px;height:32px}}
.evidence-scene .record-layer>span:not(.record-seal),.evidence-scene .record-layer>small{color:#3c5230}

/* Version 15: readable motion on every card, including natural-flow fallbacks. */
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck h3{font-size:clamp(25px,3vw,42px);line-height:1.1;margin:0}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck .rv{opacity:1!important;transform:none!important;transition:none!important}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>.rv{opacity:var(--panel-opacity,0)!important;transform:translate3d(calc(var(--panel-offset)*8%),calc(var(--panel-offset)*7%),calc(var(--panel-depth)*-140px)) rotateY(calc(var(--panel-offset)*-12deg)) rotateX(calc(var(--panel-offset)*5deg))!important}
html.scroll-cinema .editorial-scene:not(.pin-enabled) .pin-deck>*{opacity:1!important;transform:perspective(1100px) translate3d(0,calc((1 - var(--card-enter,1))*36px),0) rotateX(calc((1 - var(--card-enter,1))*5deg))!important;transition:none!important;transform-origin:50% 100%;will-change:auto}
@media(max-width:760px){
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck{padding:0;gap:0;margin:0}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*{padding:20px;gap:10px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck h3{font-size:28px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck .ico{width:34px;height:34px;margin:0}
 html.scroll-cinema .editorial-scene.pin-enabled .principle-notes .index{font-size:24px}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck p{font-size:14px;line-height:1.5}
}
@media(prefers-reduced-motion:reduce){.editorial-scene .pin-deck>*{transform:none!important;opacity:1!important}}
@media print{.editorial-scene .pin-deck>*{transform:none!important;opacity:1!important}}

/* Version 16: stacked deck. The next card rises, opaque, over the current one, which recedes and dims.
   No see-through cross-fade, so two cards' text never overlap. Cards share the tallest card's height. */
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck{flex:none;align-self:center;grid-template-rows:auto;perspective:none;clip-path:inset(-140px -140px 0 -140px)}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*,html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>.rv{
 align-self:stretch;justify-content:flex-start;transform-origin:50% 0;
 opacity:var(--panel-opacity,0)!important;
 transform:translate3d(0,calc(var(--panel-rise,0)*104% - var(--panel-sink,0)*4%),0) scale(calc(1 - var(--panel-sink,0)*.06))!important;
 box-shadow:0 -14px 34px #2a241612,0 22px 50px #2a24161c}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*>:is(*,.rv){opacity:calc(1 - var(--panel-sink,0))!important;transition:none!important}
@media(min-width:1000px){
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-stage{grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"meta meta" "cap deck" "ghost deck" "foot deck";column-gap:clamp(40px,5vw,96px);row-gap:18px}
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-stage>*{max-width:none;width:auto}
 html.scroll-cinema .editorial-scene.pin-enabled .scene-meta{grid-area:meta}
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-caption{grid-area:cap;align-self:end}
 html.scroll-cinema .editorial-scene.pin-enabled .editorial-caption>h3{font-size:clamp(40px,4.1vw,64px);line-height:1.02}
 html.scroll-cinema .editorial-scene.pin-enabled .pin-deck{grid-area:deck}
 html.scroll-cinema .editorial-scene.pin-enabled .scene-footer{grid-area:foot}
 html.scroll-cinema .editorial-scene.pin-enabled .deck-ghost{display:block;grid-area:ghost;position:static;align-self:center;transform:none;z-index:0;font-size:clamp(150px,15vw,250px)}
}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*{min-height:clamp(230px,34svh,330px);justify-content:center}
@media(min-width:1000px){html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*{min-height:clamp(320px,50svh,470px);padding:clamp(30px,3.4vw,52px)}}

/* Version 17: pinned blocks (blocks.js). The page holds while scrolling plays each beat, then releases.
   Every beat is visible without JavaScript, with reduced motion and while motion is paused. */
.block-pin{position:relative;height:calc(100svh - var(--header-height) + var(--scrub,0px))}
.block-pin>.block-sticky{position:sticky;top:var(--header-height);height:calc(100svh - var(--header-height));min-height:0;display:flex;flex-direction:column;justify-content:center}
.block-measure>.block-sticky{position:static!important;height:auto!important}
.block-measure [data-beat]{transform:none!important}
html.blocks-on [data-block] [data-beat]:not(.platform-names,.words,.split){opacity:var(--b,1);transform:translate3d(0,calc((1 - var(--b,1))*46px),0);transition:none!important}
html.blocks-on [data-block] h2.split[data-beat]{opacity:1;transform:none}
html.blocks-on [data-block] h2.split[data-beat] .line-in{--lb:clamp(0,calc(var(--b,1)*1.7 - var(--i,0)*.35),1);transform:translateY(calc((1 - var(--lb))*108%)) rotate(calc((1 - var(--lb))*2deg))!important;transition:none!important}
/* Cards enter in depth rather than simply fading. */
html.blocks-on [data-block] :is(.ecosystem-grid article,.partner-steps li,.is-card,.isnot-card)[data-beat]{transform-origin:50% 100%;transform:perspective(1000px) translate3d(0,calc((1 - var(--b,1))*70px),calc((1 - var(--b,1))*-120px)) rotateX(calc((1 - var(--b,1))*24deg))}
html.blocks-on [data-block] :is(.supplier-row,.about-facts>div,.flow li)[data-beat]{transform:translate3d(calc((1 - var(--b,1))*-36px),0,0);clip-path:inset(0 calc((1 - var(--b,1))*100%) 0 0)}
html.blocks-on [data-block] .supplier-visual[data-beat]{transform-origin:50% 50%;transform:perspective(1100px) rotateY(calc((1 - var(--b,1))*-28deg)) translate3d(calc((1 - var(--b,1))*60px),0,0)}
/* Strike-throughs draw one by one with scrolling; nothing is crossed out before it is reached. */
html.blocks-on [data-block] .isnot li[data-beat]{opacity:1;transform:none;transition:color .4s!important}
html.blocks-on [data-block] .isnot li[data-beat]:after{transform:scaleX(var(--b,1))!important;transition:none!important}
html.blocks-on [data-block] .isnot li[data-beat].lit{color:#8d8676}
html.blocks-on [data-block] .partner-steps li[data-beat].lit{border-color:#b9a775;background:linear-gradient(135deg,#fffdf7,#efe8d6);box-shadow:0 26px 50px #2a24161c}
@media(prefers-reduced-motion:reduce){[data-block] [data-beat]{opacity:1!important;transform:none!important;clip-path:none!important}}
@media print{.block-pin{height:auto!important}.block-pin>.block-sticky{position:static!important;height:auto!important}[data-block] [data-beat]{opacity:1!important;transform:none!important;clip-path:none!important}}
/* Compact pinned layouts so each block fits a laptop screen (these apply while measuring too). */
@media(min-width:1000px){
 html.blocks-on [data-block=platforms]>.block-sticky{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-areas:"label label" "head orbit" "note orbit";column-gap:5%;align-content:center}
 html.blocks-on [data-block=platforms] .section-label{grid-area:label}
 html.blocks-on [data-block=platforms] .platforms-heading{grid-area:head;display:block;align-self:end}
 html.blocks-on [data-block=platforms] .platforms-heading h2{font-size:clamp(40px,3.7vw,62px);margin:0 0 20px}
 html.blocks-on [data-block=platforms] .platform-note{grid-area:note;align-self:start;margin-top:22px;max-width:520px}
 html.blocks-on [data-block=platforms] .platform-names{grid-area:orbit;align-self:center;--r:min(250px,17vw,34svh);margin:calc(var(--r)*-.34) auto calc(var(--r)*-.4)}
 html.blocks-on [data-block=ecosystem] .ecosystem-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 html.blocks-on [data-block=ecosystem] h2{margin-bottom:clamp(20px,4svh,44px)}
}
@media(min-width:1000px) and (max-height:900px){
 html.blocks-on [data-block=usecase] .usecase h2,html.blocks-on [data-block=usecase] h2{font-size:clamp(38px,7.2svh,66px);margin-bottom:16px}
 html.blocks-on [data-block=usecase] .eyebrow{margin-bottom:12px}
 html.blocks-on [data-block=usecase] .lead{font-size:17px;margin-bottom:10px}
 html.blocks-on [data-block=usecase] .section-label,html.blocks-on [data-block=platforms] .section-label{margin-bottom:clamp(18px,3svh,40px)}
 html.blocks-on [data-block=ecosystem] h2{font-size:clamp(38px,6.6svh,60px)}
 html.blocks-on [data-block=ecosystem] .ecosystem-grid article{padding:22px 22px 24px}
}
@media(min-width:1000px) and (max-height:900px){
 html.blocks-on [data-block=usecase] .supplier-row{padding-top:clamp(9px,1.9svh,22px);padding-bottom:clamp(9px,1.9svh,22px)}
 html.blocks-on [data-block=usecase] .supplier-row strong{font-size:clamp(19px,3.3svh,25px)}
}
@media(min-width:1000px) and (max-height:700px){
 html.blocks-on [data-block=ecosystem] .ecosystem-grid article{padding:18px 18px 20px}
 html.blocks-on [data-block=ecosystem] .ecosystem-grid .ico{width:34px;height:34px}
}
/* overflow:hidden makes a scroll container and silently disables sticky pinning; clip keeps the orbit contained. */
.motion-ok .platforms{overflow:clip}
/* Stages use stable svh, not dvh: iOS resizes dvh only after scrolling stops, which makes pinned stages jump.
   Each track shares its stage's background, so the strip a collapsed address bar reveals is never white. */
.film-on .hero-scroll{background:#080b09}
/* Decks: longer chapters, and each card's content (numeral, icon, heading, text) settles in order as the
   card rises, so cards two and three animate as fully as card one. The icon draws itself. */
html.scroll-cinema .editorial-scene.pin-enabled{height:430svh}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*>:is(*,.rv){--ci:clamp(0,calc((1 - var(--panel-rise,0))*1.35 - var(--k,0)*.09),1);opacity:calc(var(--ci)*(1 - var(--panel-sink,0)))!important;transform:translate3d(0,calc((1 - var(--ci))*48px),0)!important;transition:none!important}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*>:nth-child(2){--k:1}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*>:nth-child(3){--k:2}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*>:nth-child(4){--k:3}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck>*>:nth-child(n+5){--k:4}
html.scroll-cinema .editorial-scene.pin-enabled .pin-deck .ico path{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--ci,1));transition:none}
html.blocks-on [data-block] [data-beat] .ico path{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--b,1));transition:none}

/* Version 17: evidence rig. Three plates wait in an exploded 3D stack; scrolling flies each one out to land
   flat and readable in turn; then they join into one record. Without motion, the column is simply shown. */
.evidence-scene .ev-stage{--card-h:98px;--gap:calc(var(--card-h) + 14px - var(--assemble,0)*13px);position:relative;width:100%;height:calc((var(--card-h) + 14px)*3 + 34px)!important;min-height:0!important;max-height:none!important;flex:none!important;display:block!important;perspective:1200px;perspective-origin:50% 35%;transform:none!important}
.evidence-scene .ev-floor{position:absolute;left:50%;top:58%;width:460px;height:300px;transform:translate(-50%,-50%) rotateX(72deg) rotateZ(-36deg);background:repeating-linear-gradient(0deg,transparent 0 33px,#76643a1c 34px),repeating-linear-gradient(90deg,transparent 0 33px,#76643a1c 34px);-webkit-mask-image:radial-gradient(ellipse,#000 30%,transparent 70%);mask-image:radial-gradient(ellipse,#000 30%,transparent 70%);opacity:calc(1 - var(--assemble,0)*.6);pointer-events:none}
.evidence-scene .ev-rig{position:absolute;left:50%;top:calc(50% - 14px);width:min(330px,92%);height:0;transform-style:preserve-3d;transform:translateX(-50%) rotateY(calc((var(--scene-p,.5) - .5)*-16deg)) rotateX(calc((var(--scene-p,.5) - .5)*6deg))}
.evidence-scene .ev-layer{position:absolute;left:0;right:0;top:calc(var(--card-h)/-2);height:var(--card-h);box-sizing:border-box;padding:14px 20px;display:flex;flex-direction:column;justify-content:center;gap:4px;
 background:linear-gradient(135deg,#fbfaf2,#e9eedb);border:1px solid #b9c39f;border-radius:6px;box-shadow:0 22px 44px #2b331c24;color:#26391b;backface-visibility:hidden;z-index:calc(10 + var(--n));
 transform:translate3d(calc((1 - var(--land,1))*70px),calc(var(--row)*var(--gap)*var(--land,1) + (1 - var(--land,1))*(var(--n)*30px + 26px)),calc((1 - var(--land,1))*(-170px - var(--n)*40px))) rotateX(calc((1 - var(--land,1))*62deg)) rotateZ(calc((1 - var(--land,1))*-38deg))}
.evidence-scene .ev-layer:not(.landed){box-shadow:0 0 0 1px #c9d4b0,0 30px 40px #2b331c14}
.evidence-scene .ev-tag,.evidence-scene .ev-layer small{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#4f6340}
.evidence-scene .ev-layer b{font-family:var(--display);font-weight:400;font-size:30px;line-height:1.05;letter-spacing:-.01em;color:#1f2a16}
.evidence-scene .ev-layer.landed{border-color:#8fa06b}
.evidence-scene.assembled .ev-layer{border-radius:0;box-shadow:0 10px 30px #2b331c1a}
.evidence-scene.assembled .ev-layer[style*="--n:0"]{border-radius:8px 8px 0 0}
.evidence-scene.assembled .ev-layer[style*="--n:2"]{border-radius:0 0 8px 8px}
.evidence-scene .ev-seal{position:absolute;right:16px;top:50%;width:46px;height:46px;margin-top:-23px;display:grid;place-items:center;border-radius:50%;background:#26391b;color:#f4f1e8;--logo-core:var(--lime);opacity:var(--assemble,1);transform:scale(calc(.6 + var(--assemble,1)*.4)) rotate(calc((1 - var(--assemble,1))*-90deg))}
.evidence-scene .ev-seal svg{width:24px;height:26px}
.evidence-scene .ev-caption{position:absolute!important;left:0;right:0;bottom:0!important;top:auto!important;text-align:center}
@media(max-height:820px) and (min-width:761px){.evidence-scene .ev-stage{--card-h:88px}.evidence-scene .ev-layer b{font-size:27px}}
@media(max-width:760px){.evidence-scene .ev-stage{--card-h:80px}.evidence-scene .ev-layer{padding:10px 16px}.evidence-scene .ev-layer b{font-size:24px}.evidence-scene .ev-floor{width:320px;height:220px}.evidence-scene .ev-seal{width:38px;height:38px;margin-top:-19px}}
@media(prefers-reduced-motion:reduce){.evidence-scene .ev-layer{transform:translate3d(0,calc(var(--row)*var(--gap)),0)!important}.evidence-scene .ev-rig{transform:translateX(-50%)!important}}
@media print{.evidence-scene .ev-layer{transform:translate3d(0,calc(var(--row)*var(--gap)),0)!important}}
/* Short laptop screens: the two spatial chapters tighten so they still pin (and keep their 3D motion). */
@media(min-width:761px){
 html.scroll-cinema .compact-scene:is(.authority-scene,.evidence-scene)>.scene-sticky{padding-top:14px;padding-bottom:12px;row-gap:16px}
 html.scroll-cinema .compact-scene:is(.authority-scene,.evidence-scene) .scene-copy h2{font-size:clamp(34px,6.3svh,52px);margin:10px 0}
 html.scroll-cinema .compact-scene:is(.authority-scene,.evidence-scene) .scene-copy>p:not(.eyebrow){margin:0}
 html.scroll-cinema .compact-scene:is(.authority-scene,.evidence-scene) .scene-steps{margin-top:12px}
}
@media(min-width:761px) and (max-height:700px){
 html.scroll-cinema .compact-scene:is(.authority-scene,.evidence-scene) .scene-steps small{display:none}
 html.scroll-cinema .compact-scene:is(.authority-scene,.evidence-scene) .scene-steps li{padding:8px 0}
}
.evidence-scene .ev-caption{text-transform:uppercase}
@media(min-width:1200px) and (min-height:821px){.evidence-scene .ev-stage{--card-h:112px}.evidence-scene .ev-rig{width:min(380px,92%)}.evidence-scene .ev-layer b{font-size:34px}}

/* Version 17: authority gate. The outcome chips sit in their own band below the 3D stage, so the gate can
   never pass over them; the gate's growth is bounded; the chips light in order when the boundary decides. */
html.scroll-cinema .authority-scene .spatial-art{padding-bottom:92px;box-sizing:border-box}
html.scroll-cinema .authority-scene .portal-rig{transform:rotateX(calc(18deg - var(--scene-p)*12deg)) rotateY(calc(-52deg + var(--scene-p)*40deg)) rotateZ(calc(-9deg + var(--scene-p)*9deg)) scale(calc(.7 + var(--scene-p)*.1))}
html.scroll-cinema .authority-scene .portal-front{transform:translateZ(calc(80px + var(--scene-p)*60px))}
html.scroll-cinema .authority-scene .portal-back{transform:translateZ(calc(-80px - var(--scene-p)*60px))}
html.scroll-cinema .authority-scene .portal-membrane{transform:translateZ(calc(40px + var(--scene-p)*60px))}
.authority-scene .spatial-art .spatial-outcomes{top:auto!important;bottom:34px!important;z-index:6;opacity:1!important;transform:none!important}
.authority-scene .spatial-art .spatial-caption{top:auto!important;bottom:4px!important}
html.scroll-cinema .authority-scene .spatial-outcomes span{opacity:.68;transition:opacity .35s,box-shadow .35s,background .35s}
html.scroll-cinema .authority-scene .spatial-outcomes span.lit{opacity:1;box-shadow:0 0 22px currentColor;background:#141c12}
@media(max-width:760px){html.scroll-cinema .authority-scene .spatial-art{padding-bottom:70px}.authority-scene .spatial-art .spatial-outcomes{bottom:26px!important}}
/* The spatial chapters get more scroll per step, so each 3D move can be followed. */
html.scroll-cinema .scroll-scene.pin-enabled:is(.authority-scene,.evidence-scene){height:360svh}
html.scroll-cinema .editorial-scene.pin-enabled.deck-measure .pin-deck>*>:is(*,.rv){transform:none!important}
html.blocks-on [data-block] [data-beat]:is(:focus,:focus-within){opacity:1!important;transform:none!important;clip-path:none!important}

/* Version 18: longer stops. More scroll per card and per 3D step, so each animation completes and holds
   before the page moves on. */
html.scroll-cinema .editorial-scene.pin-enabled{height:560svh}
html.scroll-cinema .scroll-scene.pin-enabled:is(.authority-scene,.evidence-scene){height:470svh}
.film-on .hero-scroll{height:640svh}
@media(max-width:760px){.film-on .hero-scroll{height:600svh}}
/* Phones: short text blocks become full-screen statements while pinned, instead of a small block on empty paper. */
@media(max-width:760px){
 html.blocks-on :is([data-block=intro],[data-block=architecture],[data-block=progress]) h2{font-size:clamp(46px,13.4vw,62px);line-height:1}
 html.blocks-on :is([data-block=intro],[data-block=architecture],[data-block=progress]) p{font-size:17px;line-height:1.6}
 html.blocks-on :is([data-block=intro],[data-block=architecture],[data-block=progress]) .section-label{margin-bottom:clamp(28px,6svh,56px)}
 html.blocks-on [data-block=question] .core-question p{font-size:clamp(33px,9.2vw,40px);line-height:1.14}
 html.blocks-on [data-block=question] .section-label{margin-bottom:clamp(28px,6svh,56px)}
}
/* Nothing may widen the page sideways: on phones a wider layout makes the browser zoom out and show white
   space at the edge. clip (not hidden) keeps sticky pinning working. */
html,body{overflow-x:clip}
html.blocks-on [data-block] .supplier-visual[data-beat]{transform:perspective(1100px) rotateY(calc((1 - var(--b,1))*18deg)) translate3d(calc((1 - var(--b,1))*-50px),0,0)}

/* Version 19: opening sequence (first visit per session), after the portal reveal the owner admired.
   A lime seam drops through the centre; the CAUVIA mark draws itself on it; the core lights; the wordmark and
   principle appear; then the core becomes a doorway that opens past the edges of the screen, diving into the
   hero, which settles from slightly closer behind it. */
@property --s{syntax:'<length>';inherits:false;initial-value:0px}
.intro{display:none}
html.intro-on .intro{display:block;position:fixed;inset:0;z-index:1000;animation:intro-hide 0s 3.35s forwards}
.intro-veil{position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 50%,#121a14,#060807 75%);--s:0px;
 clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,50% calc(50% - var(--s)),calc(50% + var(--s)*1.72) 50%,50% calc(50% + var(--s)),calc(50% - var(--s)*1.72) 50%,50% calc(50% - var(--s)));
 animation:intro-dive 1.05s cubic-bezier(.7,0,.25,1) 2.2s forwards}
.intro-rim{position:absolute;left:50%;top:50%;--s:0px;width:calc(var(--s)*3.44);height:calc(var(--s)*2);transform:translate(-50%,-50%);overflow:visible;opacity:0;animation:intro-dive 1.05s cubic-bezier(.7,0,.25,1) 2.2s forwards,intro-rim 1.05s linear 2.2s forwards}
.intro-rim polygon{fill:none;stroke:#d8ef9b;stroke-width:2px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 10px #d8ef9b)}
.intro-seam{position:absolute;left:50%;top:0;bottom:0;width:1px;margin-left:-.5px;background:linear-gradient(#d8ef9b00,#d8ef9b 35%,#d8ef9b 65%,#d8ef9b00);box-shadow:0 0 18px #d8ef9b;transform:scaleY(0);animation:intro-seam 1.5s cubic-bezier(.6,0,.2,1) .05s forwards}
.intro-core{position:absolute;inset:0;color:#f4f1e8;--m:clamp(78px,9vw,108px)}
.intro-mark{position:absolute;left:50%;top:50%;width:var(--m);height:calc(var(--m)*300/284);transform:translate(-50%,-50%);overflow:visible;animation:intro-mark-out .3s ease 2.15s forwards}
.intro-mark path{stroke-width:5;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.intro-mark .im-c{stroke:#f4f1e8;fill:#f4f1e800;animation:intro-draw .95s cubic-bezier(.6,0,.2,1) .35s forwards,intro-fill .5s ease 1.05s forwards}
.intro-mark .im-d{stroke:#d8ef9b;fill:#d8ef9b00;transform-origin:251px 250px;animation:intro-draw .55s ease .85s forwards,intro-core .7s cubic-bezier(.2,1.4,.4,1) 1.25s forwards}
.intro-sub{position:absolute;left:0;right:0;top:calc(50% + var(--m)*.53 + 26px);display:flex;flex-direction:column;align-items:center;gap:18px;animation:intro-mark-out .3s ease 2.05s forwards}
.intro-word{width:clamp(150px,17vw,210px);height:clamp(21px,2.4vw,29px);clip-path:inset(0 100% 0 0);animation:intro-wipe .7s cubic-bezier(.6,0,.2,1) 1.2s forwards}
.intro-line{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#c9d4b0;opacity:0;transform:translateY(8px);animation:intro-rise .6s ease 1.5s forwards}
.intro-bar{position:absolute;left:50%;bottom:clamp(36px,8vh,72px);width:min(220px,50vw);height:1px;transform:translateX(-50%);background:#f4f1e826;overflow:hidden;animation:intro-mark-out .3s ease 2.05s forwards}
.intro-bar:after{content:'';position:absolute;inset:0;background:#d8ef9b;transform:scaleX(0);transform-origin:left;animation:intro-bar 2.05s cubic-bezier(.4,0,.2,1) .1s forwards}
@keyframes intro-draw{to{stroke-dashoffset:0}}
@keyframes intro-fill{to{fill:#f4f1e8}}
@keyframes intro-core{0%{fill:#d8ef9b00;transform:scale(1)}45%{fill:#d8ef9b;transform:scale(1.18);filter:drop-shadow(0 0 14px #d8ef9b)}100%{fill:#d8ef9b;transform:scale(1);filter:drop-shadow(0 0 8px #d8ef9b99)}}
@keyframes intro-wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes intro-rise{to{opacity:1;transform:none}}
@keyframes intro-bar{to{transform:scaleX(1)}}
@keyframes intro-mark-out{to{opacity:0}}
@keyframes intro-seam{0%{transform:scaleY(0);opacity:1}50%{transform:scaleY(1);opacity:.9}100%{transform:scaleY(1);opacity:0}}
/* The doorway opens from the core's own size (about 3% of the screen) to well past the corners. */
@keyframes intro-dive{0%{--s:calc(var(--m,96px)*.16)}100%{--s:150vmax}}
@keyframes intro-rim{0%{opacity:1}70%{opacity:1}100%{opacity:0}}
@keyframes intro-hide{to{visibility:hidden;pointer-events:none}}
/* Skipped: the doorway opens at once. */
html.intro-skip .intro-core{animation:intro-mark-out .15s ease forwards}
html.intro-skip .intro-seam{animation:none;opacity:0}
html.intro-skip .intro-veil,html.intro-skip .intro-rim{animation:intro-dive2 .55s cubic-bezier(.7,0,.25,1) forwards}
html.intro-skip .intro{animation:intro-hide2 0s .6s forwards}
@keyframes intro-dive2{0%{--s:20px;opacity:1}100%{--s:150vmax;opacity:1}}
@keyframes intro-hide2{to{visibility:hidden;pointer-events:none}}
/* Behind the doorway the hero settles from slightly closer, and its headline rises as it opens. */
html.intro-on .hero-scroll>.hero{transition:transform 1.3s cubic-bezier(.2,.7,.2,1)}
html.intro-on:not(.intro-done) .hero-scroll>.hero{transform:scale(1.14)}
html.intro-on:not(.intro-done) .hero h1 .line-in{transform:translateY(108%) rotate(2deg)!important}
html.intro-on:not(.intro-done) .hero-copy>:not(h1){opacity:0;transform:translateY(18px)}
html.intro-on .hero-copy>:not(h1){transition:opacity .9s ease .35s,transform 1s var(--ease) .35s}
@media(prefers-reduced-motion:reduce){.intro{display:none!important}}
@media print{.intro{display:none!important}}

/* Version 18: chapter rail. A quiet index on wide screens: seven ticks, the current chapter named, overall
   progress as a thin fill. Blend mode keeps it legible over light and dark chapters. */
.chapter-rail{display:none}
@media(min-width:1200px) and (prefers-reduced-motion:no-preference){
 .motion-ok .chapter-rail{display:block;position:fixed;right:22px;top:50%;z-index:40;transform:translateY(-50%);mix-blend-mode:difference;color:#f4f1e8;opacity:0;transition:opacity .5s;pointer-events:none}
 .motion-ok .chapter-rail.on{opacity:1}
 .chapter-rail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;align-items:flex-end}
 .chapter-rail li{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;pointer-events:auto;opacity:.45;transition:opacity .4s}
 .chapter-rail li:before{content:'';order:2;width:12px;height:1px;background:currentColor;transition:width .45s var(--ease)}
 .chapter-rail li b{order:3;font-weight:400}
 .chapter-rail li span{order:1;max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transition:max-width .5s var(--ease),opacity .4s}
 .chapter-rail li.is-past{opacity:.7}
 .chapter-rail li.is-current{opacity:1}
 .chapter-rail li.is-current:before{width:30px}
 .chapter-rail li.is-current span,.chapter-rail li:hover span{max-width:200px;opacity:1}
 .chapter-fill{position:absolute;right:-10px;top:0;bottom:0;width:1px;background:#f4f1e83d}
 .chapter-fill:after{content:'';position:absolute;left:0;top:0;width:1px;height:100%;background:currentColor;transform:scaleY(var(--rail-p,0));transform-origin:top}
 /* While the opening plays or over the hero, the rail stays out of the way. */
 html.intro-on:not(.intro-done) .chapter-rail{opacity:0!important}
}
@media print{.chapter-rail{display:none!important}}
/* Names appear on hover; only very wide screens have room to name the current chapter without crossing content. */
@media(min-width:1200px) and (max-width:1699px){.chapter-rail li.is-current:not(:hover) span{max-width:0;opacity:0}}
@media(min-width:1200px){.chapter-rail li{opacity:.65}.chapter-rail li.is-past{opacity:.82}}

/* Version 19: depth layer (depth.js). Canvases sit behind the content of their host and never take input. */
.depth-host{position:relative;isolation:isolate}
.depth-field,.globe-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.globe-canvas{z-index:-1}
/* The closing mark as a solid: twelve stacked copies, the back ones darker, turning in 3D. */
.mark-3d{position:relative;display:block;width:72px;height:76px;margin-bottom:40px;transform-style:preserve-3d;transform:perspective(420px) rotateY(var(--ry,0deg)) rotateX(var(--rx,0deg))}
.mark-3d>.contact-mark{position:absolute;inset:0;width:100%;height:100%;margin:0;transform:translateZ(calc(var(--z,0)*-1.5px))}
.mark-3d>.mark-layer{color:#3d4a2f;--logo-core:#46601c}
@media(max-width:760px){.mark-3d{width:54px;height:57px;margin:0}}
@media print{.depth-field,.globe-canvas{display:none!important}}
/* Depth fields stay out from behind the copy: they fade in only where the 3D art lives. */
.authority-scene .depth-field,[data-block=platforms] .depth-field{-webkit-mask-image:linear-gradient(90deg,transparent 0 34%,#000 62%);mask-image:linear-gradient(90deg,transparent 0 34%,#000 62%)}
.boundary .depth-field{-webkit-mask-image:radial-gradient(60% 45% at 50% 20%,#000,transparent);mask-image:radial-gradient(60% 45% at 50% 20%,#000,transparent);opacity:.7}
@media(max-width:999px){.authority-scene .depth-field,[data-block=platforms] .depth-field{-webkit-mask-image:linear-gradient(180deg,transparent 0 38%,#000 66%);mask-image:linear-gradient(180deg,transparent 0 38%,#000 66%)}}
