/* Showcase: the home page as a channel lineup. MISH is the host; eight sample businesses run in full as their own
   sites, and four more sit in the compact index after them. Each .site owns its palette, type and motion. The MISH
   layer between the sites (ident strips, diagnosis beats, the index and the services strip) reads the identity's tokens
   from mish-identity.css, with fallbacks. Nothing here restyles the inner pages. */
@font-face{font-family:Manrope;src:url('assets/fonts/Manrope-200-800.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Nunito;src:url('assets/fonts/Nunito-400-900.woff2') format('woff2');font-weight:400 900;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('assets/fonts/JetBrainsMono-400-800.woff2') format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('assets/fonts/BarlowCondensed-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('assets/fonts/BarlowCondensed-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('assets/fonts/BarlowCondensed-Italic-800.woff2') format('woff2');font-weight:800;font-style:italic;font-display:swap}
@font-face{font-family:Fraunces;src:url('assets/fonts/Fraunces-400-900.woff2') format('woff2');font-weight:400 900;font-display:swap}
@font-face{font-family:'Inter Tight';src:url('assets/fonts/InterTight-200-700.woff2') format('woff2');font-weight:200 700;font-display:swap}
@font-face{font-family:Jost;src:url('assets/fonts/Jost-400-800.woff2') format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:'Bodoni Moda';src:url('assets/fonts/BodoniModa-400-900.woff2') format('woff2');font-weight:400 900;font-display:swap}
@font-face{font-family:'Bodoni Moda';src:url('assets/fonts/BodoniModa-Italic-400-900.woff2') format('woff2');font-weight:400 900;font-style:italic;font-display:swap}
@font-face{font-family:Anton;src:url('assets/fonts/Anton-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Archivo Black';src:url('assets/fonts/ArchivoBlack-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'EB Garamond';src:url('assets/fonts/EBGaramond-400-700.woff2') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:'EB Garamond';src:url('assets/fonts/EBGaramond-Italic-400-700.woff2') format('woff2');font-weight:400 700;font-style:italic;font-display:swap}

/* ---------- Lineup scaffolding ---------- */
.site{position:relative;isolation:isolate}
.s-mish{--accent:var(--mish-mint,#63d7e3)}
/* flow-root keeps a last child's bottom margin inside its own site (overflow:clip alone lets it collapse through and
   open a strip of page background between two sites). */
.concept{--pad:clamp(20px,5vw,80px);overflow:clip;display:flow-root}
:where(.concept) p{max-width:none}
:where(.concept) p+p{margin-top:0}
:where(.concept) svg path{stroke:none;fill:none}
:where(.concept) h2,:where(.concept) h3{letter-spacing:normal}
/* Each sample opens with the identity's ident strip (.mish-ident, styled in mish-identity.css): MISH, the sample label
   and the channel name. It is the channel change: the cable draws across as it arrives (showcase.mjs), in the page's
   flow, so nothing prints over a site. The site's own nav pins under the channel bar. */
.x-nav{position:sticky;top:var(--mish-header-h,64px);z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px var(--pad);min-height:64px;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .3s}
/* At a seam only the current site's nav is pinned: once the next site crosses mid-screen, showcase.mjs marks the sites
   behind it data-passed and their navs slide away. Focus inside a nav brings it straight back. */
.concept[data-passed] .x-nav:not(:focus-within){transform:translateY(-100%);opacity:0;pointer-events:none}
.concept .x-nav:focus-within,html[data-motion=paused] .concept .x-nav{transition:none}
.x-brand{display:flex;align-items:center;gap:10px;white-space:nowrap}
.x-links{display:flex;gap:28px;font-size:13px}
.x-cta{border:0;cursor:pointer;white-space:nowrap;font:inherit;transition:background .2s,color .2s,transform .2s,box-shadow .2s}
.concept button{cursor:pointer}
/* Focus: each site rings focus in its own --focus colour between two thin bands of its --on-accent colour. The pair
   clears 3:1 against each other, so whichever surface the ring lands on, light, dark, warm or teal, one of them shows. */
.concept :is(a,button,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 7px var(--on-accent)}
.site[data-armed] .reveal{transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.site[data-armed] .reveal:not(.shown){opacity:0;transform:translateY(24px)}
/* Looping animations run only while they are on screen (showcase.mjs marks the rest data-loop-off, an attribute so a
   storyboard's className write cannot clear it) and stop everywhere while motion is paused. !important because each
   loop's own animation shorthand would otherwise reset the play state. */
[data-loop-off],[data-loop-off]::before,[data-loop-off]::after,html[data-motion=paused] *,html[data-motion=paused] *::before,html[data-motion=paused] *::after{animation-play-state:paused!important}
/* The rule above would also freeze a one-shot entrance on its first frame when it starts while paused (a replay, home
   shown again, or the first run at load). Ridgeline's scan beam ends where it starts,
   unseen, so while paused they do not run at all and the panel shows its result. */
html[data-motion=paused] .rr-beam{animation:none!important}
/* A storyboard applied at once (showcase.mjs data-snap: primed part-way, or finished off screen) lands without
   transitions, and any transition still in flight is cancelled. */
.concept[data-snap],.concept[data-snap] *,.concept[data-snap] *::before,.concept[data-snap] *::after{transition:none!important}
/* Scrollcraft writes act progress every scroll frame and nothing inherits it, so the write restyles only the act itself. */
@property --sc-p{syntax:'<number>';inherits:false;initial-value:0}

/* Channel overlay: the scroll progress line and the jack rail */
.channel-ui[hidden]{display:none}
/* The rail's jacks sit over whichever site is behind them, so they ring focus in MISH's light amber inside a dark band,
   which clears 3:1 on any site. */
.channel-ui :is(a,button):focus-visible{outline:3px solid var(--mish-focus,#ffb16b);outline-offset:3px;box-shadow:0 0 0 8px #100b1d,0 10px 24px -12px #000a}

/* Channel guide: the lineup at a glance, eight full sites and the four in short */
.guide{background:var(--mish-deep,#180f28);color:var(--mish-light,#fbf7ff);padding:96px var(--gutter)}




.guide-list{list-style:none;margin:0 auto;padding:0;max-width:var(--max);display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.guide-list a{display:grid;grid-template-rows:auto 1fr auto;gap:10px;min-height:160px;padding:16px 18px;background:var(--g-bg);color:var(--g-fg);text-decoration:none;border-radius:4px;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s}
.guide-list a:hover,.guide-list a:focus-visible{transform:translateY(-4px);box-shadow:0 18px 30px -18px #000c}
.guide-list a:focus-visible{outline-offset:3px}
.g-name{align-self:center;font-family:var(--g-font);font-weight:var(--g-weight);font-style:var(--g-style,normal);font-size:30px;line-height:1.05;letter-spacing:-.01em}
.g-ind{font-size:12px;line-height:1.4;color:color-mix(in srgb,var(--g-fg) 88%,var(--g-bg))}

/* ---------- The MISH layer inside each sample ---------- */
/* Diagnosis beat: what the example reads, where the work waits, the skill chosen and who approves, shown before the
   automation runs. It is MISH speaking, so it takes the identity's dark chrome and mono labels inside every site. */
.diagnosis-beat{position:relative;z-index:1;margin:28px var(--pad);padding:18px 22px 16px;background:var(--mish-abyss,#0d1414);color:var(--mish-body,#c9d5ce);border-left:2px solid var(--mish-mint,#bcdbbd);font-family:Montserrat,'Avenir Next',sans-serif}


.diagnosis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 24px;margin:0}
.diagnosis dt{margin:0 0 6px;font:500 11px/1.4 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mish-muted,#aebfb6)}
.diagnosis dd{margin:0;font-size:14px;line-height:1.55;color:var(--mish-light,#edf3e9)}
.diagnosis-tag{margin:14px 0 0;max-width:none;font:500 11px/1.4 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--mish-brass,#bda77e)}
/* Skill names are set in the mono face wherever they appear: the diagnosis, the AI cards and HALE's steps. */
.concept code{font:500 .84em/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:0;white-space:nowrap}
.diagnosis code{color:var(--mish-mint,#bcdbbd)}
/* AI cards: who runs each step and why it runs there, one row per actor (dt), then a note where one is given. */
.ai-where{margin:0;display:grid;gap:12px}
.ai-where div{display:grid;grid-template-columns:minmax(120px,.42fr) 1fr;gap:4px 18px;padding-top:12px;border-top:1px solid color-mix(in srgb,currentColor 22%,transparent)}
.ai-where dt{font:600 12px/1.45 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase}
.ai-where dd{margin:0;font-size:15px;line-height:1.6}
.ai-note{grid-column:1/-1;margin-top:14px!important;font-size:14px;line-height:1.6;opacity:.92}
/* Approval state: where each automation stops and waits for its person, shown when the run finishes. */
.approval-state{margin:16px 0 0;display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid currentColor;font:600 12px/1.3 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.04em;transition:opacity .4s}
.approval-state::before{content:'';width:7px;height:7px;transform:rotate(45deg);background:currentColor}
.site[data-armed] .approval-state:not(.in){opacity:0}

/* ---------- Services: one offer after the full sample lineup ---------- */
.services-strip{padding:56px var(--gutter) var(--mish-section,96px);background:var(--mish-deep,#121b1b);color:var(--mish-body,#c9d5ce);border-top:1px solid var(--mish-rule,#364542)}
.ss-head{max-width:var(--max);margin:0 auto 24px;display:grid;grid-template-columns:1fr 1fr;gap:12px 65px;align-items:end}
.ss-head h2{margin:0;font-size:clamp(26px,2.6vw,38px);color:var(--mish-light,#edf3e9)}
.ss-head p{margin:0;font-size:15px;color:var(--mish-muted,#aebfb6)}
.ss-list{list-style:none;margin:0 auto;padding:0;max-width:var(--max);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ss-list a{position:relative;display:flex;flex-direction:column;gap:8px;height:100%;padding:20px 52px 20px 20px;border:1px solid var(--mish-rule,#364542);border-radius:var(--mish-radius-panel,6px);color:var(--mish-body,#c9d5ce);text-decoration:none;transition:border-color .2s,background-color .2s}
.ss-list a:hover{border-color:var(--mish-mint,#bcdbbd);background:var(--mish-lift,#17302a)}
.ss-list h3{margin:0;font-size:20px;color:var(--mish-light,#edf3e9)}
.ss-line{font-size:15px;line-height:1.5}
.ss-tags{font:500 11px/1.5 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.04em;color:var(--mish-muted,#aebfb6)}
.ss-list .arrow{position:absolute;right:18px;top:22px;width:20px;height:20px;fill:none;stroke:var(--mish-mint,#bcdbbd);stroke-width:2}

/* ---------- 02 HALE · health (node-blob organism) ---------- */
.s-hale{--accent:#ff9a3c;--focus:#ff9a3c;--on-accent:#0f0b08;background:#0f0b08;color:#f4eadc;font-family:Manrope,'Avenir Next',sans-serif}
.s-hale .x-nav{background:#0f0b08e6;backdrop-filter:blur(12px);border-bottom:1px solid #2a2019}
.s-hale .x-brand{font-size:24px;font-weight:300;letter-spacing:.32em}
.s-hale .x-brand sup{font-size:12px;color:var(--accent);letter-spacing:0}
.s-hale .x-links{color:#bda98f}
.s-hale .x-cta{background:#f4eadc;color:#0f0b08;border-radius:999px;padding:12px 20px;font-weight:600;font-size:13px}
.s-hale .x-cta:hover{background:var(--accent)}
.hale-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;padding:80px var(--pad) 70px;min-height:78vh}
.s-hale h2{font-size:clamp(46px,6.4vw,100px);font-weight:200;line-height:.98;letter-spacing:-.04em;margin-bottom:28px}
.hale-copy>p:nth-of-type(1){font-size:18px;line-height:1.6;color:#d4c3ad;max-width:44ch;font-weight:300}
.hale-age{display:flex;align-items:center;gap:18px;margin-top:40px!important}
.hale-age strong{font-size:84px;font-weight:200;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:#ffd9a0}
.hale-age span{font-size:12px;line-height:1.6;letter-spacing:.14em;text-transform:uppercase;color:#bda98f}
.hale-blob{width:100%;max-width:600px;justify-self:center;overflow:visible}
.s-hale .hale-blob .body{fill:#24150c;stroke:#ff9a3c;stroke-width:2.5}
.s-hale .hale-blob .trace{fill:none;stroke:#f4eadc;stroke-opacity:.28;stroke-width:1.6;stroke-linecap:round}
.s-hale .hale-blob .arm{fill:#2e1f15;stroke:#f4eadc;stroke-width:2.5;stroke-linejoin:round}
.s-hale .hale-blob .rung{fill:none;stroke:#f4eadc;stroke-width:2.5}
.s-hale .hale-blob .clamp{fill:#f4eadc;stroke:#0f0b08;stroke-width:3}
.s-hale .hale-blob .clamp-line{fill:none;stroke:#0f0b08;stroke-width:3}
.hale-blob .dot{transform-box:fill-box;transform-origin:center;animation:hale-pulse 2.8s ease-in-out infinite}
.hale-blob .glow{opacity:.35;transform-box:fill-box;transform-origin:center;animation:hale-glow 2.8s ease-in-out infinite}
@keyframes hale-pulse{50%{transform:scale(1.5)}}
@keyframes hale-glow{50%{opacity:.75;transform:scale(1.6)}}
.hale-grid{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:1px;background:#2a2019;border-top:1px solid #2a2019}
.hale-card,.s-hale .local-ai{background:#0f0b08;padding:36px 32px 44px}
.s-hale h3{font-size:22px;font-weight:400}
.hale-dots{list-style:none;margin:24px 0;padding:0;display:grid;grid-template-columns:repeat(16,1fr);gap:6px}
/* The panel lights in steps of eight dots, so each dot switches at once: no fade can run on rows below the fold. */
.hale-dots li{aspect-ratio:1;border-radius:50%;background:#3a2e25}
.hale-dots li.ok{background:#f4eadc}
.hale-dots li.warn{background:var(--accent);box-shadow:0 0 10px var(--accent)}
.hale-card p{font-size:14px;line-height:1.7;color:#bda98f}
.hale-ecg{width:100%;margin:22px 0 14px}
.s-hale .hale-ecg path{stroke:var(--accent);stroke-width:2;fill:none;stroke-dasharray:100;stroke-dashoffset:0;stroke-linejoin:round}
.s-hale[data-armed]:not(.hale-read) .hale-ecg path{stroke-dashoffset:100}
.s-hale.hale-read .hale-ecg path{transition:stroke-dashoffset 2.4s cubic-bezier(.16,1,.3,1)}
.hale-vitals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}
.hale-vitals dt{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#a89580}
.hale-vitals dd{margin:6px 0 0;font-size:24px;font-weight:200}
.s-hale .local-ai{background:linear-gradient(160deg,#2a160a,#0f0b08 70%)}
.s-hale .ai-label{color:var(--accent);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.s-hale .local-ai h3{font-size:26px;font-weight:300;margin:16px 0 22px}
.ai-steps{list-style:none;margin:0;padding:0;counter-reset:s}
.ai-steps li{counter-increment:s;position:relative;padding:11px 0 11px 34px;border-top:1px solid #ffffff1a;font-size:14px;color:#d4c3ad;transition:color .4s}
.ai-steps li::before{content:counter(s);position:absolute;left:0;top:10px;width:22px;height:22px;border-radius:50%;border:1px solid #5a4636;display:grid;place-content:center;font-size:11px}
.s-hale[data-armed] .ai-steps li:not(.done):not(.wait){color:#96806f}
.ai-steps li.done::before{content:'';background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 5px #0f0b08}
.ai-steps li.wait::before{animation:hale-glow 1.4s ease-in-out infinite;border-color:var(--accent)}
.s-hale .ai-note{margin-top:20px!important;padding-top:14px;border-top:1px solid #ffffff1a;color:#d4c3ad}

/* ---------- 03 Marketplays · marketplaces (product canvas with live orbs) ---------- */
.s-mp{--accent:#5a2fe0;--focus:#5a2fe0;--on-accent:#fff;--coral:#ff5c7a;--on-coral:#170f2e;background:#f7f4ff;color:#170f2e;font-family:Nunito,ui-rounded,system-ui,sans-serif}
.s-mp .x-nav{background:#f7f4ffee;backdrop-filter:blur(12px)}
.s-mp .x-brand{font-size:24px;font-weight:900;letter-spacing:-.03em}
.s-mp .x-brand i{width:26px;height:26px;border-radius:9px;background:conic-gradient(from 90deg,#5a2fe0,#ff5c7a,#ffcf3f,#1f9d6b,#5a2fe0)}
.s-mp .x-links{font-weight:700;color:#5b4f7a}
.s-mp .x-cta{background:#170f2e;color:#fff;border-radius:999px;padding:12px 22px;font-weight:800;font-size:14px}
.s-mp .x-cta:hover{background:var(--accent)}
.mp-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:end;padding:80px var(--pad) 48px}
.s-mp h2{font-size:clamp(56px,8.6vw,140px);font-weight:900;line-height:.9;letter-spacing:-.04em}
.s-mp h2 span{color:var(--accent)}
.mp-hero p{font-size:19px;line-height:1.55;font-weight:600;color:#3d3260}
.mp-math{margin-top:22px!important;font-size:15px!important;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mp-math b{display:inline-grid;place-content:center;min-width:44px;height:44px;padding:0 10px;border-radius:14px;background:#170f2e;color:#fff;font-size:20px}
.mp-math i{font-style:normal;color:var(--accent)}
.mp-app{display:grid;grid-template-columns:200px 1fr;margin:0 var(--pad);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 40px 80px -48px #2a1b6b99}
.mp-orbs{position:absolute;inset:0}
.mp-orbs i{position:absolute;bottom:-30%;width:var(--s);height:var(--s);left:var(--x);border-radius:50%;background:var(--c);opacity:.95;transform:scale(1);transition:transform .7s cubic-bezier(.3,1.5,.5,1),opacity .4s;animation:mp-float var(--t,9s) ease-in-out infinite alternate}
.mp-orbs i.out{transform:scale(0);opacity:0}
.mp-orbs i.muted{transform:scale(.86);opacity:.28}
.mp-orbs i.hero{transform:scale(1.22);z-index:1}
@keyframes mp-float{to{translate:var(--dx,18px) -14px}}
@keyframes mp-caret{50%{opacity:0}}
.mp-markets{list-style:none;margin:14px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.mp-markets li{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 12px;border-radius:999px;background:#f6f3fd;font-size:13px;transition:transform .3s}
/* Sold flips the chip from dark-on-light to light-on-dark in one frame (and back when the loop resets). Easing background
   and colour together would pass through grey on grey; the rising orb above carries the motion instead. */
.mp-markets b{font-weight:800}
.mp-markets span{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:#ebe5f8;color:#6b6188;white-space:nowrap}
.mp-markets [data-status=posting]{transform:translateY(-2px);box-shadow:0 0 0 2px var(--accent)}
.mp-markets [data-status=posting] span{background:#ffe7a8;color:#6a4b00}
.mp-markets [data-status=live] span{background:#d6f5e8;color:#0d6b45}
.mp-markets [data-status=sold]{background:#170f2e;color:#fff}
.mp-markets [data-status=sold] span{background:var(--coral);color:var(--on-coral)}
.mp-markets [data-status=delisted] b{text-decoration:line-through;text-decoration-color:var(--coral);text-decoration-thickness:2px;color:#6f6687}
.mp-markets [data-status=delisted] span{background:#f1edf9;color:#6f6687}
.mp-inbox{background:#170f2e;color:#fff;border-radius:14px;padding:18px}
.mp-inbox h3{font-size:18px;font-weight:900;display:flex;justify-content:space-between;align-items:baseline}
.mp-inbox h3 span{font-size:11px;font-weight:700;color:#b9a6ff}
.mp-inbox ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.mp-inbox li{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:10px 12px;border-radius:12px;background:#2a2147;transition:opacity .4s,transform .5s cubic-bezier(.16,1,.3,1)}
.s-mp[data-armed] .mp-inbox li:not(.in){opacity:0;transform:translateY(12px)}
.mp-inbox p{font-size:13px;line-height:1.45;color:#ddd5f5}
.mp-inbox p b{color:#fff;margin-right:4px}
.mp-inbox time{font-size:11px;color:#a69bcb;align-self:end}
.s-mp .local-ai{margin:28px var(--pad) 0;padding:30px 34px;border-radius:16px;background:#ffcf3f;color:#2a2000;display:grid;grid-template-columns:auto 1fr;gap:6px 40px}
.s-mp .ai-label{grid-column:1/-1;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.s-mp .local-ai h3{font-size:28px;font-weight:900;letter-spacing:-.02em;max-width:14ch;line-height:1.1}
.s-mp .local-ai p{font-size:15px;line-height:1.6;font-weight:600}
.mp-fine{padding:18px var(--pad) 64px;font-size:12px;color:#6b6188}

.s-pl{--accent:#ffb020;--focus:#ffb020;--on-accent:#050607;background:#050607;color:#fbf7ff;font-family:'JetBrains Mono',ui-monospace,monospace}
.s-pl .x-nav{background:#030405;color:#fbf7ff}
.s-pl .x-brand{font-weight:800;font-size:17px;letter-spacing:.06em}
.s-pl .x-links{font-size:12px;letter-spacing:.06em;color:#c1b4d0;text-transform:uppercase}
.s-pl .x-cta{background:#ffb020;color:#050607;font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:11px 16px;border-radius:3px}
.s-pl .x-cta:hover{background:#ffd27a}
.s-pl h2{font-size:clamp(40px,6vw,92px);font-weight:800;line-height:.98;letter-spacing:-.04em;margin-bottom:22px;text-transform:uppercase}
.s-pl .local-ai{margin-top:46px;background:#030405;color:#fbf7ff;padding:28px 30px;display:grid;grid-template-columns:1fr 1.4fr;gap:8px 40px}
.s-pl .ai-label{grid-column:1/-1;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#ffb020}
.s-pl .local-ai h3{font-size:26px;font-weight:800;line-height:1.15;text-transform:uppercase}
.s-pl .local-ai p{font-size:14px;line-height:1.7;color:#cfe3c7}
.s-pt{--accent:#ff7a59;--focus:#ffd98a;--on-accent:#170d2b;background:#170d2b;color:#f8f1e2;font-family:Manrope,system-ui,sans-serif}
.s-pt .x-nav{background:#100820;color:#f8f1e2}
.s-pt .x-brand{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:19px}
.s-pt .x-links{font-size:12px;letter-spacing:.04em;color:#c9b8dc}
.s-pt .x-cta{background:#ff7a59;color:#170d2b;font-weight:800;font-size:13px;padding:11px 16px;border-radius:999px}
.s-pt .x-cta:hover{background:#ffd98a}
.s-pt .local-ai{background:#100820;color:#f8f1e2;display:block}
.s-pt .ai-label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#ff7a59}

/* ---------- 05 Kineta · robotics (isometric layer stack) ---------- */

























/* In the isometric stack the back half of each layer lies under the layer above it, so a title along the back edge was
   cut by the next layer (Kineta / fleet planner). Each title and its line sit on the layer's front edge, the part
   always in view; the tiles and the floor plan take the back. Phones lay the cards flat and keep the reading order. */
@media(min-width:651px){
 
 
 
 
 
 
}







































/* ---------- 08 Lucky 7 · pawn (comparables burst collapsing into a cluster) ---------- */
.s-lk{--accent:#ff5cbb;--focus:#ff5cbb;--on-accent:#140b17;--cyan:#38e4e8;--amber:#ffb000;background:#140b17;color:#f7e9ff;font-family:Jost,'Century Gothic',sans-serif;transition:background-color 2s}
.s-lk.lk-settled{background:#160f1d}
.s-lk .x-nav{background:#140b17e6;backdrop-filter:blur(10px);border-bottom:1px solid #ff5cbb33}
.s-lk .x-brand{font-weight:700;font-size:20px;letter-spacing:.18em;color:#fff;}
.s-lk .x-brand b{display:inline-grid;place-content:center;width:30px;height:30px;margin:0 6px;border-radius:50%;background:var(--amber);color:#140b17;letter-spacing:0;text-shadow:none}
.s-lk .x-links{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#c9a9d6}
.s-lk .x-cta{background:transparent;color:var(--cyan);border:1.5px solid var(--cyan);border-radius:999px;padding:10px 18px;font-weight:600;font-size:13px;letter-spacing:.06em}
.s-lk .x-cta:hover{background:var(--cyan);color:#140b17}
.lk-hero{display:grid;grid-template-columns:.85fr 1.15fr;gap:30px;align-items:center;padding:60px var(--pad) 40px;min-height:76vh}
.s-lk h2{font-size:clamp(44px,5.6vw,88px);font-weight:600;line-height:1;letter-spacing:-.03em;margin-bottom:24px}
.lk-copy>p:first-of-type{font-size:18px;line-height:1.6;color:#d9c3e3;max-width:42ch}
.lk-actions{display:flex;align-items:center;gap:22px;margin-top:30px!important}
.lk-pill{border:0;border-radius:999px;background:#f7e9ff;color:#140b17;padding:13px 22px;font:600 14px Jost,sans-serif}
.lk-pill:hover{background:var(--accent)}
.lk-link{display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:#f7e9ff;font:500 14px Jost,sans-serif;padding:8px 0;border-bottom:1px solid #f7e9ff66}
.lk-link svg{width:16px;height:16px}
.s-lk .lk-link svg path{stroke:currentColor;stroke-width:1.6;fill:none}
.lk-burst{position:relative;height:min(620px,70vh)}
.lk-burst canvas{width:100%;height:100%;display:block}
.lk-chip{position:absolute;top:8%;right:4%;padding:6px 12px;border-radius:999px;background:#2a1a30;border:1px solid #ff5cbb55;font-size:12px;color:#f7e9ff}
.lk-counter{display:grid;grid-template-columns:.6fr 1.4fr;gap:24px;padding:20px var(--pad) 40px}
.lk-tag{position:relative;border-radius:16px;padding:28px;background:#f7e9ff;color:#140b17;align-self:start}
.lk-tag::before{content:'';position:absolute;top:22px;right:22px;width:16px;height:16px;border-radius:50%;background:#140b17}
.lk-ticket{font:600 12px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:#8a4f7d}
.lk-tag h3{font-size:30px;font-weight:600;line-height:1.05;margin:18px 0 8px}
.lk-tag p{font-size:14px;color:#4a2f4f}
.lk-hold{margin-top:22px!important;padding-top:14px;border-top:1px dashed #140b1755;font:600 12px 'JetBrains Mono',ui-monospace,monospace}
.lk-val{background:#1d1222;border-radius:16px;padding:24px 26px}
.lk-val h3{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#c9a9d6;font-weight:600}
.lk-comps{list-style:none;margin:14px 0 26px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.lk-comps li{padding:7px 12px;border-radius:999px;border:1px solid #ff5cbb88;color:#ffd6ee;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;transition:opacity .3s,transform .4s}
.s-lk[data-armed] .lk-comps li:not(.in){opacity:0;transform:translateY(10px)}
.lk-range{position:relative;height:56px;margin:0 0 20px}
.lk-range::before{content:'';position:absolute;left:0;right:0;top:18px;height:4px;background:#3a2240;border-radius:4px}
.lk-band{position:absolute;top:12px;height:16px;left:calc(var(--lo)*100%);width:calc((var(--hi) - var(--lo))*100%);background:linear-gradient(90deg,var(--accent),var(--amber));border-radius:8px;transition:left .8s,width .8s}
.lk-mid{position:absolute;top:4px;left:calc(var(--mid)*100%);width:4px;height:32px;margin-left:-2px;background:#fff;transition:left .8s,opacity .4s}
.lk-min,.lk-max{position:absolute;top:36px;font-size:12px;color:#c9a9d6}
.lk-max{right:0}
.s-lk[data-armed]:not(.lk-on) .lk-band{left:50%;width:0}
.s-lk[data-armed]:not(.lk-on) .lk-mid{opacity:0}
.lk-offers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}
.lk-offers div{border-top:2px solid var(--c,#ff5cbb);padding-top:10px}
.lk-offers div:nth-child(2){--c:var(--amber)}.lk-offers div:nth-child(3){--c:var(--cyan)}
.lk-offers dt{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#c9a9d6}
.lk-offers dd{margin:6px 0 0;font-size:42px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.lk-checks{list-style:none;margin:20px 0 0;padding:0;font-size:14px;color:#e6d2ef}
.lk-checks li{position:relative;padding:6px 0 6px 24px}
.lk-checks li::before{content:'';position:absolute;left:0;top:12px;width:10px;height:10px;border-radius:50%;border:2px solid #5d3d68}
.lk-checks li.done::before{background:var(--cyan);border-color:var(--cyan)}
.s-lk .local-ai{margin:20px var(--pad) 0;padding:28px 0 80px;border-top:1px solid #3a2240;display:grid;grid-template-columns:1fr 1.4fr;gap:10px 44px}
.s-lk .ai-label{grid-column:1/-1;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);font-weight:600}
.s-lk .local-ai h3{font-size:34px;font-weight:600;line-height:1.05}
.s-lk .local-ai p{font-size:16px;line-height:1.7;color:#d9c3e3}
.s-lk .approval-state{color:var(--cyan)}

/* ---------- 09 The Ashbury · real estate (blueprint that draws itself, then renders) ---------- */
.s-ash{--accent:#a8682c;--accent-ink:#935514;--focus:#935514;--on-accent:#fff;--ink:#0f2a22;background:#f3eee2;color:#0f2a22;font-family:'Bodoni Moda',Didot,Georgia,serif}
.s-ash .x-nav{background:#f3eee2f2;border-bottom:1px solid #0f2a2226}
.s-ash .x-brand{font-size:17px;letter-spacing:.34em;font-weight:500}
.ash-mark{width:22px;height:22px;border:1.5px solid #0f2a22;position:relative}
.ash-mark::after{content:'';position:absolute;inset:5px;background:var(--accent)}
.s-ash .x-links{gap:0;font:500 11px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase}
.s-ash .x-links span{padding:0 18px;border-left:1px solid #0f2a2233}
.s-ash .x-cta{background:none;color:var(--accent-ink);font:600 11px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;padding:10px 0;border-bottom:1px solid var(--accent-ink)}
.ash-sheet{position:relative;padding:40px var(--pad) 0;min-height:88vh;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr auto auto;column-gap:40px}
.ash-draw{grid-column:1/-1;width:100%;max-height:68vh;display:block;overflow:visible}
.s-ash .ash-draw .ln{fill:none;stroke:#0f2a22;stroke-width:1.3;stroke-linecap:square;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset .9s cubic-bezier(.16,1,.3,1) var(--d,0s)}
.s-ash[data-armed]:not(.ash-drawn) .ash-draw .ln{stroke-dashoffset:1}
.s-ash .ash-draw .ground{fill:none;stroke:#0f2a22;stroke-width:1}
.ash-draw .scan{transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .6s}
.s-ash .ash-draw .scan line{stroke:var(--accent);stroke-width:1.5}
.ash-draw .scan text{font:600 11px 'JetBrains Mono',ui-monospace,monospace;fill:var(--accent-ink);letter-spacing:.08em}
.ash-draw .render{opacity:1;transition:opacity 1.6s ease}
.s-ash[data-armed]:not(.ash-rendered) .ash-draw .render{opacity:0}
.s-ash .ash-draw .hatch{fill:url(#ash-hatch)}
.ash-draw .pane{fill:#0f2a22}
.ash-draw .pane.lit{fill:#e9c77f}
.s-ash .ash-draw .tree{fill:none;stroke:#0f2a22;stroke-width:1;stroke-linecap:round}
.ash-draw .marker{fill:var(--accent)}
/* The building's figures: 12px mono labels (the site's label floor) over values set large in the house serif. */
.ash-spec{grid-column:2;align-self:end;justify-self:end;display:grid;grid-template-columns:repeat(2,minmax(130px,auto));gap:16px 36px;margin:20px 0 0;font:500 12px/1.5 'JetBrains Mono',ui-monospace,monospace}
.ash-spec dt{color:#58695f;text-transform:uppercase;letter-spacing:.08em}
.ash-spec dd{margin:4px 0 0;font:500 22px/1.15 'Bodoni Moda',Didot,Georgia,serif;color:#0f2a22}
.ash-title{grid-column:1/-1;margin:34px 0 0;padding:30px 0 60px;border-top:1px solid #0f2a2233;font-size:clamp(44px,6.4vw,104px);font-weight:600;line-height:1;letter-spacing:-.02em;text-transform:uppercase;transition:clip-path 1.2s cubic-bezier(.16,1,.3,1),transform 1.2s cubic-bezier(.16,1,.3,1)}
.ash-title em{font-style:italic;font-weight:400;text-transform:none;color:var(--accent)}
.s-ash[data-armed]:not(.ash-on) .ash-title{clip-path:inset(100% 0 0 0);transform:translateY(40px)}
.ash-desk{display:grid;grid-template-columns:.9fr 1.3fr .6fr;background:#0f2a22;color:#f3eee2;padding:0 var(--pad)}
.ash-msg{padding:34px 30px 34px 0;border-right:1px solid #c2a36b33}
.ash-who{font:600 11px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#c2a36b}
.ash-bubble{margin-top:14px!important;font-size:25px;line-height:1.35;font-style:italic}
.ash-triage{margin:0;padding:34px 30px;display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;border-right:1px solid #c2a36b33}
/* Triage rows and the approval stamp arrive by a wipe, not a fade: the part already drawn is at full colour on every
   frame, so the text never passes through a low-contrast half-faded state while it lands. */
.ash-triage div{clip-path:inset(-4px);transition:clip-path .45s cubic-bezier(.16,1,.3,1),transform .5s}
.s-ash[data-armed] .ash-triage div:not(.in){clip-path:inset(-4px 100% -4px -4px);transform:translateX(-10px)}
.ash-triage dt{font:600 10px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#a49d8b}
.ash-triage dd{margin:4px 0 0;font-size:18px}
.ash-approve{align-self:center;justify-self:center;margin:24px!important;width:132px;height:132px;border:1px solid #c2a36b;border-radius:50%;display:grid;place-content:center;text-align:center;font:600 10px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#c2a36b;transform:rotate(-12deg);clip-path:circle(75% at 50% 50%);transition:clip-path .4s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.3,1.6,.5,1)}
.s-ash[data-armed] .ash-approve:not(.in){clip-path:circle(0 at 50% 50%);transform:rotate(-30deg) scale(1.5)}
.ash-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:34px var(--pad);background:#0f2a22;color:#f3eee2;border-top:1px solid #c2a36b33}
.ash-stats dt{font:600 10px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#a49d8b}
.ash-stats dd{margin:8px 0 0;font-size:54px;line-height:1}
.s-ash .local-ai{padding:34px var(--pad) 90px;background:#0f2a22;color:#f3eee2;border-top:1px solid #c2a36b33;display:grid;grid-template-columns:1fr 1.3fr;gap:10px 60px}
.s-ash .ai-label{grid-column:1/-1;font:600 11px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase;color:#c2a36b}
.s-ash .local-ai h3{font-size:42px;font-weight:400;font-style:italic;line-height:1.05}
.s-ash .local-ai p{font:400 16px/1.75 Manrope,sans-serif;color:#d3ccba}
.s-ash .ai-where dd{font-family:Manrope,sans-serif;color:#d3ccba}
.ash-fine{margin:0;padding:0 var(--pad) 18px;background:#0f2a22;color:#a49d8b;font:500 11px/1.5 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase}

/* ---------- 10 Ridgeline · roofing (giant pattern-filled numerals with walkers) ---------- */
.s-rr{--accent:#ffcc00;--focus:#ffcc00;--on-accent:#111;background:#ffcc00;color:#111;font-family:'Barlow Condensed','Arial Narrow',sans-serif}
.s-rr .x-nav{background:#111;color:#ffcc00}
.s-rr .x-brand{font:400 30px Anton,sans-serif;letter-spacing:.04em}
.s-rr .x-links{font-weight:700;font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:#fff}
.s-rr .x-cta{background:#ffcc00;color:#111;font:400 20px Anton,sans-serif;letter-spacing:.04em;padding:8px 18px;border-radius:3px}
.s-rr .x-cta:hover{background:#fff}
.rr-hero{padding:56px var(--pad) 30px}
.rr-chip{display:inline-flex;align-items:center;gap:10px;padding:4px 14px 4px 4px;border-radius:999px;border:1.5px solid #111;font-weight:700;font-size:15px}
.rr-chip b{background:#111;color:#ffcc00;border-radius:999px;padding:3px 10px;font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.s-rr h2{margin:22px 0 14px;font:400 clamp(44px,5.8vw,92px)/1 Anton,sans-serif;text-transform:uppercase;letter-spacing:.005em}
.s-rr h2 span{display:block}
.rr-sub{font:500 italic 22px/1.35 'Barlow Condensed',sans-serif;max-width:52ch}
.rr-buttons{display:flex;gap:10px;margin-top:24px!important}
.rr-btn{border:1.5px solid #111;border-radius:999px;background:#111;color:#ffcc00;font:700 14px 'Barlow Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:9px 18px}
.rr-btn.ghost{background:transparent;color:#111}
.rr-btn:hover{background:#fff;color:#111}
.rr-marquee{overflow:hidden;border-top:2px solid #111;border-bottom:2px solid #111;margin-top:26px}
.rr-marquee p{display:flex;width:max-content;margin:0;padding:12px 0;font:700 18px 'Barlow Condensed',sans-serif;letter-spacing:.08em;text-transform:uppercase;animation:rr-run 38s linear infinite}
.rr-marquee span{white-space:nowrap}
@keyframes rr-run{to{transform:translateX(-50%)}}
.rr-num{font:400 clamp(170px,36vw,600px)/.8 Anton,sans-serif;letter-spacing:-.01em;text-align:center;color:transparent;background:#111 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='64'%3E%3Crect width='96' height='64' fill='%23111'/%3E%3Cg stroke='%23111' stroke-width='3'%3E%3Cpath d='M0 0h32v18c0 8-6 12-16 12S0 26 0 18z' fill='%23ffcc00'/%3E%3Cpath d='M32 0h32v18c0 8-6 12-16 12s-16-4-16-12z' fill='%23ff7a1a'/%3E%3Cpath d='M64 0h32v18c0 8-6 12-16 12s-16-4-16-12z' fill='%23f2f2f2'/%3E%3Cpath d='M-16 32h32v18c0 8-6 12-16 12s-16-4-16-12z' fill='%23ff7a1a'/%3E%3Cpath d='M16 32h32v18c0 8-6 12-16 12s-16-4-16-12z' fill='%23444'/%3E%3Cpath d='M48 32h32v18c0 8-6 12-16 12s-16-4-16-12z' fill='%23ffcc00'/%3E%3Cpath d='M80 32h32v18c0 8-6 12-16 12s-16-4-16-12z' fill='%23ff7a1a'/%3E%3C/g%3E%3C/svg%3E") 0 0/96px 64px;-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:3px #111;animation:rr-shingle 30s linear infinite}
.rr-num small{font-size:.16em;letter-spacing:.06em;-webkit-text-stroke:0;color:#111;margin-left:.1em}
@keyframes rr-shingle{to{background-position:192px 128px}}
.rr-bot{position:absolute;bottom:0;display:flex;align-items:flex-end;gap:4px;animation:rr-walk var(--t,22s) linear infinite}
.rr-bot i{position:relative;width:20px;height:26px;background:#111;border-radius:4px 4px 2px 2px;animation:rr-step .5s ease-in-out infinite alternate}
.rr-bot i::before{content:'';position:absolute;left:-3px;top:-12px;width:26px;height:13px;border-radius:13px 13px 2px 2px;background:#fff;border:2px solid #111}
.rr-bot b{margin-bottom:22px;padding:4px 10px;background:#111;color:#ffcc00;font:700 13px 'Barlow Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;transform-origin:left bottom;animation:rr-flag 1.2s ease-in-out infinite alternate}
.rr-bot.w1{--t:26s;animation-delay:-4s}.rr-bot.w2{--t:32s;animation-delay:-16s}.rr-bot.w3{--t:21s;animation-delay:-9s}
@keyframes rr-walk{from{transform:translateX(-30vw)}to{transform:translateX(110vw)}}
@keyframes rr-step{to{transform:translateY(-4px)}}
@keyframes rr-flag{to{transform:rotate(-4deg)}}
.rr-work{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;padding:40px var(--pad) 0}
.rr-scan{background:#111;padding:18px;margin:0}
.rr-roof{width:100%;display:block}
.rr-f{fill:#2a2a2a;stroke:#ffcc00;stroke-width:2;transition:fill .4s}
.rr-f.in{fill:#3a3410}
.s-rr[data-armed] .rr-f:not(.in){fill:#1b1b1b}
.s-rr .rr-ridge{stroke:#ffcc00;stroke-width:4}
.rr-labels text{fill:#ffcc00;font:600 15px 'Barlow Condensed',sans-serif;letter-spacing:.06em;text-anchor:middle}
.rr-labels .rr-dim{fill:#fff;font-size:13px}
.rr-labels{transition:opacity .4s}
.s-rr[data-armed]:not(.rr-done) .rr-labels{opacity:0}
.rr-marks circle{fill:none;stroke:#ff4d2e;stroke-width:3;transform-box:fill-box;transform-origin:center;transition:transform .4s cubic-bezier(.3,1.6,.5,1),opacity .3s}
.s-rr[data-armed]:not(.rr-done) .rr-marks circle{opacity:0;transform:scale(2.4)}
.rr-beam{fill:#ffcc00;opacity:0}
.s-rr.rr-scanning .rr-beam{animation:rr-sweep 2.4s ease-in-out 1 both}
@keyframes rr-sweep{0%{opacity:1;transform:translateX(40px)}90%{opacity:1}100%{opacity:0;transform:translateX(480px)}}
.rr-scan figcaption{color:#ffcc00;font:600 13px 'Barlow Condensed',sans-serif;letter-spacing:.06em;padding:12px 0 0;text-transform:uppercase}
.rr-est{width:100%;border-collapse:collapse;background:#fff;border:4px solid #111;font-size:16px;align-self:start}
.rr-est caption{background:#111;color:#ffcc00;text-align:left;padding:10px 14px;font:400 20px Anton,sans-serif;letter-spacing:.04em;text-transform:uppercase}
.rr-est th{text-align:left;padding:10px 14px;border-bottom:3px solid #111;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.rr-est td{padding:10px 14px;border-bottom:1px solid #ddd;font-weight:700}
.rr-est td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rr-est tr{transition:opacity .3s}
.s-rr[data-armed] .rr-est tbody tr:not(.in){opacity:0}
.s-rr .local-ai{margin:24px var(--pad) 70px;padding:28px 30px 34px;background:#111;color:#fff;display:grid;grid-template-columns:1fr 1.4fr;gap:8px 40px}
.s-rr .ai-label{grid-column:1/-1;color:#ffcc00;font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.s-rr .local-ai h3{font:400 40px/1 Anton,sans-serif;text-transform:uppercase}
.s-rr .local-ai p{font-size:19px;line-height:1.45}
.s-rr .ai-where dd{font-size:17px;line-height:1.45}
.rr-est-wrap{align-self:start}
.s-rr .approval-state{background:#111;color:#ffcc00;border-color:#111}

/* ---------- 13 Fairweather · legal (cinematic title list, then the redline desk) ---------- */
.s-fw{--accent:#7a1f1f;--focus:#7a1f1f;--on-accent:#f6f1e7;background:#14110e;color:#f3ead8;font-family:'EB Garamond',Baskerville,Georgia,serif}










.s-fw .x-nav{background:#120e0a;display:flex;color:#f6f0e4}



.s-fw .x-brand{font-size:26px;font-weight:500;letter-spacing:.01em}
.s-fw .x-links{font:500 12px Manrope,sans-serif;letter-spacing:.04em;color:#cdbfa6}

.s-fw .x-cta{background:#ffcf6e;color:#1b1610;font:600 13px Manrope,sans-serif;padding:10px 16px;border-radius:999px}
.s-fw .x-cta:hover{background:#f6f0e4}











.s-fw h2{font-size:clamp(44px,6.2vw,98px);font-weight:400;line-height:1.02;letter-spacing:-.02em;margin-bottom:26px}
.s-fw h2 em{color:var(--accent)}


























/* ---------- Responsive ---------- */
@media(max-width:1100px){
 .diagnosis{grid-template-columns:repeat(2,minmax(0,1fr))}
 
}
@media(max-width:900px){
 .x-links{display:none}

 .guide-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ss-head{grid-template-columns:1fr}
 .ss-list{grid-template-columns:1fr}
 .ai-where div{grid-template-columns:1fr}
 .hale-hero,.mp-hero,.lk-hero{grid-template-columns:1fr}
 .hale-grid,.lk-counter,.rr-work,.ash-desk{grid-template-columns:1fr}
 .mp-app{grid-template-columns:1fr}
 
 
 /* One column: the stack sits under the replan log, low enough that the top layer's far corner clears its last line. */
 
 .lk-burst{height:420px}
 .ash-sheet{grid-template-columns:1fr;min-height:0}
 .ash-spec{grid-column:1;justify-self:start}
 .ash-msg,.ash-triage{border-right:0;padding-left:0;padding-right:0;border-bottom:1px solid #c2a36b33}
 .local-ai{grid-template-columns:1fr!important}
 .s-fw .x-brand{font-size:24px}
}
@media(max-width:650px){
 .x-nav{gap:12px;padding-top:10px;padding-bottom:10px;min-height:56px}
 .x-cta{font-size:12px!important;min-height:44px}
 .guide{padding-top:58px;padding-bottom:58px}
 /* The two guide columns may shrink below their content, so the guide never widens the page; each name is sized to its
    tile (100cqi is the tile's inner width), so no name breaks mid-word. marketplays is the widest single word. */
 .guide-list{gap:8px}.guide-list a{min-height:128px;padding:14px;container-type:inline-size}
 .g-name{font-size:min(24px,calc(100cqi/6.1))}
 /* The diagnosis reads as one column of label and value pairs; the index stacks its four entries. */
 .diagnosis{grid-template-columns:1fr;gap:12px}
 .diagnosis-beat{padding:16px 16px 14px}
 .hale-hero,.lk-hero{min-height:0}
 .hale-dots{grid-template-columns:repeat(14,1fr)}
 .s-mp .local-ai,.s-pl .local-ai,.s-rr .local-ai{padding:24px 22px}
 /* The category sheet keeps each amount on one line: tighter cells and a 12px figure fit it inside a 360px phone. */
 /* (removed) Kineta's stack lies flat on phones: four full-size cards, top layer first, instead of a shrunken isometric model that
    sat on the headline. The cards settle into place as the demo builds, and the world model fades in as before. */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 /* Business navs fit the phone: brand and button stay on one line inside the side margins. */
 .s-lk .x-brand{font-size:16px;letter-spacing:.1em}.s-lk .x-brand b{width:26px;height:26px;margin:0 4px}.s-lk .x-cta{padding:10px 14px}
 .s-ash .x-brand{font-size:15px;letter-spacing:.2em}
 .s-fw .x-nav{gap:8px}.s-fw .x-brand{font-size:21px}
 .ash-stats{column-gap:14px}.ash-stats dt{letter-spacing:.06em}
 .hale-vitals dt,.ash-triage dt,.ash-stats dt{font-size:11px}
 .lk-link,.lk-pill,.rr-btn{min-height:44px}
 /* Chart text is in chart units: Ashbury's elevation draws at about a quarter of its size on a phone. */
 .ash-draw .scan text{font-size:42px}
 .rr-labels text,.rr-labels .rr-dim{font-size:21px}
 .lk-offers dd{font-size:30px}
 .ash-spec{grid-template-columns:1fr 1fr;gap:14px 18px}.ash-spec dd{font-size:20px}
 .ash-stats div{display:flex;flex-direction:column}.ash-stats dd{margin-top:auto;padding-top:8px;font-size:30px;white-space:nowrap}
 .rr-bot b{font-size:11px}
 
 
 
 
}
@media(prefers-reduced-motion:reduce){}
.hale-blob .dot,.hale-blob .glow{transition:opacity .5s ease,fill .5s ease}
.s-hale[data-armed] .hale-blob .dot.dim{opacity:.18}
.s-hale[data-armed] .hale-blob .glow.dim{opacity:0}

/* ======================================================================
   Scrollcraft layer and per-site effects (web-design library)
   ====================================================================== */
/* Scrollcraft's tokens point at MISH's own palette so its resets leave the monograph pages as they were. */
:root{--sc-canvas:var(--paper);--sc-surface:#e4e9df;--sc-ink:var(--ink);--sc-ink-soft:var(--muted);--sc-accent:#24584b;--sc-accent-ink:#fff;--sc-font-display:Montserrat,'Avenir Next',sans-serif;--sc-font-text:Montserrat,'Avenir Next',sans-serif;--sc-font-mono:'JetBrains Mono',ui-monospace,monospace}
body{font-size:16px;line-height:normal;letter-spacing:normal}

/* One cursor per site, each drawn for its world */
.s-mish{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M16 2v10M16 20v10M2 16h10M20 16h10' stroke='white' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M16 2v10M16 20v10M2 16h10M20 16h10' stroke='%23180f28' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='16' cy='16' r='2.4' fill='%2363d7e3' stroke='white'/%3E%3C/svg%3E") 16 16,crosshair}
.s-hale{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Ccircle cx='16' cy='16' r='11' fill='%23ff9a3c' fill-opacity='.18' stroke='%23ffb35c' stroke-width='1.2'/%3E%3Ccircle cx='16' cy='16' r='4.5' fill='%23ffd9a0'/%3E%3C/svg%3E") 16 16,auto}
.s-mp{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M3 3h12l14 14-12 12L3 15z' fill='%235a2fe0' stroke='white' stroke-width='1.6' stroke-linejoin='round'/%3E%3Ccircle cx='9' cy='9' r='2.4' fill='white'/%3E%3C/svg%3E") 3 3,auto}
.s-pt{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M5 15 16 5l11 10M8 13v14h16V13' fill='none' stroke='%23ff7a59' stroke-width='2'/%3E%3Ccircle cx='16' cy='20' r='3' fill='%23ffd98a'/%3E%3C/svg%3E") 16 16,auto}
.s-pl{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M2 16h28' stroke='%23b3261e' stroke-width='1.4'/%3E%3Cpath d='M16 8v16M12 8h8M12 24h8' stroke='%231e2b22' stroke-width='2'/%3E%3C/svg%3E") 16 16,text}

.s-lk{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Ccircle cx='12' cy='12' r='8.5' fill='%23ff5cbb' fill-opacity='.12' stroke='%23ff5cbb' stroke-width='2.2'/%3E%3Cpath d='M18.5 18.5 29 29' stroke='%23f7e9ff' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E") 12 12,zoom-in}
.s-ash{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M16 0v32M0 16h32' stroke='%230f2a22'/%3E%3Crect x='12' y='12' width='8' height='8' fill='none' stroke='%23a8682c' stroke-width='1.4'/%3E%3C/svg%3E") 16 16,crosshair}
.s-rr{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Crect x='10' y='4' width='20' height='18' rx='5' fill='%23111' stroke='%23ffcc00' stroke-width='1.5'/%3E%3Ccircle cx='20' cy='13' r='4' fill='%23ffcc00'/%3E%3Cpath d='M10 18H3v6h3' fill='none' stroke='%23111' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 3 24,auto}
.s-fw{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M4 28l4-12L22 2l8 8-14 14z' fill='%231d1a16' stroke='%23f6f1e7' stroke-width='1.2' stroke-linejoin='round'/%3E%3Cpath d='M4 28l8-8' stroke='%23f6f1e7' stroke-width='1.2'/%3E%3Ccircle cx='13' cy='19' r='1.6' fill='%23f6f1e7'/%3E%3C/svg%3E") 4 28,auto}
.concept :is(button,a,[data-scroll-to]){cursor:pointer}

/* Canvas effect layers sit under each site's own content */
.fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;display:block}
.hale-hero,.mp-hero,.lk-hero{position:relative}
.hale-hero>:not(.fx),.mp-hero>:not(.fx),.lk-hero>:not(.lk-spectral){position:relative;z-index:1}
.fx-orbit{left:auto;width:58%}

/* 08 · Spectral type behind the pawn counter */
.lk-spectral{position:absolute;left:0;right:0;top:4%;z-index:0;pointer-events:none;display:flex;flex-direction:column;align-items:flex-end;padding-right:var(--pad);font:800 clamp(110px,17vw,280px)/.84 Jost,sans-serif;letter-spacing:-.02em;text-transform:uppercase;color:transparent;background:radial-gradient(circle at var(--mx,40%) var(--my,40%),#fff 0,#ffd27a 3%,#ff5cbb 7%,#38e4e8 11%,#4c86ff 15%,transparent 22%),#1e1324;-webkit-background-clip:text;background-clip:text}
.lk-spectral span{-webkit-text-stroke:1px #33223b}

/* 09 · Split horizon statements and the drafting crosshair */
.ash-sheet{position:relative;overflow:hidden}
.ash-split{position:absolute;z-index:2;margin:0;font:400 clamp(18px,1.9vw,30px)/1.18 'Bodoni Moda',serif;color:#0f2a22;pointer-events:none}
.ash-split.s1{left:var(--pad);top:40px}
/* The headline rises in two whole halves (one span each in the markup, revealed in order by effects.mjs). The second
   half sits top right across the sky from the first, clear of the trees and above the level line, so a reveal never
   leaves a lone fragment. */
.ash-split.s2{right:var(--pad);top:40px;text-align:right}
.ash-split span{display:block;overflow:hidden;padding-bottom:.1em}
.ash-split i{display:block;font-style:normal;line-height:1.28;transform:translateY(108%);transition:transform 1s cubic-bezier(.16,1,.3,1)}
.ash-split em{font-style:italic;color:var(--accent-ink)}
.ash-split span.in i{transform:none}
.ash-cross-h,.ash-cross-v{position:absolute;pointer-events:none;background:#a8682c99;opacity:0;transition:opacity .2s;z-index:3}
.ash-cross-h{left:0;right:0;top:0;height:1px}.ash-cross-v{top:0;bottom:0;left:0;width:1px}
.ash-dim{position:absolute;left:0;top:0;z-index:4;padding:3px 7px;background:#0f2a22;color:#f3eee2;font:600 11px 'JetBrains Mono',ui-monospace,monospace;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s}

/* 10 · Glyph rain under the giant numerals */
.rr-num{position:relative;z-index:1}

/* 13 · Panel cascade menu */













/* Guide jacks */
.g-jack{width:12px;height:12px;border-radius:50%;border:2px solid currentColor}

/* Scrollcraft signature: the jack rail, one jack per sample and one for the index */
.patch-rail{position:fixed;top:14vh;bottom:14vh;right:10px;width:20px;z-index:57;padding:0;border-radius:999px;background:#100b1db3;transition:opacity .3s,visibility .3s}
/* Away from the lineup (effects.mjs data-away) the rail steps aside, and its jacks leave the focus order with it. */
.patch-rail[data-away]{opacity:0;visibility:hidden}
.rail-cable{position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:#ffffff33}
.rail-lit{position:absolute;left:8px;top:8px;bottom:8px;width:4px;border-radius:4px;background:var(--mish-mint,#63d7e3);transform-origin:top;transform:scaleY(0);opacity:calc(.55 + var(--energy,0)*.45)}
.rail-jack{position:absolute;left:4px;width:12px;height:12px;margin-top:-6px;padding:0;border-radius:50%;border:2px solid #fbf7ff;background:#100b1d;cursor:pointer;transition:background .3s,transform .3s}
.rail-jack.on{background:var(--jack);transform:scale(1.15)}
.rail-jack:focus-visible{transform:scale(1.4)}
.rail-jack::after{content:attr(data-name);position:absolute;right:20px;top:50%;translate:0 -50%;padding:4px 9px;border-radius:3px;background:#100b1d;color:#fbf7ff;font:600 11px Montserrat,sans-serif;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
.rail-jack:focus-visible::after{opacity:1}
/* A jack's name shows on keyboard focus anywhere, and on hover only where a pointer can hover: a tap on a phone leaves
   the jack in :hover, which would pin the name over the site until the next tap. */
@media(hover:hover){.rail-jack:hover{transform:scale(1.4)}.rail-jack:hover::after{opacity:1}}

/* Where the jack rail shows, an ident strip's cable turns down to its plug between the strip's text and the rail, not
   inside the rail's band (the identity's default, the middle of the gutter, put the plug on the rail's left edge, so
   the two read as one line through every strip). The rail itself is cut around each strip (showcase.mjs). */
@media(min-width:651px){#p-home .mish-ident{--mish-plug-x:calc((var(--mish-gutter) + 30px) / 2)}}
@media(min-width:651px) and (max-width:900px){#p-home .mish-ident{--mish-plug-x:20px}}
@media(max-width:900px){
 .fx-orbit{width:100%;opacity:.6}
 .patch-rail{right:4px;width:14px;top:18vh;bottom:18vh}
 .rail-cable{left:6px}.rail-lit{left:5px}.rail-jack{left:2px;width:10px;height:10px;margin-top:-5px}
}
@media(max-width:650px){
 /* A phone has no room for two columns: the second half follows the first as lines three and four, and the sheet's
    top padding makes room for all four above the drawing. */
 .ash-split{font-size:16px}
 .ash-split.s1{top:18px}
 .ash-split.s2{left:var(--pad);right:auto;top:calc(18px + 2.66em);text-align:left}
 .ash-sheet{padding-top:108px}
 .lk-spectral{font-size:clamp(80px,26vw,140px)}
 /* In one column the spectral words would sit behind the headline, so on phones they light up behind the burst. */
 .lk-spectral{top:auto;bottom:4%}
 /* A phone's 16px side gutter has no room for the jack rail: it would sit on the ends of text lines. The channel bar's
    guide does the rail's job here. */
 .patch-rail{display:none}
}
@media(prefers-reduced-motion:reduce){.ash-split i{transform:none}.patch-rail{transition:none}}
@keyframes se-tick{to{transform:translateX(-50%)}}
@keyframes se-drift{to{background-position:360px 180px}}
@keyframes se-bob{to{transform:translateY(-16px) rotate(-6deg)}}
@keyframes se-blink{0%,94%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
@keyframes se-spin{to{transform:rotate(360deg)}}

/* ---------- 07 Solstice · energy (aurora over a wireframe dashboard) ---------- */
.s-so{--accent:#ff5f00;--focus:#ffb000;--on-accent:#07111f;--store:#ffb000;--charge:#4c86ff;--sell:#2ed39a;--use:#8a98b3;background:#07111f;color:#e9eef7;font-family:'Inter Tight','Helvetica Neue',sans-serif;--strip-bg:#ff5f00;--strip-fg:#07111f}
.so-announce{margin:0;padding:9px var(--pad);text-align:center;font-size:12px;background:#0b1a2e;color:#b9c6da;border-bottom:1px solid #ffffff14}
.s-so .x-nav{background:#07111fe6;backdrop-filter:blur(10px);border-bottom:1px solid #ffffff14}
.s-so .x-brand{font-weight:600;font-size:21px;letter-spacing:-.02em}
.s-so .x-brand i{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffd27a,#ff5f00 70%)}
.s-so .x-links{color:#b9c6da}
.s-so .x-cta{background:var(--accent);color:var(--on-accent);font-weight:600;font-size:13px;padding:11px 18px;border-radius:4px}
.s-so .x-cta:hover{background:#ff7d33}
.so-stage{position:relative;isolation:isolate;padding:70px var(--pad) 70px;background-image:linear-gradient(90deg,#ffffff0f 1px,transparent 1px);background-size:calc(100%/8) 100%;overflow:hidden}
.so-aurora{position:absolute;inset:0;z-index:-1;display:flex;justify-content:space-around;align-items:flex-end;opacity:.35;transition:opacity 2.4s ease}
.so-aurora::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 45% at 50% 0%,#ff5f0066,transparent 70%),radial-gradient(ellipse 90% 50% at 50% 100%,#2f6bff55,transparent 70%)}
.so-aurora i{position:relative;width:9%;height:75%;background:linear-gradient(to top,#2f6bff66,#ff8a3d40 55%,transparent);filter:blur(22px);transform-origin:bottom;animation:so-curtain var(--t,7s) ease-in-out infinite alternate}
.so-aurora i:nth-child(2n){--t:9s;height:60%}.so-aurora i:nth-child(3n){--t:11s;height:85%}
@keyframes so-curtain{to{transform:scaleY(.72) translateX(14px);opacity:.6}}
.s-so.so-on .so-aurora{opacity:1}
.so-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end}
.so-eyebrow{display:flex;align-items:center;gap:10px;font:500 11px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#b9c6da;margin-bottom:20px!important}
.so-eyebrow::before{content:'';width:7px;height:7px;background:var(--accent)}
.s-so h2{font-size:clamp(50px,7vw,112px);font-weight:300;line-height:.95;letter-spacing:-.04em;color:#f3f6fb}
.so-lede{font-size:17px;line-height:1.55;color:#c9d4e6;max-width:40ch}
.so-dash{position:relative;margin-top:56px;display:grid;grid-template-columns:2.2fr 1fr;grid-template-areas:'chart radar' 'chart stats' 'legend legend';border:1px solid #ffffff2e}
.so-panel{position:relative;margin:0;border-right:1px solid #ffffff2e}
.so-chart{grid-area:chart;padding:18px}
.so-chart svg{display:block;width:100%}
.so-chart figcaption{font-size:12px;color:#a6b7d1;padding-top:8px}
.so-radar{grid-area:radar;border-right:0;border-bottom:1px solid #ffffff2e;display:grid;place-items:center;padding:24px}
.so-radar svg{width:min(220px,100%);transform:rotate(-90deg)}
.so-radar circle{fill:none;stroke:#ffffff33;stroke-width:1}
.so-radar .arc{stroke:var(--accent);stroke-width:3;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--level,45));transition:stroke-dashoffset .3s linear}
.so-radar p{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.so-radar b{font-size:46px;font-weight:300;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.so-radar span{font:500 10px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#a6b7d1}
.so-stats{grid-area:stats;margin:0;display:grid;grid-template-columns:1fr 1fr}
.so-stats div{padding:18px}
.so-stats div+div{border-left:1px solid #ffffff2e}
.so-stats dt{font:500 10px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:#a6b7d1}
.so-stats dd{margin:8px 0 0;font-size:42px;font-weight:300;font-variant-numeric:tabular-nums}
.so-legend{grid-area:legend;list-style:none;display:flex;gap:24px;flex-wrap:wrap;margin:0;padding:14px 18px;border-top:1px solid #ffffff2e;font-size:13px;color:#c9d4e6}
.so-legend li::before{content:'';display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-1px;background:var(--c)}
.so-legend [data-a=store],.so-chart [data-a=store]{--c:var(--store)}
.so-legend [data-a=charge],.so-chart [data-a=charge]{--c:var(--charge)}
.so-legend [data-a=sell],.so-chart [data-a=sell]{--c:var(--sell)}
.so-legend [data-a=use],.so-chart [data-a=use]{--c:var(--use)}
.so-dash>*{transition:clip-path 1.4s cubic-bezier(.16,1,.3,1)}
.s-so[data-armed]:not(.so-on) .so-dash>*{clip-path:inset(0 100% 100% 0)}
.s-so[data-armed]:not(.so-on) .so-dash{border-color:transparent}
.so-dash{transition:border-color 1.2s}
.so-dash::before,.so-dash::after{content:'';position:absolute;width:7px;height:7px;border:1px solid #ffffff88;border-radius:50%;top:-4px}
.so-dash::before{left:-4px}.so-dash::after{right:-4px}
.so-chart .gridline{stroke:#ffffff14}
.so-chart .hours text,.so-chart .ylab text{font:500 12px 'JetBrains Mono',ui-monospace,monospace;fill:#a6b7d1}
.so-chart .hours text{text-anchor:middle}
.so-chart .ylab text{text-anchor:end}
.so-chart .band{fill:var(--c);transition:opacity .25s}
.so-chart .tint{opacity:.13}
.s-so[data-armed] .so-chart .band:not(.in){opacity:0}
.s-so .so-chart .solar{fill:#ffb00026;stroke:#ffb000;stroke-width:2}
.s-so .so-chart .price{fill:none;stroke:#f3f6fb;stroke-width:2.5;stroke-dasharray:100;stroke-dashoffset:0;stroke-linejoin:round}
.s-so[data-armed]:not(.so-on) .so-chart .price{stroke-dashoffset:100}
.s-so.so-on .so-chart .price{transition:stroke-dashoffset 2.6s ease}
.so-chart .sun{fill:#ffd27a;filter:drop-shadow(0 0 8px #ff8a3d);transition:transform .11s linear,opacity .3s}
.so-chart .peak{font:600 11px 'JetBrains Mono',ui-monospace,monospace;fill:var(--accent);text-anchor:middle;letter-spacing:.12em}
.s-so .local-ai{margin:0 var(--pad);padding:40px 0 80px;border-top:1px solid #ffffff2e;display:grid;grid-template-columns:1fr 1fr;gap:12px 48px}
.s-so .ai-label{grid-column:1/-1;font:500 11px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.s-so .local-ai h3{font-size:clamp(30px,3.4vw,50px);font-weight:300;letter-spacing:-.03em;line-height:1.02}
.s-so .local-ai p{font-size:17px;line-height:1.55;color:#c9d4e6}
@keyframes vt-pop{from{transform:scale(.6);opacity:0}}

/* ---------- 12 Scrapyard · fan products (dense field of scrap flowers) ---------- */
.s-sy{--accent:#ff2e93;--focus:#ff2e93;--on-accent:#000;background:#ff2e93;color:#000;font-family:'Archivo Black','Arial Black',sans-serif;--strip-bg:#000;--strip-fg:#ff2e93}
.s-sy .x-nav{background:#000;color:#fff}
.s-sy .x-brand{font-size:24px;letter-spacing:-.04em}
.s-sy .x-links{font:italic 400 19px 'Instrument Serif',serif}
.s-sy .x-cta{background:#fff;color:#000;font:400 13px 'Archivo Black',sans-serif;padding:11px 18px;border:3px solid #fff;box-shadow:4px 4px 0 #ff2e93}
.s-sy .x-cta:hover{background:#ffe500;border-color:#ffe500}
.sy-marquee{background:#000;color:#fff;overflow:hidden;transform:rotate(-1.5deg) scale(1.02);margin-top:18px}
.sy-marquee p{display:flex;width:max-content;margin:0;padding:12px 0;font-size:20px;animation:sy-run 16s linear infinite}
.sy-marquee span{white-space:nowrap}
@keyframes sy-run{to{transform:translateX(-50%)}}
/* The bottom padding holds the whole countdown (label, digits, units, about 150px), so its label sits under the 08. */
.sy-hero{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:50px var(--pad) 200px;min-height:640px}
.s-sy h2{font-size:clamp(110px,19vw,320px);line-height:.78;letter-spacing:-.04em;text-transform:uppercase}
.s-sy h2 span{color:#fff;-webkit-text-stroke:4px #000}
.sy-tee{width:min(440px,90%);justify-self:center;transform:rotate(6deg);filter:drop-shadow(14px 14px 0 #000)}
.s-sy .sy-shirt{fill:#fff;stroke:#000;stroke-width:5;stroke-linejoin:round}
.sy-tee text{font:400 34px 'Archivo Black',sans-serif;text-anchor:middle;fill:#000;letter-spacing:-.04em}
.sy-tee .sy-num{font:italic 400 52px 'Instrument Serif',serif;fill:#ff2e93}
.sy-sticker{position:absolute;margin:0;padding:10px 16px;font-size:16px;border:3px solid #000;transition:transform .45s cubic-bezier(.3,1.7,.5,1),opacity .2s}
.sy-sticker.s1{top:12%;right:8%;background:#ffe500;transform:rotate(12deg)}
.sy-sticker.s2{top:56%;right:40%;background:#00d1ff;transform:rotate(-9deg);border-radius:999px;transition-delay:.15s}
.sy-sticker.s3{bottom:22%;right:6%;background:#fff;transform:rotate(4deg);transition-delay:.3s}
.s-sy[data-armed]:not(.sy-on) .sy-sticker{opacity:0;transform:scale(2.2) rotate(30deg)}
.sy-clock{position:absolute;left:var(--pad);bottom:30px;margin:0;display:grid;gap:4px}
.sy-clock-label{font:italic 400 20px 'Instrument Serif',serif}
.sy-digits{font-size:clamp(34px,4vw,60px);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.sy-digits b{background:#000;color:#fff;padding:0 8px;font-weight:400}
.sy-clock small{font:400 11px 'Archivo Black',sans-serif;letter-spacing:.2em}
.sy-plan{position:relative;overflow:hidden;margin:0 var(--pad);padding:40px 40px 230px;border-radius:28px;background:#1a0b14;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:20px 40px}
.sy-plan h3{grid-column:1/-1;font-size:clamp(30px,3.6vw,54px);letter-spacing:-.04em;text-transform:uppercase;line-height:.95}
.sy-numbers{margin:0;display:grid;gap:16px;align-content:start}
.sy-numbers div{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid #3a2230;padding-bottom:8px}
.sy-numbers dt{font:italic 400 20px 'Instrument Serif',serif}
.sy-numbers dd{margin:0;font-size:40px;font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:#ff5aa8}
.sy-sizes{list-style:none;margin:0 0 30px;padding:24px 0 0;display:flex;align-items:flex-end;gap:10px;height:230px}
.sy-sizes li{position:relative;z-index:1;flex:1;height:calc(var(--v)*100%);background:#ff2e93;transform-origin:bottom;transition:transform .7s cubic-bezier(.3,1.4,.5,1) calc(var(--n,0)*80ms)}
.sy-sizes b{position:absolute;bottom:-30px;left:50%;translate:-50% 0;padding:2px 7px;border-radius:4px;background:#1a0b14;text-align:center;font-weight:400;font-size:16px}
.sy-sizes span{position:absolute;top:-24px;left:0;right:0;text-align:center;font:italic 400 18px 'Instrument Serif',serif}
.s-sy[data-armed]:not(.sy-on) .sy-sizes li{transform:scaleY(0)}
.sy-field{position:absolute;left:0;right:0;bottom:0;width:100%;height:240px}
.sy-field .fl{transform-box:view-box;animation:sy-sway var(--t,5s) ease-in-out infinite alternate}
@keyframes sy-sway{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}
.s-sy .sy-field .stem{fill:none;stroke:#7bd86b;stroke-width:3;stroke-linecap:round}
.s-sy .local-ai{margin:28px var(--pad) 0;padding:28px 0 80px;display:grid;grid-template-columns:1fr 1.4fr;gap:10px 40px;border-top:4px solid #000}
.s-sy .ai-label{grid-column:1/-1;font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.s-sy .local-ai h3{font-size:44px;letter-spacing:-.04em;text-transform:uppercase;line-height:.92}
.s-sy .local-ai p{font:400 22px/1.4 'Instrument Serif',serif}


@media(hover:hover) and (pointer:fine){}
@media(hover:hover) and (pointer:fine){.s-so{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Ccircle cx='16' cy='16' r='6' fill='%23ffb000' stroke='%23ff5f00' stroke-width='1.5'/%3E%3Cpath d='M16 2v4M16 26v4M2 16h4M26 16h4M6 6l3 3M23 23l3 3M26 6l-3 3M9 23l-3 3' stroke='%23ff5f00' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 16 16,auto}}
@media(hover:hover) and (pointer:fine){}
@media(hover:hover) and (pointer:fine){.s-sy{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpolygon points='16,1 19.5,9.5 28,6 24.5,14.5 31,18 23,21 25,30 17,25 9,30 10.5,21.5 2,18 9,13.5 5,5 13,9' fill='%23ffe500' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 16 16,auto}}
@keyframes se-drift-letter{from{background-position:var(--ox,0px) 0}to{background-position:calc(var(--ox,0px) + 360px) 180px}}

/* 07 · Orbit stroke behind the dashboard */
.fx-orbit-stroke{position:absolute;inset:-12%;width:124%;height:124%;z-index:-1;pointer-events:none;transform-origin:50% 50%}
.s-so .fx-orbit-stroke path{fill:none;stroke:#f3f6fb;stroke-opacity:.2;stroke-width:3;stroke-linecap:round}
.s-so .fx-orbit-stroke .o2{stroke-opacity:.1;stroke-width:2}
.roll{border:0;background:none;font:inherit;color:inherit;padding:6px 2px;letter-spacing:inherit;text-transform:inherit}
.roll-mask{position:relative;display:inline-grid;overflow:hidden;vertical-align:bottom}
.roll-a,.roll-b{grid-area:1/1;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.roll-b{transform:translateY(110%)}
.roll:is(:hover,:focus-visible) .roll-a{transform:translateY(-110%)}
.roll:is(:hover,:focus-visible) .roll-b{transform:none}:focus-visible) .roll-mask::after{transform:scaleX(1);transform-origin:left}


/* SPEC v2 palette and structure{--accent:#C94F2D;--focus:#C94F2D;--on-accent:#F5E8D4;background:#F5E8D4;color:#27221C}
.s-so{--accent:#A3DBA8;--focus:#A3DBA8;background:#0B1620}.s-so .x-nav{background:#0B1620}.s-so .so-chart .price{stroke:#79B8E8}
.s-sy{--accent:#FF834B;--focus:#FF834B;--on-accent:#21172B;background:#21172B;color:#F4EAD8}.s-sy .x-nav{background:#21172B;color:#F4EAD8}.s-sy h2{color:#F4EAD8}.sy-plan{color:#F4EAD8}
@keyframes se-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes se-drift{to{background-position:24px 0}}
.services-strip ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.guide-list li{perspective:900px}.guide-list a{min-height:92px;position:relative;transition:background-color 180ms}.guide-list a::after{content:'';position:absolute;inset:0;background:currentColor;opacity:0;pointer-events:none;transition:opacity 180ms}.guide-list a:hover::after,.guide-list a:focus-visible::after{opacity:.08}

.roll-mask{display:block;height:1.3em;overflow:hidden}.roll-a,.roll-b{display:block;transition:transform 180ms}.roll:hover .roll-a,.roll:hover .roll-b,.roll:focus-visible .roll-a,.roll:focus-visible .roll-b{transform:translateY(-100%)}
@media(max-width:899px){.patch-rail{display:none}.so-hero,.s-so .local-ai{grid-template-columns:1fr}.so-dash{grid-template-columns:1fr;grid-template-areas:'chart' 'radar' 'stats' 'legend'}.so-chart .hours text,.so-chart .ylab text{font-size:32px}.so-radar{min-height:220px}.sy-numbers{grid-template-columns:1fr}.sy-hero h2{font-size:28vw}.s-so .local-ai,.s-sy .local-ai{grid-template-columns:1fr;margin:24px var(--pad)}.services-strip ul{grid-template-columns:1fr}.sy-plan{padding-inline:var(--pad)}.sy-clock{position:relative;inset:auto;margin:24px 0}.sy-hero{padding-bottom:24px}.so-aurora{opacity:.18}}
@media(prefers-reduced-motion:reduce){.s-so *,.s-sy *{animation:none!important;transition:none!important}}

/* Explicit arrival construction. One JS timeline writes each state. */
.sample-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px var(--pad);font:500 12px/1.4 Manrope,sans-serif;border-block:1px solid currentColor}.sample-controls button{min-height:44px;min-width:44px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;padding:8px 12px}.sample-controls span:last-child{margin-left:auto}
.example-label{font:500 11px/1.6 'JetBrains Mono',monospace;letter-spacing:.03em;padding-block:8px}.value-skeleton{color:transparent!important;border-bottom:1px solid currentColor!important;min-height:1px}.value-skeleton *{visibility:hidden}.value-skeleton::after{content:'';display:block;border-bottom:1px solid #7d8b80;width:24px}
.hale-blob{animation:hale-breathe 4s ease-in-out infinite;transform-origin:center}.s-hale{background:#F4EADC;color:#20251E;--on-accent:#20251E}.s-hale .x-nav,.hale-card,.s-hale .local-ai{background:#F4EADC;color:#20251E}.s-hale .hale-copy>p,.s-hale .hale-age span,.s-hale .hale-age strong,.s-hale .hale-card p,.s-hale .local-ai p,.s-hale .ai-steps,.s-hale .x-links{color:#20251E}.s-hale .hale-blob .body{fill:#20251E}.s-hale .hale-vitals dd{color:#20251E}
@keyframes hale-breathe{50%{transform:scale(1.02)}}
.hale-ecg{display:block;width:100%;height:80px;overflow:hidden}.hale-ecg-track{animation:hale-travel 1.15s linear infinite}.s-hale .hale-ecg path{stroke:#956000;stroke-width:1.6;fill:none;stroke-dasharray:none;stroke-dashoffset:0;animation:none}.hale-ecg circle{fill:#FF9A3C;filter:drop-shadow(0 0 3px #FF9A3C)}
@keyframes hale-travel{to{transform:translateX(-69px)}}
.s-pl{background:#050607;color:#fbf7ff}.mp-orbs i{animation-duration:10s}
.s-ash .ash-draw .render{opacity:1}.s-ash .ash-draw .ln,.s-ash .ash-draw .tree,.s-ash .ash-draw .pane{transition:none!important}.s-ash .ash-title{transition:none!important}.s-ash .ash-draw .tree{stroke-dasharray:1;stroke-dashoffset:1}
.s-rr{background:#1D1F22;color:#F2F0E8;--accent:#FFC400;--focus:#FFC400;--on-accent:#1D1F22}.s-rr .x-nav{background:#1D1F22;color:#F2F0E8}.s-rr .rr-hero{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;text-align:left}.s-rr h2{font:600 clamp(34px,4vw,64px)/1.06 Manrope,sans-serif;letter-spacing:-.04em}.s-rr .rr-sub{color:#d2d0c8}.s-rr .rr-hero .rr-scan{background:#F2F0E8;color:#1D1F22;width:100%;margin:0}.s-rr .rr-f{fill:#B86B3A22;stroke:#B86B3A;stroke-width:2;opacity:1;transition:none!important}.rr-inspection,.rr-crew{padding:32px var(--pad)}.rr-inspection ol,.rr-crew>div{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.rr-crew>div>p{border-top:1px solid #B86B3A;padding-top:16px}.rr-crew svg{width:240px}.rr-weather-cell{fill:#B86B3A22;stroke:#B86B3A;animation:rr-storm 8s linear infinite alternate}.rr-est-detail{position:relative;overflow:hidden;height:130px;background:#F2F0E8}.rr-est-detail .rr-num{font-size:96px;line-height:1;padding:10px;animation:none}.s-rr .rr-work{display:block}.s-rr .rr-est-wrap{max-width:980px;margin:auto}.s-rr .rr-status{color:#F2F0E8}.rr-num small{font-size:20px}
@keyframes rr-storm{to{transform:translateX(24px)}}
.so-weather-sweep{position:absolute;width:40%;height:1px;background:#79B8E8;transform-origin:left;left:50%;top:50%;animation:so-weather 6s linear infinite}.so-weather-label{position:absolute;bottom:4px;left:12px}.so-aurora i{animation:none}.so-chart .price,.so-dash>*{transition:none!important}
@keyframes so-weather{to{transform:rotate(360deg)}}
.sy-field .fl{animation:sy-sway var(--t,5s) ease-in-out infinite alternate}@keyframes sy-sway{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}.s-fw{background:#131A20;color:#F2EBDD}
@media(max-width:899px){.s-rr .rr-hero,.rr-inspection ol,.rr-crew>div{grid-template-columns:1fr}.rr-hero-copy{min-width:0}.sample-controls{gap:6px}.sample-controls span{width:100%}.sample-controls button{flex:1}.rr-hero .rr-scan{margin-top:16px}.s-rr h2{font-size:34px}.so-stats dt,.so-radar span{font-size:11px}.s-so .x-cta,.s-sy .x-cta{min-height:44px}.sy-digits{font-size:12vw}}

@media(max-width:899px){}

.s-rr .rr-labels text,.s-rr .rr-labels .rr-dim,.s-rr .rr-scan figcaption{fill:#1D1F22;color:#1D1F22}.s-rr .rr-btn.ghost{color:#F2F0E8;border-color:#F2F0E8}.s-rr .rr-ridge{stroke:#B86B3A}.s-rr .rr-sub{font:400 17px/1.6 Manrope,sans-serif}.s-rr h2{text-transform:none}.s-rr .rr-work .local-ai{background:#F2F0E8;color:#1D1F22}

#terms{position:relative}#terms::before{content:'';position:absolute;top:0;left:var(--gutter);right:var(--gutter);height:1px;background:var(--mish-rule);transform:scaleX(0);transform-origin:left;transition:transform 240ms}#terms.terms-entered::before{transform:scaleX(1)}.email-handoff-note{font-size:12px;line-height:1.6}

@media(max-width:650px){.ss-list{grid-template-columns:1fr}}

/* Measured contrast and physical touch targets, after the restored skins. */
.s-hale .ai-steps li,.s-hale .ai-steps code,.s-hale .hale-vitals dt,.s-hale .x-brand sup{color:#20251E}

.s-rr .rr-est{color:#1D1F22;background:#F2F0E8}.s-rr .rr-est caption{color:#F2F0E8}
.s-sy .sy-sticker{color:#211B23}.s-sy .sy-sticker.s1{background:#FF834B}.s-sy .sy-sticker.s2{background:#D887B8}.s-sy .sy-sticker.s3{background:#F4EAD8}
.concept:not(.is-live),.concept:not(.is-live) *,[data-transition-off],[data-transition-off] *{transition:none!important}
@media(max-width:899px){.s-so .so-chart text,.s-so .so-chart .hours text,.s-so .so-chart .ylab text{font-size:38px}.ash-approve{font-size:11px}.s-sy .sy-tee{min-width:200px;max-width:280px;transform:none!important}.s-sy .sy-tee text{font-size:38px}}

/* MISH returns at the end: practical expansion, then the named owner. */
#terms .ct-growth{background:var(--mish-lift,#302047);color:var(--mish-body,#ded7ea);max-width:1400px;margin:0 auto;padding:72px var(--mish-gutter,5vw);display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,6vw,100px);border-top:1px solid var(--mish-edge,#9883af)}
.ct-growth h2{font-size:clamp(30px,3.6vw,52px);font-weight:600;line-height:1.12;letter-spacing:-.025em;color:var(--mish-light,#fbf7ff);max-width:18ch;margin:0 0 24px}
.ct-growth p{font-size:15px;line-height:1.7;color:var(--mish-body,#ded7ea);max-width:60ch;margin:12px 0 0}
.ct-hardware article+article{margin-top:30px;padding-top:25px;border-top:1px solid var(--mish-edge,#9883af)}
.ct-hardware h3{font-size:23px;font-weight:600;color:var(--mish-light,#fbf7ff);letter-spacing:-.015em;margin:0}
#terms .ct-hardware .ct-link{margin-top:25px;color:var(--mish-mint,#63d7e3)}
/* The on-call band sits under the opening, in the closing section's own type and colours. */
#on-call{padding-block:clamp(20px,3vw,44px);border-top:0}
#on-call .ct-availability{position:relative;isolation:isolate;overflow:hidden;background:#241631;color:#f8f0ff;padding:clamp(44px,7vw,100px) var(--mish-gutter,5vw);display:grid;grid-template-columns:1.3fr .8fr;gap:24px 70px;align-items:end}
/* Same Signal material as the opening; the luminance cap protects every copy line.
   The mask fades particles, never an opaque panel across the headline. */
.ct-signal{position:absolute;inset:0;z-index:-1;pointer-events:none;mask-image:linear-gradient(90deg,transparent,#00000052 7%,#0000006b 38%,#000 62%,#000 93%,transparent),linear-gradient(transparent,#000 14%,#000 86%,transparent);mask-composite:intersect}
.ct-availability:not([data-signal-renderer="webgl"],[data-signal-renderer="canvas"]) .ct-signal{opacity:.22}
.ct-signal canvas,.ct-signal-still{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.ct-availability:is([data-signal-renderer="webgl"],[data-signal-renderer="canvas"]) .ct-signal-still{visibility:hidden}
@media(max-width:700px){.ct-signal{mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent),linear-gradient(transparent,#00000059 10%,#00000066 46%,#000 60%,#000 88%,transparent)}}
.ct-owner-brand{grid-column:1/-1;margin:0 0 25px;font-size:24px;color:#d6baf3}
.ct-availability h2{font-size:clamp(39px,5.6vw,84px);font-weight:600;line-height:1.05;letter-spacing:-.035em;margin:0;text-wrap:balance}
.ct-availability h2>span{color:#d6b8fb}
.ct-availability>div>p{font-size:19px;line-height:1.65;max-width:32ch;color:#f0defa;margin:0 0 28px}
.ct-owner-contact{display:inline-flex;align-items:center;gap:16px;color:#21132b;background:#ddc1f8;border-radius:4px;padding:17px 22px;text-decoration:none;font-size:15px;font-weight:600;min-height:48px}
.ct-owner-contact svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5}
.ct-owner-contact:hover{background:#f0defd}.ct-owner-contact:focus-visible{outline:3px solid #ffcc9e;outline-offset:5px}
.ct-availability>div>.ct-owner-signature{font-size:13px;color:#d0b7df;line-height:1.6;margin:25px 0 0}
@media(max-width:700px){#terms .ct-growth,#on-call .ct-availability{grid-template-columns:1fr;gap:32px;padding-left:24px;padding-right:24px}.ct-owner-brand{margin:0}.ct-availability h2{font-size:clamp(38px,10.5vw,60px)}.ct-availability>div>p{font-size:17px}.ct-growth p{font-size:14px}}

/* Each mobile day remains readable instead of seven fragment-width columns. */
@media(max-width:600px){small,del){grid-column:2}}
@media(max-width:600px){
}
