:root{color-scheme:dark;--ink:#080b12;--text:#f5f7fc;--muted:#c1cadb;--dim:#aebbd1;--accent:#80b5ff;--line:#303d54;--reading:#0e131e;--reading-text:#dce3f0;--reading-heading:#f5f7fc;--reading-muted:#bfccdf;--reading-line:#34435c;--reading-link:#92bfff;--reading-link-line:#5a82bb;--reading-link-hover:#c2daff;--code-bg:#090f19;--code-inline:#223149;--code-text:#d6e6ff;--toc-bg:#141d2d;--table-head:#1b2940;--sans:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--mono:ui-monospace,'Liberation Mono',monospace;--category:var(--accent);--secondary:#b098ff;--panel:#111725;--panel-top:#172136;--header:#090d16ee;--ambient:#28376e32;--selection:#375eb180;--control:#2463eb;--control-hover:#3975f0;--diagram-line:#425579;--row-active:#1b2941;--app:#80b5ff;--identity:#b49bff;--infra:#67d4e6;--desktop:#ffb273}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{margin:0;background:radial-gradient(ellipse at 80% -5%,var(--ambient),transparent 42%),var(--ink);color:var(--text);font:16px/1.7 var(--sans);-webkit-font-smoothing:antialiased;font-family:var(--sans)}
a{color:var(--accent);text-underline-offset:5px;text-decoration-thickness:1px}
a:hover{color:var(--reading-link-hover)}
button{font:inherit;cursor:pointer}
input{font:inherit}
::selection{background:var(--selection);color:#fff}
h1{margin-top:0;font-family:var(--sans);font-weight:700}
h2{margin-top:0;font-family:var(--sans);font-weight:700}
h3{margin-top:0;font-family:var(--sans);font-weight:700}
p{margin-top:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
[hidden]{display:none!important}
.shell{width:min(1180px,calc(100% - 88px));margin-inline:auto}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;top:-100px;left:24px;z-index:40;padding:11px 17px;color:var(--ink);background:var(--accent)}
.skip:focus{top:14px}
.site-header{position:sticky;top:0;z-index:20;background:var(--header);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);box-shadow:0 8px 32px #00000040;border-color:var(--line)}
.site-nav{min-height:85px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.brand{text-decoration:none;color:var(--text);line-height:1}
.brand:hover{color:var(--text)}
.brand-name{display:block;font-size:25px;letter-spacing:-1.2px;font-weight:750}
.brand-name>span{color:var(--accent)}
.brand-desc{display:block;font:10px/1.7 var(--mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-top:7px;font-size:10px}
.nav-links{display:flex;gap:28px;align-items:center;font-size:13px}
.nav-links a{display:inline-flex;align-items:center;gap:6px;min-height:32px;text-decoration:none;color:var(--muted)}
.nav-links a:hover{color:var(--text)}
.nav-links .github{border:1px solid var(--line);color:var(--text);padding:9px 14px;background:var(--panel);border-color:var(--line);border-radius:6px}
.nav-toggle{display:none;border:1px solid var(--line);padding:8px 13px;background:var(--panel);color:var(--text);font-size:12px;gap:20px;align-items:center;border-radius:6px}
.nav-toggle span{font-size:19px;line-height:1}
.eyebrow{font:11px/1.7 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.eyebrow::before{content:'';display:inline-block;width:6px;height:6px;margin-right:10px;background:currentColor;vertical-align:1px;border-radius:2px}
.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:56px;align-items:center;padding:61px 0 55px;padding-top:65px;padding-bottom:65px}
.hero h1{font:normal clamp(45px,5.4vw,70px)/1.04 var(--sans);letter-spacing:-2.4px;margin:25px 0;text-shadow:none;font-size:clamp(40px,4vw,56px);font-weight:750;line-height:1.07}
.hero .eyebrow{color:var(--accent);font-size:11px}
.hero h1 em{font-weight:inherit;color:var(--secondary);font-style:normal}
.lead{max-width:480px;color:var(--muted);font-size:16px;line-height:1.85;margin-bottom:26px}
.text-link{display:inline-flex;align-items:center;gap:29px;color:#fff;text-decoration:none;font-size:13px;background:var(--control);border:1px solid var(--control);border-radius:6px;padding:12px 18px;font-weight:650}
.text-link:hover{color:#fff;background:var(--control-hover);border-color:var(--control-hover)}
.boundary-study{min-width:0;padding:25px 28px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(140deg,var(--panel-top),var(--panel));box-shadow:inset 0 1px 0 #ffffff08,0 24px 48px #00000038}
.boundary-top{padding-bottom:9px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;color:var(--muted);font:11px/1.6 var(--mono);letter-spacing:.07em;border-color:var(--line)}
.boundary-graphic{filter:none;display:block;width:100%;height:auto;margin:0 0 3px}
.boundary-shell{stroke:var(--diagram-line);stroke-width:1}
.boundary-node{stroke:var(--accent);stroke-width:1.4}
.boundary-destination{stroke:var(--secondary);stroke-width:1}
.boundary-route{stroke:var(--accent);stroke-width:1.6}
.boundary-block{stroke:var(--accent);stroke-width:1.5;fill:var(--panel)}
.boundary-label{fill:var(--text)}
.boundary-annotation{fill:var(--muted)}
[data-state='after'] .boundary-route{stroke:var(--secondary);opacity:.42}
[data-state='before'] .boundary-block{opacity:0}
.boundary-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.boundary-caption h2{font:normal 25px/1.15 var(--sans);letter-spacing:-.6px;margin:0 0 13px;font-size:24px;line-height:1.22;font-weight:700}
.boundary-controls{display:flex;border:1px solid var(--line);flex-shrink:0;margin-top:3px;border-color:var(--line);border-radius:5px;overflow:hidden}
.boundary-controls button{border:0;border-radius:0;background:transparent;color:var(--muted);padding:8px 11px;font:11px var(--mono)}
.boundary-controls button[aria-pressed='true']{background:var(--control);color:#fff}
.boundary-detail code{font:13px/1.8 var(--mono);color:var(--accent)}
.boundary-detail p{font-size:14px;line-height:1.75;color:var(--muted);margin:5px 0 17px}
[data-state='after'] [data-boundary-detail='before']{display:none}
[data-state='before'] [data-boundary-detail='after']{display:none}
.boundary-readout>a{display:block;border-top:1px solid var(--line);padding-top:13px;font-size:13px;color:var(--reading-link);text-decoration:none;border-color:var(--line)}
.boundary-readout>a:hover{color:var(--accent)}
.research{padding:44px 0 51px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:32px}
.section-head h2{font:normal 38px/1.15 var(--sans);letter-spacing:-1.1px;margin:0 0 9px;font-size:36px;font-weight:700}
.section-head p{font-size:15px;color:var(--muted);margin:0;line-height:1.8}
.section-head .eyebrow{margin-bottom:12px;font-size:11px;color:var(--accent)}
.browse-link{font:12px/1.6 var(--mono);text-decoration:none;white-space:nowrap;padding-bottom:6px}
.case-grid{display:grid;grid-template-columns:1.15fr 1fr;border-block:1px solid var(--line)}
.case-card{position:relative;min-width:0;padding:28px 0 26px 32px;display:flex;flex-direction:column}
.case-card:first-child{grid-row:span 2;border-right:1px solid var(--line);padding:31px 38px 31px 0}
.case-card:nth-child(3){border-top:1px solid var(--line)}
.case-type{font:11px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.case-card h3{font:normal 27px/1.2 var(--sans);letter-spacing:-.65px;margin:17px 24px 13px 0;font-weight:650}
.case-card:first-child h3{font-size:40px;line-height:1.12;letter-spacing:-1.1px;margin:27px 22px 22px 0}
.case-card h3 a{text-decoration:none;color:var(--text)}
.case-card h3 a::after{content:'';position:absolute;inset:0}
.case-card h3 a:focus-visible{outline:none}
.case-card:focus-within{outline:2px solid var(--accent);outline-offset:5px}
.case-card p{font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 21px;max-width:460px}
.case-card:first-child p{font-size:14px;line-height:1.9}
.card-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:auto;color:var(--dim);font:11px/1.7 var(--mono)}
.card-meta .remediated{color:var(--accent)}
.card-arrow{position:absolute;top:25px;right:1px;color:var(--accent);font-size:22px;line-height:1}
.case-card:first-child .card-arrow{right:37px;top:auto;bottom:26px}
.case-card:first-child .card-meta{padding-right:32px;font-size:11px}
.full-index{padding-top:46px;border-top:1px solid var(--line);border-color:var(--line)}
.research-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin:29px 0 19px}
.search-field{width:320px;max-width:100%}
.search-field label{display:block;font:11px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.search-field input{display:block;width:100%;min-height:44px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:15px/1.6 var(--sans);padding:11px 13px;border-radius:5px;border-color:var(--line)}
.search-field input::placeholder{color:var(--dim)}
.search-field input:focus-visible{border-color:var(--accent);outline-offset:3px}
.filters{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.filter{background:var(--panel);color:var(--muted);border:1px solid var(--line);font:12px/1.6 var(--sans);padding:8px 10px;border-color:var(--line);border-radius:5px;font-weight:600;min-height:38px}
.filter[aria-pressed='true']{color:#fff;border-color:var(--control);background:var(--control);box-shadow:inset 0 1px 0 #ffffff20}
.index-status{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:24px;margin:17px 0 7px}
.index-status p{font:12px/1.8 var(--mono);color:var(--dim);margin:0}
.index-status button{border:0;background:transparent;color:var(--accent);padding:3px 0;font:13px var(--sans);text-decoration:underline;text-underline-offset:4px}
.research-index{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:none;border-color:var(--line)}
.index-card{position:relative;display:grid;grid-template-columns:145px minmax(0,1fr) 154px 20px;gap:22px;align-items:start;min-width:0;margin:0 23px;padding:23px 0;border-top:1px solid var(--line);cursor:pointer;border-color:var(--line);border-radius:4px}
.index-card:first-child{border-top:0}
.index-card:hover{background:var(--row-active)}
.index-card .case-type{color:var(--category);padding-top:5px;font-size:12px}
.index-card h3{font:normal 22px/1.35 var(--sans);letter-spacing:-.4px;margin:0 0 8px;font-size:21px;font-weight:650;line-height:1.4}
.index-card h3 a{color:var(--text);text-decoration:none}
.index-card h3 a::after{content:'';position:absolute;inset:0}
.index-card h3 a:focus-visible{outline:none}
.index-card:focus-within{outline:2px solid var(--accent);outline-offset:4px;background:var(--row-active)}
.index-card:hover h3 a{color:var(--reading-link)}
.index-card p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}
.index-meta{display:flex;flex-direction:column;gap:6px;padding-top:5px;font:12px/1.7 var(--mono);color:var(--dim)}
.index-meta span+span{color:var(--muted)}
.index-arrow{color:var(--category);font-size:18px;line-height:1.4}
.empty-state{padding:27px 0;border-block:1px solid var(--line);color:var(--muted);font-size:13px}
.about{display:grid;grid-template-columns:1fr 1.45fr;gap:100px;padding:48px 0 55px;border-top:1px solid var(--line);border-color:var(--line)}
.about h2{font:normal 49px/1.1 var(--sans);letter-spacing:-1.5px;margin:15px 0 25px;font-size:46px;font-weight:750}
.about>div>a{display:inline-flex;align-items:center;gap:8px;min-height:32px;font:13px/1.7 var(--mono);text-decoration:none}
.about p{font:18px/1.8 var(--sans);color:var(--muted);margin:0 0 19px}
.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;padding:24px 0 30px;font:11px/1.8 var(--mono);color:var(--dim);border-color:var(--line)}
.site-footer a{color:var(--muted);text-decoration:none}
.not-found{min-height:calc(100dvh - 220px);padding:96px 0 120px;box-sizing:border-box}
.not-found h1{font-size:clamp(36px,4vw,52px);line-height:1.1;letter-spacing:-1.4px;margin:18px 0 16px}
.not-found .lead{color:var(--muted);margin:0 0 30px}
.footer-separator{padding:0 10px;color:var(--line)}
.breadcrumb{padding:27px 0 0;font:12px/1.8 var(--mono);color:var(--dim)}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb>span{padding:0 12px}
.case-hero{padding:50px 0 25px;max-width:1000px}
.case-kicker{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:880px}
.read-time{font:12px/1.8 var(--mono);color:var(--muted);white-space:nowrap}
.case-hero h1{font:normal clamp(38px,4.6vw,59px)/1.09 var(--sans);letter-spacing:-1.6px;margin:20px 0 23px;max-width:940px;font-weight:750;font-size:clamp(36px,4vw,52px);line-height:1.15}
.case-hero .lead{max-width:830px;font-size:17px;line-height:1.85;margin-bottom:29px;color:var(--muted)}
.case-facts{display:flex;gap:28px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;margin:0;border-color:var(--line)}
.case-facts>div{flex:1 1 150px}
.case-facts>div:last-child{flex:2.3 1 340px}
.case-facts dt{font:11px/1.7 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:5px}
.case-facts dd{font:13px/1.8 var(--sans);color:var(--muted);margin:0}
.reading-surface{color-scheme:dark;background:var(--reading);color:var(--reading-text);border-block:1px solid var(--reading-line);box-shadow:none;border-color:var(--line)}
.case-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:64px;align-items:start;padding-top:46px;padding-bottom:57px}
.case-toc{position:sticky;top:115px;font:10px/1.8 var(--mono);border:1px solid var(--reading-line);border-radius:7px;padding:20px;background:var(--toc-bg);box-shadow:none;border-color:var(--reading-line);max-height:calc(100dvh - 144px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--reading-line) var(--toc-bg)}
.case-toc h2{font:11px/1.8 var(--mono);letter-spacing:.12em;text-transform:uppercase;font-weight:650;color:var(--reading-muted);margin:0 0 17px;font-size:11px}
.case-toc ul{list-style:none;padding:0;margin:0 0 28px}
.case-toc li{margin:0 0 5px}
.case-toc a{font:12px/1.8 var(--sans);color:var(--reading-muted);text-decoration:none;display:block;border-left:1px solid var(--reading-line);padding:4px 5px 4px 11px;border-radius:0 4px 4px 0}
.case-toc a:hover{color:var(--reading-link);background:var(--panel-top)}
.case-toc a[aria-current='location']{color:var(--reading-link);border-left:2px solid var(--accent);padding-left:10px;background:#2463eb18;font-weight:600}
.case-downloads{border-top:1px solid var(--reading-line);padding-top:17px}
.case-toc .download{border-left:0;padding-left:0;margin-bottom:15px;font:12px/1.7 var(--mono);color:var(--reading-link)}
.download small{display:block;font-size:11px;color:var(--reading-muted)}
.prose{min-width:0;max-width:min(74ch,760px);font:19px/1.8 var(--sans);color:var(--reading-text);font-size:19px;line-height:1.8}
.prose h2{font:normal 32px/1.3 var(--sans);letter-spacing:-.6px;color:var(--reading-heading);margin:44px 0 21px;font-size:29px;font-weight:700;line-height:1.35}
.prose h2:first-child{margin-top:0}
.prose h3{font:normal 26px/1.3 var(--sans);letter-spacing:-.4px;color:var(--reading-heading);margin:29px 0 17px;font-size:23px;font-weight:650;line-height:1.4}
.prose p{margin:0 0 23px}
.prose strong{color:var(--reading-heading);font-weight:700}
.prose a{color:var(--reading-link);text-decoration-color:var(--reading-link-line);text-underline-offset:4px;overflow-wrap:anywhere}
.prose a:hover{color:var(--reading-link-hover)}
.prose :focus-visible{outline-color:var(--reading-link)}
.case-toc :focus-visible{outline-color:var(--reading-link)}
.prose ul{margin:0 0 26px;padding-left:24px}
.prose ol{margin:0 0 26px;padding-left:24px}
.prose li{margin:9px 0}
.prose code{font:14px/1.7 var(--mono);background:var(--code-inline);color:var(--code-text);padding:2px 5px;overflow-wrap:anywhere;border-radius:3px}
.prose pre{position:relative;max-width:100%;overflow:auto;background:var(--code-bg);color:var(--code-text);border:1px solid var(--reading-line);border-left:3px solid var(--accent);border-radius:7px;box-shadow:none;padding:49px 23px 24px;margin:27px 0 31px;line-height:1.8;scrollbar-color:var(--reading-muted) var(--code-bg);border-color:var(--reading-line);border-left-color:var(--accent)}
.prose pre::before{content:attr(data-language);position:absolute;top:15px;left:23px;color:var(--reading-muted);font:11px/1.8 var(--mono);letter-spacing:.13em;text-transform:uppercase}
.prose pre code{display:block;padding:0;background:transparent;color:inherit;font:13px/1.85 var(--mono);overflow-wrap:normal;white-space:pre}
.code-copy{position:absolute;top:11px;right:14px;border:1px solid var(--reading-line);background:var(--code-bg);color:var(--code-text);padding:5px 10px;font:12px/1.6 var(--mono);border-radius:4px;min-height:32px;min-width:60px}
.code-copy:hover{border-color:var(--accent)}
.code-copy:disabled{opacity:.65}
.table-scroll{border-radius:6px;box-shadow:none;max-width:100%;overflow:auto;margin:27px 0 30px;scrollbar-color:var(--reading-muted) var(--reading)}
.prose table{width:100%;min-width:540px;border-collapse:collapse;font:14px/1.8 var(--sans);font-size:14px}
.prose th{padding:14px 16px;border:1px solid var(--reading-line);text-align:left;vertical-align:top;background:var(--table-head);color:var(--reading-heading);font:12px/1.8 var(--mono);text-transform:uppercase;letter-spacing:.03em}
.prose td{padding:14px 16px;border:1px solid var(--reading-line);text-align:left;vertical-align:top}
.prose td code{font-size:12px}
.prose tbody tr:nth-child(even){background:#ffffff04}
.architecture{margin:27px 0 30px;padding:21px 24px;background:var(--table-head);border-left:2px solid var(--accent);border-color:var(--accent);border-radius:5px}
.architecture figcaption{font:12px/1.8 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--reading-text);margin-bottom:13px}
.architecture ul{list-style:none;padding:0;margin:0}
.architecture li{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:16px;align-items:center;padding:9px 0;margin:0;border-bottom:1px solid var(--reading-line);font:12px/1.7 var(--mono);color:var(--reading-text)}
.architecture li:last-child{border:0}
.architecture li>span:nth-child(2){color:var(--reading-link)}
.prose .analysis-note{border-top:1px solid var(--reading-line);padding-top:17px;margin:31px 0 0;font:11px/1.9 var(--mono);color:var(--reading-muted)}
.case-next{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-top:25px;padding-bottom:25px;font:13px/1.8 var(--mono)}
.case-next a{text-decoration:none;color:var(--muted)}
.case-next a:hover{color:var(--accent)}
.reading-progress{position:fixed;inset:0 0 auto;height:2px;z-index:30;pointer-events:none}
.reading-progress__bar{display:block;width:100%;height:100%;background:var(--control);transform:scaleX(0);transform-origin:left}
.motion-ready [data-reveal]{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.25,1)}
.motion-ready [data-reveal]:not(.is-revealed){opacity:0;transform:translateY(16px)}
.motion-ready [data-reveal-delay='1']{transition-delay:90ms}
.motion-ready [data-reveal-delay='2']{transition-delay:180ms}
.expertise{padding:37px 0 57px}
.specialty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.specialty{position:relative;overflow:hidden;min-width:0;display:flex;flex-direction:column;padding:32px;border:1px solid var(--line);border-radius:9px;background:var(--panel);box-shadow:0 14px 32px #00000026;color:var(--text);text-decoration:none;cursor:pointer;isolation:isolate}
.specialty::before{content:"";position:absolute;inset:0 0 auto;width:100%;height:3px;background:linear-gradient(90deg,var(--category),color-mix(in srgb,var(--category) 18%,transparent))}
.specialty-top{padding-bottom:13px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;align-items:center;border:0}
.specialty-count{color:var(--dim);font:11px/1.8 var(--mono);white-space:nowrap;display:inline-flex;align-items:center;gap:16px;font-size:11px}
.specialty h3{font:normal 31px/1.2 var(--sans);letter-spacing:-.8px;margin:23px 0 16px;max-width:440px;font-size:28px;line-height:1.24;margin-top:13px;color:var(--text);font-weight:700}
.specialty p{font-size:15px;line-height:1.85;color:var(--muted);max-width:480px;margin:0 0 21px}
.specialty ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 25px;padding:0;color:var(--dim);font:11px/1.8 var(--mono);margin-bottom:0;font-size:11px}
.specialty li::before{content:'·';margin-right:8px;color:var(--category)}
.specialty-link{padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;color:var(--muted);font:12px/1.8 var(--mono);text-decoration:none;margin-top:auto}
.specialty-link:hover{color:var(--accent)}
.journal-group{scroll-margin-top:112px;margin-bottom:31px}
.journal-group:last-child{margin-bottom:0}
.journal-group-head{display:flex;justify-content:space-between;align-items:baseline;gap:30px;padding:23px 0 22px}
.journal-group-head h3{font:normal 29px/1.25 var(--sans);letter-spacing:-.7px;margin:0;max-width:850px;font-size:27px;font-weight:700}
.journal-group-head>span{border:1px solid var(--line);background:var(--panel);padding:4px 10px;border-radius:5px;font:12px/1.8 var(--mono);color:var(--dim);white-space:nowrap;border-color:var(--line)}
.specialty:hover{color:var(--text)}
.specialty-arrow{font-size:20px;line-height:1;color:var(--category)}
.specialty[aria-current='location']{border-color:var(--category);box-shadow:0 0 0 1px color-mix(in srgb,var(--category) 22%,transparent),0 14px 32px #00000026}
.specialty:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-color:var(--category);outline-color:var(--category)}
.specialty:active{background:var(--panel-top)}
.index-card:active{background:var(--row-active)}
.nav-links a[aria-current='location']{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:9px}
.search-hint{display:block;color:var(--dim);font:11px/1.7 var(--mono);margin-top:7px}
.footer-links{display:flex;gap:26px;align-items:center}
.footer-links a{display:inline-flex;align-items:center;gap:8px;min-height:32px}
.filter:active{background:var(--control-hover)}
.filter:focus-visible{outline-offset:3px}
.hero .lead{color:var(--muted);font-size:17px;line-height:1.8}
.specialty-top .eyebrow{padding:5px 9px;background:color-mix(in srgb,var(--category) 12%,transparent);border:1px solid color-mix(in srgb,var(--category) 35%,transparent);border-radius:4px;color:var(--category);letter-spacing:.04em;font-size:10px}
.specialty-top .eyebrow::before{display:none}
[data-category='app']{--category:var(--app)}
[data-category='identity']{--category:var(--identity)}
[data-category='infra']{--category:var(--infra)}
[data-category='desktop']{--category:var(--desktop)}
.index-card:hover .index-arrow{color:var(--reading-link-hover)}
@media(prefers-reduced-motion:no-preference){
  a{transition:color .18s ease,border-color .18s ease,background-color .18s ease}
  button{transition:color .18s ease,border-color .18s ease,background-color .18s ease}
  .boundary-route{transition:opacity .35s ease,stroke .35s ease}
  .boundary-block{transition:opacity .35s ease,stroke .35s ease}
  .nav-toggle span{transition:transform .2s ease}
  .nav-toggle[aria-expanded='true'] span{transform:rotate(45deg)}
  .specialty{transition:opacity .45s ease,transform .2s ease,border-color .2s ease,box-shadow .2s ease}
  .motion-ready .specialty{transition:opacity .45s ease,transform .2s ease,border-color .2s ease,box-shadow .2s ease}
  .specialty-arrow{transition:transform .2s ease,color .2s ease}
  .index-arrow{transition:transform .2s ease,color .2s ease}
  .index-card{transition:background-color .2s ease}
}
@media(hover:hover) and (pointer:fine){
  .specialty:hover{border-color:var(--category);background:var(--panel-top);box-shadow:0 20px 36px #00000045}
  .index-card:hover{background:var(--row-active)}
  .index-card:hover .index-arrow{color:var(--reading-link-hover)}
  .filter:hover{background:var(--panel-top);border-color:var(--accent);color:var(--text)}
  .filter[aria-pressed='true']:hover{background:var(--control-hover);border-color:var(--control-hover);color:#fff}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .specialty:hover{transform:translateY(-3px)}
  .specialty:hover .specialty-arrow{transform:translate(2px,-2px)}
  .specialty:focus-visible .specialty-arrow{transform:translate(2px,-2px)}
  .index-card:hover .index-arrow{transform:translate(3px,-2px)}
  .index-card:focus-within .index-arrow{transform:translate(3px,-2px)}
}
@media(max-width:1050px){
  .shell{width:calc(100% - 60px)}
  .hero{gap:34px}
  .hero h1{font-size:clamp(36px,4.6vw,48px);letter-spacing:-2px}
  .boundary-study{padding:24px}
  .boundary-caption{gap:14px}
  .boundary-caption h2{font-size:24px}
  .boundary-controls button{padding:6px 7px;font-size:11px}
  .research-controls{align-items:flex-start;flex-direction:column;gap:18px}
  .search-field{width:420px}
  .filters{justify-content:flex-start}
  .index-card{grid-template-columns:115px minmax(0,1fr) 138px 18px;gap:18px}
  .index-card h3{font-size:21px}
  .case-layout{grid-template-columns:210px minmax(0,1fr);gap:38px}
  .about{gap:55px}
  .case-card:first-child h3{font-size:35px}
  .specialty h3{font-size:26px}
}
@media(max-width:900px){
  .specialty{padding:25px}
  .specialty h3{font-size:26px}
  .nav-links{gap:22px;font-size:12px}
}
@media(max-width:760px){
  .shell{width:calc(100% - 40px)}
  .site-nav{min-height:79px;flex-wrap:wrap;padding:17px 0;gap:19px}
  .brand-name{font-size:24px}
  .brand-desc{font-size:9px;letter-spacing:.11em}
  .nav-links{width:100%;order:3;justify-content:space-between;gap:12px;font-size:12px;padding:4px 0 2px}
  .nav-links .github{padding:7px 11px}
  .nav-enhanced .nav-toggle{display:inline-flex}
  .nav-enhanced [data-nav-panel]:not(.is-open){display:none}
  .hero{grid-template-columns:1fr;gap:30px;padding:37px 0 41px}
  .hero h1{font-size:clamp(32px,8.5vw,47px);letter-spacing:-1.6px;margin:21px 0 22px;line-height:1.1}
  .hero .lead{font-size:16px;max-width:550px}
  .boundary-study{display:block;padding:23px}
  .boundary-top{grid-column:1/-1;margin-bottom:3px;font-size:11px}
  .boundary-graphic{height:215px;margin:0}
  .boundary-caption{display:flex;flex-wrap:wrap;gap:9px}
  .boundary-caption h2{font-size:24px;margin-bottom:12px}
  .boundary-controls{width:max-content;margin:0 0 10px}
  .boundary-detail p{font-size:14px}
  .section-head h2{font-size:31px}
  .section-head{align-items:flex-start;gap:21px}
  .research{padding:33px 0 36px}
  .case-card{padding-left:25px}
  .case-card:first-child{padding-right:25px}
  .case-card:first-child h3{font-size:31px}
  .case-card h3{font-size:24px}
  .case-card:first-child p{font-size:12px}
  .case-card:first-child .card-arrow{right:24px}
  .full-index{padding-top:30px}
  .index-card{grid-template-columns:minmax(0,1fr) 120px 16px;gap:15px;margin:0 18px;padding:21px 0}
  .index-card>.case-type{grid-column:1/-1;padding:0;font-size:12px}
  .index-card .index-copy{grid-column:1}
  .index-card .index-meta{grid-column:2;font-size:12px}
  .index-card .index-arrow{grid-column:3}
  .index-card h3{font-size:20px}
  .index-card p{font-size:14px}
  .about{grid-template-columns:1fr;gap:22px;padding:35px 0}
  .about h2{font-size:43px;margin-bottom:19px}
  .about p{font-size:18px}
  .site-footer{font-size:11px}
  .case-hero{padding:31px 0 25px}
  .case-hero h1{font-size:36px;letter-spacing:-1.1px}
  .case-hero .lead{font-size:16px}
  .case-facts{gap:14px 25px}
  .case-facts>div{flex:1 1 120px}
  .case-facts>div:last-child{flex:2 1 250px}
  .case-layout{grid-template-columns:1fr;gap:31px;padding-top:29px;padding-bottom:36px}
  .case-toc{position:static;padding:20px;max-height:none;overflow:visible}
  .case-toc h2{margin-bottom:11px;font-size:11px;color:var(--reading-muted)}
  .case-toc ul{display:flex;flex-wrap:wrap;gap:8px 17px;margin-bottom:18px}
  .case-toc li{margin:0}
  .case-toc a{border:0;padding:4px 0;font-size:12px}
  .case-toc a[aria-current='location']{border:0;padding:4px 0;color:var(--reading-link);text-decoration:underline}
  .case-downloads{display:flex;flex-wrap:wrap;gap:10px 24px;padding-top:14px}
  .case-toc .download{margin:0;font-size:12px}
  .prose{font-size:18px;line-height:1.82}
  .prose h2{font-size:26px}
  .prose h3{font-size:22px}
  .prose pre{padding-inline:19px}
  .prose pre::before{left:19px;font-size:11px;color:var(--reading-muted)}
  .specialty-grid{grid-template-columns:1fr}
  .specialty{padding:25px}
  .specialty h3{font-size:26px}
  .expertise{padding:28px 0 34px}
  .journal-group-head{gap:18px;padding:20px 0 16px}
  .journal-group-head h3{font-size:24px}
  .journal-group-head>span{font-size:12px}
  .specialty-top{flex-wrap:wrap}
}
@media(max-width:520px){
  .hero h1{font-size:clamp(30px,8.5vw,42px);letter-spacing:-1.2px}
  .boundary-study{grid-template-columns:1fr;gap:0}
  .boundary-graphic{max-width:420px;height:205px;margin:2px auto 10px}
  .boundary-caption{display:flex;align-items:flex-start;gap:15px}
  .boundary-caption h2{font-size:24px}
  .boundary-controls{margin-top:3px}
  .boundary-detail p{font-size:14px}
  .case-grid{grid-template-columns:1fr}
  .case-card{grid-row:auto;border-right:0;padding:26px 0}
  .case-card:first-child{grid-row:auto;border-right:0;padding:26px 0}
  .case-card:nth-child(n+2){border-top:1px solid var(--line)}
  .case-card:first-child h3{font-size:33px;margin-top:19px}
  .case-card h3{font-size:29px}
  .case-card:first-child .card-arrow{top:24px;bottom:auto;right:0}
  .case-card:first-child .card-meta{padding-right:0;font-size:11px}
  .section-head{flex-direction:column;gap:12px}
  .section-head h2{font-size:29px}
  .filter{font-size:11px;padding:8px 9px}
  .index-card{grid-template-columns:minmax(0,1fr) 16px;gap:12px}
  .index-card .index-copy{grid-column:1}
  .index-card .index-arrow{grid-column:2;grid-row:2}
  .index-card .index-meta{grid-column:1;grid-row:3;flex-direction:row;flex-wrap:wrap;gap:7px 20px;padding-top:0;font-size:12px}
  .index-card h3{font-size:21px}
  .index-card p{line-height:1.8;font-size:14px}
  .site-footer{flex-direction:column;gap:9px;font-size:11px}
  .case-kicker{align-items:flex-start;gap:15px}
  .case-kicker .eyebrow{font-size:11px}
  .read-time{font-size:12px}
  .case-hero h1{font-size:33px}
  .case-hero .lead{line-height:1.85;font-size:16px}
  .case-facts dd{font-size:13px}
  .prose pre code{font-size:13px}
  .architecture{padding:17px}
  .architecture li{gap:10px;font-size:12px}
  .case-next{font-size:13px;align-items:flex-start}
  .specialty{padding:24px}
  .specialty h3{font-size:25px}
  .specialty ul{font-size:11px;gap:8px 14px}
  .specialty p{font-size:15px}
  .journal-group-head h3{font-size:23px}
  .journal-group-head{gap:10px;flex-wrap:wrap}
  .journal-group{margin-bottom:23px}
  .nav-links{gap:10px;flex-wrap:wrap;font-size:12px}
  .nav-links .github{padding:6px 9px}
  .prose h2{font-size:25px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .motion-ready [data-reveal]{opacity:1;transform:none;transition:none}
  .motion-ready [data-reveal]:not(.is-revealed){opacity:1;transform:none;transition:none}
}
