@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Shippori+Mincho:wght@400;500;600;700&display=swap');

:root{--ink:#333333;--paper:#FFFFFF;--cream:#DDE9CB;--red:#990000;--blue:#4F6540;--muted:#5F5F5F;--line:#C9C9C4;--warm:#A7CF79;--black:#000000;--serif:'Shippori Mincho','Noto Serif JP',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;position:relative}body:before{content:'';position:fixed;right:-75px;bottom:8vh;width:260px;height:175px;border:1px solid #d8d2c8;border-radius:52% 48% 45% 55%;opacity:.5;transform:rotate(-12deg);pointer-events:none;z-index:-1}body:after{content:'••';position:fixed;right:42px;bottom:calc(8vh + 58px);font-family:var(--mono);font-size:11px;letter-spacing:22px;color:#d0c8bd;transform:rotate(-12deg);pointer-events:none;z-index:-1}a{color:inherit;text-decoration:none}button,select{font:inherit}.site-header{height:83px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5.4vw}.wordmark{display:flex;align-items:center;gap:11px}.wordmark-mark{background:var(--ink);color:var(--paper);display:grid;place-items:center;width:30px;height:30px;font-family:var(--serif);font-size:20px;font-style:italic}.wordmark strong{font-size:15px;letter-spacing:.08em;display:block}.wordmark small{font-family:var(--mono);font-size:8px;letter-spacing:.09em;color:var(--muted);text-transform:uppercase;display:block;margin-top:1px}.nav-links{display:flex;align-items:center;gap:31px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.nav-links a{color:#59666c}.nav-links .nav-cta{color:var(--ink);border:1px solid var(--ink);padding:10px 15px}.nav-cta span,.button span,.text-link span{font-size:15px;margin-left:8px}.menu-button{display:none;background:none;border:0;font-size:20px}.section-grid{display:grid;grid-template-columns:24% 76%;padding-left:5.4vw;padding-right:5.4vw}.hero{min-height:625px;align-items:center;overflow:hidden}.hero-copy{padding:75px 0 65px}.eyebrow,.section-label,.column-title,.detail-label,.source-type,.insight-tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.11em;font-size:10px}.eyebrow{display:flex;align-items:center;gap:10px;color:var(--red);margin-bottom:28px}.eyebrow-dot{width:8px;height:8px;border-radius:50%;background:var(--red)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(46px,6.3vw,91px);line-height:1.03;letter-spacing:-.065em;margin-bottom:27px;font-weight:500}h1 em,h2 em{font-family:var(--serif);font-weight:500;letter-spacing:-.04em}.hero-lede{max-width:475px;font-size:17px;line-height:1.65;color:#56636a}.hero-actions{display:flex;align-items:center;gap:27px;margin-top:37px}.button{display:inline-flex;align-items:center;padding:14px 19px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.button-dark{background:var(--ink);color:var(--paper)}.button-light{background:var(--paper);color:var(--ink)}.text-link{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid #899399;padding-bottom:5px}.hero-art{height:530px;position:relative;margin-left:5vw}.hero-lines{position:absolute;inset:0;width:100%;height:100%;stroke:#9ba7a6;stroke-width:1;fill:none}.hero-lines circle{fill:var(--red);stroke:none}.orbit{position:absolute;border:1px solid #bbc3bf;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.orbit-one{width:385px;height:385px}.orbit-two{width:555px;height:270px;transform:translate(-50%,-50%) rotate(31deg)}.node{position:absolute;background:var(--paper);border:1px solid #9ea8a7;display:flex;flex-direction:column;padding:13px 15px;min-width:125px;z-index:1}.node span,.node small{font-family:var(--mono);font-size:9px;color:var(--red);letter-spacing:.07em;text-transform:uppercase}.node strong{font-size:14px;margin:4px 0}.node small{font-size:8px;color:var(--muted);text-transform:none}.node-center{left:50%;top:50%;transform:translate(-50%,-50%);width:160px;height:105px;justify-content:center;text-align:center;border-color:var(--ink);background:var(--ink);color:var(--paper)}.node-center .node-kicker{color:#c77a69}.node-center small{color:#b8c0bf}.node-a{top:12%;left:3%}.node-b{top:19%;right:1%}.node-c{bottom:10%;right:10%}.signal-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);color:var(--paper);padding:19px 5.4vw;gap:25px;font-family:var(--mono);text-transform:uppercase;font-size:9px;letter-spacing:.08em}.signal-strip div{display:flex;gap:12px;align-items:center}.signal-strip span{color:#d57861}.withdrawal-notice{display:flex;align-items:flex-start;gap:18px;padding:22px 5.4vw;background:#e8ded2;border-bottom:1px solid #cfc3b7;color:var(--ink)}.notice-mark{font-size:24px;color:var(--red);line-height:1}.notice-label{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--red);margin-bottom:5px}.withdrawal-notice strong{font-family:var(--serif);font-size:17px;font-weight:500}.thesis{padding-top:133px;padding-bottom:135px}.section-label{color:var(--red);padding-top:8px}.section-label span{color:#899399;margin-left:8px}.thesis h2,.section-heading h2,.evidence-top h2,.closing h2{font-size:clamp(36px,4.3vw,62px);line-height:1.08;letter-spacing:-.055em;font-weight:500;margin-bottom:24px}.large-copy{max-width:720px;font-family:var(--serif);font-size:25px;line-height:1.45}.stat-row{display:flex;gap:80px;border-top:1px solid var(--line);margin-top:53px;padding-top:22px}.stat-row div{display:flex;flex-direction:column}.stat-row strong{font-family:var(--serif);font-size:38px;font-weight:500}.stat-row span{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.method-section{background:var(--cream);padding:105px 5.4vw 115px}.section-heading{padding:0;grid-template-columns:24% 76%}.section-heading h2{margin-bottom:17px}.section-heading p{color:var(--muted)}.method-map{display:grid;grid-template-columns:1fr 42px 1fr 42px 1fr;align-items:stretch;margin-left:24%;margin-top:60px}.method-card{min-height:265px;background:var(--paper);padding:22px;border:1px solid var(--line);position:relative;transition:.25s}.method-card.active,.method-card:hover{background:var(--ink);color:var(--paper);transform:translateY(-6px);box-shadow:0 15px 30px #0d1b2a18}.card-number{font-family:var(--mono);font-size:10px;color:var(--red)}.card-icon{font-size:29px;display:block;margin-top:36px;color:var(--red)}.method-card h3{font-family:var(--serif);font-size:27px;font-weight:500;margin:7px 0 9px}.method-card p{color:var(--muted);font-size:13px;line-height:1.55}.method-card.active p,.method-card:hover p{color:#bac2c1}.method-card button{position:absolute;bottom:20px;left:22px;background:none;border:0;border-bottom:1px solid currentColor;padding:0 0 4px;font-family:var(--mono);font-size:9px;text-transform:uppercase;color:inherit;cursor:pointer}.method-card button span{font-size:14px;margin-left:8px}.method-connector{display:grid;place-items:center;color:var(--red);font-size:21px}.method-detail{margin:34px 0 0 24%;border-left:2px solid var(--red);padding:15px 22px;background:#f4f1ebaa}.method-detail strong{display:block;font-family:var(--serif);font-size:22px;font-weight:500;margin:4px 0}.method-detail p{color:var(--muted);margin-bottom:0;font-size:13px}.evidence-section{padding-top:130px;padding-bottom:130px}.evidence-top{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:35px}.evidence-top h2{margin-bottom:10px}.evidence-top p{color:var(--muted)}.select-wrap{display:flex;flex-direction:column;gap:8px;min-width:210px}.select-wrap label{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--red);letter-spacing:.1em}.select-wrap select{background:transparent;border:0;border-bottom:1px solid var(--ink);padding:7px 0;outline:0;color:var(--ink)}.evidence-board{display:grid;grid-template-columns:42% 16% 42%;padding-top:55px}.column-title{color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:12px}.source-card,.insight-card{border:1px solid var(--line);padding:23px;margin-top:17px;min-height:167px;background:#f7f5f0}.source-card h3,.insight-card h3{font-family:var(--serif);font-size:21px;font-weight:500;line-height:1.32;margin:17px 0}.source-type{color:var(--red);font-size:9px}.source-meta{border-top:1px solid var(--line);padding-top:13px;font-family:var(--mono);font-size:8px;color:var(--muted);display:flex;justify-content:space-between;text-transform:uppercase}.source-card.faded{min-height:0;background:transparent;border-style:dashed}.source-card.faded p{margin:0;font-family:var(--mono);font-size:10px;color:var(--muted)}.evidence-line{position:relative}.evidence-line:before,.evidence-line:after{content:'';position:absolute;left:15%;right:15%;border-top:1px solid #a1aaa6}.evidence-line:before{top:30%}.evidence-line:after{top:70%}.evidence-line span{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--red);left:50%;top:29.2%}.evidence-line span:nth-child(2){top:49.2%}.evidence-line span:nth-child(3){top:69.2%}.insight-card{background:var(--ink);color:var(--paper)}.insight-card.industry{background:transparent;color:var(--ink);border-color:#9ea8a7}.insight-tag{color:#d57861}.insight-card p{font-size:13px;color:#bdc6c4}.industry p{color:var(--muted)}.quote-section{background:var(--red);color:var(--paper);padding:107px 20%;text-align:center}.quote-mark{font-family:var(--serif);font-size:80px;line-height:.6}.quote-section blockquote{font-family:var(--serif);font-size:clamp(27px,3.2vw,44px);line-height:1.25;margin:28px auto 25px;letter-spacing:-.03em}.quote-section cite{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#f3b0a0}.closing{background:var(--ink);color:var(--paper);padding-top:120px;padding-bottom:130px}.closing .section-label{color:#d57861}.closing-content{max-width:660px}.closing h2{margin-bottom:27px}.closing p{color:#b5c0be;max-width:470px;margin-bottom:34px}.closing .button-light{background:var(--paper)}footer{padding:28px 5.4vw;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-family:var(--mono);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.footer-mark{filter:none}.footer-mark .wordmark-mark{background:var(--red);color:var(--paper)}
@media(max-width:800px){.site-header{padding:0 6vw}.nav-links{display:none}.menu-button{display:block;color:var(--ink)}.nav-links.open{display:flex;position:absolute;top:83px;left:0;right:0;background:var(--paper);z-index:5;flex-direction:column;align-items:flex-start;padding:25px 6vw;border-bottom:1px solid var(--line)}.section-grid{display:block;padding-left:7vw;padding-right:7vw}.hero{padding-top:35px;min-height:auto}.hero-copy{padding:45px 0 20px}.hero-art{height:390px;margin:0 -4vw}.node-a{left:0}.node-b{right:0}.node-c{bottom:4%;right:4%}.orbit-one{width:290px;height:290px}.orbit-two{width:410px;height:210px}.signal-strip{grid-template-columns:1fr 1fr;padding:20px 7vw}.thesis,.evidence-section{padding-top:80px;padding-bottom:80px}.section-label{margin-bottom:27px}.stat-row{gap:25px}.large-copy{font-size:21px}.method-section{padding:75px 7vw}.section-heading{display:block}.method-map{display:flex;overflow-x:auto;margin:42px 0 0;gap:12px;padding:5px 3px 17px}.method-card{min-width:250px}.method-connector{display:none}.method-detail{margin-left:0}.evidence-top{display:block}.select-wrap{margin-top:25px}.evidence-board{grid-template-columns:1fr;padding-top:35px}.evidence-line{height:72px}.evidence-line:before,.evidence-line:after{left:50%;right:auto;top:10px;height:52px;border:0;border-left:1px solid #a1aaa6}.evidence-line:after{display:none}.evidence-line span{left:calc(50% - 3px);top:8px}.evidence-line span:nth-child(2){top:31px}.evidence-line span:nth-child(3){top:54px}.quote-section{padding:75px 8vw}footer{display:block;padding:25px 7vw}footer>span{display:block;margin-top:15px}}

.experiment-section{background:#ded8ce;padding:110px 5.4vw 120px;border-top:1px solid var(--line)}.artifact-compare{display:grid;grid-template-columns:1fr 74px 1fr;align-items:center;margin:62px 0 0 24%}.artifact-card{background:var(--paper);border:1px solid #b8b6af;padding:27px 29px;min-height:345px;position:relative}.artifact-machine{background:var(--ink);color:var(--paper);border-color:var(--ink)}.artifact-index{font-family:var(--mono);font-size:9px;letter-spacing:.13em;color:var(--red)}.artifact-machine .artifact-index{color:#d08b7d}.artifact-title{display:flex;align-items:center;gap:14px;margin:37px 0 15px}.artifact-title h3{font-family:var(--serif);font-size:28px;font-weight:500;line-height:1.1;margin:0}.artifact-seal{width:39px;height:39px;border:1px solid var(--red);display:grid;place-items:center;font-family:var(--serif);font-size:21px;color:var(--red)}.artifact-machine .artifact-seal{color:#d08b7d;border-color:#d08b7d}.artifact-premise{font-family:var(--serif);font-size:17px;line-height:1.45;max-width:300px}.artifact-rule{border-top:1px solid var(--line);margin:26px 0 17px}.artifact-machine .artifact-rule{border-color:#46525b}.artifact-card dl{margin:0}.artifact-card dl div{display:grid;grid-template-columns:82px 1fr;border-bottom:1px solid var(--line);padding:8px 0;gap:10px}.artifact-machine dl div{border-color:#46525b}.artifact-card dt{font-family:var(--mono);font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--red)}.artifact-machine dt{color:#d08b7d}.artifact-card dd{font-size:11px;color:var(--muted);margin:0}.artifact-machine dd{color:#bec8c6}.compare-mark{display:grid;place-items:center}.compare-mark span{font-family:var(--mono);font-size:9px;color:var(--red);border-top:1px solid var(--red);border-bottom:1px solid var(--red);padding:7px 2px;writing-mode:vertical-rl;letter-spacing:.08em}.research-caption{margin:30px 0 0 24%;border-left:2px solid var(--red);padding:10px 20px}.research-caption span{display:block;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--red);margin-bottom:5px}.research-caption strong{font-family:var(--serif);font-size:19px;font-weight:500}

@media(max-width:800px){.withdrawal-notice{padding:20px 7vw}.withdrawal-notice strong{font-size:15px}.experiment-section{padding:75px 7vw}.artifact-compare{display:flex;flex-direction:column;margin:42px 0 0;gap:14px}.artifact-card{width:100%;min-height:0}.compare-mark{height:30px}.compare-mark span{writing-mode:horizontal-tb}.research-caption{margin-left:0}.artifact-title{margin-top:27px}}

main{max-width:1380px;margin:0 auto;background:var(--paper);box-shadow:0 0 80px #0d1b2a0d}.knowledge-graph{display:grid;grid-template-columns:35% 65%;margin:62px 0 0 24%;border-top:1px solid var(--line);padding-top:27px}.knowledge-graph figcaption{padding-right:35px}.knowledge-graph figcaption span{display:block;font-family:var(--mono);font-size:9px;color:var(--red);letter-spacing:.11em;text-transform:uppercase;margin-bottom:12px}.knowledge-graph figcaption strong{display:block;font-family:var(--serif);font-size:22px;font-weight:500;line-height:1.2;margin-bottom:10px}.knowledge-graph figcaption p{font-size:12px;line-height:1.55;color:var(--muted)}.graph-stage{height:310px;position:relative;background:#f3efe7;border:1px solid #c7c5bc}.graph-stage svg{width:100%;height:100%}.graph-links path{fill:none;stroke:#a8aaa3;stroke-width:1}.graph-links .dashed{stroke-dasharray:4 5}.graph-points circle{fill:var(--paper);stroke:var(--red);stroke-width:1.5;cursor:pointer;transition:.2s}.graph-points circle:hover,.graph-points circle.selected{fill:var(--red);stroke:var(--ink);stroke-width:2}.graph-label{position:absolute;font-family:var(--mono);font-size:8px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);pointer-events:none}.label-supplier{left:13%;top:25%}.label-company{left:38%;top:47%}.label-subsidiary{left:59%;top:16%}.label-customer{right:9%;top:47%}.label-holding{left:56%;bottom:15%}.label-industry{left:12%;bottom:15%}.graph-reading{grid-column:2;margin-top:18px;padding:13px 17px;border-left:2px solid var(--red);background:#e8e2d8}.graph-reading strong{display:block;font-family:var(--serif);font-size:18px;font-weight:500;margin:4px 0}.graph-reading p{font-size:12px;color:var(--muted);margin:0}.graph-reading .detail-label{font-size:8px;color:var(--red)}
@media(max-width:800px){main{width:100%;box-shadow:none}.knowledge-graph{display:block;margin:42px 0 0}.knowledge-graph figcaption{padding-right:0;margin-bottom:18px}.graph-stage{height:250px}.graph-reading{margin-top:14px}.label-supplier{left:9%;top:24%}.label-company{left:34%;top:47%}.label-subsidiary{left:57%;top:14%}.label-customer{right:5%;top:47%}.label-holding{left:54%;bottom:12%}.label-industry{left:7%;bottom:12%}}

html{scroll-padding-top:84px}body{overflow-x:hidden}.skip-link{position:fixed;left:18px;top:-60px;z-index:1000;background:var(--ink);color:var(--paper);padding:9px 13px;font-family:var(--mono);font-size:10px;transition:top .2s}.skip-link:focus{top:14px}.paper-grain{position:fixed;inset:0;z-index:900;pointer-events:none;opacity:.035;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='4' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.reading-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:1001;pointer-events:none}.reading-progress span{display:block;width:100%;height:100%;background:var(--red);transform:scaleX(0);transform-origin:left}.site-header{position:sticky;top:0;z-index:800;background:#f4f1ebe8;backdrop-filter:blur(14px);transition:height .35s,box-shadow .35s}.site-header.is-stuck{height:66px;box-shadow:0 10px 30px #0d1b2a0c}.nav-links a.is-current{color:var(--red)}
.hero-graph{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.hero-art>.orbit,.hero-art>.node{z-index:2}.hero-art>.orbit{transition:transform .8s cubic-bezier(.16,1,.3,1),border-color .4s}.hero-art:hover .orbit-one{transform:translate(-50%,-50%) rotate(9deg) scale(1.03);border-color:#9b6a5f}.hero-art:hover .orbit-two{transform:translate(-50%,-50%) rotate(39deg) scale(.98)}
.js-reveal{opacity:0;transform:translateY(24px);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1)}.js-reveal.is-visible{opacity:1;transform:none}.artifact-card.js-reveal:nth-child(3){transition-delay:120ms}.method-card.js-reveal:nth-child(3){transition-delay:100ms}.method-card.js-reveal:nth-child(5){transition-delay:200ms}
.artifact-card[data-tilt]{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(var(--lift,0));transform-style:preserve-3d;transition:transform .18s ease,box-shadow .35s}.artifact-card[data-tilt]:hover{--lift:-5px;box-shadow:0 24px 45px #0d1b2a18}.artifact-card[data-tilt] .artifact-title,.artifact-card[data-tilt] .artifact-premise{transform:translateZ(16px)}
.graph-interface{min-width:0}.graph-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.graph-toolbar button{border:1px solid #b7b5ad;background:transparent;color:var(--muted);padding:7px 9px;font-family:var(--mono);font-size:8px;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:.25s}.graph-toolbar button:hover,.graph-toolbar button.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.graph-stage{overflow:hidden}.graph-stage canvas{position:absolute;inset:0;width:100%;height:100%}.graph-node{position:absolute;z-index:3;border:0;background:none;color:var(--muted);padding:0;cursor:pointer;transform:translate(-50%,-50%);font-family:var(--mono);font-size:8px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.graph-node i{display:block;width:22px;height:22px;margin:0 auto 6px;border:1.5px solid var(--red);border-radius:50%;background:var(--paper);transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s,box-shadow .3s}.graph-node:hover i,.graph-node.selected i{transform:scale(1.35);background:var(--red);box-shadow:0 0 0 5px #8f493e19}.graph-node.selected{color:var(--ink)}.node-supplier{left:16%;top:25%}.node-company{left:40%;top:48%}.node-company i{width:32px;height:32px}.node-subsidiary{left:61%;top:19%}.node-customer{left:82%;top:48%}.node-holding{left:59%;top:80%}.node-industry{left:20%;top:80%}.graph-status{display:block;margin-top:9px;font-family:var(--mono);font-size:8px;letter-spacing:.07em;text-transform:uppercase;color:var(--red)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js-reveal{opacity:1;transform:none;transition:none}.artifact-card[data-tilt]{transform:none!important}.hero-art>.orbit{transition:none}}
@media(max-width:800px){.site-header.is-stuck{height:70px}.hero-graph{opacity:.75}.graph-toolbar{gap:5px}.graph-toolbar button{flex:1;padding:7px 4px}.graph-node{font-size:7px}.graph-node i{width:18px;height:18px}.node-company i{width:25px;height:25px}.knowledge-graph{grid-template-columns:1fr}.graph-reading{grid-column:auto}}

.wordmark-mark.pig-mark{position:relative;border:1px solid currentColor;border-radius:48% 48% 44% 44%;background:transparent;color:var(--ink);transform:rotate(-3deg)}.wordmark-mark.pig-mark:before,.wordmark-mark.pig-mark:after{content:'';position:absolute;top:12px;width:3px;height:7px;border-radius:50%;background:currentColor}.wordmark-mark.pig-mark:before{left:8px}.wordmark-mark.pig-mark:after{right:8px}.footer-mark .wordmark-mark.pig-mark{background:transparent;color:var(--red)}
.pannage-note{display:grid;grid-template-columns:118px 1fr;gap:22px;align-items:center;margin-top:31px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.pannage-note p{font-family:var(--serif);font-size:15px;line-height:1.55;margin:0}.pannage-note sup{font-family:var(--mono);font-size:8px;color:var(--red)}.note-kicker{display:block;margin-bottom:5px;font-family:var(--mono);font-size:8px;letter-spacing:.11em;text-transform:uppercase;color:var(--red)}.forage-mark{position:relative;width:118px;height:61px;border-left:1px solid #c1b9aa;border-bottom:1px solid #c1b9aa;background:repeating-linear-gradient(165deg,transparent 0 12px,#d6d0c5 13px 14px,transparent 15px 24px)}.forage-mark span{position:absolute;width:18px;height:12px;border:1px solid var(--red);border-radius:50%;background:var(--paper);transform:rotate(-10deg)}.forage-mark span:before,.forage-mark span:after{content:'';position:absolute;top:4px;width:2px;height:3px;border-radius:50%;background:var(--red)}.forage-mark span:before{left:5px}.forage-mark span:after{right:5px}.forage-mark span:nth-child(1){left:9px;top:12px}.forage-mark span:nth-child(2){left:42px;top:35px;transform:rotate(8deg)}.forage-mark span:nth-child(3){left:72px;top:9px;transform:rotate(-4deg)}.forage-mark span:nth-child(4){right:4px;bottom:5px;transform:rotate(12deg)}.forage-mark i{position:absolute;width:7px;height:9px;border-radius:50% 50% 45% 45%;background:#8a7750}.forage-mark i:before{content:'';position:absolute;left:-1px;top:-2px;width:9px;height:3px;border-radius:50%;background:#5e684c}.forage-mark i:nth-of-type(1){left:32px;top:7px}.forage-mark i:nth-of-type(2){left:67px;bottom:4px}.forage-mark i:nth-of-type(3){right:12px;top:7px}
.hero{min-height:520px}.hero-copy{padding:52px 0 46px}.hero-art{height:440px}.thesis{padding-top:72px;padding-bottom:72px}.experiment-section{padding-top:72px;padding-bottom:76px}.artifact-compare{margin-top:38px}.artifact-card{min-height:300px}.artifact-title{margin-top:25px}.method-section{padding-top:72px;padding-bottom:76px}.method-map{margin-top:38px}.method-card{min-height:218px}.card-icon{margin-top:18px}.method-detail{margin-top:22px}.knowledge-graph{margin-top:38px;padding-top:22px}.graph-stage{height:260px}.evidence-section{padding-top:74px;padding-bottom:78px}.evidence-board{padding-top:34px}.source-card,.insight-card{min-height:150px}.quote-section,.closing{display:none}footer{padding-top:20px;padding-bottom:20px}
@media(max-width:800px){.pannage-note{grid-template-columns:1fr}.forage-mark{width:100%;max-width:180px}.hero{min-height:auto}.hero-art{height:340px}.thesis,.evidence-section{padding-top:58px;padding-bottom:58px}.experiment-section,.method-section{padding-top:58px;padding-bottom:60px}.artifact-compare,.method-map{margin-top:30px}.graph-stage{height:230px}}

.evidence-top{display:block}.evidence-top>div:first-child{max-width:690px}.example-picker{border:0;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.example-picker legend{padding:0;margin-bottom:9px;font-family:var(--mono);font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--red)}.example-picker button{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 13px;border:1px solid #b9bcb7;background:transparent;color:var(--muted);font-family:var(--serif);font-size:13px;text-align:left;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s}.example-picker button span{font-family:var(--mono);font-size:8px;color:var(--red)}.example-picker button:hover{border-color:var(--ink);transform:translateY(-2px)}.example-picker button.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.example-picker button.active span{color:#d78b7c}.example-picker button:focus-visible{outline:2px solid var(--red);outline-offset:2px}
@media(max-width:650px){.example-picker{grid-template-columns:1fr}.example-picker button{min-height:43px}}

.author-section{padding-top:64px;padding-bottom:66px;background:#e8e2d8;border-top:1px solid #c8c2b8}.author-profile{display:grid;grid-template-columns:76px minmax(0,1fr) minmax(230px,31%);gap:28px;align-items:start}.author-monogram{position:relative;width:64px;height:64px;border:1px solid var(--red);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:25px;color:var(--red)}.author-monogram i{position:absolute;bottom:12px;width:3px;height:6px;border-radius:50%;background:var(--red)}.author-monogram i:first-of-type{left:23px}.author-monogram i:last-of-type{right:23px}.author-bio h2{font-family:var(--serif);font-size:27px;font-weight:500;letter-spacing:-.035em;margin:0 0 10px}.author-bio p{max-width:610px;font-family:var(--serif);font-size:15px;line-height:1.6;color:#48575d;margin:0}.author-disclosure{border-left:2px solid var(--red);padding:11px 0 11px 18px}.author-disclosure span{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:7px}.author-disclosure p{font-size:12px;line-height:1.55;color:var(--muted);margin:0}.author-disclosure time{font-family:var(--mono);font-size:11px;color:var(--ink)}
@media(max-width:800px){.author-section{padding-top:54px;padding-bottom:56px}.author-profile{grid-template-columns:62px 1fr;gap:20px}.author-monogram{width:54px;height:54px}.author-monogram i{bottom:10px}.author-monogram i:first-of-type{left:19px}.author-monogram i:last-of-type{right:19px}.author-disclosure{grid-column:1/-1}.author-bio h2{font-size:24px}}

/* Adobe Color “Academics” palette */
body:before{border-color:var(--line)}body:after{color:var(--line)}.site-header{background:rgba(242,242,242,.92)}.wordmark-mark,.button-dark,.signal-strip,.method-card.active,.method-card:hover,.artifact-machine,.insight-card,.example-picker button.active,.graph-toolbar button.active,.graph-toolbar button:hover{background:var(--ink)}.nav-links a,.hero-lede,.section-heading p,.method-card p,.method-detail p,.evidence-top p,.source-meta,.source-card.faded p,.industry p,.author-bio p,.author-disclosure p,.artifact-card dd,.graph-toolbar button{color:var(--muted)}.orbit,.node,.source-card,.insight-card.industry,.artifact-rule,.artifact-card dl div{border-color:var(--line)}.hero-art:hover .orbit-one{border-color:var(--blue)}.node{background:var(--paper)}.node-center{background:var(--ink);border-color:var(--ink)}.node-center .node-kicker,.node span,.node small,.card-number,.source-type,.insight-tag,.detail-label,.section-label,.notice-label,.note-kicker,.artifact-index,.artifact-card dt,.research-caption span,.graph-status,.example-picker button span,.author-disclosure span{color:var(--red)}.signal-strip span,.artifact-machine .artifact-index,.artifact-machine dt,.artifact-machine .artifact-seal,.example-picker button.active span{color:var(--warm)}.node-center small,.method-card.active p,.method-card:hover p,.artifact-machine p,.artifact-machine dd,.insight-card p{color:var(--cream)}.experiment-section{background:var(--cream)}.method-section{background:var(--warm)}.artifact-card{background:var(--paper);border-color:var(--line)}.artifact-machine{border-color:var(--ink)}.artifact-seal,.compare-mark span,.research-caption,.method-detail,.graph-reading,.author-disclosure{border-color:var(--red)}.artifact-machine .artifact-seal{border-color:var(--warm)}.artifact-machine .artifact-rule,.artifact-machine dl div{border-color:rgba(176,189,217,.4)}.method-detail{background:rgba(242,242,242,.72)}.graph-stage{background:var(--paper);border-color:var(--line)}.graph-reading{background:rgba(176,189,217,.38)}.graph-node:hover i,.graph-node.selected i{box-shadow:0 0 0 5px rgba(55,82,166,.16)}.source-card{background:#FFFFFF}.insight-card.industry{background:var(--paper)}.author-section{background:var(--warm);border-color:var(--line)}.author-monogram,.wordmark-mark.pig-mark,.forage-mark span{border-color:var(--red);color:var(--red)}.forage-mark{border-color:var(--line);background:repeating-linear-gradient(165deg,transparent 0 12px,rgba(176,189,217,.58) 13px 14px,transparent 15px 24px)}.forage-mark span{background:var(--paper)}.forage-mark i{background:var(--blue)}.forage-mark i:before{background:var(--ink)}.example-picker button{border-color:var(--line)}.example-picker button:hover{border-color:var(--blue)}.paper-grain{opacity:.025}
.artifact-card.artifact-machine{background:var(--ink);color:var(--paper);border-color:var(--ink)}.artifact-card.artifact-machine h3{color:var(--paper)}.artifact-card.artifact-machine .artifact-premise,.artifact-card.artifact-machine dd{color:var(--cream)}.artifact-card.artifact-machine .artifact-index,.artifact-card.artifact-machine dt,.artifact-card.artifact-machine .artifact-seal{color:var(--warm)}

/* Compact reading edition */
.site-header{height:68px}.site-header.is-stuck{height:60px}.hero{min-height:440px}.hero-copy{padding:36px 0 32px}.hero-art{height:370px}h1{font-size:clamp(43px,5.4vw,74px)}.thesis{padding-top:44px;padding-bottom:46px}.thesis h2,.section-heading h2,.evidence-top h2{font-size:clamp(33px,3.8vw,52px);margin-bottom:16px}.large-copy{font-size:21px;line-height:1.4}.pannage-note{margin-top:22px;padding:12px 0}.stat-row{margin-top:24px;padding-top:14px}.stat-row strong{font-size:31px}.experiment-section{padding-top:48px;padding-bottom:52px}.artifact-compare{margin-top:28px;align-items:stretch}.artifact-card{min-height:260px;padding:21px 22px}.artifact-title{margin:18px 0 11px}.artifact-title h3{font-size:25px}.artifact-premise{font-size:15px}.artifact-rule{margin:17px 0 11px}.artifact-card dl div{padding:6px 0}.research-caption{margin-top:20px}.method-section{padding-top:48px;padding-bottom:52px}.method-map{margin-top:28px}.method-card{min-height:170px;padding:17px 18px}.card-icon{display:none}.method-card h3{font-size:23px;margin:23px 0 6px}.method-card p{font-size:11px}.method-card button{left:18px;bottom:13px}.method-detail{margin-top:14px;padding:10px 17px}.method-detail strong{font-size:18px}.knowledge-graph{margin-top:25px;padding-top:18px;grid-template-columns:30% 70%}.knowledge-graph figcaption{padding-right:25px}.knowledge-graph figcaption strong{font-size:19px}.graph-stage{height:210px}.graph-reading{margin-top:12px;padding:9px 14px}.evidence-section{padding-top:50px;padding-bottom:52px}.evidence-top{padding-bottom:24px}.example-picker{margin-top:17px}.example-picker button{min-height:42px;padding:8px 11px}.evidence-board{padding-top:22px}.source-card,.insight-card{min-height:125px;padding:17px;margin-top:12px}.source-card h3,.insight-card h3{font-size:18px;margin:11px 0}.source-card.faded{padding:14px}.author-section{padding-top:40px;padding-bottom:42px}.author-bio h2{font-size:24px;margin-bottom:7px}.author-bio p{line-height:1.5}.author-disclosure{padding-top:7px;padding-bottom:7px}footer{padding-top:15px;padding-bottom:15px}
@media(max-width:800px){.site-header{height:68px}.hero-art{height:280px}.thesis,.evidence-section{padding-top:42px;padding-bottom:44px}.experiment-section,.method-section{padding-top:42px;padding-bottom:44px}.artifact-card{min-height:0}.method-card{min-height:155px}.knowledge-graph{grid-template-columns:1fr}.graph-stage{height:205px}.author-section{padding-top:38px;padding-bottom:40px}}

.ensemble-section{padding-top:42px;padding-bottom:46px;border-bottom:1px solid var(--line);background:var(--paper)}.ensemble-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:20px}.ensemble-heading h2{font-family:var(--serif);font-size:30px;font-weight:500;letter-spacing:-.04em;margin:0 0 5px}.ensemble-heading p{font-size:13px;color:var(--muted);margin:0}.ensemble-heading>span{flex:none;font-family:var(--mono);font-size:8px;letter-spacing:.09em;text-transform:uppercase;color:var(--red);padding-bottom:3px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.research-chart{min-width:0;margin:0;padding:15px 16px 12px;border:1px solid var(--line);background:#FFFFFF}.research-chart figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:10px}.research-chart figcaption span{font-family:var(--mono);font-size:8px;letter-spacing:.09em;text-transform:uppercase;color:var(--red)}.research-chart figcaption strong{font-family:var(--serif);font-size:14px;font-weight:500;text-align:right}.chart-frame{position:relative;height:172px;overflow:hidden;background:rgba(176,189,217,.16);border-top:1px solid rgba(176,189,217,.7);border-bottom:1px solid rgba(176,189,217,.7)}.chart-frame canvas{position:absolute;inset:0;width:100%;height:100%}.research-chart output{display:block;margin-top:8px;font-family:var(--mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.chart-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-family:var(--mono);font-size:7px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:6px;height:6px;border-radius:50%;background:var(--blue)}.chart-legend span:nth-child(2) i{background:var(--red)}.chart-legend span:nth-child(3) i{background:var(--ink)}
@media(max-width:800px){.ensemble-section{padding-top:38px;padding-bottom:40px}.ensemble-heading{display:block}.ensemble-heading>span{display:block;margin-top:8px}.chart-grid{grid-template-columns:1fr}.chart-frame{height:160px}.research-chart figcaption{display:block}.research-chart figcaption strong{display:block;text-align:left;margin-top:3px}}

.comparison-flow{display:grid;grid-template-columns:1fr 74px 1fr;gap:0;margin:10px 0 0 24%}.track-path{min-width:0;min-height:62px;display:grid;grid-template-columns:29px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);transition:transform .25s,border-color .25s,box-shadow .25s}.track-path-a{background:var(--paper);color:var(--ink)}.track-path-b{background:var(--ink);border-color:var(--ink);color:var(--paper)}.track-letter{width:27px;height:27px;border:1px solid currentColor;display:grid;place-items:center;font-family:var(--mono);font-size:10px}.track-path strong{display:block;font-family:var(--serif);font-size:14px;font-weight:500;line-height:1.2}.track-path small{display:block;margin-top:2px;font-family:var(--mono);font-size:7px;letter-spacing:.02em;color:var(--muted)}.track-path-b small{color:var(--cream)}.track-path b{font-family:var(--mono);font-size:7px;font-weight:400;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;color:var(--red)}.track-path-b b{color:var(--warm)}.track-path:hover,.track-path.is-linked{transform:translateY(-3px);border-color:var(--blue);box-shadow:0 10px 22px rgba(24,39,85,.12)}.flow-bridge{display:grid;place-items:center;align-content:center;text-align:center;font-family:var(--mono);font-size:7px;line-height:1.5;letter-spacing:.05em;text-transform:uppercase;color:var(--red)}.artifact-card.is-linked{box-shadow:0 0 0 2px var(--blue),0 18px 34px rgba(24,39,85,.15)}.track-context{font-family:var(--mono)!important;font-size:8px!important;letter-spacing:.09em;text-transform:uppercase;color:var(--red)!important;margin:0 0 7px!important}.research-caption{margin-top:14px}
@media(max-width:800px){.comparison-flow{grid-template-columns:1fr;margin:10px 0 0;gap:7px}.flow-bridge{min-height:28px}.track-path{grid-template-columns:29px minmax(0,1fr) auto}.track-path:hover{transform:none}}

/* Readable institutional edition: neutral paper, charcoal, burgundy, restrained sage */
body{background:#F2F2F0;font-size:17px;line-height:1.6}main{background:var(--paper)}.site-header{background:rgba(255,255,255,.94)}.reading-progress span{background:var(--red)}.wordmark strong{font-size:16px}.wordmark small{font-size:9px}.nav-links{font-size:11px}.nav-links a{color:var(--muted)}.eyebrow,.section-label,.column-title,.detail-label,.source-type,.insight-tag{font-size:11px}.hero-lede{font-size:18px;line-height:1.65}.button,.text-link{font-size:10.5px}.orbit,.node{border-color:var(--line)}.node-center{background:var(--ink);color:#FFFFFF}.node-center .node-kicker{color:var(--warm)!important;font-size:10px}.node-center strong{color:#FFFFFF}.node-center small{color:#FFFFFF!important;font-size:9px}.node span{font-size:10px}.node strong{font-size:15px}.node small{font-size:9px}.experiment-section{background:#F4F4F1}.method-section{background:#F0F2EB}.ensemble-section{background:#FFFFFF}.author-section{background:#F4F4F1}.artifact-card{background:#FFFFFF}.artifact-card.artifact-machine{background:var(--ink)}.artifact-index{font-size:10px}.artifact-premise{font-size:16px}.artifact-card dt{font-size:9.5px}.artifact-card dd{font-size:12.5px;line-height:1.45}.artifact-card.artifact-machine .artifact-index,.artifact-card.artifact-machine dt,.artifact-card.artifact-machine .artifact-seal{color:var(--warm)}.artifact-card.artifact-machine .artifact-premise,.artifact-card.artifact-machine dd{color:#FFFFFF}.track-path strong{font-size:15px}.track-path small{font-size:9px;line-height:1.35}.track-path b{font-size:8.5px}.track-path-b{background:var(--ink)}.track-path-b small{color:#FFFFFF}.track-path-b b{color:var(--warm)}.flow-bridge{font-size:8px}.track-context{font-size:9.5px!important}.research-caption span{font-size:9.5px}.research-caption strong{font-size:20px}.method-card{background:#FFFFFF}.method-card p{font-size:12.5px;line-height:1.45}.method-card button{font-size:9.5px}.method-detail{background:#FFFFFF}.detail-label{font-size:9.5px}.method-detail p{font-size:12.5px}.knowledge-graph figcaption span{font-size:9.5px}.knowledge-graph figcaption p{font-size:12.5px}.graph-stage{background:#FFFFFF}.graph-reading{background:#EEF2E8}.graph-reading .detail-label{font-size:9.5px}.graph-reading p{font-size:12.5px}.graph-toolbar button{font-size:9px}.graph-node{font-size:9px}.graph-status{font-size:9px}.ensemble-heading>span{font-size:9px}.research-chart{background:#FFFFFF}.chart-frame{background:rgba(167,207,121,.10);border-color:#D6DDCC}.research-chart figcaption span{font-size:9.5px}.research-chart figcaption strong{font-size:15px}.research-chart output{font-size:9.5px}.chart-legend{font-size:8.5px}.evidence-top p{font-size:15px}.example-picker legend{font-size:10px}.example-picker button{font-size:14px}.example-picker button span{font-size:9px}.source-type{font-size:9.5px}.source-meta{font-size:9px}.source-card.faded p{font-size:11px}.insight-card{background:var(--ink)}.insight-card p{color:#FFFFFF}.insight-card.industry{background:#FFFFFF}.insight-card.industry p{color:var(--muted)}.note-kicker{font-size:9.5px}.pannage-note p{font-size:16px}.author-bio p{font-size:16px}.author-disclosure span{font-size:9.5px}.author-disclosure p{font-size:13.5px}.author-disclosure time{font-size:12px}footer{font-size:9px}.forage-mark i{background:var(--blue)}.paper-grain{opacity:.02}

/* ============================================================================
   Refinement edition
   Final layer. Fixes the defects found in the visual/flow audit and tightens
   the design system: one accent set, one type scale, hairlines instead of
   drop shadows, engraved marks instead of CSS-shape illustration.
   ========================================================================= */

/* --- Tokens ---------------------------------------------------------------
   --warm was a lime green (#A7CF79) doing accent duty on the dark cards. It
   fought the burgundy and read as terminal, not press. Retinted to parchment:
   7.6:1 on --ink, and it reads as gilt on a dark binding.                    */
:root{
  --warm:#D8C7A0;
  --rule:#D3D3CC;
  --rail:19%;
  --rail-gap:22px;
}

html{scroll-padding-top:96px}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* Mono labels carry the page's structure; give them one letterspacing and
   tabular figures so the section numbers align down the rail. */
.eyebrow,.section-label,.column-title,.detail-label,.source-type,.insight-tag,
.note-kicker,.artifact-index,.artifact-card dt,.research-caption span,
.graph-status,.example-picker legend,.track-context,.ensemble-heading>span,
.research-chart figcaption span,.author-disclosure span,.chart-legend,
.source-meta,.graph-node,.nav-links,footer{
  letter-spacing:.1em;
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}
.artifact-index{text-transform:uppercase}
.chart-legend{font-size:9px}
.track-path small{font-size:9px}

/* --- Structural rail ------------------------------------------------------
   Was 24% of the content column holding one 11px label — a quarter of the
   page doing nothing. Narrowed, and the label now travels with the section
   like a running head. */
.section-grid,.section-heading{grid-template-columns:var(--rail) auto}
/* The hero is a section-grid but its first child is copy, not a rail label:
   it was being squeezed into the label column and overflowing out of it. */
.hero.section-grid{grid-template-columns:minmax(0,46%) minmax(0,1fr);align-items:center}
.hero-copy{padding-right:26px}
.hero-art{margin-left:2vw}
.method-map,.method-detail,.knowledge-graph,.artifact-compare,
.research-caption,.comparison-flow{margin-left:var(--rail)}
.section-grid>.section-label{position:sticky;top:92px;align-self:start;z-index:1}
.section-label span{color:#667077}

/* --- Sticky header --------------------------------------------------------
   Was rgba(255,255,255,.94): body copy ghosted through it on scroll. */
.site-header{background:#FFFFFF;backdrop-filter:none;border-bottom:1px solid var(--rule)}
.site-header.is-stuck{box-shadow:0 1px 0 var(--rule)}
.nav-links{gap:26px}
.nav-links a{padding:13px 0}                 /* 44px touch target */
.nav-links a.is-current{color:var(--red)}

/* --- Focus ----------------------------------------------------------------
   Was the browser default blue, and a white ring on the light graph filters
   (invisible). One brand ring, inverted on dark surfaces. */
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--red);
  outline-offset:3px;
}
.artifact-machine a:focus-visible,.artifact-machine button:focus-visible,
.insight-card a:focus-visible,.track-path-b:focus-visible,
.closing a:focus-visible,.closing button:focus-visible,
.method-card.active button:focus-visible,
.graph-toolbar button.active:focus-visible{outline-color:var(--warm)}

/* --- Hero actions ---------------------------------------------------------
   The CTA was wrapping to three lines inside a shrunk flex item. */
.hero-actions{gap:24px;flex-wrap:wrap}
.hero-actions .button,.hero-actions .text-link{white-space:nowrap;flex:none}
.button{padding:15px 22px}
.text-link{border-bottom-color:var(--rule);transition:border-color .2s,color .2s}
.text-link:hover{border-bottom-color:var(--red);color:var(--red)}

/* --- Engraved marks -------------------------------------------------------
   The snout, the woodland vignette and the author monogram were all built
   from border-radius boxes and pseudo-element dots. They are drawn now. */
.mark-defs{position:absolute;width:0;height:0;overflow:hidden}

.wordmark{gap:12px}
.wordmark-mark{
  width:30px;height:30px;flex:none;display:block;
  background:none;border:0;color:var(--ink);
}
.footer-mark .wordmark-mark{background:none;color:var(--red)}
.wordmark strong{letter-spacing:.09em}

.pannage-note{grid-template-columns:168px 1fr;gap:28px}
.forage-mark{
  width:168px;height:76px;border:0;background:none;color:var(--red);
}
.forage-branch{stroke-width:1.05;opacity:.85}
.forage-acorns{stroke:currentColor;fill:none}
.forage-ground{stroke-width:.9;opacity:.4}

.author-profile{grid-template-columns:116px minmax(0,1fr) minmax(230px,31%);gap:32px}
.author-seal{width:116px;height:116px;display:block;color:var(--red)}
.seal-type{
  font-family:var(--mono);font-size:8.2px;letter-spacing:.14em;
  fill:currentColor;stroke:none;
}
.seal-acorn{stroke:currentColor;fill:none}

/* --- Method cards ---------------------------------------------------------
   1. The button was position:absolute over flowing copy, so the card with
      three lines of text printed over its own control.
   2. hover shared a rule with .active, so hovering one card while another
      was selected showed two selected-looking cards.                        */
.method-card{
  display:flex;flex-direction:column;align-items:flex-start;
  min-height:186px;padding:19px 20px;
  transition:background .25s,color .25s,border-color .25s,transform .25s;
}
.method-card h3{margin:16px 0 8px}
.method-card p{margin-bottom:20px}
.method-card button{
  position:static;margin-top:auto;padding:9px 0 6px;
}
.example-picker button{min-height:44px}
.method-card:hover{
  background:var(--paper);color:var(--ink);
  border-color:var(--ink);transform:translateY(-2px);box-shadow:none;
}
.method-card:hover p{color:var(--muted)}
.method-card.active,.method-card.active:hover{
  background:var(--ink);color:var(--paper);
  border-color:var(--ink);transform:translateY(-2px);box-shadow:none;
}
.method-card.active p,.method-card.active:hover p{color:var(--cream)}
.method-card.active .card-number,.method-card.active:hover .card-number{color:var(--warm)}
.method-connector{color:var(--rule);font-size:18px}

/* --- Graph ----------------------------------------------------------------
   Same hover/active collision as the method cards, plus small hit targets. */
/* Bare `transition:.25s` meant `all`, so the focus ring animated in from the
   browser default ring instead of appearing at once. Scope it to paint. */
.graph-toolbar button{
  min-height:38px;padding:10px 12px;
  transition:background .2s,border-color .2s,color .2s;
}
.graph-toolbar button:hover{background:transparent;border-color:var(--ink);color:var(--ink)}
.graph-toolbar button.active,.graph-toolbar button.active:hover{
  background:var(--ink);border-color:var(--ink);color:var(--paper);
}
.graph-node{padding:7px 6px}

/* --- Evidence board -------------------------------------------------------
   #990000 on #333333 measured 1.42:1. Parchment only earns its place on the
   dark card; the industry card is paper, so it keeps the burgundy. */
.insight-card .insight-tag{color:var(--warm)}
.insight-card.industry .insight-tag{color:var(--red)}
.source-card,.insight-card{transition:border-color .25s}
.source-card:hover{border-color:var(--ink)}

/* --- Comparison -----------------------------------------------------------
   The VS was a 9px vertical scrap floating between the cards. It is now the
   axis of the comparison: a hairline the full height of both artifacts. */
.artifact-compare{align-items:stretch}
.compare-mark{position:relative}
.compare-mark:before{
  content:'';position:absolute;left:50%;top:0;bottom:0;
  width:1px;background:var(--rule);
}
.compare-mark span{
  position:relative;border:0;padding:12px 5px;
  background:#F4F4F1;color:var(--red);
  font-size:9.5px;letter-spacing:.16em;
}
.artifact-card[data-tilt]:hover{box-shadow:0 14px 30px rgba(51,51,51,.10)}
.artifact-card.is-linked{box-shadow:0 0 0 1px var(--red)}
.track-path:hover,.track-path.is-linked{
  border-color:var(--red);box-shadow:none;transform:translateY(-2px);
}
.track-path-b:hover,.track-path-b.is-linked{border-color:var(--warm)}

/* --- Track transition -----------------------------------------------------
   Track A used to dead-end into Track B with no handover. */
.track-transition{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;gap:18px;margin-top:36px;padding:16px 20px;
  border:1px solid var(--rule);background:var(--paper);
  transition:border-color .25s,transform .25s;
}
.track-transition:hover{border-color:var(--ink);transform:translateY(-2px)}
.track-transition-rule{display:block;width:34px;height:1px;background:var(--red)}
.track-transition-copy small{
  display:block;margin-bottom:5px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--red);
}
.track-transition-copy strong{font-family:var(--serif);font-size:17px;font-weight:500}
.track-transition-letter{
  width:31px;height:31px;display:grid;place-items:center;flex:none;
  background:var(--ink);color:var(--paper);
  font-family:var(--mono);font-size:11px;
}

/* --- Closing --------------------------------------------------------------
   The page previously ended on the author bio with nothing resolved and no
   route back into either track. */
.closing{
  display:grid;padding-top:58px;padding-bottom:62px;
  background:var(--ink);color:var(--paper);
}
.closing .section-label{color:var(--warm)}
.closing .section-label span{color:rgba(255,255,255,.45)}
.closing-content{max-width:none}
.closing h2{
  font-size:clamp(30px,3.4vw,46px);line-height:1.08;
  letter-spacing:-.05em;margin-bottom:16px;
}
.closing p{color:rgba(255,255,255,.72);max-width:560px;margin-bottom:30px;font-size:16px}
.closing-index{list-style:none;margin:0 0 30px;padding:0;border-top:1px solid rgba(255,255,255,.18)}
.closing-index li{
  display:grid;grid-template-columns:31px minmax(0,1fr) auto;
  align-items:center;gap:18px;padding:15px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.closing-index .track-letter{width:31px;height:31px;border:1px solid var(--warm);color:var(--warm)}
.closing-index-copy strong{display:block;font-family:var(--serif);font-size:19px;font-weight:500}
.closing-index-copy small{
  display:block;margin-top:4px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,255,255,.55);
}
.closing-index a{
  display:inline-flex;align-items:center;min-height:38px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--warm);white-space:nowrap;
  box-shadow:inset 0 -1px 0 rgba(216,199,160,.4);
  transition:box-shadow .2s;
}
.closing-index a:hover{box-shadow:inset 0 -1px 0 var(--warm)}
.closing .button-light{background:var(--paper);color:var(--ink)}

/* --- Thesis statistics ----------------------------------------------------
   n, m and infinity are variables; set them as variables. */
.stat-row{gap:0;border-top:1px solid var(--rule)}
.stat-row div{flex:1;padding-left:24px;border-left:1px solid var(--rule)}
.stat-row div:first-child{padding-left:0;border-left:0}
.stat-row strong{font-family:var(--serif);font-style:italic;font-size:34px;line-height:1}
.stat-row span{margin-top:9px;font-size:9.5px}

/* --- Surfaces -------------------------------------------------------------
   Soft drop shadows read as web chrome on a paper-textured page. Hairlines
   and tone do the same work and hold the editorial register. */
main{box-shadow:0 0 0 1px rgba(51,51,51,.07)}
.chart-frame{background:rgba(51,51,51,.03);border-color:var(--rule)}
.orbit,.node,.source-card,.insight-card.industry,.artifact-rule,
.artifact-card dl div,.method-card,.research-chart,.graph-stage,
.example-picker button,.graph-toolbar button{border-color:var(--rule)}

/* --- Tablet ---------------------------------------------------------------
   820px fell between the desktop grid and the 800px mobile rules: 157px
   method columns and track paths wrapping to four lines. The rail is the
   thing that does not fit, so below 1080px it is retired and its label
   becomes a normal heading. */
@media(max-width:1080px){
  .thesis,.evidence-section,.ensemble-section,.author-section,.closing,
  .section-heading{display:block}
  .section-grid>.section-label,.section-heading .section-label{
    position:static;margin-bottom:24px;
  }
  .method-map,.method-detail,.knowledge-graph,.artifact-compare,
  .research-caption,.comparison-flow{margin-left:0}
  .comparison-flow{grid-template-columns:1fr;gap:8px}
  .flow-bridge{min-height:32px}
  .compare-mark:before{display:none}
  .author-profile{grid-template-columns:116px minmax(0,1fr);gap:26px}
  .author-disclosure{grid-column:1/-1}
}

/* Between the mobile scroller (<=800px) and the desktop grid the three steps
   still sit side by side, so they must be allowed to shrink rather than hold
   a min-width that pushes the page into horizontal overflow. */
@media(max-width:1080px) and (min-width:801px){
  .method-map{grid-template-columns:1fr 26px 1fr 26px 1fr}
  .method-card{min-width:0;padding:16px 17px}
  .method-card h3{font-size:21px}
}

@media(max-width:900px){
  .hero{display:block}
  .track-transition{grid-template-columns:auto minmax(0,1fr);gap:14px;padding:14px 16px}
  .track-transition-letter{display:none}
  .closing{display:block}
  .closing-index li{grid-template-columns:31px minmax(0,1fr);row-gap:10px}
  .closing-index a{grid-column:2}
}

/* The three method steps scroll horizontally below 800px; fade the cut edge
   so it reads as more-to-the-right rather than as a clipped layout. */
@media(max-width:800px){
  .method-map{
    scroll-snap-type:x proximity;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 86%,transparent 100%);
    mask-image:linear-gradient(90deg,#000 0,#000 86%,transparent 100%);
  }
  .method-card{scroll-snap-align:start;min-width:238px}
}

@media(max-width:520px){
  .hero-actions{flex-direction:column;align-items:flex-start;gap:16px}
  .stat-row{display:grid;grid-template-columns:1fr 1fr}
  .stat-row div{padding-left:18px}
  .stat-row div:nth-child(odd){padding-left:0;border-left:0}
  .pannage-note{grid-template-columns:1fr}
  .forage-mark{width:100%;max-width:180px}
  .author-profile{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  .method-card,.track-path,.track-transition,.example-picker button,
  .artifact-card[data-tilt]{transition:none}
  .method-card:hover,.method-card.active,.track-path:hover,
  .track-transition:hover{transform:none}
}

/* ============================================================================
   Track B pipeline
   The section used to be two equal charts side by side, which made the merge
   look like the whole of Track B. It is now three stacked stages with the
   fine-tuning pass given the weight — and the height — it actually carries.
   ========================================================================= */
.pipeline{display:flex;flex-direction:column;margin-top:6px}
.pipeline-stage{
  border:1px solid var(--rule);background:#FFFFFF;padding:16px 18px 14px;
}
.pipeline-stage-primary{
  border-color:var(--ink);
  box-shadow:inset 3px 0 0 var(--red);
}
.pipeline-head{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:baseline;gap:18px;margin-bottom:14px;
}
.pipeline-index{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--red);white-space:nowrap;
}
.pipeline-head h3{
  font-family:var(--serif);font-size:17px;font-weight:500;
  line-height:1.25;margin:0 0 4px;
}
.pipeline-stage-primary .pipeline-head h3{font-size:19px}
.pipeline-head p{font-size:12.5px;line-height:1.5;color:var(--muted);margin:0;max-width:660px}
.pipeline-meta{
  font-family:var(--mono);font-size:9px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);white-space:nowrap;
}
.pipeline-stage-primary .pipeline-meta{color:var(--red)}
.pipeline-stage output{
  display:block;margin-top:8px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);
}
.chart-frame-tall{height:250px}

/* Vertical connector between stages, echoing Track A's step arrows */
.pipeline-connector{display:grid;place-items:center;height:26px}
.pipeline-connector span{
  display:block;width:1px;height:100%;background:var(--rule);position:relative;
}
.pipeline-connector span:after{
  content:'';position:absolute;left:50%;bottom:0;
  width:5px;height:5px;margin-left:-2.5px;
  border-right:1px solid var(--red);border-bottom:1px solid var(--red);
  transform:rotate(45deg);
}

/* The low-rank split: the shape of the claim, not a measurement */
.lora-split{margin-top:12px;padding-top:12px;border-top:1px solid var(--rule)}
.lora-bar{display:flex;height:6px;gap:2px}
.lora-frozen{flex:1;background:rgba(51,51,51,.14)}
.lora-trained{flex:0 0 34px;background:var(--red)}
.lora-key{
  display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:9px;
  font-family:var(--mono);font-size:9px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);
}
.lora-key span{display:flex;align-items:center;gap:7px}
.lora-key em{font-family:var(--serif);font-style:italic;font-size:12px;text-transform:none;letter-spacing:0;color:var(--ink)}
.lora-key i{width:10px;height:6px;flex:none}
.key-frozen{background:rgba(51,51,51,.14)}
.key-trained{background:var(--red)}

@media(max-width:800px){
  /* Stage number and role share the top line; the title block drops below.
     Placed explicitly, since the role follows the title in the DOM. */
  .pipeline-head{grid-template-columns:auto auto;justify-content:space-between;gap:4px 14px}
  .pipeline-index{grid-area:1/1}
  .pipeline-meta{grid-area:1/2;justify-self:end}
  .pipeline-head>div{grid-area:2/1/auto/-1;margin-top:6px}
  .pipeline-stage{padding:14px 15px 12px}
  .chart-frame-tall{height:300px}
  .lora-trained{flex-basis:22px}
}

/* ============================================================================
   Author credentials
   The section is now a credentials block rather than a bio plus a notice:
   the seal and the statement sit together, and the training and the practice
   are set as a three-column register beneath, on the same hairline system as
   the thesis variables.
   ========================================================================= */
.author-profile{grid-template-columns:116px minmax(0,1fr);gap:32px;align-items:center}
.author-bio p{max-width:760px}
.author-credentials{
  /* second child of the section grid, so it must be told to sit in the
     content column rather than dropping into the rail */
  grid-column:2;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;margin:30px 0 0;padding-top:20px;
  border-top:1px solid var(--rule);
}
.author-credentials>div{padding-left:26px;border-left:1px solid var(--rule)}
.author-credentials>div:first-child{padding-left:0;border-left:0}
.author-credentials dt{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--red);margin-bottom:9px;
}
.author-credentials dd{margin:0}
.author-credentials strong{
  display:block;font-family:var(--serif);font-size:19px;font-weight:500;
  line-height:1.25;letter-spacing:-.01em;
}
.author-credentials span{
  display:block;margin-top:6px;
  font-size:12.5px;line-height:1.45;color:var(--muted);
}

@media(max-width:800px){
  .author-profile{grid-template-columns:88px minmax(0,1fr);gap:22px}
  .author-seal{width:88px;height:88px}
  .author-credentials{grid-template-columns:1fr;gap:18px;margin-top:24px}
  .author-credentials>div{padding-left:0;border-left:0;padding-top:16px;border-top:1px solid var(--rule)}
  .author-credentials>div:first-child{padding-top:0;border-top:0}
}

/* Footer: the third slot used to carry three abstract nouns with no context.
   On a page this long, a return path is the useful thing to put there. */
.footer-top{
  display:inline-flex;align-items:center;gap:9px;min-height:38px;
  color:var(--muted);
  box-shadow:inset 0 -1px 0 var(--rule);
  transition:color .2s,box-shadow .2s;
}
.footer-top:hover{color:var(--red);box-shadow:inset 0 -1px 0 var(--red)}
.footer-top>span{font-size:13px;margin:0}
@media(max-width:800px){.footer-top{margin-top:13px}}
