/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Inter.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/JetBrainsMono.woff2)format("woff2")}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/Newsreader.woff2)format("woff2")}@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(/fonts/Newsreader-Italic.woff2)format("woff2")}@layer theme{:root,:host{--font-sans:"Inter",system-ui,sans-serif;--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:"Inter",system-ui,sans-serif;--default-mono-font-family:"JetBrains Mono",ui-monospace,monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--rule);border-radius:0!important}html{font-size:var(--font-size);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--canvas);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"ss01","cv11";overflow-x:clip}h1,h2,h3{overflow-wrap:anywhere}::selection{background-color:var(--signal);color:var(--ink)}.creed-cta .ghost-btn{border-radius:999px!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.min-h-screen{min-height:100vh}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.text-ink{color:var(--ink)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.blur-in{--tw-enter-blur:20px}.paused{animation-play-state:paused}.running{animation-play-state:running}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--font-size:16px;--ink:#0a0a0a;--canvas:#f7f7f3;--canvas-alt:#f0f0eb;--rule:#d9d9d4;--rule-strong:#b8b8b2;--graphite:#4a4a4a;--charcoal:#1f1f1f;--signal:#e0ff4f;--canvas-rgb:247,247,243;--canvas-alt-rgb:240,240,235;--ink-rgb:10,10,10;--sp-page:160px;--sp-section:128px;--sp-block:80px;--sp-inline:96px;--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-in-out-expo:cubic-bezier(.87,0,.13,1);--ease-out-back:cubic-bezier(.34,1.56,.64,1);--dur-quick:.2s;--dur-med:.4s;--dur-slow:.7s;--dur-cinematic:.9s;--background:var(--canvas);--foreground:var(--ink);--card:var(--canvas);--card-foreground:var(--ink);--primary:var(--ink);--primary-foreground:var(--canvas);--secondary:var(--canvas-alt);--secondary-foreground:var(--ink);--muted:var(--canvas-alt);--muted-foreground:var(--graphite);--accent:var(--signal);--accent-foreground:var(--ink);--destructive:#d4183d;--destructive-foreground:#fff;--border:var(--rule);--input:transparent;--input-background:var(--canvas-alt);--ring:var(--ink);--radius:0;--font-sans:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}.mono-kicker{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:500;line-height:14px}.mono-meta{font-family:var(--font-mono);letter-spacing:.04em;font-size:12px;font-weight:400;line-height:18px}.measure{max-width:64ch}.measure-narrow{max-width:48ch}.measure-cell{max-width:50ch}.hairline{background-color:var(--rule);border:0;width:100%;height:.5px}.hairline-v{background-color:var(--rule);border:0;width:.5px}.link-underline{display:inline-block;position:relative}.link-underline:after{content:"";background-color:currentColor;width:0;height:1px;transition:width .2s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-2px;left:0}.link-underline:hover:after{width:100%}.ghost-btn{border:.5px solid var(--ink);letter-spacing:-.005em;color:var(--ink);cursor:pointer;background:0 0;align-items:center;gap:12px;padding:14px 22px;font-size:14px;font-weight:500;transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.ghost-btn:hover{background-color:var(--ink);color:var(--canvas)}.ghost-btn-inverse{border-color:var(--canvas);color:var(--canvas)}.ghost-btn-inverse:hover{background-color:var(--canvas);color:var(--ink)}.wordmark{letter-spacing:.24em;text-transform:uppercase;font-size:13px;font-weight:600}.caption{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--graphite);font-size:10.5px;font-weight:500;line-height:14px}.display-xl{letter-spacing:-.03em;font-size:clamp(34px,6.5vw,96px);font-weight:600;line-height:1.02}.display-l{letter-spacing:-.025em;font-size:clamp(28px,5vw,72px);font-weight:600;line-height:1.08}.display-m{letter-spacing:-.025em;font-size:clamp(24px,4.5vw,64px);font-weight:600;line-height:1.1}.display-s{letter-spacing:-.018em;font-size:clamp(20px,3vw,40px);font-weight:600;line-height:1.16}.body-lead{color:var(--charcoal);font-size:19px;line-height:1.75}.cell-rule{border-right:none;padding-right:0}@media(min-width:768px){.cell-rule{border-right:.5px solid var(--rule);padding-right:32px}}.stack-row{flex-direction:column;gap:6px;padding:20px 0 20px 16px;display:flex}@media(min-width:768px){.stack-row{flex-direction:unset;grid-template-columns:96px 1.2fr 2fr;align-items:center;gap:24px;padding:24px 24px 24px 0;display:grid}}.body{color:var(--graphite);font-size:16px;line-height:26px}button:focus-visible,a:focus-visible,.ghost-btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.ghost-btn-inverse:focus-visible{outline-color:var(--canvas)}.active-dot{background-color:var(--signal);width:4px;height:4px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}@keyframes sfgil-pulse-ring{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@keyframes sfgil-line-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sfgil-blink{0%,to{opacity:.4}50%{opacity:1}}@media(prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}:root{--font-serif:"Newsreader","Iowan Old Style",Georgia,serif}.display-serif-l{font-family:var(--font-serif);letter-spacing:-.018em;font-size:clamp(32px,5vw,68px);font-weight:500;line-height:1.1}.display-serif-m{font-family:var(--font-serif);letter-spacing:-.012em;font-size:clamp(26px,3.4vw,44px);font-weight:500;line-height:1.14}.display-serif-l em,.display-serif-m em{font-style:italic;font-weight:500}.serif-quote{font-family:var(--font-serif);font-size:clamp(19px,2.1vw,27px);font-weight:400;line-height:1.5}.serif-value{font-family:var(--font-serif);font-size:clamp(22px,2.6vw,34px);font-weight:400;line-height:1.25}.measure-page{max-width:56rem}.measure-lede{max-width:58ch}.creed-statement{font-family:var(--font-serif);letter-spacing:-.02em;font-size:clamp(32px,4.9vw,68px);font-weight:400;line-height:1.16}.sf-label-row{grid-template-columns:var(--label-col,180px)1fr;align-items:baseline;gap:clamp(14px,2.4vw,28px);padding-top:22px;display:grid}.sf-initials-plate{border:.5px solid var(--rule-strong);justify-content:center;align-items:center;width:72px;height:72px;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sf-role-row .sf-role-cta{opacity:.78;transition:opacity .2s cubic-bezier(.16,1,.3,1)}.sf-role-row:hover .sf-role-cta,.sf-role-row:focus-visible .sf-role-cta{opacity:1}@media(max-width:759px){.sf-resident-row{grid-template-columns:56px 1fr!important}.sf-initials-plate{width:56px;height:56px}.sf-label-row{grid-template-columns:1fr;gap:10px}.sf-portfolio-cells{grid-template-columns:1fr 1fr!important}}.sf-tree-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 26px;display:grid}.sf-tree-grid>.sf-tree-node{grid-column:var(--tc);grid-row:var(--tr)}@media(max-width:899px){.sf-tree-grid{grid-template-columns:minmax(0,1fr);gap:10px}.sf-tree-grid>.sf-tree-node{grid-area:auto}.sf-tree-edges{display:none}}.sf-anneal-grid{grid-template-columns:minmax(0,1fr);gap:28px;display:grid}@media(min-width:960px){.sf-anneal-grid{grid-template-columns:minmax(250px,4fr) minmax(0,8fr);align-items:start;gap:36px}}.sf-market-grid{grid-template-columns:minmax(0,1fr);display:grid}@media(min-width:960px){.sf-market-grid{grid-template-columns:minmax(0,7fr) minmax(320px,5fr)}}.sf-lattice-grid{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}@media(min-width:640px){.sf-lattice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:900px){.sf-lattice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.sf-cortex-host{height:clamp(430px,58vh,640px)}.sf-anneal-plot{height:clamp(320px,44vh,470px)}@media(max-width:639px){.sf-m-hide{display:none!important}.sf-cortex-host{height:430px}.sf-anneal-plot{height:290px}}@keyframes sf-rowin{0%{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}.creed-halo{background:radial-gradient(ellipse 64% 60% at 50% 49%,rgba(var(--canvas-rgb),.6),rgba(var(--canvas-rgb),.42)36%,rgba(var(--canvas-rgb),.2)60%,rgba(var(--canvas-rgb),.06)78%,rgba(var(--canvas-rgb),0)92%)}.wrap{max-width:1320px;margin:0 auto;padding-left:clamp(22px,5.6vw,80px);padding-right:clamp(22px,5.6vw,80px)}.ghost-btn{transition:background-color .24s var(--ease-out-expo),color .24s var(--ease-out-expo),border-color .24s var(--ease-out-expo);padding:14px 26px;border-radius:999px!important}.ghost-btn:hover .sf-arrow{transform:translate(4px)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:var(--canvas)}::-webkit-scrollbar-thumb{background:var(--rule-strong);border:3px solid var(--canvas);border-radius:999px}.rh-word{vertical-align:bottom;margin:-.18em -.04em;padding:.18em .04em;display:inline-block;overflow:hidden}.tabular{font-variant-numeric:tabular-nums}@keyframes sf-pulse{0%{opacity:.65;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}@keyframes sf-cue{0%{opacity:0;transform:translateY(-40%)}40%{opacity:1}to{opacity:0;transform:translateY(120%)}}.sf-footer-link{transition:color .2s cubic-bezier(.16,1,.3,1)}.sf-footer-link:hover,.sf-footer-link:focus-visible{color:var(--canvas)!important}.ghost-btn:focus-visible,.sf-link:focus-visible,.sf-footer-link:focus-visible,.link-underline:focus-visible,.wordmark:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}footer :focus-visible,.sf-nav-ink :focus-visible{outline-color:var(--signal)}.sf-mobilerow{z-index:1;border-top:.5px solid #d9d9d466;position:relative}.sf-mobilerow .wrap{scrollbar-width:none}.sf-mobilerow .wrap::-webkit-scrollbar{display:none}.sf-mobilerow .sf-link{color:var(--graphite);transition:color .18s cubic-bezier(.16,1,.3,1)}.sf-mobilerow .sf-link[aria-current=page]{color:var(--ink)}.sf-nav-ink .sf-mobilerow{border-top-color:#f7f7f329}.sf-nav-ink .sf-mobilerow .sf-link{color:#f7f7f39e}.sf-nav-ink .sf-mobilerow .sf-link[aria-current=page]{color:var(--canvas)}.sf-scrollcue{border-left:.5px solid var(--rule-strong);position:relative}.sf-scrollcue:after{content:"";background:var(--signal);width:3px;height:9px;animation:sf-cue 2.4s var(--ease-out-expo)infinite;position:absolute;top:0;left:-2px}@media(max-width:1000px){.sf-fullname,.sf-navlinks .sf-link,.sf-nav-dot{display:none}}@media(max-width:759px){.display-serif-l{letter-spacing:-.014em;line-height:1.12}.creed-statement{letter-spacing:-.012em;line-height:1.2}.display-serif-m{letter-spacing:-.008em;line-height:1.16}}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
/* Styles for the Data, Intelligence and Infrastructure pages (src/site/). Appended to the
   compiled stylesheet by src/build.mjs. Everything here is prefixed sfn- except two adjustments
   to the compiled navigation at the foot of the file. Colours, type and motion come from the
   site's own tokens. */

/* ---- Text --------------------------------------------------------------------------------- */

.sfn-quiet {
  color: var(--graphite);
}
.sfn-prose > p {
  margin: 0;
  max-width: 60ch;
  color: var(--charcoal);
}
.sfn-prose > p + p {
  margin-top: 16px;
}

.sfn-triad-cells {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 40px);
  margin-top: 26px;
}
/* The reveal group wraps each cell in a div; let the cell fill it so the "Read" lines align. */
.sfn-triad-cells > * {
  display: flex;
  min-width: 0;
}
.sfn-triad-cell {
  display: grid;
  flex: 1;
  grid-template-rows: auto 1fr auto;
  gap: 14px;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.sfn-triad-text {
  font-family: var(--font-serif);
  font-size: clamp(19px, 1.7vw, 23px);
  line-height: 1.4;
  color: var(--ink);
}
.sfn-triad-cell .sf-role-cta {
  opacity: 0.6;
  transition: opacity var(--dur-quick) var(--ease-out-expo);
}
.sfn-triad-cell:hover .sf-role-cta,
.sfn-triad-cell:focus-visible .sf-role-cta {
  opacity: 1;
}
.sfn-passage {
  display: grid;
  gap: 16px;
  max-width: 68ch;
}
.sfn-passage > p {
  margin: 0;
  color: var(--charcoal);
  font-size: 17px;
  line-height: 1.7;
}
.sfn-passage + .sfn-figure,
.sfn-passage + .sfn-cells {
  margin-top: clamp(28px, 4vh, 44px);
}
.sfn-cite {
  font-size: 0.7em;
  line-height: 0;
  vertical-align: baseline;
  position: relative;
  top: -0.55em;
  margin-left: 2px;
}
.sfn-cite > a {
  padding: 0 2px;
  color: var(--ink);
  font-family: var(--font-mono);
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid var(--rule-strong);
}
.sfn-cite > a:hover {
  border-bottom-color: var(--ink);
}
.sfn-refs {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sfn-refs > li {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 14px;
  padding: 14px 0;
  border-top: 0.5px solid var(--rule);
  color: var(--charcoal);
  font-size: 14.5px;
  line-height: 1.55;
  scroll-margin-top: 96px;
}
.sfn-refs > li:last-child {
  border-bottom: 0.5px solid var(--rule);
}
.sfn-ref-link {
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 12.5px;
  text-decoration: none;
  word-break: break-all;
}

/* ---- Cells: short statements side by side --------------------------------------------------- */

.sfn-cells {
  display: grid;
  grid-template-columns: repeat(var(--sfn-cols, 3), minmax(0, 1fr));
  gap: clamp(16px, 2.4vw, 28px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.sfn-cells > li {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 14px;
  border-top: 0.5px solid var(--rule-strong);
}
.sfn-cell-title {
  color: var(--graphite);
}
.sfn-cell-text {
  color: var(--charcoal);
  font-size: 15px;
  line-height: 1.55;
}
.sfn-cell-strong {
  color: var(--ink);
  font-weight: 500;
}

/* ---- Status note ---------------------------------------------------------------------------- */

.sfn-status {
  display: grid;
  grid-template-columns: var(--label-col, 180px) 1fr;
  align-items: baseline;
  gap: clamp(14px, 2.4vw, 28px);
  padding: 18px 0;
  border-block: 0.5px solid var(--ink);
}
.sfn-status > p {
  margin: 0;
  max-width: 60ch;
  color: var(--charcoal);
}

/* ---- The technologies index ------------------------------------------------------------------ */

.sfn-index-row {
  color: var(--ink);
  text-decoration: none;
}
.sfn-index-body {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px clamp(14px, 2.4vw, 28px);
  min-width: 0;
}

/* ---- The frame every figure sits in ---------------------------------------------------------- */

.sfn-figure {
  margin: 0;
}
.sfn-figure-frame {
  border: 0.5px solid var(--rule-strong);
}
.sfn-figure-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 46px;
  padding: 8px clamp(16px, 2.2vw, 26px);
  border-bottom: 0.5px solid var(--rule);
}
.sfn-figure-caption {
  margin: 12px 0 0;
  color: var(--graphite);
}

/* ---- Controls shared by the figures ---------------------------------------------------------- */

.sfn-button {
  padding: 9px 12px;
  border: 0.5px solid var(--ink);
  background: transparent;
  color: var(--ink);
  font: 500 11px/14px var(--font-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    background-color var(--dur-quick) var(--ease-out-expo),
    color var(--dur-quick) var(--ease-out-expo),
    opacity var(--dur-quick) var(--ease-out-expo);
}
.sfn-button:hover:not(:disabled) {
  background: var(--ink);
  color: var(--canvas);
}
.sfn-button:disabled {
  opacity: 0.3;
  cursor: default;
}
.sfn-button-quiet {
  border-color: var(--rule-strong);
  color: var(--graphite);
}

.sfn-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sfn-chips > button {
  padding: 8px 12px;
  border: 0.5px solid var(--rule-strong);
  background: transparent;
  color: var(--charcoal);
  font-size: 13px;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  transition:
    background-color var(--dur-quick) var(--ease-out-expo),
    color var(--dur-quick) var(--ease-out-expo),
    border-color var(--dur-quick) var(--ease-out-expo);
}
.sfn-chips > button:hover {
  border-color: var(--ink);
}
.sfn-chips > button[aria-checked="true"],
.sfn-chips > button[aria-selected="true"] {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--canvas);
}

/* A horizontal measure: ink up to --sfn-fill (0 to 1), rule beyond it. */
.sfn-bar {
  display: block;
  height: 6px;
  background: linear-gradient(90deg, var(--ink) calc(var(--sfn-fill) * 100%), var(--rule) 0);
}

/* A label and the sentence that answers it, used under several figures. */
.sfn-outcome {
  display: grid;
  grid-template-columns: 132px 1fr;
  align-items: baseline;
  gap: 14px;
  margin: 0;
  color: var(--charcoal);
  font-size: 14.5px;
  line-height: 1.5;
}

/* ---- Data: the lease -------------------------------------------------------------------------- */

.sfn-lease {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.15fr) minmax(0, 1fr);
}
.sfn-lease > div {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
  padding: clamp(18px, 2.2vw, 26px);
}
.sfn-lease > div + div {
  border-left: 0.5px solid var(--rule);
}

.sfn-choice {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 12px;
  width: 100%;
  padding: 10px 0 0;
  border-top: 0.5px solid var(--rule);
  background: none;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.sfn-choice:disabled {
  cursor: default;
}
.sfn-choice:disabled:not([data-locked]) {
  opacity: 0.6;
}
.sfn-switch {
  position: relative;
  width: 28px;
  height: 16px;
  margin-top: 2px;
  border: 0.5px solid var(--ink);
  transition: background-color var(--dur-quick) var(--ease-out-expo);
}
.sfn-switch::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 10px;
  height: 10px;
  background: var(--ink);
  transition:
    transform var(--dur-quick) var(--ease-out-expo),
    background-color var(--dur-quick) var(--ease-out-expo);
}
.sfn-choice[aria-checked="true"] .sfn-switch {
  background: var(--ink);
}
.sfn-choice[aria-checked="true"] .sfn-switch::after {
  background: var(--canvas);
  transform: translateX(12px);
}
.sfn-choice-label {
  display: block;
  font-size: 14px;
  font-weight: 500;
}
.sfn-choice-detail {
  display: block;
  margin-top: 2px;
  color: var(--graphite);
  font-size: 13px;
  line-height: 1.5;
}

.sfn-seg {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 0.5px solid var(--rule-strong);
}
.sfn-seg > button {
  padding: 9px 8px;
  background: transparent;
  color: var(--graphite);
  font-size: 12.5px;
  line-height: 1.3;
  cursor: pointer;
}
.sfn-seg > button + button {
  border-left: 0.5px solid var(--rule-strong);
}
.sfn-seg > button[aria-checked="true"] {
  background: var(--ink);
  color: var(--canvas);
}
.sfn-seg > button:disabled {
  cursor: default;
}
.sfn-seg > button:disabled:not([aria-checked="true"]) {
  opacity: 0.5;
}
.sfn-lease-hint {
  margin: 0;
}

/* Person and business, and the line between them: dashed until a lease is active. */
.sfn-channel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  font: 500 11px/14px var(--font-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.sfn-channel > span {
  padding: 7px 10px;
  border: 0.5px solid var(--ink);
}
.sfn-channel > i {
  position: relative;
  height: 1px;
  background-image: linear-gradient(90deg, var(--rule-strong) 50%, transparent 50%);
  background-size: 8px 1px;
}
.sfn-channel[data-phase="pending"] > i {
  background-image: linear-gradient(90deg, var(--ink) 50%, transparent 50%);
}
.sfn-channel[data-phase="active"] > i {
  background-image: linear-gradient(90deg, var(--ink) 62%, transparent 62%);
  animation: sfn-flow 0.9s linear infinite;
}
.sfn-channel[data-phase="active"] > i::after {
  content: "";
  position: absolute;
  top: -3px;
  left: 50%;
  width: 7px;
  height: 7px;
  margin-left: -3px;
  background: var(--signal);
}
.sfn-channel[data-phase="ended"] > i::after,
.sfn-channel[data-phase="revoked"] > i::after {
  content: "×";
  position: absolute;
  top: -9px;
  left: 50%;
  padding: 0 5px;
  background: var(--canvas);
  color: var(--ink);
  font: 500 15px/18px var(--font-mono);
  transform: translateX(-50%);
}
@keyframes sfn-flow {
  to {
    background-position: 8px 0;
  }
}

.sfn-lease-state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.sfn-phase {
  padding: 3px 8px;
  border: 0.5px solid var(--ink);
}
.sfn-phase[data-phase="active"] {
  background: var(--ink);
  color: var(--canvas);
}
.sfn-phase[data-phase="draft"],
.sfn-phase[data-phase="ended"],
.sfn-phase[data-phase="revoked"] {
  border-color: var(--rule-strong);
  color: var(--graphite);
}
.sfn-terms {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 10px 14px;
  margin: 0;
  color: var(--charcoal);
  font-size: 13.5px;
  line-height: 1.5;
}
.sfn-terms > dt {
  padding-top: 3px;
}
.sfn-terms > dd {
  margin: 0;
}
.sfn-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
  padding-top: 6px;
}

.sfn-ledger {
  display: flex;
  flex-direction: column;
  max-height: 380px;
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}
.sfn-ledger > li {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  padding: 10px 0;
  border-top: 0.5px solid var(--rule);
}
.sfn-ledger > li.sfn-ledger-empty {
  display: block;
  color: var(--graphite);
  font-size: 13px;
  line-height: 1.5;
}
.sfn-ledger-detail {
  display: block;
  margin-top: 4px;
  color: var(--charcoal);
  font-size: 13px;
  line-height: 1.5;
}
.sfn-ledger > li[data-tone="allowed"] .mono-kicker::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 8px;
  background: var(--signal);
}
.sfn-ledger > li[data-tone="refused"] .mono-kicker::before {
  content: "×";
  margin-right: 6px;
}

/* ---- Data: the group of five ------------------------------------------------------------------ */

.sfn-cohort {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.sfn-cohort > div {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  padding: clamp(18px, 2.2vw, 26px);
}
.sfn-cohort > div + div {
  border-left: 0.5px solid var(--rule);
}
.sfn-people {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 6px;
  max-width: 420px;
}
.sfn-people > i {
  aspect-ratio: 1;
  border: 0.5px solid var(--rule-strong);
  transition: background-color 0.25s var(--ease-out-expo);
}
.sfn-people > i[data-counted] {
  border-color: var(--ink);
  background: var(--ink);
}
.sfn-range {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 420px;
}
.sfn-range > input {
  width: 100%;
  accent-color: var(--ink);
}
.sfn-cohort-headline {
  margin: 0;
  color: var(--graphite);
  font-family: var(--font-serif);
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.2;
}
.sfn-cohort-result[data-enough] .sfn-cohort-headline {
  color: var(--ink);
}
.sfn-cohort-result p.body {
  margin: 12px 0 0;
  max-width: 44ch;
}
.sfn-bars {
  display: grid;
  gap: 8px;
  margin: 16px 0 12px;
  padding: 0;
  list-style: none;
}
.sfn-bars > li {
  display: grid;
  grid-template-columns: 84px 1fr 24px;
  align-items: center;
  gap: 10px;
}

/* ---- Intelligence: classes -------------------------------------------------------------------- */

.sfn-classes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sfn-class {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: clamp(18px, 2.2vw, 26px);
  transition: background-color 0.3s var(--ease-out-expo);
}
.sfn-class + .sfn-class {
  border-left: 0.5px solid var(--rule);
}
.sfn-class[data-active] {
  background: var(--canvas-alt);
}
.sfn-class[data-active]::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--signal);
}
.sfn-class-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
}
.sfn-class-count {
  font-family: var(--font-serif);
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1;
}
.sfn-class-rule {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  font-weight: 500;
}
.sfn-class > ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  color: var(--charcoal);
  font-size: 13.5px;
  line-height: 1.45;
  list-style: none;
}
.sfn-class > ul > li {
  position: relative;
  padding-left: 14px;
}
.sfn-class > ul > li::before {
  content: "";
  position: absolute;
  top: 0.68em;
  left: 0;
  width: 6px;
  height: 1px;
  background: var(--graphite);
}
.sfn-budget {
  display: grid;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
}
.sfn-try {
  display: grid;
  gap: 14px;
  padding: clamp(18px, 2.2vw, 26px);
  border-top: 0.5px solid var(--rule);
}

/* ---- Intelligence: two keys -------------------------------------------------------------------- */

.sfn-tabs {
  padding: clamp(14px, 1.8vw, 20px) clamp(18px, 2.2vw, 26px);
  border-bottom: 0.5px solid var(--rule);
}
.sfn-keys {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
}
.sfn-keys > * {
  min-width: 0;
  padding: clamp(18px, 2.2vw, 26px);
}
.sfn-transcript {
  display: grid;
  align-content: start;
  gap: 14px;
  margin: 0;
  list-style: none;
}
.sfn-transcript > li {
  display: grid;
  grid-template-columns: 56px 1fr;
  align-items: baseline;
  gap: 12px;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.5;
}
.sfn-transcript > li[data-speaker="GIL"] > span:last-child {
  color: var(--charcoal);
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 1.4;
}
.sfn-locks {
  display: grid;
  align-content: start;
  gap: 12px;
  border-left: 0.5px solid var(--rule);
}
.sfn-lock {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 0.5px dashed var(--rule-strong);
  color: var(--graphite);
  font-size: 14px;
  line-height: 1.45;
}
.sfn-lock[data-turned] {
  border-style: solid;
  border-color: var(--ink);
  background: var(--canvas-alt);
  color: var(--ink);
}
.sfn-locks > .sfn-outcome {
  grid-template-columns: 1fr;
  gap: 6px;
  margin-top: 6px;
}

/* ---- Intelligence: a sealed turn ---------------------------------------------------------------- */

.sfn-turn {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: clamp(18px, 2.2vw, 26px);
  list-style: none;
}
.sfn-turn > li {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 132px;
  padding: 14px;
  border: 0.5px solid var(--ink);
  opacity: 0.14;
  transform: translateY(6px);
  transition:
    opacity 0.5s var(--ease-out-expo),
    transform 0.5s var(--ease-out-expo);
}
.sfn-turn > li[data-shown] {
  opacity: 1;
  transform: none;
}
.sfn-turn > li[data-seals] {
  background: var(--canvas-alt);
}
/* The seal: a bar drawn after the call that read outside text. */
.sfn-turn > li[data-seals]::after {
  content: "";
  position: absolute;
  top: -8px;
  right: -7px;
  bottom: -8px;
  width: 2px;
  background: var(--ink);
}
.sfn-turn > li[data-seals]::before {
  content: "";
  position: absolute;
  top: -14px;
  right: -10px;
  width: 8px;
  height: 8px;
  background: var(--signal);
}
.sfn-turn > li[data-sealed] {
  border-color: var(--rule-strong);
  border-style: dashed;
  background: repeating-linear-gradient(135deg, transparent 0 7px, rgba(var(--ink-rgb), 0.05) 7px 8px);
  color: var(--graphite);
}
.sfn-turn > li[data-sealed] .sfn-turn-text {
  text-decoration: line-through;
}
.sfn-turn-text {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.35;
}

/* ---- Intelligence: the ladder and the decision record -------------------------------------------- */

.sfn-ladder {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}
.sfn-ladder > li {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  padding: clamp(18px, 2.2vw, 26px);
}
.sfn-ladder > li + li {
  border-left: 0.5px solid var(--rule);
}
.sfn-ladder-title {
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: clamp(19px, 1.9vw, 24px);
  line-height: 1.25;
}
.sfn-ladder-text {
  color: var(--charcoal);
  font-size: 13.5px;
  line-height: 1.5;
}
.sfn-record {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 12px 20px;
  margin: 0;
  padding: clamp(18px, 2.2vw, 26px);
  color: var(--charcoal);
  font-size: 14.5px;
  line-height: 1.5;
}
.sfn-record > dt {
  padding-top: 3px;
}
.sfn-record > dd {
  margin: 0;
}

/* ---- Infrastructure: what it connects ------------------------------------------------------------ */

.sfn-map-systems {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}
.sfn-map-systems > li {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  padding: clamp(18px, 2.2vw, 26px);
  color: var(--charcoal);
  font-size: 13.5px;
  line-height: 1.5;
}
.sfn-map-systems > li + li {
  border-left: 0.5px solid var(--rule);
}
.sfn-map-layer {
  display: grid;
  grid-template-columns: 132px 1fr;
  align-items: baseline;
  gap: 14px;
  padding: 14px clamp(18px, 2.2vw, 26px);
  border-top: 0.5px solid var(--rule);
  color: var(--charcoal);
  font-size: 13.5px;
  line-height: 1.5;
}
.sfn-map-layer + .sfn-map-layer {
  background: var(--canvas-alt);
}
.sfn-map-stores {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  background: var(--ink);
  color: rgba(var(--canvas-rgb), 0.72);
  font-size: 13.5px;
  line-height: 1.5;
}
.sfn-map-stores > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px clamp(18px, 2.2vw, 26px);
}
.sfn-map-stores > div:last-child {
  align-items: flex-end;
  text-align: right;
}
.sfn-map-stores .mono-kicker {
  color: var(--canvas);
}
.sfn-map-stores > i {
  width: clamp(40px, 10vw, 160px);
  height: 1px;
  background-image: linear-gradient(90deg, var(--signal) 50%, transparent 50%);
  background-size: 8px 1px;
  animation: sfn-flow 0.9s linear infinite;
}

/* ---- Infrastructure: one booking ----------------------------------------------------------------- */

.sfn-flow {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr);
}
.sfn-flow-steps {
  margin: 0;
  padding: 8px 0;
  border-right: 0.5px solid var(--rule);
  list-style: none;
}
.sfn-flow-steps button {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 10px;
  width: 100%;
  padding: 11px clamp(16px, 2.2vw, 26px);
  background: transparent;
  color: var(--graphite);
  font-size: 14.5px;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
  transition:
    color var(--dur-quick) var(--ease-out-expo),
    background-color var(--dur-quick) var(--ease-out-expo);
}
.sfn-flow-steps button:hover {
  color: var(--ink);
}
.sfn-flow-steps button[aria-current="step"] {
  background: var(--canvas-alt);
  box-shadow: inset 3px 0 0 var(--signal);
  color: var(--ink);
  font-weight: 500;
}
.sfn-flow-stage {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  min-height: 380px;
  padding: clamp(20px, 2.6vw, 32px);
}
.sfn-flow-layers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sfn-flow-layers > li {
  padding: 9px 10px;
  border: 0.5px dashed var(--rule-strong);
  color: var(--graphite);
  opacity: 0.6;
  transition:
    background-color 0.3s var(--ease-out-expo),
    color 0.3s var(--ease-out-expo),
    opacity 0.3s var(--ease-out-expo);
}
.sfn-flow-layers > li[data-on] {
  border-style: solid;
  border-color: var(--ink);
  background: var(--ink);
  color: var(--canvas);
  opacity: 1;
}
.sfn-flow-layers .mono-kicker {
  overflow: hidden;
  text-overflow: ellipsis;
}
.sfn-flow-title {
  margin: 6px 0 0;
  font-family: var(--font-serif);
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.2;
}
.sfn-flow-text {
  margin: 0;
  max-width: 52ch;
  color: var(--charcoal);
}
.sfn-flow-record {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-top: 14px;
  border-top: 0.5px solid var(--rule);
}
.sfn-flow-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
}

/* ---- The acquis as a specification: a rail of instruments and the rows beneath ---------------- */

.sfn-acquis {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas:
    "rail rail"
    "rows detail";
}
.sfn-acquis-rail {
  --sfn-lane-h: 30px;
  container: acquis / inline-size;
  grid-area: rail;
  position: relative;
  height: calc(44px + var(--sfn-lanes, 1) * var(--sfn-lane-h) + 16px);
  margin: 0 clamp(16px, 2.2vw, 26px);
  border-bottom: 0.5px solid var(--rule);
}
.sfn-acquis-years {
  position: absolute;
  top: 10px;
  right: 0;
  left: 0;
  height: 18px;
}
.sfn-acquis-years > span {
  position: absolute;
  transform: translateX(-50%);
  color: var(--graphite);
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.06em;
}
.sfn-acquis-years > span:first-child {
  transform: none;
}
.sfn-acquis-years > span:last-child {
  transform: translateX(-100%);
}
.sfn-acquis-line {
  position: absolute;
  top: 36px;
  right: 0;
  left: 0;
  height: 0.5px;
  background: var(--rule-strong);
}
.sfn-acquis-chip {
  position: absolute;
  top: calc(36px + var(--sfn-lane) * var(--sfn-lane-h) + 10px);
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  background: transparent;
  color: var(--graphite);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--dur-quick) var(--ease-out-expo);
}
@container acquis (max-width: 469px) {
  .sfn-acquis-chip > span {
    display: none;
  }
}
.sfn-acquis-chip > i {
  display: block;
  width: 7px;
  height: 7px;
  border: 0.5px solid var(--ink);
  background: var(--canvas);
  transform: translateX(-50%);
  transition: background-color var(--dur-quick) var(--ease-out-expo);
}
.sfn-acquis-chip[data-flip] {
  flex-direction: row-reverse;
}
.sfn-acquis-chip[data-flip] > i {
  transform: translateX(50%);
}
.sfn-acquis-chip[data-status="proposal"] > i,
.sfn-acquis-chip[data-status="policy"] > i,
.sfn-acquis-chip[data-status="assessment"] > i {
  border-style: dashed;
}
.sfn-acquis-chip:hover {
  color: var(--ink);
}
.sfn-acquis-chip[data-on] {
  color: var(--ink);
  font-weight: 500;
}
.sfn-acquis-chip[data-on] > i {
  background: var(--signal);
  border-color: var(--ink);
}
.sfn-acquis-rows {
  grid-area: rows;
  margin: 0;
  padding: 8px 0;
  border-right: 0.5px solid var(--rule);
  list-style: none;
}
.sfn-acquis-rows button {
  display: grid;
  gap: 6px;
  width: 100%;
  padding: 12px clamp(16px, 2.2vw, 26px);
  background: transparent;
  color: var(--graphite);
  text-align: left;
  cursor: pointer;
  transition:
    color var(--dur-quick) var(--ease-out-expo),
    background-color var(--dur-quick) var(--ease-out-expo);
}
.sfn-acquis-rows button:hover {
  color: var(--ink);
}
.sfn-acquis-rows button[aria-current] {
  background: var(--canvas-alt);
  box-shadow: inset 3px 0 0 var(--signal);
  color: var(--ink);
}
.sfn-acquis-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
}
.sfn-acquis-name {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
}
.sfn-acquis-when {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
}
.sfn-acquis-when .mono-kicker[data-status="applies"],
.sfn-acquis-when .mono-kicker[data-status="applies from"] {
  color: var(--ink);
}
.sfn-acquis-when .mono-kicker[data-status="proposal"],
.sfn-acquis-when .mono-kicker[data-status="in negotiation"] {
  color: var(--graphite);
}
.sfn-acquis-detail {
  grid-area: detail;
  position: sticky;
  top: 96px;
  align-self: start;
  display: grid;
  gap: 22px;
  min-width: 0;
  padding: clamp(20px, 2.6vw, 32px);
}
.sfn-acquis-detail > div {
  display: grid;
  gap: 10px;
}
.sfn-acquis-detail p {
  margin: 0;
  max-width: 48ch;
  color: var(--charcoal);
  font-size: 15.5px;
  line-height: 1.6;
}
.sfn-acquis-detail > div:last-child p {
  color: var(--ink);
}

/* ---- Data: one lease in four steps (the lease card inside the flow stage) ------------------- */

.sfn-walk-lease {
  display: grid;
  gap: 12px;
  padding: 16px clamp(14px, 1.8vw, 20px);
  border: 0.5px solid var(--rule-strong);
  background: var(--canvas-alt);
}
.sfn-walk-lease .sfn-terms {
  margin: 0;
}

/* ---- Data: the two stores -------------------------------------------------------------------- */

.sfn-stores {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-areas:
    "registry registry registry"
    "personal gap business"
    "readers readers readers";
}
.sfn-registry {
  grid-area: registry;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 14px;
  padding: 12px clamp(18px, 2.2vw, 26px);
  border-bottom: 0.5px solid var(--rule);
  background: var(--canvas-alt);
}
.sfn-store {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: clamp(18px, 2.2vw, 26px);
}
.sfn-store[data-store="personal"] {
  grid-area: personal;
}
.sfn-store[data-store="business"] {
  grid-area: business;
}
.sfn-store-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 14px;
}
.sfn-store > ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sfn-store button {
  width: 100%;
  padding: 10px 12px;
  border: 0.5px solid var(--rule-strong);
  background: transparent;
  color: var(--charcoal);
  font-size: 14px;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
  transition:
    background-color var(--dur-quick) var(--ease-out-expo),
    color var(--dur-quick) var(--ease-out-expo),
    border-color var(--dur-quick) var(--ease-out-expo);
}
.sfn-store button:hover {
  border-color: var(--ink);
}
.sfn-store li[aria-selected="true"] button {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--canvas);
}
.sfn-stores-gap {
  grid-area: gap;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: clamp(72px, 9vw, 128px);
  border-inline: 0.5px solid var(--rule);
}
.sfn-stores-gap > i {
  flex: 1;
  width: 1px;
  background-image: linear-gradient(180deg, var(--ink) 50%, transparent 50%);
  background-size: 1px 8px;
  animation: sfn-flow-down 0.9s linear infinite;
}
@keyframes sfn-flow-down {
  to {
    background-position: 0 8px;
  }
}
.sfn-readers {
  grid-area: readers;
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: baseline;
  gap: 14px;
  padding: 16px clamp(18px, 2.2vw, 26px);
  border-top: 0.5px solid var(--rule);
  background: var(--canvas-alt);
}
.sfn-readers > p {
  margin: 0;
  max-width: 64ch;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.5;
}

/* ---- Intelligence: the harness ------------------------------------------------------------------- */

.sfn-pipe {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
  padding: clamp(18px, 2.2vw, 26px);
  list-style: none;
}
.sfn-pipe > li {
  position: relative;
  min-width: 0;
}
.sfn-pipe > li + li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -6px;
  width: 6px;
  height: 0.5px;
  background: var(--rule-strong);
}
.sfn-pipe button {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  min-height: 72px;
  padding: 10px;
  border: 0.5px solid var(--rule-strong);
  background: transparent;
  color: var(--charcoal);
  font-size: 13px;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  transition:
    background-color var(--dur-quick) var(--ease-out-expo),
    color var(--dur-quick) var(--ease-out-expo),
    border-color var(--dur-quick) var(--ease-out-expo);
}
.sfn-pipe button:hover {
  border-color: var(--ink);
}
.sfn-pipe button[aria-current="step"] {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--canvas);
}
/* The one stage that is a model rather than code. */
.sfn-pipe > li[data-model] button {
  border-style: dashed;
}
.sfn-pipe-detail {
  display: grid;
  grid-template-columns: 132px 1fr;
  align-items: baseline;
  gap: 14px;
  min-height: 96px;
  padding: 16px clamp(18px, 2.2vw, 26px) clamp(18px, 2.2vw, 26px);
  border-top: 0.5px solid var(--rule);
}
.sfn-pipe-detail > p {
  margin: 0;
  max-width: 66ch;
  color: var(--charcoal);
  font-size: 15px;
  line-height: 1.5;
}

/* ---- Intelligence: the five pillars ------------------------------------------------------------- */

.sfn-pillar {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) minmax(0, 1.1fr);
  min-height: 200px;
}
.sfn-pillar > div {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  padding: clamp(18px, 2.2vw, 26px);
  color: var(--charcoal);
  font-size: 14.5px;
  line-height: 1.5;
}
.sfn-pillar > div + div {
  border-left: 0.5px solid var(--rule);
}
.sfn-pillar p {
  margin: 0;
}
.sfn-pillar-scope {
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: clamp(19px, 1.9vw, 24px);
  line-height: 1.3;
}
.sfn-pillar ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sfn-pillar li {
  position: relative;
  padding-left: 14px;
}
.sfn-pillar li::before {
  content: "";
  position: absolute;
  top: 0.68em;
  left: 0;
  width: 6px;
  height: 1px;
  background: var(--graphite);
}
.sfn-pillar-none {
  color: var(--graphite);
}

/* ---- Narrower screens ---------------------------------------------------------------------------- */

@media (max-width: 1023px) {
  .sfn-lease {
    grid-template-columns: 1fr 1fr;
  }
  .sfn-lease > .sfn-lease-history {
    grid-column: 1 / -1;
    border-top: 0.5px solid var(--rule);
    border-left: 0;
  }
}

@media (max-width: 899px) {
  .sfn-cells {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sfn-pipe {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
  }
  .sfn-pipe > li + li::before {
    display: none;
  }
  .sfn-pillar {
    grid-template-columns: 1fr;
  }
  .sfn-pillar > div + div {
    border-top: 0.5px solid var(--rule);
    border-left: 0;
  }
  .sfn-turn {
    grid-template-columns: 1fr;
  }
  .sfn-turn > li {
    min-height: 0;
  }
  .sfn-turn > li[data-seals]::after {
    top: auto;
    right: -8px;
    bottom: -7px;
    left: -8px;
    width: auto;
    height: 2px;
  }
  .sfn-turn > li[data-seals]::before {
    top: auto;
    right: -8px;
    bottom: -10px;
  }
  .sfn-ladder,
  .sfn-map-systems {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sfn-ladder > li:nth-child(odd),
  .sfn-map-systems > li:nth-child(odd) {
    border-left: 0;
  }
  .sfn-ladder > li:nth-child(n + 3),
  .sfn-map-systems > li:nth-child(n + 3) {
    border-top: 0.5px solid var(--rule);
  }
  .sfn-map-systems > li:nth-child(5) {
    grid-column: 1 / -1;
  }
  .sfn-flow {
    grid-template-columns: 1fr;
  }
  .sfn-flow-steps {
    display: flex;
    padding: 0;
    overflow-x: auto;
    border-right: 0;
    border-bottom: 0.5px solid var(--rule);
  }
  .sfn-flow-steps > li {
    flex: 1 0 auto;
  }
  .sfn-flow-steps button {
    display: block;
    padding: 13px 12px;
    text-align: center;
  }
  .sfn-flow-steps button > span:last-child {
    display: none;
  }
  .sfn-flow-steps button[aria-current="step"] {
    box-shadow: inset 0 -3px 0 var(--signal);
  }
  .sfn-flow-stage {
    min-height: 0;
  }
}

@media (max-width: 899px) {
  .sfn-acquis {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "rail"
      "detail"
      "rows";
  }
  .sfn-acquis-rows {
    border-right: 0;
    border-top: 0.5px solid var(--rule);
  }
  .sfn-acquis-detail {
    position: static;
    border-top: 0.5px solid var(--rule);
  }
}
@media (max-width: 759px) {
  .sfn-triad-cells {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
  .sfn-triad-cell {
    padding: 22px 0;
    border-bottom: 0.5px solid var(--rule);
  }
  .sfn-triad-cells > :last-child .sfn-triad-cell {
    border-bottom: 0;
  }
  .sfn-status,
  .sfn-outcome,
  .sfn-map-layer {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .sfn-index-body {
    flex-direction: column;
    align-items: flex-start;
  }
  .sfn-lease,
  .sfn-cohort,
  .sfn-classes,
  .sfn-keys {
    grid-template-columns: 1fr;
  }
  .sfn-lease > div + div,
  .sfn-cohort > div + div,
  .sfn-class + .sfn-class,
  .sfn-locks {
    border-top: 0.5px solid var(--rule);
    border-left: 0;
  }
  .sfn-record {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .sfn-record > dd {
    margin-bottom: 10px;
  }
  .sfn-map-stores {
    grid-template-columns: 1fr;
  }
  .sfn-stores {
    grid-template-columns: 1fr;
    grid-template-areas:
      "registry"
      "personal"
      "gap"
      "business"
      "readers";
  }
  .sfn-stores-gap {
    flex-direction: row;
    width: auto;
    height: 44px;
    border-inline: 0;
    border-block: 0.5px solid var(--rule);
  }
  .sfn-stores-gap > i {
    width: auto;
    height: 1px;
    background-image: linear-gradient(90deg, var(--ink) 50%, transparent 50%);
    background-size: 8px 1px;
    animation: sfn-flow 0.9s linear infinite;
  }
  .sfn-readers,
  .sfn-pipe-detail {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .sfn-pipe {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sfn-map-stores > i {
    width: 1px;
    height: 20px;
    margin-left: clamp(18px, 2.2vw, 26px);
    background-image: linear-gradient(180deg, var(--signal) 50%, transparent 50%);
    background-size: 1px 8px;
    animation: none;
  }
  .sfn-map-stores > div:last-child {
    align-items: flex-start;
    text-align: left;
  }
}

@media (max-width: 559px) {
  .sfn-acquis-rail {
    --sfn-lane-h: 16px;
  }
  .sfn-acquis-years > span:nth-child(even) {
    display: none;
  }

  /* The three layer names do not fit three equal columns on a phone; let each take its width. */
  .sfn-flow-layers {
    display: flex;
    flex-wrap: wrap;
  }
  .sfn-cells,
  .sfn-ladder,
  .sfn-map-systems {
    grid-template-columns: 1fr;
  }
  .sfn-ladder > li + li,
  .sfn-map-systems > li + li {
    border-top: 0.5px solid var(--rule);
    border-left: 0;
  }
}

/* ---- Adjustments to the compiled navigation ------------------------------------------------------- */

/* Six tabs instead of five: on narrower desktops the full institutional name no longer fits
   beside them, so the wordmark stands alone. (Below 1000px the compiled nav already hides it.) */
@media (max-width: 1180px) {
  .sf-fullname {
    display: none;
  }
}

/* The phone tab row was sized for five tabs. Tightened a little, six fit a 390px screen without
   scrolling; narrower screens still scroll, and the current tab is kept in view.
   (!important because the compiled nav sets these inline.) */
@media (max-width: 449px) {
  .sf-mobilerow .wrap {
    gap: 8px !important;
  }
  .sf-mobilerow .sf-link {
    font-size: 11px !important;
  }
}

/* ---- Showroom: statement and features ------------------------------------------------------ */

.sfn-showroom-statement {
  margin: 0;
  max-width: 30ch;
  font-family: var(--font-serif);
  font-size: clamp(26px, 3.4vw, 44px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.sfn-features {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 56px);
}
.sfn-feature {
  padding-top: 20px;
  border-top: 0.5px solid var(--rule-strong);
}
.sfn-feature-title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: 400;
  line-height: 1.3;
  color: var(--ink);
}
.sfn-feature-text {
  margin: 10px 0 0;
  max-width: 34ch;
  font-size: 15px;
  line-height: 1.6;
  color: var(--charcoal);
}
@media (max-width: 760px) {
  .sfn-features {
    grid-template-columns: 1fr;
  }
}

/* ---- Foundations: sub-tabs and the pointer to the next page ---------------------------------- */

.sfn-subtabs {
  display: flex;
  gap: clamp(20px, 3vw, 36px);
  border-bottom: 0.5px solid var(--rule-strong);
  overflow-x: auto;
  scrollbar-width: none;
}
.sfn-subtabs::-webkit-scrollbar {
  display: none;
}
.sfn-subtab {
  position: relative;
  padding: 0 0 14px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.005em;
  white-space: nowrap;
  color: var(--graphite);
  text-decoration: none;
  transition: color 180ms ease;
}
.sfn-subtab:hover,
.sfn-subtab[aria-current="page"] {
  color: var(--ink);
}
.sfn-subtab[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.5px;
  height: 1.5px;
  background: var(--ink);
}
.sfn-next {
  display: inline-flex;
  flex-direction: column;
  gap: 10px;
  color: var(--ink);
  text-decoration: none;
}
.sfn-next-name {
  font-family: var(--font-serif);
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.2;
  transition: opacity 180ms ease;
}
.sfn-next:hover .sfn-next-name {
  opacity: 0.6;
}

/* ---- System schematics (src/site/schematic.jsx) ------------------------------------------- */

.sfx {
  margin: 0;
  border: 0.5px solid var(--rule-strong);
  background: color-mix(in srgb, var(--canvas) 72%, #fff);
}
.sfx-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 20px;
  padding: 12px 16px;
  border-bottom: 0.5px solid var(--rule);
}
.sfx-legend {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--graphite);
}
.sfx-key {
  display: inline-block;
  width: 14px;
  height: 9px;
  margin-left: 10px;
  border: 1px solid var(--ink);
}
.sfx-key-pilot {
  border-color: var(--graphite);
  background: repeating-linear-gradient(135deg, transparent 0 2px, var(--rule-strong) 2px 3px);
}
.sfx-key-designed {
  border-style: dashed;
  border-color: var(--graphite);
}
.sfx-scenarios {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 12px 16px;
  border-bottom: 0.5px solid var(--rule);
}
.sfx-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 6px 10px;
  border: 0.5px solid var(--rule-strong);
  background: none;
  font: inherit;
  font-size: 13px;
  color: var(--charcoal);
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}
.sfx-chip:hover {
  border-color: var(--ink);
  color: var(--ink);
}
.sfx-chip[aria-selected="true"] {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--canvas);
}
.sfx-chip-n {
  opacity: 0.6;
}
.sfx-canvas {
  overflow-x: auto;
  padding: 18px 12px 8px;
}
.sfx-canvas > svg {
  display: block;
  width: 100%;
  min-width: 940px;
  height: auto;
}
.sfx-zone > rect {
  fill: none;
  stroke: var(--rule);
  stroke-dasharray: 2 4;
}
.sfx-zone-label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  fill: var(--graphite);
}
.sfx-node {
  cursor: pointer;
  outline: none;
}
.sfx-node-box {
  fill: var(--canvas);
  stroke: var(--rule-strong);
  stroke-width: 1;
  transition: stroke 200ms ease, fill 200ms ease;
}
.sfx-node-signal {
  fill: var(--signal);
  opacity: 0;
  transition: opacity 200ms ease;
}
.sfx-node:hover .sfx-node-box,
.sfx-node:focus-visible .sfx-node-box {
  stroke: var(--ink);
}
.sfx-node.is-on .sfx-node-box {
  stroke: var(--ink);
  stroke-width: 1.5;
  fill: #fff;
}
.sfx-node.is-on .sfx-node-signal,
.sfx-node.is-selected .sfx-node-signal {
  opacity: 1;
}
.sfx-node.is-selected .sfx-node-box {
  stroke: var(--ink);
  stroke-width: 1.5;
}
.sfx-node.is-designed .sfx-node-box {
  stroke-dasharray: 5 4;
}
.sfx-label {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  fill: var(--ink);
}
.sfx-sub {
  font-family: var(--font-sans);
  font-size: 12px;
  fill: var(--charcoal);
}
.sfx-badge {
  fill: none;
  stroke: var(--graphite);
  stroke-width: 0.75;
}
.sfx-badge-text {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.06em;
  fill: var(--graphite);
}
.sfx-edge > path {
  fill: none;
  stroke: var(--rule-strong);
  stroke-width: 1;
  transition: stroke 200ms ease;
}
.sfx-edge.is-dashed > path {
  stroke-dasharray: 3 4;
}
.sfx-edge.is-visited > path {
  stroke: var(--ink);
}
.sfx-edge.is-active > path {
  stroke: var(--ink);
  stroke-width: 1.75;
  stroke-dasharray: 7 5;
  animation: sfx-flow 0.6s linear infinite;
}
.sfx-arrow {
  fill: var(--rule-strong);
}
.sfx-arrow-on {
  fill: var(--ink);
}
.sfx-packet {
  fill: var(--signal);
  stroke: var(--ink);
  stroke-width: 1.25;
  opacity: 0;
  pointer-events: none;
}
@keyframes sfx-flow {
  to {
    stroke-dashoffset: -24;
  }
}

.sfx-panels {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  border-top: 0.5px solid var(--rule);
}
.sfx-trace,
.sfx-spec {
  min-width: 0;
  padding: 14px 16px 18px;
}
.sfx-spec {
  border-left: 0.5px solid var(--rule);
}
.sfx-panel-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.sfx-trace ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
.sfx-trace li {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 8px;
  padding: 4px 0 4px 8px;
  border-left: 2px solid transparent;
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.55;
  color: var(--graphite);
  opacity: 0.28;
  transition: opacity 240ms ease, color 240ms ease, border-color 240ms ease;
}
.sfx-trace li.is-shown {
  opacity: 1;
}
.sfx-trace li.is-current {
  border-left-color: var(--signal);
  color: var(--ink);
}
.sfx-trace li.is-allow.is-shown > span:last-child::before {
  content: "ALLOW  ";
  color: var(--ink);
  font-weight: 600;
}
.sfx-trace li.is-deny.is-shown > span:last-child::before {
  content: "DENY  ";
  color: #b42318;
  font-weight: 600;
}
.sfx-trace li.is-hold.is-shown > span:last-child::before {
  content: "HOLD  ";
  color: var(--ink);
  font-weight: 600;
  background: var(--signal);
}
.sfx-trace-n {
  color: var(--graphite);
}
.sfx-spec-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 10px;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.sfx-spec-status {
  padding: 1px 6px;
  border: 0.5px solid var(--graphite);
  color: var(--graphite);
  letter-spacing: 0.04em;
}
.sfx-spec ul {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sfx-spec li {
  padding-left: 14px;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--charcoal);
  text-indent: -14px;
}
.sfx-spec li::before {
  content: "— ";
  color: var(--graphite);
}
.sfx-note {
  margin: 0;
  padding: 12px 16px;
  border-top: 0.5px solid var(--rule);
  color: var(--graphite);
}
@media (max-width: 860px) {
  .sfx-panels {
    grid-template-columns: 1fr;
  }
  .sfx-spec {
    border-left: 0;
    border-top: 0.5px solid var(--rule);
  }
}
@media (prefers-reduced-motion: reduce) {
  .sfx-edge.is-active > path {
    animation: none;
  }
}

/* ---- Protocol detail: lease anatomy and standards (src/site/protocol.jsx) ------------------- */

.sfp {
  display: flex;
  flex-direction: column;
  gap: clamp(40px, 6vh, 64px);
}
.sfp-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 16px;
  padding-bottom: 12px;
  border-bottom: 0.5px solid var(--rule-strong);
}
.sfp-lease {
  margin: 0;
}
.sfp-code {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 18px 20px;
  overflow-x: auto;
  background: var(--ink);
  color: var(--canvas);
  font-family: var(--font-mono);
  font-size: 12.5px;
  line-height: 1.85;
}
.sfp-line {
  padding-left: 2ch;
  white-space: pre;
}
.sfp-brace {
  color: rgba(247, 247, 243, 0.55);
}
.sfp-key {
  color: var(--signal);
}
.sfp-value {
  color: var(--canvas);
}
.sfp-note {
  color: rgba(247, 247, 243, 0.45);
}
.sfp-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 clamp(20px, 3vw, 36px);
}
.sfp-standard {
  display: flex;
  flex-direction: column;
  gap: 6px;
  height: 100%;
  padding: 16px 0 18px;
  border-bottom: 0.5px solid var(--rule);
}
.sfp-standard header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.sfp-name {
  font-family: var(--font-serif);
  font-size: 20px;
  line-height: 1.25;
  color: var(--ink);
}
.sfp-status {
  flex: 0 0 auto;
  padding: 1px 6px;
  border: 0.5px solid var(--graphite);
  color: var(--graphite);
  text-transform: uppercase;
}
.sfp-standard p {
  margin: 4px 0 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--charcoal);
}
@media (max-width: 1000px) {
  .sfp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .sfp-grid {
    grid-template-columns: 1fr;
  }
}

/* ---- Overview: hero, stage, steps, figures, folded architecture (pages.jsx, stage.jsx) ------- */

.sfo-hero {
  max-width: 880px;
  margin: clamp(64px, 10vh, 120px) 0 clamp(48px, 7vh, 80px);
}
.sfo-title {
  margin-top: clamp(18px, 2.4vw, 28px);
  color: var(--ink);
}
.sfo-lede {
  max-width: 44ch;
  margin: clamp(22px, 2.8vw, 32px) 0 0;
  font-size: clamp(19px, 1.7vw, 23px);
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: var(--charcoal);
}
.sfo-block {
  margin-top: clamp(88px, 13vh, 150px);
}

.sfs {
  position: relative;
  margin: 0;
  overflow: hidden;
  background:
    radial-gradient(120% 90% at 50% -10%, #23281a 0%, rgba(10, 10, 10, 0) 55%),
    radial-gradient(80% 60% at 50% 110%, #15170f 0%, rgba(10, 10, 10, 0) 60%),
    #0a0a0a;
  color: #f7f7f3;
}
.sfs-art {
  display: block;
  width: 100%;
  height: auto;
}
.sfs-dot {
  fill: rgba(247, 247, 243, 0.07);
}
.sfs-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  fill: rgba(247, 247, 243, 0.78);
}
.sfs-sub {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.06em;
  fill: rgba(247, 247, 243, 0.38);
}
.sfs-orb {
  stroke: rgba(247, 247, 243, 0.3);
  stroke-width: 1;
}
.sfs-orb.is-designed {
  stroke-dasharray: 4 5;
}
.sfs-arc-live.is-designed {
  stroke-dasharray: 0.012 0.012;
  stroke-dashoffset: 0;
  opacity: 0;
  transition: opacity 0.8s ease;
}
.sfs-arc-live.is-designed.is-on {
  opacity: 1;
}
.sfs-orb-inner {
  fill: none;
  stroke: rgba(247, 247, 243, 0.09);
}
.sfs-ring-pulse {
  fill: none;
  stroke: #e0ff4f;
  stroke-width: 1.25;
  transform-box: fill-box;
  transform-origin: center;
  animation: sfs-pulse 1.4s ease-out infinite;
}
@keyframes sfs-pulse {
  from {
    opacity: 0.9;
    transform: scale(0.86);
  }
  to {
    opacity: 0;
    transform: scale(1.16);
  }
}
.sfs-arc {
  fill: none;
  stroke: rgba(247, 247, 243, 0.2);
  stroke-dasharray: 2 7;
}
.sfs-arc-live {
  fill: none;
  stroke: #e0ff4f;
  stroke-width: 1.5;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  transition: stroke-dashoffset 1.1s cubic-bezier(0.65, 0, 0.35, 1);
}
.sfs-arc-live.is-on {
  stroke-dashoffset: 0;
}
.sfs-arc-glow {
  fill: none;
  stroke: #e0ff4f;
  stroke-width: 6;
  opacity: 0;
  transition: opacity 0.8s ease;
}
.sfs-arc-glow.is-on {
  opacity: 0.35;
}
.sfs-packet {
  fill: #f7f7f3;
}
.sfs-packet-lime {
  fill: #e0ff4f;
}
.sfs-chip rect {
  fill: #121310;
  stroke: rgba(247, 247, 243, 0.22);
  transition: stroke 0.4s ease;
}
.sfs-chip text {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  fill: rgba(247, 247, 243, 0.85);
}
.sfs-chip.is-on rect {
  stroke: #e0ff4f;
}
.sfs-chip.is-on text {
  fill: #e0ff4f;
}
.sfs-chip.is-deny rect {
  stroke: rgba(247, 247, 243, 0.6);
}

.sfs-tick {
  stroke: rgba(247, 247, 243, 0.16);
}
.sfs-harness {
  fill: none;
  stroke: rgba(247, 247, 243, 0.22);
  stroke-dasharray: 3 9;
  transform-box: fill-box;
  transform-origin: center;
  transition: stroke 0.4s ease;
}
.sfs-spin-0 {
  animation: sfs-spin 60s linear infinite;
}
.sfs-spin-1 {
  animation: sfs-spin 90s linear infinite reverse;
}
.sfs-spin-2 {
  animation: sfs-spin 120s linear infinite;
}
.sfs-harness.is-flash {
  stroke: #e0ff4f;
  stroke-dasharray: none;
}
@keyframes sfs-spin {
  to {
    transform: rotate(360deg);
  }
}
.sfs-core {
  fill: #0d0e0b;
  stroke: rgba(224, 255, 79, 0.6);
}
.sfs-core-label {
  font-family: var(--font-serif);
  font-size: 22px;
  fill: #f7f7f3;
}
.sfs-trail {
  stroke: rgba(247, 247, 243, 0.4);
  stroke-dasharray: 2 5;
  animation: sfs-fade-in 1.4s ease both;
}
.sfs-action {
  animation: sfs-fly 1.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.sfs-action circle {
  fill: #f7f7f3;
}
.sfs-action.is-held circle,
.sfs-action.is-yes circle {
  fill: #e0ff4f;
}
.sfs-action.is-held circle {
  animation: sfs-blink 0.9s ease-in-out 1.5s infinite;
}
.sfs-action.is-refused {
  animation: sfs-fly 1.2s cubic-bezier(0.22, 1, 0.36, 1) both, sfs-fade-out 0.8s ease 1.6s forwards;
}
.sfs-ask {
  font-family: var(--font-mono);
  font-size: 16px;
  fill: #e0ff4f;
}
.sfs-action.is-refused .sfs-ask {
  fill: #f7f7f3;
}
@keyframes sfs-fly {
  from {
    transform: translate(var(--sx), var(--sy));
  }
  to {
    transform: translate(var(--tx), var(--ty));
  }
}
@keyframes sfs-blink {
  50% {
    opacity: 0.35;
  }
}
@keyframes sfs-fade-in {
  from {
    opacity: 0;
  }
}
@keyframes sfs-fade-out {
  to {
    opacity: 0.15;
  }
}

.sfs-plane {
  fill: rgba(247, 247, 243, 0.035);
  stroke: rgba(247, 247, 243, 0.24);
}
.sfs-plane-inner {
  fill: none;
  stroke: rgba(247, 247, 243, 0.08);
}
.sfs-link {
  stroke: rgba(247, 247, 243, 0.12);
}
.sfs-node {
  fill: #0a0a0a;
  stroke: rgba(247, 247, 243, 0.7);
}
.sfs-node.is-lime,
.sfs-store.is-on {
  fill: #e0ff4f;
  stroke: #e0ff4f;
}
.sfs-protocol {
  stroke: rgba(247, 247, 243, 0.35);
  stroke-dasharray: 3 5;
  transition: stroke 0.5s ease;
}
.sfs-protocol.is-on {
  stroke: #e0ff4f;
  stroke-dasharray: none;
}
.sfs-rail {
  stroke: rgba(247, 247, 243, 0.22);
}
.sfs-traveller {
  transition: transform 1.3s cubic-bezier(0.65, 0, 0.35, 1);
}
.sfs-halo {
  fill: #e0ff4f;
  opacity: 0.45;
}

.sfs-caption {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 24px 22px;
  border-top: 0.5px solid rgba(247, 247, 243, 0.1);
}
.sfs-count {
  flex: 0 0 auto;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: rgba(247, 247, 243, 0.45);
}
.sfs-text {
  flex: 1;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(247, 247, 243, 0.92);
  animation: sfs-fade-in 0.6s ease both;
}
.sfs-progress {
  display: flex;
  gap: 5px;
}
.sfs-progress i {
  width: 18px;
  height: 2px;
  background: rgba(247, 247, 243, 0.18);
  transition: background 0.4s ease;
}
.sfs-progress i.is-past {
  background: rgba(247, 247, 243, 0.5);
}
.sfs-progress i.is-on {
  background: #e0ff4f;
}

.sfo-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 44px);
  margin-top: clamp(24px, 3vh, 36px);
}
.sfo-step {
  padding-top: 18px;
  border-top: 0.5px solid var(--rule-strong);
}
.sfo-step-n {
  color: var(--graphite);
}
.sfo-step-title {
  margin: 14px 0 0;
  font-size: 19px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.sfo-step-text {
  margin: 10px 0 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--charcoal);
}
.sfo-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 44px);
}
.sfo-stat {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sfo-figure {
  font-family: var(--font-serif);
  font-size: clamp(44px, 5vw, 68px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.sfo-figure-text {
  max-width: 24ch;
  font-size: 15px;
  line-height: 1.5;
  color: var(--charcoal);
}
.sfo-note {
  max-width: 70ch;
  margin: clamp(28px, 4vh, 40px) 0 0;
}
.sfo-open {
  max-width: 30ch;
  margin: clamp(18px, 2.4vh, 26px) 0 0;
  font-family: var(--font-serif);
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.sfo-adopt {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 40px);
  margin-top: clamp(32px, 5vh, 56px);
}
.sfo-adopter {
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: 100%;
  padding: clamp(20px, 2.4vw, 28px);
  border: 0.5px solid var(--rule-strong);
  background: color-mix(in srgb, var(--canvas) 70%, #fff);
}
.sfo-adopter header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.sfo-adopter h3 {
  margin: 0;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.sfo-badge {
  flex: 0 0 auto;
  padding: 1px 6px;
  border: 0.5px solid var(--graphite);
  color: var(--graphite);
  text-transform: uppercase;
}
.sfo-adopter p {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--charcoal);
}
.sfo-code {
  margin: auto 0 0;
  padding: 14px 16px;
  overflow-x: auto;
  background: var(--ink);
  color: #e0ff4f;
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.7;
}
@media (max-width: 760px) {
  .sfo-adopt {
    grid-template-columns: 1fr;
  }
}
.sfo-security {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
  margin-top: clamp(32px, 5vh, 56px);
}
.sfo-guarantees {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(20px, 2.6vw, 32px);
}
.sfo-guarantee {
  padding: 16px 0 18px;
  border-top: 0.5px solid var(--rule-strong);
}
.sfo-guarantee h3 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  color: var(--ink);
}
.sfo-guarantee p {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--charcoal);
}
.sfo-security > *,
.sfo-wire {
  min-width: 0;
}
.sfo-wire {
  position: sticky;
  top: 96px;
}
.sfo-wire-code {
  overflow-x: auto;
}
.sfo-wire-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 12px 16px;
  background: #16170f;
  color: rgba(247, 247, 243, 0.8);
}
.sfo-wire-head .sfo-badge {
  border-color: rgba(247, 247, 243, 0.4);
  color: rgba(247, 247, 243, 0.6);
}
.sfo-wire-code {
  margin: 0;
  padding: 18px 16px 20px;
  color: rgba(247, 247, 243, 0.86);
  white-space: pre;
}
.sfo-c-req {
  color: #f7f7f3;
  font-weight: 600;
}
.sfo-c-ok {
  margin-left: 12px;
  color: #e0ff4f;
}
.sfo-c-deny {
  margin-left: 12px;
  color: #ff8a7a;
}
.sfo-c-note {
  color: rgba(247, 247, 243, 0.42);
}
.sfo-wire-note {
  margin: 12px 0 0;
}
@media (max-width: 1000px) {
  .sfo-security {
    grid-template-columns: 1fr;
  }
  .sfo-wire {
    position: static;
  }
}
@media (max-width: 600px) {
  .sfo-guarantees {
    grid-template-columns: 1fr;
  }
}
.sfo-subhead {
  display: block;
  margin-bottom: 12px;
}
.sfo-subhead-gap {
  margin-top: clamp(36px, 5vh, 52px);
}
.sfp-terms dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(20px, 3vw, 36px);
  margin: 0;
}
.sfp-terms dl > div {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 0.5px solid var(--rule);
}
.sfp-terms dt {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ink);
}
.sfp-terms dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--charcoal);
}
@media (max-width: 860px) {
  .sfp-terms dl {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  .sfp-terms dl > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}
.sfo-stores {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 40px);
  margin-top: clamp(32px, 5vh, 56px);
}
.sfo-store {
  padding-top: 18px;
  border-top: 1.5px solid var(--ink);
}
.sfo-store h3 {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink);
}
.sfo-store p {
  margin: 12px 0 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--charcoal);
}
.sfo-adopt {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.sfo-contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
  margin-top: clamp(40px, 6vh, 64px);
  padding: clamp(22px, 3vw, 32px);
  background: var(--ink);
  color: var(--canvas);
}
.sfo-contact p {
  max-width: 40ch;
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.3;
}
.sfo-contact a,
.sfo-contact button {
  border-color: var(--canvas) !important;
  color: var(--canvas) !important;
}
@media (max-width: 900px) {
  .sfo-stores,
  .sfo-adopt {
    grid-template-columns: 1fr !important;
  }
}
.sfo-guarantees-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: clamp(32px, 5vh, 56px);
}
.sfo-guarantees-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(32px, 5vh, 56px);
}
.sfo-guarantee-n {
  display: block;
  margin-bottom: 10px;
  color: var(--graphite);
}
.sfo-badge-inline {
  margin-left: 10px;
  text-transform: uppercase;
}
.sfo-terms-line {
  max-width: 70ch;
  margin: clamp(28px, 4vh, 40px) 0 0;
  padding-left: 14px;
  border-left: 2px solid var(--signal);
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink);
}
@media (max-width: 1000px) {
  .sfo-guarantees-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .sfo-guarantees-4 {
    grid-template-columns: 1fr;
  }
}
.sfo-research {
  padding-top: clamp(40px, 6vh, 64px);
  border-top: 1.5px solid var(--ink);
}
.sfo-research-statement {
  max-width: 26ch;
  margin: clamp(18px, 2.4vh, 26px) 0 0;
  font-family: var(--font-serif);
  font-size: clamp(30px, 3.6vw, 48px);
  line-height: 1.18;
  letter-spacing: -0.015em;
  color: var(--ink);
}
.sfo-research-text {
  max-width: 52ch;
  margin: clamp(18px, 2.4vh, 24px) 0 clamp(28px, 4vh, 40px);
  font-size: 17px;
  line-height: 1.6;
  color: var(--charcoal);
}
@media (max-width: 900px) {
  .sfo-guarantees-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .sfo-guarantees-3 {
    grid-template-columns: 1fr;
  }
}
.sfo-standards {
  max-width: 34ch;
  margin: clamp(18px, 2.4vh, 26px) 0 14px;
  font-family: var(--font-serif);
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.sfo-sep {
  color: var(--rule-strong);
}

.sfo-more {
  border-top: 0.5px solid var(--rule-strong);
  border-bottom: 0.5px solid var(--rule-strong);
}
.sfo-more > summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 26px 0;
  list-style: none;
  cursor: pointer;
}
.sfo-more > summary::-webkit-details-marker {
  display: none;
}
.sfo-more-title {
  font-family: var(--font-serif);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.2;
  color: var(--ink);
}
.sfo-more-hint {
  color: var(--graphite);
}
.sfo-more-hint::after {
  content: " ↓";
}
.sfo-more[open] .sfo-more-hint::after {
  content: " ↑";
}
.sfo-more-close,
.sfo-more[open] .sfo-more-open {
  display: none;
}
.sfo-more[open] .sfo-more-close {
  display: inline;
}
.sfo-more > summary:hover .sfo-more-title {
  opacity: 0.7;
}
.sfo-more-body {
  padding: 0 0 clamp(32px, 5vh, 56px);
}

@media (max-width: 1000px) {
  .sfo-steps,
  .sfo-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .sfo-steps,
  .sfo-stats {
    grid-template-columns: 1fr;
  }
  .sfs-caption {
    flex-wrap: wrap;
  }
  .sfs-progress {
    display: none;
  }
}
/* The narrow drawings use a 600-unit canvas, so type is set larger to land at a readable size,
   and on tablets the drawing is held to a width where that size stays right. */
.sfs.is-narrow .sfs-art {
  max-width: 460px;
  margin: 0 auto;
}
.sfs.is-narrow .sfs-label {
  font-size: 19px;
  letter-spacing: 0.12em;
}
.sfs.is-narrow .sfs-sub {
  font-size: 16px;
}
.sfs.is-narrow .sfs-chip text {
  font-size: 16px;
  letter-spacing: 0.1em;
}
.sfs.is-narrow .sfs-core-label {
  font-size: 28px;
}
.sfs.is-narrow .sfs-ask {
  font-size: 24px;
}

@media (prefers-reduced-motion: reduce) {
  .sfs-ring-pulse,
  .sfs-harness,
  .sfs-action,
  .sfs-action circle,
  .sfs-trail,
  .sfs-text {
    animation: none;
  }
  .sfs-traveller,
  .sfs-arc-live {
    transition: none;
  }
}

/* ---- PartnerX system map (pages.jsx SystemMap) ---------------------------------------------- */

.sfm {
  margin-top: clamp(32px, 5vh, 56px);
}
.sfm-pillars {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  border: 0.5px solid var(--rule-strong);
  background: color-mix(in srgb, var(--canvas) 70%, #fff);
}
.sfm-pillars > * {
  min-width: 0;
}
.sfm-pillar {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  border-left: 0.5px solid var(--rule-strong);
}
.sfm-pillars > *:first-child .sfm-pillar {
  border-left: 0;
}
.sfm-head {
  padding: 18px 16px 16px;
  border-top: 3px solid var(--ink);
  border-bottom: 0.5px solid var(--rule);
}
.sfm-n {
  color: var(--graphite);
}
.sfm-head h3 {
  margin: 10px 0 0;
  font-family: var(--font-serif);
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 400;
  line-height: 1.1;
  color: var(--ink);
}
.sfm-head p {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--graphite);
}
.sfm-modules {
  display: flex;
  flex-direction: column;
  flex: 1;
  margin: 0;
  padding: 6px 16px 20px;
  list-style: none;
}
.sfm-modules li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 0;
  border-bottom: 0.5px solid var(--rule);
}
.sfm-modules li:last-child {
  border-bottom: 0;
}
.sfm-module-name {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 8px;
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink);
}
.sfm-via {
  padding: 0 5px;
  background: var(--signal);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--ink);
}
.sfm-module-text {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--charcoal);
}
.sfm-tick {
  position: absolute;
  bottom: -14px;
  left: 50%;
  width: 1px;
  height: 14px;
  background: var(--ink);
}
.sfm-rails {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 14px;
}
.sfm-rail {
  display: grid;
  grid-template-columns: minmax(180px, 0.28fr) 1fr;
  gap: 16px;
  align-items: baseline;
  padding: 16px 20px;
  background: var(--ink);
  color: var(--canvas);
}
.sfm-rail-name {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--signal);
}
.sfm-rail-text {
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(247, 247, 243, 0.86);
}
@media (max-width: 1100px) {
  .sfm-pillars {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sfm-pillar {
    border-left: 0;
    border-bottom: 0.5px solid var(--rule-strong);
  }
  .sfm-pillars > *:nth-child(even) .sfm-pillar {
    border-left: 0.5px solid var(--rule-strong);
  }
  .sfm-tick {
    display: none;
  }
}
@media (max-width: 640px) {
  .sfm-pillars {
    grid-template-columns: 1fr;
  }
  .sfm-pillars > *:nth-child(even) .sfm-pillar {
    border-left: 0;
  }
  .sfm-rail {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}

/* ---- Infrastructure: the claim (pages.jsx Claim) ------------------------------------------- */

.sfc-statement {
  max-width: 22ch;
  margin: clamp(18px, 2.4vh, 26px) 0 0;
  font-family: var(--font-serif);
  font-size: clamp(34px, 5vw, 68px);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.sfc-text {
  max-width: 60ch;
  margin: clamp(18px, 2.6vh, 28px) 0 0;
  font-size: clamp(16px, 1.3vw, 18px);
  line-height: 1.6;
  color: var(--charcoal);
}
.sfm-systems {
  display: block;
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.6;
  text-transform: uppercase;
  color: var(--ink);
}
.sfm-soon {
  background: transparent;
  box-shadow: inset 0 0 0 0.5px var(--ink);
  color: var(--graphite);
}

/* Module names only: one line each. */
.sfm-modules li {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  padding: 11px 0;
  font-size: 15px;
  line-height: 1.35;
  color: var(--ink);
}
.sfm-modules li .sfm-via {
  font-family: var(--font-mono);
  font-weight: 500;
  text-transform: uppercase;
}
.sfm-head {
  padding-bottom: 18px;
}
@media (min-width: 1101px) {
  .sfm-head {
    min-height: 148px;
  }
}

/* Each capability: its name, and the technology beneath it in mono. */
.sfm-modules li {
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px 0;
}
.sfm-modules li .sfm-module-name {
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  align-items: center;
}
.sfm-spec {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.02em;
  line-height: 1.5;
  color: var(--graphite);
}
/* Pillars shown by name and systems alone. */
.sfm-head {
  min-height: 0;
  height: 100%;
  padding: 22px 18px 30px;
  border-bottom: 0;
}
@media (min-width: 641px) and (max-width: 1100px) {
  .sfm-pillars > *:last-child {
    grid-column: 1 / -1;
  }
}

/* ---- System map, light: open columns on hairlines, no boxes and no dark bars ---------------- */
.sfm-pillars {
  border: 0;
  background: none;
  gap: 0 clamp(16px, 2.4vw, 32px);
}
.sfm-pillar {
  border-left: 0 !important;
  border-bottom: 0 !important;
}
.sfm-head {
  padding: 16px 0 0;
  border-top: 0.5px solid var(--rule-strong);
  position: relative;
}
.sfm-head::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 28px;
  height: 2px;
  background: var(--signal);
}
.sfm-head h3 {
  font-size: clamp(22px, 1.9vw, 26px);
}
.sfm-systems {
  font-weight: 400;
  color: var(--graphite);
}
.sfm-tick {
  display: none;
}
.sfm-rails {
  gap: 0;
  margin-top: clamp(28px, 4vh, 44px);
  border-top: 0.5px solid var(--rule);
}
.sfm-rail {
  padding: 14px 0;
  background: none;
  color: var(--ink);
  border-bottom: 0.5px solid var(--rule);
}
.sfm-rail-name {
  color: var(--ink);
}
.sfm-rail-text {
  color: var(--graphite);
}
@media (max-width: 1100px) {
  .sfm-pillars {
    gap: 28px clamp(16px, 3vw, 32px);
  }
  .sfm-pillars > *:last-child {
    grid-column: auto;
  }
}
@media (max-width: 640px) {
  .sfm-rail {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}
