/* SFn Consortium — Motion & Interaction System
   Progressive enhancement layer. The underlying site remains usable without this file/JS. */
:root{
  --accent:#b51f2e;
  --accent-strong:#8f1724;
  --accent-soft:#f3dfe2;
  --accent-rgb:181,31,46;
  --motion-fast:160ms;
  --motion-ui:260ms;
  --motion-reveal:760ms;
  --motion-cinematic:1050ms;
  --ease-ui:cubic-bezier(.2,.8,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-inout:cubic-bezier(.65,0,.35,1);
  --ease-spring:cubic-bezier(.2,1.25,.35,1);
  --grid-size:42px;
}
html{scroll-padding-top:90px;scrollbar-gutter:stable;background:#0f100e}
body{overflow-x:hidden;isolation:isolate}
::selection{background:var(--accent);color:#fff}
::-moz-selection{background:var(--accent);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
a,button,input,textarea,select{-webkit-tap-highlight-color:rgba(var(--accent-rgb),.12)}
button:active,.btn:active,.nav-cta:active{transform:translate3d(var(--mx,0),calc(var(--my,0) + 1px),0) scale(.985)!important}

/* Ambient precision field */
.sfn-ambient{position:fixed;inset:0;z-index:-3;pointer-events:none;overflow:hidden;background:
  radial-gradient(780px circle at var(--ambient-x,72%) var(--ambient-y,14%),rgba(var(--accent-rgb),.045),transparent 58%),
  linear-gradient(rgba(23,23,20,.022) 1px,transparent 1px),
  linear-gradient(90deg,rgba(23,23,20,.022) 1px,transparent 1px);
  background-size:auto,var(--grid-size) var(--grid-size),var(--grid-size) var(--grid-size);
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.95),rgba(0,0,0,.5) 52%,transparent 92%)}
.sfn-ambient::before{content:"";position:absolute;width:52vw;height:52vw;min-width:520px;min-height:520px;right:-22vw;top:-22vw;border:1px solid rgba(var(--accent-rgb),.08);border-radius:50%;box-shadow:0 0 0 70px rgba(var(--accent-rgb),.018),0 0 0 140px rgba(var(--accent-rgb),.012);transform:translate3d(var(--ambient-dx,0),var(--ambient-dy,0),0);transition:transform .9s var(--ease-out)}
.sfn-ambient::after{content:"";position:absolute;inset:0;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");mix-blend-mode:multiply}

/* Scroll progress */
.sfn-progress{position:fixed;z-index:150;left:0;right:0;top:0;height:2px;pointer-events:none;transform-origin:0 50%;transform:scaleX(var(--scroll-progress,0));background:linear-gradient(90deg,var(--accent-strong),#e34a55);box-shadow:0 0 14px rgba(var(--accent-rgb),.35)}

/* Header / navigation */
.site-header{transition:background var(--motion-ui) var(--ease-ui),box-shadow var(--motion-ui) var(--ease-ui),border-color var(--motion-ui) var(--ease-ui),transform var(--motion-ui) var(--ease-out)}
.site-header.is-scrolled{background:rgba(244,241,234,.965);border-color:rgba(23,23,20,.12);box-shadow:0 10px 35px rgba(23,23,20,.055)}
.brand{position:relative;transition:transform var(--motion-ui) var(--ease-out)}
.brand::after{content:"";position:absolute;height:2px;width:18px;left:1px;bottom:-7px;background:var(--accent);transform-origin:left;transform:scaleX(0);transition:transform var(--motion-ui) var(--ease-out)}
.brand:hover{transform:translateY(-1px)}.brand:hover::after{transform:scaleX(1)}
.brand b{transition:letter-spacing var(--motion-ui) var(--ease-out),color var(--motion-ui) var(--ease-ui)}.brand:hover b{letter-spacing:-.04em;color:var(--accent-strong)}
.nav-link{position:relative;background:transparent!important;overflow:hidden}
.nav-link::after{content:"";position:absolute;left:12px;right:12px;bottom:7px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform var(--motion-ui) var(--ease-out)}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav-link[aria-current="page"]{color:var(--ink)}
.nav-link .count{background:var(--accent-strong);box-shadow:0 0 0 0 rgba(var(--accent-rgb),0);transition:transform var(--motion-ui) var(--ease-spring),box-shadow var(--motion-ui) var(--ease-ui)}
.nav-link .count.is-bumping{animation:sfn-count-bump .42s var(--ease-spring)}
.nav-cta,.btn,.mobile-cta{position:relative;overflow:hidden;transform:translate3d(var(--mx,0),var(--my,0),0);will-change:transform}
.assistant-launcher{overflow:hidden;transform:translate3d(var(--mx,0),var(--my,0),0);will-change:transform}
.nav-cta::before,.btn.primary::before,.btn.accent::before,.mobile-cta::before,.assistant-launcher::before{content:"";position:absolute;inset:-2px;background:linear-gradient(110deg,transparent 22%,rgba(255,255,255,.2) 43%,transparent 63%);transform:translateX(-125%);transition:transform .7s var(--ease-out);pointer-events:none}
.nav-cta:hover::before,.btn.primary:hover::before,.btn.accent:hover::before,.mobile-cta:hover::before,.assistant-launcher:hover::before{transform:translateX(125%)}
.nav-cta:hover,.btn:hover{transform:translate3d(var(--mx,0),calc(var(--my,0) - 2px),0)}
.btn.secondary{position:relative;background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(115deg,var(--line),rgba(var(--accent-rgb),.45),var(--line)) border-box;border:1px solid transparent;background-size:100% 100%,220% 100%;transition:transform var(--motion-ui) var(--ease-out),color var(--motion-ui),background-position .6s var(--ease-out),box-shadow var(--motion-ui)}
.btn.secondary:hover{background-position:0 0,100% 0;box-shadow:0 8px 26px rgba(23,23,20,.07)}
.btn.accent{background:var(--accent-strong)}
.mobile-toggle{position:relative;z-index:92;transition:transform var(--motion-ui) var(--ease-spring),background var(--motion-ui)}.mobile-toggle:hover{background:rgba(var(--accent-rgb),.07)}.mobile-toggle[aria-expanded="true"]{transform:rotate(90deg);background:rgba(var(--accent-rgb),.08)}

/* Page transition */
.sfn-transition{position:fixed;inset:0;z-index:9998;pointer-events:none;display:grid;place-items:center;opacity:0;visibility:hidden;background:var(--ink);clip-path:inset(100% 0 0 0);transition:clip-path .38s var(--ease-inout),opacity .2s,visibility 0s .38s}
.sfn-transition::before{content:"SFn";font-size:clamp(52px,9vw,120px);font-weight:750;letter-spacing:-.075em;color:var(--paper);opacity:.95;transform:translateY(24px);transition:transform .38s var(--ease-out)}
html.sfn-leaving .sfn-transition{opacity:1;visibility:visible;clip-path:inset(0 0 0 0);transition-delay:0s}
html.sfn-leaving .sfn-transition::before{transform:translateY(0)}

/* Kinetic typography */
.motion-title{--word-step:42ms}
.motion-title .motion-word{display:inline-block;overflow:clip;vertical-align:bottom;padding-bottom:.05em;margin-bottom:-.05em}
.motion-title .motion-word>span{display:inline-block;opacity:0;filter:blur(8px);transform:translateY(102%) rotate(.7deg);transition:opacity .62s var(--ease-out),filter .72s var(--ease-out),transform .8s var(--ease-out);transition-delay:calc(var(--word-index,0) * var(--word-step))}
html.motion-ready .motion-title.is-visible .motion-word>span{opacity:1;filter:blur(0);transform:none}
.eyebrow{position:relative;display:inline-flex;align-items:center;gap:9px}.eyebrow::before{content:"";width:0;height:1px;background:var(--accent);transition:width .65s var(--ease-out)}
html.motion-ready .motion-observed.is-visible .eyebrow::before,html.motion-ready .eyebrow.is-visible::before{width:19px}

/* Generic reveal choreography */
html.motion-ready .motion-observed{opacity:0;transform:translateY(22px);filter:blur(5px);transition:opacity var(--motion-reveal) var(--ease-out),transform var(--motion-reveal) var(--ease-out),filter var(--motion-reveal) var(--ease-out);transition-delay:var(--motion-delay,0ms)}
html.motion-ready .motion-observed.is-visible{opacity:1;transform:none;filter:none}
html.motion-ready .reveal{opacity:1;transform:none;transition:none}
.motion-new{animation:sfn-item-in .55s var(--ease-out) both;animation-delay:var(--motion-delay,0ms)}

/* Hero signature system */
.hero{position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;left:-8vw;top:8%;width:48vw;height:48vw;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),.045),transparent 66%);pointer-events:none;transform:translate3d(calc(var(--hero-x,0) * -8px),calc(var(--hero-y,0) * -8px),0)}
.hero .hero-grid{position:relative;z-index:2}
.hero-system{position:absolute;inset:4% 0 0 46%;z-index:0;pointer-events:none;opacity:.78;transform:translate3d(calc(var(--hero-x,0) * 12px),calc(var(--hero-y,0) * 8px),0);transition:transform .5s var(--ease-out)}
.hero-system svg{width:100%;height:100%;overflow:visible}.hero-system path{fill:none;stroke:rgba(23,23,20,.11);stroke-width:1;stroke-dasharray:4 10;animation:sfn-dash 16s linear infinite}.hero-system path.accent{stroke:rgba(var(--accent-rgb),.26);stroke-dasharray:2 13;animation-duration:11s;animation-direction:reverse}
.hero-node{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--paper);border:1px solid rgba(var(--accent-rgb),.52);box-shadow:0 0 0 5px rgba(var(--accent-rgb),.035),0 0 20px rgba(var(--accent-rgb),.13);animation:sfn-node 4.8s ease-in-out infinite;animation-delay:var(--node-delay,0s)}
.hero-node:nth-of-type(1){left:11%;top:20%}.hero-node:nth-of-type(2){left:38%;top:9%}.hero-node:nth-of-type(3){left:70%;top:24%}.hero-node:nth-of-type(4){left:86%;top:51%}.hero-node:nth-of-type(5){left:58%;top:72%}.hero-node:nth-of-type(6){left:27%;top:63%}.hero-node:nth-of-type(7){left:7%;top:82%}
.hero .actions{position:relative}
.hero-proof strong{font-variant-numeric:tabular-nums;transition:color var(--motion-ui)}.hero-proof div:hover strong{color:var(--accent-strong)}
.flow-card{position:relative;transform-style:preserve-3d;will-change:transform;box-shadow:0 28px 90px rgba(23,23,20,.105)}
.flow-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(330px circle at var(--px,50%) var(--py,50%),rgba(var(--accent-rgb),.10),transparent 60%);opacity:0;transition:opacity var(--motion-ui)}.flow-card:hover::before{opacity:1}
.flow-step{position:relative;transition:background var(--motion-ui),padding var(--motion-ui) var(--ease-out)}.flow-step:hover{background:rgba(var(--accent-rgb),.03);padding-left:8px;padding-right:8px}.flow-step i{transition:transform var(--motion-ui) var(--ease-spring),border-color var(--motion-ui),background var(--motion-ui),color var(--motion-ui)}.flow-step:hover i{transform:rotate(-4deg) scale(1.06);border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.06);color:var(--accent-strong)}

/* Section continuity */
.section,.process,.final-cta,.finder,.guided,.selected-page,.catalogue-groups,.service-page,.industry-grid,.industry-layout,.about-grid,.contact-layout{position:relative}
.section::after,.process::after{content:"";position:absolute;left:50%;bottom:0;width:min(var(--max),calc(100% - 48px));height:1px;transform:translateX(-50%) scaleX(var(--section-progress,.14));transform-origin:left;background:linear-gradient(90deg,rgba(var(--accent-rgb),.45),rgba(23,23,20,.08));pointer-events:none;opacity:.55}
.category-section::after,.final-cta::after{display:none}
.section-head h2,.cross-grid h2,.process-grid h2,.about-grid h2,.contact-copy h2{position:relative}

/* Cards: light, trace, depth */
.entry-card,.category-tile,.industry-card,.result-row,.recommendation,.selected-row,.choice,.principle,.example-row,.related-list a,.industry-service-list a,.selected-inline-item,.form-card,.wizard,.summary-card,.selection-dock{--px:50%;--py:50%;position:relative}
.entry-card,.industry-card,.choice,.form-card,.wizard,.summary-card{isolation:isolate}
.entry-card::before,.industry-card::before,.choice::before,.form-card::before,.wizard::before,.summary-card::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:radial-gradient(340px circle at var(--px) var(--py),rgba(var(--accent-rgb),.09),transparent 58%);opacity:0;transition:opacity var(--motion-ui)}
.entry-card:hover::before,.industry-card:hover::before,.choice:hover::before,.form-card:focus-within::before,.wizard:hover::before,.summary-card:hover::before{opacity:1}
.entry-card,.industry-card,.choice{transition:transform var(--motion-ui) var(--ease-out),background var(--motion-ui),border-color var(--motion-ui),box-shadow var(--motion-ui)}
.entry-card:hover,.industry-card:hover{transform:translateY(-5px);box-shadow:0 22px 55px rgba(23,23,20,.075)}
.entry-card span,.industry-card span,.category-tile>span,.industry-service-list>a>span,.related-list>a>span{transition:transform var(--motion-ui) var(--ease-out),color var(--motion-ui)}
.entry-card:hover span,.industry-card:hover span,.category-tile:hover>span,.industry-service-list>a:hover>span,.related-list>a:hover>span{transform:translateX(5px);color:var(--accent-strong)}
.category-tile{overflow:hidden;transition:background var(--motion-ui),padding var(--motion-ui) var(--ease-out)}
.category-tile::before{content:"";position:absolute;inset:0;background:radial-gradient(320px circle at var(--px) var(--py),rgba(255,255,255,.085),transparent 64%);opacity:0;transition:opacity var(--motion-ui);pointer-events:none}.category-tile::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:1px;background:linear-gradient(90deg,var(--accent),rgba(255,255,255,.35));transition:right .48s var(--ease-out)}.category-tile:hover::before{opacity:1}.category-tile:hover::after{right:0}.category-tile:hover{background:rgba(255,255,255,.018)}
.category-icon{transition:transform var(--motion-ui) var(--ease-spring),background var(--motion-ui),border-color var(--motion-ui),color var(--motion-ui),box-shadow var(--motion-ui)}.category-tile:hover .category-icon{transform:rotate(-5deg) scale(1.08);border-color:rgba(255,255,255,.22);color:#ff8790;box-shadow:0 0 28px rgba(var(--accent-rgb),.14)}

/* Row interactions */
.result-row,.recommendation,.selected-row,.example-row,.principle,.industry-service-list a,.related-list a{overflow:hidden;transition:background var(--motion-ui),padding var(--motion-ui) var(--ease-out),border-color var(--motion-ui)}
.result-row::before,.recommendation::before,.selected-row::before,.example-row::before,.principle::before,.industry-service-list a::before,.related-list a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(0);transform-origin:50% 100%;transition:transform var(--motion-ui) var(--ease-out)}
.result-row:hover,.recommendation:hover,.selected-row:hover,.example-row:hover,.principle:hover,.industry-service-list a:hover,.related-list a:hover{background:rgba(255,255,255,.28);padding-left:10px;padding-right:10px}
.result-row:hover::before,.recommendation:hover::before,.selected-row:hover::before,.example-row:hover::before,.principle:hover::before,.industry-service-list a:hover::before,.related-list a:hover::before{transform:scaleY(1);transform-origin:50% 0}
.result-no{font-variant-numeric:tabular-nums;transition:color var(--motion-ui),transform var(--motion-ui) var(--ease-out)}
.result-row:hover .result-no,.recommendation:hover .result-no,.selected-row:hover .result-no,.industry-service-list a:hover .result-no{color:var(--accent-strong);transform:translateX(2px)}
.text-link{position:relative;border-bottom:0}.text-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:left;transition:transform var(--motion-ui) var(--ease-out)}.text-link:hover::after{transform:scaleX(.42)}
.add-btn{position:relative;overflow:hidden;transition:transform var(--motion-fast) var(--ease-out),background var(--motion-ui),border-color var(--motion-ui),color var(--motion-ui),box-shadow var(--motion-ui)}.add-btn:hover{transform:translateY(-2px);border-color:rgba(var(--accent-rgb),.42);box-shadow:0 8px 24px rgba(23,23,20,.07)}.add-btn.added{background:var(--accent-soft);border-color:rgba(var(--accent-rgb),.35);color:var(--accent-strong)}.add-btn.added::after{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(var(--accent-rgb),.16),transparent 64%);animation:sfn-confirm .45s var(--ease-out)}

/* Finder as a product */
.searchbox{position:relative;overflow:hidden;transition:border-color var(--motion-ui),box-shadow var(--motion-ui),background var(--motion-ui),transform var(--motion-ui) var(--ease-out)}
.searchbox::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent),#e4515c);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}
.searchbox:focus-within{border-color:rgba(var(--accent-rgb),.45);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.07),0 18px 48px rgba(23,23,20,.06);background:rgba(255,255,255,.55);transform:translateY(-1px)}.searchbox:focus-within::after{transform:scaleX(1)}
.searchbox>span{transition:transform var(--motion-ui) var(--ease-spring),color var(--motion-ui)}.searchbox:focus-within>span{transform:rotate(-10deg) scale(1.13);color:var(--accent-strong)}
.searchbox input::placeholder{transition:opacity var(--motion-ui),transform var(--motion-ui)}.searchbox:focus-within input::placeholder{opacity:.55;transform:translateX(3px)}
.chip{position:relative;overflow:hidden;transition:transform var(--motion-ui) var(--ease-out),background var(--motion-ui),border-color var(--motion-ui),color var(--motion-ui)}.chip:hover{transform:translateY(-2px);background:var(--ink);border-color:var(--ink);color:#fff}.chip:active{transform:translateY(0) scale(.98)!important}
.filter-panel{transform-origin:top;animation:sfn-panel-in .32s var(--ease-out) both}.field input,.field textarea,.field select{transition:border-color var(--motion-ui),box-shadow var(--motion-ui),background var(--motion-ui),transform var(--motion-ui)}.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:rgba(var(--accent-rgb),.5);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.07);background:#fff;transform:translateY(-1px)}
.result-meta strong{color:var(--accent-strong);font-variant-numeric:tabular-nums;display:inline-block}.result-meta.is-updating strong{animation:sfn-count-swap .3s var(--ease-out)}
.empty-state{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(255,255,255,.34),rgba(var(--accent-rgb),.025))}.empty-state::before{content:"";position:absolute;width:90px;height:90px;border:1px solid rgba(var(--accent-rgb),.18);border-radius:50%;right:-35px;top:-35px;box-shadow:0 0 0 22px rgba(var(--accent-rgb),.02)}
.selection-dock{transition:background var(--motion-ui),box-shadow var(--motion-ui),transform var(--motion-ui) var(--ease-out)}.selection-dock:hover{transform:translateY(-2px);box-shadow:0 18px 48px rgba(23,23,20,.07)}

/* Guided discovery */
.wizard{box-shadow:0 28px 90px rgba(23,23,20,.065);transition:box-shadow var(--motion-ui),transform var(--motion-ui) var(--ease-out)}
.progress{position:relative}.progress::before{content:"";position:absolute;left:46px;right:calc(100% - 148px);top:33px;height:1px;background:var(--line);z-index:0}.progress::after{content:"";position:absolute;left:46px;top:33px;height:1px;width:76px;background:var(--accent);z-index:0;transform:scaleX(var(--wizard-progress,.0));transform-origin:left;transition:transform .45s var(--ease-out)}
.progress span{position:relative;z-index:1;background:var(--paper);transition:transform var(--motion-ui) var(--ease-spring),background var(--motion-ui),border-color var(--motion-ui),color var(--motion-ui),box-shadow var(--motion-ui)}.progress span.active{background:var(--accent-strong);border-color:var(--accent-strong);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.08);transform:scale(1.04)}
.choice{overflow:hidden}.choice::after{content:"✓";position:absolute;right:11px;top:10px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:var(--accent-strong);color:#fff;font-size:10px;opacity:0;transform:scale(.5) rotate(-20deg);transition:opacity var(--motion-ui),transform var(--motion-ui) var(--ease-spring)}.choice:hover{transform:translateY(-3px);border-color:rgba(var(--accent-rgb),.3);box-shadow:0 12px 32px rgba(23,23,20,.055)}.choice.selected{border-color:rgba(var(--accent-rgb),.55);background:var(--accent-soft);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.08)}.choice.selected::after{opacity:1;transform:scale(1) rotate(0)}
.wizard-body{animation:sfn-step-in .46s var(--ease-out) both}.recommendations{animation:sfn-step-in .5s var(--ease-out) both}

/* Service detail storytelling */
.service-page::before{content:"";position:absolute;left:max(14px,calc((100vw - var(--max))/2 - 32px));top:172px;bottom:120px;width:1px;background:linear-gradient(to bottom,transparent,rgba(var(--accent-rgb),.2) 12%,rgba(var(--accent-rgb),.12) 80%,transparent);transform:scaleY(var(--service-progress,.12));transform-origin:top;pointer-events:none}
.service-meta{position:relative}.service-meta::before{content:"";position:absolute;left:-1px;top:0;width:1px;height:42%;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .65s var(--ease-out)}.service-meta.is-visible::before{transform:scaleY(1)}
.service-summary p::first-letter{font-size:1.35em;color:var(--accent-strong)}
.guide-section{transition:background var(--motion-ui),padding var(--motion-ui) var(--ease-out)}.guide-section:hover{background:rgba(255,255,255,.23);padding-left:10px;padding-right:10px}.guide-no{position:relative;color:var(--accent-strong);font-variant-numeric:tabular-nums}.guide-no::after{content:"";display:block;margin-top:8px;width:1px;height:0;background:var(--accent);transition:height .45s var(--ease-out)}.guide-section:hover .guide-no::after{height:24px}
.service-boundary{border-left:2px solid transparent;transition:border-color var(--motion-ui),background var(--motion-ui)}.service-boundary:hover{border-left-color:var(--accent);background:rgba(var(--accent-rgb),.035)}

/* About / process */
.steps,.principles,.contact-steps{position:relative}.steps::before,.principles::before,.contact-steps::before{content:"";position:absolute;left:23px;top:0;bottom:0;width:1px;background:linear-gradient(var(--accent),rgba(var(--accent-rgb),.08));transform:scaleY(var(--section-progress,.25));transform-origin:top;opacity:.6;pointer-events:none}
.step{position:relative;transition:padding var(--motion-ui) var(--ease-out),background var(--motion-ui)}.step:hover{padding-left:8px;padding-right:8px;background:rgba(255,255,255,.26)}.step small,.contact-step small,.principle small{position:relative;z-index:1;font-variant-numeric:tabular-nums;transition:color var(--motion-ui),transform var(--motion-ui) var(--ease-out)}.step:hover small,.contact-step:hover small,.principle:hover small{color:var(--accent-strong);transform:translateX(2px)}

/* CTA moments */
.final-cta{position:relative;overflow:hidden}.final-cta::before{content:"";position:absolute;width:65vw;height:65vw;right:-26vw;top:-30vw;border-radius:50%;border:1px solid rgba(255,255,255,.075);box-shadow:0 0 0 80px rgba(var(--accent-rgb),.035),0 0 0 160px rgba(255,255,255,.018);transform:translate3d(calc(var(--cta-x,0) * 12px),calc(var(--cta-y,0) * 12px),0);transition:transform .7s var(--ease-out)}.final-cta::after{content:"";position:absolute;inset:0;background:radial-gradient(550px circle at var(--px,70%) var(--py,40%),rgba(var(--accent-rgb),.18),transparent 65%);pointer-events:none}.final-cta>.shell{position:relative;z-index:1}.final-cta .btn.secondary{background:transparent!important;color:#fff;border-color:#3a3d35}.final-cta .btn.secondary:hover{border-color:rgba(255,255,255,.4)}

/* Contact / validation */
.form-card{box-shadow:0 18px 65px rgba(23,23,20,.045);transition:box-shadow var(--motion-ui),transform var(--motion-ui) var(--ease-out)}.form-card:focus-within{box-shadow:0 28px 80px rgba(23,23,20,.075);transform:translateY(-2px)}
.form-error:not([hidden]){animation:sfn-shake .34s var(--ease-ui);padding:9px 11px;border-radius:9px;background:rgba(var(--accent-rgb),.07);color:var(--accent-strong)}.form-status:not(:empty){animation:sfn-step-in .35s var(--ease-out);padding-left:11px;border-left:2px solid var(--accent)}
.selected-inline-item{transition:background var(--motion-ui),border-color var(--motion-ui),transform var(--motion-ui)}.selected-inline-item:hover{background:#fff;border-color:rgba(var(--accent-rgb),.25);transform:translateX(2px)}

/* Assistant refinement */
.assistant-launcher{background:var(--ink);transition:transform var(--motion-ui) var(--ease-out),box-shadow var(--motion-ui),background var(--motion-ui)}.assistant-launcher:hover{background:#1d1f1b;box-shadow:0 20px 60px rgba(23,23,20,.28)}
.assistant-panel{transform-origin:100% 100%;animation:sfn-assistant-in .36s var(--ease-out) both;box-shadow:0 35px 110px rgba(23,23,20,.25)}
.assistant-mark{background:var(--accent-strong)}.assistant-head-actions button,.assistant-quick button,.assistant-rec-actions a,.assistant-rec-actions button{transition:background var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast)}.assistant-head-actions button:hover,.assistant-quick button:hover,.assistant-rec-actions a:hover,.assistant-rec-actions button:hover{background:rgba(var(--accent-rgb),.06);border-color:rgba(var(--accent-rgb),.35);transform:translateY(-1px)}
.assistant-form:focus-within{box-shadow:0 0 0 3px rgba(var(--accent-rgb),.07);border-radius:11px}.assistant-form button{background:var(--accent-strong);transition:transform var(--motion-ui) var(--ease-spring),background var(--motion-ui)}.assistant-form button:hover{transform:translateY(-1px) rotate(4deg);background:var(--accent)}
.bubble{animation:sfn-bubble-in .28s var(--ease-out) both}.message.user .bubble{background:var(--ink)}

/* Footer signature */
.site-footer{position:relative;overflow:hidden;padding-top:84px}.site-footer::before{content:"SFn";position:absolute;right:-.03em;bottom:-.29em;font-size:min(31vw,430px);font-weight:760;line-height:.8;letter-spacing:-.09em;color:rgba(255,255,255,.022);pointer-events:none;transform:translateX(calc(var(--footer-progress,0) * -18px))}.site-footer::after{content:"";position:absolute;left:0;top:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);transform:scaleX(var(--footer-progress,.2));transform-origin:center}.footer-grid,.footer-bottom{position:relative;z-index:1}.footer-grid a{position:relative;width:max-content;max-width:100%}.footer-grid a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform var(--motion-ui) var(--ease-out)}.footer-grid a:hover::after{transform:scaleX(1);transform-origin:left}

/* Toast / tactile feedback */
.sfn-toast-region{position:fixed;right:22px;top:88px;z-index:160;display:grid;gap:8px;pointer-events:none}.sfn-toast{min-width:220px;max-width:min(360px,calc(100vw - 32px));padding:12px 14px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(20,22,18,.96);color:#fff;box-shadow:0 18px 55px rgba(23,23,20,.22);font-size:11px;line-height:1.45;backdrop-filter:blur(14px);animation:sfn-toast-in .42s var(--ease-out) both}.sfn-toast strong{color:#ff9da5}.sfn-toast.is-leaving{animation:sfn-toast-out .28s var(--ease-inout) both}

/* Precision cursor follower: native pointer remains active */
.sfn-cursor{position:fixed;z-index:9997;left:0;top:0;width:26px;height:26px;margin:-13px 0 0 -13px;border:1px solid rgba(var(--accent-rgb),.58);border-radius:50%;pointer-events:none;opacity:0;transform:translate3d(var(--cx,-50px),var(--cy,-50px),0) scale(var(--cursor-scale,1));transition:width var(--motion-fast),height var(--motion-fast),margin var(--motion-fast),border-color var(--motion-fast),background var(--motion-fast),opacity var(--motion-fast),transform 70ms linear;mix-blend-mode:multiply}
.sfn-cursor::after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;margin:-1.5px;background:var(--accent);border-radius:50%}.sfn-cursor.is-visible{opacity:.72}.sfn-cursor.is-action{width:40px;height:40px;margin:-20px 0 0 -20px;background:rgba(var(--accent-rgb),.07);border-color:rgba(var(--accent-rgb),.72)}.sfn-cursor.is-input{width:18px;height:30px;margin:-15px 0 0 -9px;border-radius:6px}.sfn-cursor.is-down{--cursor-scale:.78}

/* Mobile navigation becomes a purposeful layer */
@media(max-width:980px){
  .mobile-panel{position:fixed;z-index:90;inset:72px 0 auto 0;height:calc(100dvh - 72px);display:flex!important;flex-direction:column;padding:28px max(24px,calc((100vw - 720px)/2));background:rgba(244,241,234,.985);backdrop-filter:blur(24px);opacity:0;visibility:hidden;transform:translateY(-14px);pointer-events:none;transition:opacity .3s var(--ease-out),transform .36s var(--ease-out),visibility 0s .36s;overflow:auto}
  .mobile-panel.open{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
  .mobile-panel::before{content:"NAVIGATION";margin-bottom:18px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.14em}
  .mobile-panel a{font-size:clamp(22px,5vw,34px);font-weight:650;letter-spacing:-.035em;min-height:62px;opacity:0;transform:translateY(13px);transition:opacity .32s var(--ease-out),transform .38s var(--ease-out),color var(--motion-ui),padding var(--motion-ui)}
  .mobile-panel.open a{opacity:1;transform:none}.mobile-panel.open a:nth-of-type(1){transition-delay:.04s}.mobile-panel.open a:nth-of-type(2){transition-delay:.075s}.mobile-panel.open a:nth-of-type(3){transition-delay:.11s}.mobile-panel.open a:nth-of-type(4){transition-delay:.145s}.mobile-panel.open a:nth-of-type(5){transition-delay:.18s}.mobile-panel.open a:nth-of-type(6){transition-delay:.215s}
  .mobile-panel>a:not(.mobile-cta):hover{padding-left:8px;color:var(--accent-strong)}.mobile-panel .mobile-cta{margin-top:auto;min-height:58px;font-size:14px;letter-spacing:0}
  body.mobile-nav-open{overflow:hidden}
  .hero-system{inset:8% -22% 10% 38%;opacity:.42}.sfn-cursor{display:none}
  .service-page::before{display:none}
}

@media(max-width:680px){
  :root{--grid-size:34px}.sfn-ambient{opacity:.72}.sfn-ambient::before{min-width:420px;min-height:420px}
  .section::after,.process::after{width:calc(100% - 28px)}
  .hero-system{display:none}.hero::before{width:90vw;height:90vw;left:-42vw;top:8%}
  .flow-card{transform:none!important}.entry-card:hover,.industry-card:hover{transform:translateY(-2px)}
  .category-tile:hover{padding-left:0;padding-right:0}.result-row:hover,.recommendation:hover,.selected-row:hover,.example-row:hover,.principle:hover,.industry-service-list a:hover,.related-list a:hover{padding-left:4px;padding-right:4px}
  .sfn-toast-region{left:14px;right:14px;top:auto;bottom:82px}.sfn-toast{max-width:none;width:100%;min-width:0}
  .site-footer::before{font-size:52vw;bottom:-.12em}.final-cta::before{width:120vw;height:120vw;right:-70vw;top:-45vw}
  .mobile-panel{top:64px;height:calc(100dvh - 64px);padding-left:18px;padding-right:18px}
}

@media(pointer:coarse){
  .sfn-cursor{display:none}.flow-card,.entry-card,.industry-card,.form-card,.wizard{transform:none!important}
  .entry-card::before,.industry-card::before,.choice::before,.category-tile::before,.flow-card::before{display:none}
}

/* Reduced motion: retain hierarchy and states, remove kinetic movement */
@media(prefers-reduced-motion:reduce){
  .sfn-ambient,.hero-system,.sfn-cursor,.sfn-transition{display:none!important}
  html.motion-ready .motion-observed,.motion-title .motion-word>span,.motion-new{opacity:1!important;filter:none!important;transform:none!important;animation:none!important;transition:none!important}
  .site-footer::before,.final-cta::before,.hero::before{transform:none!important}
  .progress::after,.service-page::before,.steps::before,.principles::before,.contact-steps::before{transition:none!important}
  .mobile-panel,.mobile-panel a{transition:none!important;transform:none!important}
  .mobile-panel.open a{opacity:1!important}
}

@keyframes sfn-dash{to{stroke-dashoffset:-160}}
@keyframes sfn-node{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.45);opacity:1}}
@keyframes sfn-item-in{from{opacity:0;transform:translateY(14px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes sfn-panel-in{from{opacity:0;transform:translateY(-8px) scaleY(.96)}to{opacity:1;transform:none}}
@keyframes sfn-step-in{from{opacity:0;transform:translateY(12px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
@keyframes sfn-count-bump{0%,100%{transform:scale(1)}45%{transform:scale(1.28);box-shadow:0 0 0 7px rgba(var(--accent-rgb),.09)}}
@keyframes sfn-count-swap{0%{opacity:.3;transform:translateY(5px)}100%{opacity:1;transform:none}}
@keyframes sfn-confirm{from{opacity:1;transform:scale(.45)}to{opacity:0;transform:scale(1.5)}}
@keyframes sfn-assistant-in{from{opacity:0;transform:translateY(14px) scale(.975)}to{opacity:1;transform:none}}
@keyframes sfn-bubble-in{from{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}
@keyframes sfn-toast-in{from{opacity:0;transform:translateX(18px) scale(.97);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes sfn-toast-out{to{opacity:0;transform:translateX(14px) scale(.98);filter:blur(3px)}}
@keyframes sfn-shake{0%,100%{transform:none}25%{transform:translateX(-4px)}55%{transform:translateX(3px)}80%{transform:translateX(-2px)}}

/* Browser-control cleanup + unified capability icon geometry */
.searchbox input[type="search"]{-webkit-appearance:none;appearance:none}
.searchbox input[type="search"]::-webkit-search-cancel-button,.searchbox input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}
.searchbox input[type="search"]::-ms-clear{display:none;width:0;height:0}
.category-icon svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;fill:none}
