/* Function studies: native diagrams, shared reading rhythm, desktop first. */
.software-study{height:2235svh;--software-black:0;--software-travel:0}
.software-stage{position:sticky;top:0;height:100svh;min-height:650px;overflow:hidden;isolation:isolate;background:var(--bg);color:#eeede9}
.software-header{position:absolute;z-index:4;top:0;left:5vw;right:5vw;height:100px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #ffffff16}
.software-header .brand{font-size:27px}.software-header nav{font-size:12px;gap:29px}.software-independence{font:9px var(--mono);color:#9ba4ad;letter-spacing:.2px;white-space:nowrap}.software-independence>span{color:var(--cyan);margin-right:10px}
.software-copy{position:absolute;z-index:3;left:5vw;top:110px;bottom:130px;width:28vw;max-width:410px;display:grid;align-content:center;pointer-events:none}
.software-chapter{grid-area:1/1;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .3s,transform .4s}
.software-chapter.active{visibility:visible;opacity:1;transform:translateY(0)}.software-chapter.active a,.software-chapter.active button{pointer-events:auto}
.software-eyebrow{display:flex;gap:10px;align-items:center;color:#8c9ca8;font:9px/1.6 var(--mono);letter-spacing:1.1px;margin:0 0 28px}.software-eyebrow i{width:4px;height:4px;border-radius:50%;background:var(--cyan)}
.software-chapter h1,.software-chapter h2{font-size:clamp(40px,3.65vw,62px);line-height:1.065;letter-spacing:-.055em;font-weight:450;margin:0 0 28px}.software-chapter h1 span,.software-chapter h2 span{color:#959ca6}
.software-body{font-size:15px;line-height:1.85;color:#a4acb5;margin:0;max-width:350px;position:relative}.software-aside{font:10px/1.9 var(--mono);color:#7e919e;margin:23px 0 0;max-width:330px}
.software-options{display:flex;flex-wrap:wrap;gap:7px;margin-top:28px;pointer-events:auto;min-height:35px}.software-options:empty{display:none}.software-options button{border:1px solid #b6dce226;border-radius:3px;padding:9px 12px;background:#000000;color:#8d9ea8;font:10px var(--mono);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.software-options button[aria-pressed="true"]{border-color:#a7dce087;color:#d8edf0;background:#000000}.software-options button:hover{color:#e3f3f3;border-color:#a7dce066}.software-options button:focus-visible,.software-chapter-nav select:focus-visible,.software-chapter-nav button:focus-visible{outline:1px solid var(--cyan);outline-offset:4px}
.software-research-link{display:inline-flex;align-items:center;gap:15px;margin-top:27px;padding:0 0 10px;border-bottom:1px solid #b8d7dd40;font-size:12px;line-height:1.6;color:#c4cfd3}.software-research-link span{color:var(--cyan)}
.software-visual{position:absolute;left:36vw;right:2vw;top:120px;bottom:125px;z-index:2;isolation:isolate;--function-opacity:1}
#software-geometry{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:var(--function-opacity);outline:none}
.software-figure-label{position:absolute;top:0;left:8%;right:8%;display:flex;justify-content:space-between;gap:20px;color:#718792;font:9px var(--mono);letter-spacing:.65px;pointer-events:none;z-index:3}
.software-figure-label span:last-child{color:#91bac4}.software-visual:before,.software-visual:after{content:'+';position:absolute;top:50%;color:#63778066;font:16px var(--mono);pointer-events:none}.software-visual:before{left:2%}.software-visual:after{right:1%}
.software-legal-host{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;visibility:hidden;pointer-events:none;z-index:2}.software-legal-host[data-visible="true"]{visibility:visible;pointer-events:auto}
.software-legal-host .legal-scene{max-height:100%}
.software-figure-note{position:absolute;bottom:3px;left:6%;right:6%;margin:0;text-align:center;color:#637d8a;font:9px/1.6 var(--mono);pointer-events:none;z-index:3}
.software-figure-note{display:none}
.software-footer{position:absolute;z-index:4;bottom:0;left:5vw;right:5vw;padding-bottom:25px}.software-caption{display:flex;justify-content:space-between;gap:25px;padding:0 210px 22px 0;font:10px var(--mono);color:#8d9ba6;letter-spacing:.15px}.software-caption a{color:#a1aeb8;white-space:nowrap}.software-caption a span{color:var(--cyan);margin-left:12px}
.software-footer-line{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #ffffff1b;padding:14px 210px 0 0;font:9px var(--mono);color:#70818e}.software-footer-line:before{content:'';position:absolute;top:-1px;left:0;width:100%;height:1px;background:#a7dce080;transform:scaleX(var(--software-travel,0));transform-origin:left}.software-scroll-label{letter-spacing:.9px}
.software-chapter-nav{display:flex;gap:12px;align-items:center}.software-chapter-nav button{padding:8px;border:0;background:none;color:#a7dce0;font-size:17px;cursor:pointer}.software-chapter-nav button:disabled{color:#46515b;cursor:default}.software-chapter-nav select{appearance:none;width:230px;max-width:25vw;color:#bbced7;background:var(--bg);border:0;border-bottom:1px solid #aacbd22a;border-radius:0;padding:10px 14px;font:10px var(--mono);cursor:pointer}.software-stage-count{font:9px var(--mono);color:#7995a3}.software-stage-count b{font-weight:400;color:#b6d4dd}
.software-blackout{position:absolute;inset:0;z-index:8;background:#000000;opacity:var(--software-black);pointer-events:none}.research-arrival{position:absolute;inset:0;z-index:6;pointer-events:none;background:#000000;opacity:1}
@media(min-width:1700px){.software-copy{max-width:460px}.software-body{font-size:17px;max-width:390px}.software-visual{left:35vw;right:3vw;top:140px;bottom:145px}.software-options button{font-size:12px}.software-aside{font-size:11px}}
@media(max-height:800px){.software-header{height:80px}.software-copy{top:90px;bottom:100px;width:29vw}.software-chapter h1,.software-chapter h2{font-size:42px;margin-bottom:21px}.software-eyebrow{font-size:8px;margin-bottom:21px}.software-body{font-size:13px;line-height:1.85}.software-aside{font-size:9px;margin-top:19px}.software-options{margin-top:20px}.software-options button{padding:8px 10px;font-size:9px}.software-visual{top:100px;bottom:102px;left:36vw;right:2vw}.software-footer{padding-bottom:16px}.software-caption{font-size:9px;padding-bottom:14px}.software-footer-line{padding-top:8px}.software-chapter-nav select{padding:8px 12px}.software-figure-label,.software-figure-note{font-size:8px}}
@media(max-width:1250px){.software-header .software-independence{display:none}.software-stage-count{display:none}.software-chapter-nav select{width:190px}.software-chapter h1,.software-chapter h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){.software-chapter,.software-options button{transition:none}}

/* A short conversation, synchronized with the introductory sculpture. */
.software-hello:not(.active){display:none}
.intro-story{display:grid}
.intro-beat{grid-area:1/1;visibility:hidden;opacity:0;transform:translateY(12px);transition:opacity .35s,transform .45s}
.intro-beat.active{visibility:visible;opacity:1;transform:none}
.software-hello h1{font-size:clamp(43px,3.9vw,65px)}
.intro-beat-nav{display:flex;gap:10px;margin-top:26px;pointer-events:auto}
.intro-beat-nav button{display:flex;align-items:center;gap:8px;border:0;background:none;padding:8px 0;color:#72818e;font:9px var(--mono);cursor:pointer}
.intro-beat-nav button:before{content:'';width:19px;height:2px;background:#4b5a6470;transition:background .3s,width .3s}
.intro-beat-nav button[aria-pressed="true"]{color:#bdebf0}
.intro-beat-nav button[aria-pressed="true"]:before{width:29px;background:#a7dce0;box-shadow:0 0 9px #a7dce048}
.software-explore{display:inline-flex;align-items:center;gap:27px;padding:10px 0;margin-top:13px;border:0;border-bottom:1px solid #b8d7dd60;background:none;color:#d4e5e9;font:12px var(--mono);cursor:pointer}
.software-explore span{color:#a7dce0;font-size:17px}
.software-explore:hover{color:#a7dce0;border-color:#a7dce0}
.software-explore:focus-visible,.intro-beat-nav button:focus-visible{outline:1px solid var(--cyan);outline-offset:5px}
.software-chapter h2[tabindex="-1"]:focus-visible{outline:1px solid #a7dce075;outline-offset:8px}
@media(max-height:800px){.software-hello h1{font-size:42px}.intro-beat-nav{margin-top:20px}.software-explore{font-size:11px;margin-top:9px}.software-hello .software-eyebrow{font-size:8px;letter-spacing:.7px}}
@media(prefers-reduced-motion:reduce){.intro-beat,.intro-beat-nav button:before{transition:none;transform:none}}

/* Alex's opening: a greeting, a place, then what we do. One message at a time. */
.software-stage[data-chapter="0"] .software-copy{inset:100px 5vw 105px;width:auto;max-width:none;text-align:center;align-content:center}
.software-stage[data-chapter="0"] .software-visual{visibility:hidden;pointer-events:none}
.software-hello{width:100%}
.software-hello .intro-story{position:relative;height:390px;align-items:center}
.software-hello .intro-beat{width:100%}
.software-hello h1,.software-hello h2{font-size:clamp(64px,6.6vw,108px);font-weight:430;line-height:1.1;letter-spacing:-.055em;margin-bottom:32px;color:#d4edef;text-shadow:0 0 24px #a7dce027,0 0 75px #a7dce015}
.software-hello h2 span{color:#a7dce0;text-shadow:0 0 21px #a7dce060,0 0 65px #a7dce027}
.software-hello .hello-word h1{font-size:clamp(190px,22vw,330px);font-weight:400;letter-spacing:-.07em;margin:0;color:#c8eff1;animation:hello-breathe 5s ease-in-out infinite}
.software-hello .software-body{max-width:650px;margin:0 auto;font-size:17px;line-height:1.8;color:#889ca5}
.software-hello .intro-beat-nav{justify-content:center;margin-top:20px}
.software-hello .software-explore{margin-top:24px}
.software-stage[data-chapter="0"][data-intro-beat="0"] .software-header,.software-stage[data-chapter="0"][data-intro-beat="0"] .software-footer,.software-stage[data-chapter="0"][data-intro-beat="0"] .intro-beat-nav{visibility:hidden}
.software-hello .anime-title-top{left:calc(50% - 60px);top:-35px}
.software-hello .anime-title-side{right:18%;top:70%}
@keyframes hello-breathe{0%,100%{text-shadow:0 0 20px #a7dce030,0 0 85px #a7dce016}50%{text-shadow:0 0 32px #a7dce070,0 0 100px #a7dce02e}}
@media(max-height:800px){.software-stage[data-chapter="0"] .software-copy{top:80px;bottom:90px}.software-hello .intro-story{height:335px}.software-hello h2{font-size:72px;margin-bottom:25px}.software-hello .software-body{font-size:15px}.software-hello .hello-word h1{font-size:220px}.software-hello .intro-beat-nav{margin-top:16px}}
@media(prefers-reduced-motion:reduce){.software-hello .hello-word h1{animation:none}}
.research-disclosure{margin-top:48px;border-block:1px solid #ffffff24}
.research-disclosure summary{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:28px 0;cursor:pointer;list-style:none;color:#d3e0e3;font-size:23px;letter-spacing:-.025em}
.research-disclosure summary::-webkit-details-marker{display:none}
.research-disclosure-meta{display:flex;align-items:center;gap:28px;font:11px var(--mono);color:#8fa2ad;letter-spacing:0}
.research-disclosure-meta i{font:24px var(--mono);font-style:normal;color:#a7dce0;transition:transform .2s}
.research-disclosure[open] .research-disclosure-meta i{transform:rotate(45deg)}
.research-disclosure summary:focus-visible{outline:1px solid #a7dce0;outline-offset:6px}
.research-disclosure .index-tools{margin-top:15px}
