@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/39c55468420adfa6-s.1669nxjwa2fmv.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/9b8f0e32b229dbc1-s.0dguglgc-iz4q.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/81cef6a21128489e-s.p.2csanl8cs02r-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Jost;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/39c55468420adfa6-s.1669nxjwa2fmv.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/9b8f0e32b229dbc1-s.0dguglgc-iz4q.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/81cef6a21128489e-s.p.2csanl8cs02r-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Jost Fallback;src:local(Arial);ascent-override:111.45%;descent-override:39.06%;line-gap-override:0.0%;size-adjust:96.01%}.jost_3eef25e1-module__OQtzza__className{font-family:Jost,Jost Fallback;font-style:normal}.jost_3eef25e1-module__OQtzza__variable{--font-jost:"Jost", "Jost Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:var(--font-geist-sans), system-ui, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-bold:700;--leading-snug:1.375;--radius-lg:.5rem;--radius-3xl:1.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans), system-ui, sans-serif;--default-mono-font-family:var(--font-geist-mono), ui-monospace, monospace;--font-brand:var(--font-jost), "Futura", "Avenir Next", sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box}h1,h2,h3{text-wrap:balance;margin:0;font-weight:400}p{text-wrap:pretty;margin:0}a{color:inherit}}@layer components{.btn,.btn-outline{white-space:nowrap;border-radius:9999px;align-items:center;gap:.5rem;height:2.75rem;padding:0 1.125rem;font-size:.9375rem;font-weight:400;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.btn{background:var(--foreground);color:var(--background)}.btn:hover{background:#2a2926;background:lab(16.4937% .301093 1.89379)}.btn-outline{color:var(--foreground);border:1px solid var(--border);background:0 0}.btn-outline:hover{border-color:var(--foreground)}.tile{background:var(--surface);border-radius:1.5rem}}@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.top-1\/2{top:50%}.top-\[calc\(50vh-11rem\)\]{top:calc(50vh - 11rem)}.left-0{left:0}.left-1\/2{left:50%}.order-1{order:1}.order-2{order:2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[var\(--s1\)\]{margin-top:var(--s1)}.mt-\[var\(--s2\)\]{margin-top:var(--s2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.h-full{height:100%}.h-px{height:1px}.min-h-full{min-height:100%}.w-1\/2{width:50%}.w-5{width:calc(var(--spacing) * 5)}.w-\[38\.2\%\]{width:38.2%}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\[18rem\]{max-width:18rem}.max-w-\[30rem\]{max-width:30rem}.max-w-\[32rem\]{max-width:32rem}.max-w-\[34rem\]{max-width:34rem}.max-w-\[36rem\]{max-width:36rem}.max-w-\[38rem\]{max-width:38rem}.max-w-\[76rem\]{max-width:76rem}.min-w-0{min-width:0}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.scroll-mt-16{scroll-margin-top:calc(var(--spacing) * 16)}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-\[var\(--s1\)\]{gap:var(--s1)}.gap-\[var\(--s2\)\]{gap:var(--s2)}.gap-\[var\(--s3\)\]{gap:var(--s3)}.gap-x-\[var\(--s1\)\]{column-gap:var(--s1)}.gap-x-\[var\(--s3\)\]{column-gap:var(--s3)}.gap-y-\[var\(--s1\)\]{row-gap:var(--s1)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--border)}.bg-\[oklch\(0\.62_0\.2_25\)\]{background-color:#e64343;background-color:lab(53.9062% 63.1954 38.5555)}.bg-background{background-color:var(--background)}.bg-black\/\[0\.06\]{background-color:#0000000f}@supports (color:color-mix(in lab, red, red)){.bg-black\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-black) 6%, transparent)}}.bg-black\/\[0\.08\]{background-color:#00000014}@supports (color:color-mix(in lab, red, red)){.bg-black\/\[0\.08\]{background-color:color-mix(in oklab, var(--color-black) 8%, transparent)}}.bg-gold{background-color:var(--accent)}.bg-gold-soft{background-color:var(--accent-soft)}.bg-ink,.bg-ink\/60{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-ink\/60{background-color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.bg-surface{background-color:var(--surface)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-\[var\(--s1\)\]{padding-block:var(--s1)}.py-\[var\(--s2\)\]{padding-block:var(--s2)}.py-\[var\(--s3\)\]{padding-block:var(--s3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-\[3rem\]{padding-top:3rem}.pt-\[4rem\]{padding-top:4rem}.pt-\[var\(--s0\)\]{padding-top:var(--s0)}.pt-\[var\(--s3\)\]{padding-top:var(--s3)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-\[var\(--s2\)\]{padding-bottom:var(--s2)}.pb-\[var\(--s3\)\]{padding-bottom:var(--s3)}.text-center{text-align:center}.font-mono{font-family:var(--font-geist-mono), ui-monospace, monospace}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[1\.6rem\]{font-size:1.6rem}.text-\[1\.35rem\]{font-size:1.35rem}.text-\[3\.25rem\]{font-size:3.25rem}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.text-background{color:var(--background)}.text-gold-ink{color:var(--accent-ink)}.text-ink,.text-ink\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-ink\/80{color:color-mix(in oklab, var(--foreground) 80%, transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.accent-ink{accent-color:var(--foreground)}.opacity-70{opacity:.7}.opacity-\[0\.06\]{opacity:.06}.shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-gold{--tw-ring-color:var(--accent)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.group-open\:scale-y-0:is(:where(.group):is([open],:popover-open,:open) *){--tw-scale-y:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}@media (hover:hover){.hover\:text-ink:hover{color:var(--foreground)}.hover\:opacity-100:hover{opacity:1}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}@media (min-width:40rem){.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:px-10{padding-inline:calc(var(--spacing) * 10)}}@media (min-width:48rem){.md\:flex{display:flex}}@media (min-width:64rem){.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:ml-\[calc\(\(100\%-var\(--s3\)\)\/2\.618\+var\(--s3\)\)\]{margin-left:calc((100% - var(--s3)) / 2.618 + var(--s3))}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:max-w-\[22rem\]{max-width:22rem}.lg\:max-w-none{max-width:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[1\.618fr_1fr\]{grid-template-columns:1.618fr 1fr}.lg\:grid-cols-\[1fr_1\.618fr\]{grid-template-columns:1fr 1.618fr}.lg\:items-center{align-items:center}.lg\:items-end{align-items:flex-end}.lg\:gap-\[var\(--s3\)\]{gap:var(--s3)}.lg\:justify-self-end{justify-self:flex-end}.lg\:px-10{padding-inline:calc(var(--spacing) * 10)}.lg\:py-\[var\(--s3\)\]{padding-block:var(--s3)}}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}}:root{--background:#fdfdfc;--foreground:#0c0b09;--muted-foreground:#514c46;--border:#e0ded8;--accent:#c09747;--accent-ink:#886100;--accent-soft:#faf3e5;--surface:#f4f2ef;--phi:1.618;--t0:1.0625rem;--t1:calc(var(--t0) * var(--phi));--t2:calc(var(--t1) * var(--phi));--t3:calc(var(--t2) * var(--phi));--t-1:calc(var(--t0) / var(--phi));--s0:1rem;--s1:calc(var(--s0) * var(--phi));--s2:calc(var(--s1) * var(--phi));--s3:calc(var(--s2) * var(--phi));--s4:calc(var(--s3) * var(--phi));--s5:calc(var(--s4) * var(--phi))}@supports (color:lab(0% 0 0)){:root{--background:lab(99.191% .0553131 .375509);--foreground:lab(3.05518% .170946 .942901);--muted-foreground:lab(32.7508% .759721 4.57203);--border:lab(88.4323% .22608 3.04849);--accent:lab(65.3174% 9.42314 47.5061);--accent-ink:lab(44.3546% 10.814 53.6137);--accent-soft:lab(96.0167% .634044 7.66857);--surface:lab(95.6039% .224829 1.50441)}}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:var(--t0);line-height:var(--phi);-webkit-font-smoothing:antialiased;margin:0}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:4px}.t0{font-size:var(--t0);line-height:var(--phi)}.t1{font-size:calc(var(--t0) * 1.272);line-height:1.3}.t2{font-size:clamp(1.75rem,1.2vw + 1.25rem,2.5rem);line-height:1.12}.t3{font-size:clamp(2.5rem,3.4vw + .5rem,3.75rem);line-height:1.06}.display{font-family:var(--font-sans);letter-spacing:-.02em;font-weight:300}.eyebrow{color:var(--muted-foreground);font-size:.875rem}.brand{font-family:var(--font-brand);letter-spacing:-.03em}.tagline{font-family:var(--font-mono);letter-spacing:.28em;text-transform:uppercase;color:var(--muted-foreground);font-size:.75rem}.marquee{-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee-track{animation:38s linear infinite marquee}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes marquee{to{transform:translateX(calc(-50% - var(--s3) / 2))}}@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}.marquee{-webkit-mask-image:none;mask-image:none}}.phi-cols{grid-template-columns:1fr}@media (min-width:64rem){.phi-cols{grid-template-columns:1.618fr 1fr}}html.js .js-hide{opacity:0;animation:10ms linear 4s forwards js-hide-safety}@keyframes js-hide-safety{to{opacity:1}}.skip{z-index:50;background:var(--foreground);color:var(--background);padding:.5rem 1rem;font-size:.875rem;position:absolute;top:.5rem;left:-999px}.skip:focus-visible{left:1rem}@media (prefers-reduced-motion:reduce){html.js .js-hide{opacity:1}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}

/* ============================================================
   Static-site motion (ported from motion/react + lenis setup).
   html.js .js-hide starts hidden (rule above); .is-in reveals.
   ============================================================ */
html.js .js-hide { transform: translateY(12px); }
html.js .js-hide.is-in {
  opacity: 1; transform: none; animation: none;
  transition:
    opacity .7s cubic-bezier(.22,1,.36,1),
    transform .7s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--rise-delay, 0s);
}
@media (prefers-reduced-motion: reduce) {
  html.js .js-hide { transform: none; }
}
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }

/* ============================================================
   Bold pass — bigger scale, ink bands, gold structure, live stats.
   Same palette and fonts; only presence changes.
   ============================================================ */


/* Hero fills the first viewport */
.hero-full { min-height: calc(100vh - 4rem); min-height: calc(100svh - 4rem); align-content: center; }

/* Gold kicker: short rule + mono label. Numbered on the story beats. */
.kicker {
  display: flex; align-items: center; gap: .75rem;
  font-family: var(--font-mono); font-size: .75rem;
  letter-spacing: .22em; text-transform: uppercase; color: var(--accent-ink);
}
.kicker::before { content: ""; width: 2rem; height: 2px; background: var(--accent); flex: none; }

/* Ink tile: the inverted band. Remaps the palette utilities used inside it. */
.tile-ink { background: var(--foreground); color: var(--background); border-radius: 1.5rem; }
.tile-ink .eyebrow { color: color-mix(in oklab, var(--background) 55%, transparent); }
.tile-ink .text-muted-foreground { color: color-mix(in oklab, var(--background) 62%, transparent); }
.tile-ink .text-ink { color: var(--background); }
.tile-ink .tagline { color: var(--accent); }
.text-gold { color: var(--accent); }

/* Buttons that live on ink */
.btn-inverse, .btn-outline-i {
  white-space: nowrap; border-radius: 9999px; align-items: center; gap: .5rem;
  height: 2.75rem; padding: 0 1.125rem; font-size: .9375rem; font-weight: 400;
  text-decoration: none; display: inline-flex;
  transition: background-color .2s, color .2s, border-color .2s;
}
.btn-inverse { background: var(--background); color: var(--foreground); }
.btn-inverse:hover { background: var(--accent); }
.btn-outline-i { color: var(--background); border: 1px solid color-mix(in oklab, var(--background) 35%, transparent); }
.btn-outline-i:hover { border-color: var(--background); }

/* Oversized statistics */
.stat-hero { font-size: clamp(3.25rem, 3.6vw + 1.6rem, 5rem); line-height: .95; }

/* Before → after bar. --bar-from is where it starts, --bar-to where it lands. */
.stat-bar { height: .5rem; border-radius: 9999px; background: color-mix(in oklab, var(--accent) 22%, transparent); overflow: hidden; }
.tile-ink .stat-bar { background: color-mix(in oklab, var(--background) 16%, transparent); }
.stat-bar i { display: block; height: 100%; border-radius: inherit; background: var(--accent); width: var(--bar-to, 100%); }
html.js .bar-anim .stat-bar i { width: var(--bar-from, 0%); transition: width 1.7s cubic-bezier(.16,1,.3,1) .35s; }
html.js .bar-anim.is-in .stat-bar i { width: var(--bar-to, 100%); }

/* Timeline segments grow in, left to right */
html.js .seg-anim li { transform: scaleX(0); transform-origin: left; transition: transform 1.1s cubic-bezier(.16,1,.3,1); }
html.js .seg-anim.is-in li { transform: scaleX(1); }
html.js .seg-anim.is-in li:nth-child(2) { transition-delay: .12s; }
html.js .seg-anim.is-in li:nth-child(3) { transition-delay: .24s; }
html.js .seg-anim.is-in li:nth-child(4) { transition-delay: .36s; }

@media (prefers-reduced-motion: reduce) {
  html.js .bar-anim .stat-bar i { width: var(--bar-to, 100%); }
  html.js .seg-anim li { transform: none; }
}

/* ============================================================
   Interactive pass — hero back to the fold, hover logo chips,
   typewriter, scrubber, row reveals, tool cards, rail, picker.
   ============================================================ */


/* Logo marquee: perfectly centered row; the name chip overlays above the
   strip without affecting layout (clip horizontally, let vertical overflow
   show). */
.marquee { overflow-x: clip; overflow-y: visible; min-width: 0; }

/* Strip layout: label never wraps, logos take the rest, all on one center line */
.strip-grid { display: grid; align-items: center; gap: 1.5rem; }
@media (min-width: 64rem) { .strip-grid { grid-template-columns: max-content minmax(0, 1fr); } }
.strip-label { white-space: nowrap; }
.logo-item { position: relative; }
.logo-item img { transition: opacity .35s cubic-bezier(.16,1,.3,1), filter .35s cubic-bezier(.16,1,.3,1), transform .35s cubic-bezier(.16,1,.3,1); }
.logo-item:hover img { transform: scale(1.12); }
.logo-tip {
  position: absolute; bottom: calc(100% + .65rem); left: 50%;
  transform: translate(-50%, 8px) scale(.92);
  background: var(--foreground); color: var(--background);
  font-size: .75rem; line-height: 1; white-space: nowrap;
  padding: .45rem .7rem; border-radius: 9999px;
  border: 1px solid var(--accent);
  opacity: 0; pointer-events: none; z-index: 30;
  transition: opacity .3s cubic-bezier(.16,1,.3,1), transform .3s cubic-bezier(.16,1,.3,1);
}
.logo-item:hover .logo-tip { opacity: 1; transform: translate(-50%, 0) scale(1); }

/* Recording dot pulses while the typewriter runs */
.rec-dot { animation: rec-pulse 1.2s ease-in-out infinite; }
@keyframes rec-pulse { 50% { opacity: .3; } }
.type-text.typing::after { content: "▍"; color: var(--accent); animation: rec-pulse .8s steps(1) infinite; }

/* Timeline scrubber tooltip */
.scrub-tip {
  position: absolute; bottom: calc(100% + .6rem); left: 0;
  transform: translateX(-50%);
  background: var(--foreground); color: var(--background);
  border: 1px solid var(--accent); border-radius: .6rem;
  padding: .5rem .8rem; font-size: .8125rem; line-height: 1.35;
  white-space: nowrap; pointer-events: none; z-index: 10;
  opacity: 0; transition: opacity .15s;
}
.scrub-tip[data-on] { opacity: 1; }
.scrub-tip b { color: var(--accent); font-weight: 400; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.scrub { cursor: crosshair; }

/* Condensed rows stagger in when a group opens */
html.js details .row-anim { opacity: 0; transform: translateY(8px); }
html.js details[open] .row-anim {
  opacity: 1; transform: none;
  transition: opacity .5s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1);
}
html.js details[open] .row-anim:nth-child(2) { transition-delay: .06s; }
html.js details[open] .row-anim:nth-child(3) { transition-delay: .12s; }
html.js details[open] .row-anim:nth-child(4) { transition-delay: .18s; }
html.js details[open] .row-anim:nth-child(5) { transition-delay: .24s; }
html.js details[open] .row-anim:nth-child(6) { transition-delay: .3s; }

/* Smooth accordion open (progressive: browsers without support just snap) */
details { interpolate-size: allow-keywords; }
details::details-content {
  block-size: 0; overflow-y: clip;
  transition: content-visibility .45s allow-discrete, block-size .45s cubic-bezier(.22,1,.36,1);
}
details[open]::details-content { block-size: auto; }

/* Tool cards: click to open the detail line */
.tool { cursor: pointer; }
.tool .display { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.tool-plus { color: var(--accent); font-weight: 300; display: inline-block; transition: transform .3s; }
.tool.open .tool-plus { transform: rotate(45deg); }
.tool-more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s cubic-bezier(.22,1,.36,1); }
.tool-more-inner { overflow: hidden; }
.tool.open .tool-more { grid-template-rows: 1fr; }
.tool.open .tool-more-inner { padding-top: .35rem; }
.tool:hover .tool-plus { transform: scale(1.25); }
.tool.open:hover .tool-plus { transform: rotate(45deg) scale(1.25); }

/* Story progress rail (desktop only) */
.rail { position: fixed; right: 1.1rem; top: 50%; transform: translateY(-50%); z-index: 40; display: none; flex-direction: column; gap: 1rem; }
@media (min-width: 64rem) { .rail { display: flex; } }
.rail a { display: flex; align-items: center; gap: .5rem; text-decoration: none; font-family: var(--font-mono); font-size: .65rem; letter-spacing: .1em; color: var(--muted-foreground); opacity: .55; transition: opacity .25s, color .25s; }
.rail a i { width: .55rem; height: .55rem; border-radius: 50%; border: 1px solid var(--accent); background: transparent; transition: background .25s, transform .25s; }
.rail a span { opacity: 0; transform: translateX(4px); transition: opacity .25s, transform .25s; }
.rail a:hover span, .rail a.on span { opacity: 1; transform: none; }
.rail a:hover, .rail a.on { opacity: 1; color: var(--accent-ink); }
.rail a.on i { background: var(--accent); transform: scale(1.25); }

/* Contact department picker */
.chip {
  font-size: .875rem; line-height: 1; padding: .55rem 1.05rem;
  border-radius: 9999px; cursor: pointer;
  color: var(--background); border: 1px solid color-mix(in oklab, var(--background) 32%, transparent);
  background: transparent; transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.chip:hover { border-color: var(--accent); transform: translateY(-1px); }
.chip.on { background: var(--accent); border-color: var(--accent); color: var(--foreground); }

@media (prefers-reduced-motion: reduce) {
  html.js details .row-anim { opacity: 1; transform: none; }
  .rec-dot, .type-text.typing::after { animation: none; }
  details::details-content { transition: none; }
}

/* Fluid scale: the whole system (type, spacing, column) is rem-based, so
   one root rule sizes the site to the screen. 16px up to ~1280w, then
   grows gently to 20px on very wide displays. Never below 16px. */
html { font-size: clamp(16px, 0.55vw + 9px, 20px); }

/* Story beats: half the vertical rhythm of the original */
.beats { gap: var(--s1); padding-block: var(--s1); }
@media (min-width: 64rem) { .beats { gap: var(--s2); padding-block: var(--s2); } }

/* Surface band: a warm-grey section spanning the column edge to edge */
.band { background: var(--surface); margin-inline: -1.5rem; padding-inline: 1.5rem; }
@media (min-width: 64rem) { .band { margin-inline: -2.5rem; padding-inline: 2.5rem; } }
.band .tile { background: var(--background); }

/* Foundry diagram: inputs flow through the mark into one number */
.flow-label { font-family: var(--font-mono); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; fill: var(--muted-foreground); }
.flow-line { stroke: var(--muted-foreground); stroke-opacity: .6; stroke-width: 1.5; stroke-dasharray: 5 5; }
.flow-gold { stroke: var(--accent); stroke-width: 2; stroke-dasharray: 5 7; stroke-linecap: round; }
html.js .flow-line { animation: flowdash 1.9s linear infinite; }
html.js .flow-gold { animation: flowdash-g 1.3s linear infinite; }
@keyframes flowdash { to { stroke-dashoffset: -10; } }
@keyframes flowdash-g { to { stroke-dashoffset: -12; } }
.num-big { font-family: var(--font-sans); font-weight: 300; font-size: 26px; letter-spacing: -0.02em; fill: var(--accent-ink); }
.num-sub { font-family: var(--font-sans); font-size: 10px; fill: var(--muted-foreground); }
/* Foundry entrance: pure CSS keyed off .go, fill:forwards so nothing can
   be stranded hidden. Chips fade, streams follow, the mark rises piece by
   piece, the output lands last. */
.go .fchip, .go .flow-line, .go .piece, .go .out { opacity: 0; }
.go .fchip { animation: figin .6s linear forwards; }
.go .fchip:nth-of-type(2) { animation-delay: .08s; }
.go .fchip:nth-of-type(3) { animation-delay: .16s; }
.go .fchip:nth-of-type(4) { animation-delay: .24s; }
html.js .go .flow-line { animation: figin .6s linear .3s forwards, flowdash 1.9s linear infinite; }
.go .piece { transform-box: fill-box; transform-origin: center; animation: figrise .5s cubic-bezier(.22,1,.36,1) forwards; }
.go .piece:nth-of-type(1) { animation-delay: .55s; }
.go .piece:nth-of-type(2) { animation-delay: .68s; }
.go .piece:nth-of-type(3) { animation-delay: .81s; }
.go .piece:nth-of-type(4) { animation-delay: .94s; }
.go .piece:nth-of-type(5) { animation-delay: 1.07s; }
.go .out { animation: figin .7s cubic-bezier(.22,1,.36,1) 1.35s forwards; }
.go path.out { animation: figin .7s cubic-bezier(.22,1,.36,1) 1.35s forwards, flowdash-g 1.3s linear infinite; }
@keyframes figin { to { opacity: 1; } }
@keyframes figrise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .go .fchip, .go .flow-line, .go .piece, .go .out { opacity: 1; animation: none; }
}

/* Input chips: card language, living glyphs, cycling examples */
.fchip-label { font-family: var(--font-mono); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; fill: var(--foreground); }
.fchip-ex { font-family: var(--font-mono); font-size: 6.5px; letter-spacing: .04em; fill: var(--muted-foreground); transition: opacity .25s linear; }
.fchip .chip-bg { transition: stroke .3s; }
.fchip { cursor: default; }
.fchip:hover .chip-bg { stroke: var(--accent); }
.fchip.eat .chip-bg { stroke: var(--accent); }

html.js .g-wave rect { transform-box: fill-box; transform-origin: center; animation: wavebar 1.5s ease-in-out infinite; }
html.js .g-wave rect:nth-child(2) { animation-delay: .18s; }
html.js .g-wave rect:nth-child(3) { animation-delay: .36s; }
html.js .g-wave rect:nth-child(4) { animation-delay: .54s; }
@keyframes wavebar { 50% { transform: scaleY(.4); } }
html.js .g-line { animation: lineglow 2.6s ease-in-out infinite; }
html.js .g-line:nth-of-type(2) { animation-delay: .4s; }
html.js .g-line:nth-of-type(3) { animation-delay: .8s; }
@keyframes lineglow { 50% { opacity: .25; } }
html.js .g-perf { stroke-dasharray: 2 3; animation: flowdash 1.4s linear infinite; }
html.js .g-cell { animation: cellfill 2.8s ease-in-out infinite; }
html.js .g-cell:nth-of-type(2) { animation-delay: .35s; }
html.js .g-cell:nth-of-type(3) { animation-delay: .7s; }
html.js .g-cell:nth-of-type(4) { animation-delay: 1.05s; }
@keyframes cellfill { 50% { fill: var(--accent-soft); } }
@media (prefers-reduced-motion: reduce) {
  html.js .g-wave rect, html.js .g-line, html.js .g-perf, html.js .g-cell { animation: none; }
}

.flow-label { cursor: default; }
.flow-line { transition: stroke-opacity .3s, stroke .3s; }
.flow-line.lit { stroke: var(--accent-ink); stroke-opacity: .85; }
.core-dot { transform-box: fill-box; transform-origin: center; }
html.js .core-dot { animation: corepulse 2.6s ease-in-out 2.4s infinite; }
@keyframes corepulse { 50% { transform: scale(1.1); } }
#hero-count, .num-sub { transition: opacity .25s linear; }
@media (prefers-reduced-motion: reduce) {
  html.js .flow-line, html.js .flow-gold { animation: none; }
  html.js .core-dot { animation: none; }
}

/* Header at tablet widths: nav links never wrap, tighter gap, Contact
   button only when there's room */
header nav a { white-space: nowrap; }
@media (min-width: 48rem) and (max-width: 63.98rem) { header nav { gap: 1.1rem; } }
.contact-btn { display: none; }
@media (min-width: 64rem) { .contact-btn { display: inline-flex; } }

/* Mobile menu */
.menu-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 44px; height: 44px; cursor: pointer; }
.menu-btn span { display: block; width: 20px; height: 2px; background: var(--foreground); border-radius: 2px; transition: transform .3s cubic-bezier(.22,1,.36,1), opacity .2s; }
.menu-btn[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-btn[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (min-width: 48rem) { .menu-btn { display: none; } }
.menu-panel {
  position: fixed; inset: 0; z-index: 60;
  background: var(--foreground); color: var(--background);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s2);
  padding-top: 4rem;
}
.menu-panel[hidden] { display: none; }
.menu-links { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; }
.menu-links a { font-family: var(--font-sans); font-weight: 300; letter-spacing: -0.02em; font-size: 1.75rem; text-decoration: none; }
.menu-links a:hover { color: var(--accent); }
html.menu-open, html.menu-open body { overflow: hidden; }

/* Micro-interactions: slight, fast, everywhere the cursor goes */
.tile, .tile-ink { transition: transform .35s cubic-bezier(.22,1,.36,1); }
.bar-anim:hover, #accelerators .tile:hover { transform: translateY(-3px); }
.btn, .btn-outline, .btn-inverse, .btn-outline-i { transition: background-color .2s, color .2s, border-color .2s, transform .25s cubic-bezier(.22,1,.36,1); }
.btn:hover, .btn-outline:hover, .btn-inverse:hover, .btn-outline-i:hover { transform: translateY(-1px); }
.btn:active, .btn-outline:active, .btn-inverse:active, .btn-outline-i:active { transform: translateY(0) scale(.98); }
@media (prefers-reduced-motion: reduce) {
  .tile, .tile-ink, .btn, .btn-outline, .btn-inverse, .btn-outline-i { transition: none; transform: none; }
}

/* ============================================================
   Tools grid — entrance stagger (js-hide) + hover life + gold pop.
   Professional restraint: one accent (gold), soft motion, no bounce.
   ============================================================ */
.tool-tile {
  border: 1px solid transparent;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              box-shadow .45s cubic-bezier(.22,1,.36,1),
              background-color .45s, border-color .45s;
}
@media (hover: hover) {
  .tool-tile:hover {
    transform: translateY(-4px);
    background: var(--accent-soft);
    border-color: color-mix(in oklab, var(--accent) 42%, transparent);
    box-shadow: 0 18px 40px -18px color-mix(in oklab, var(--accent-ink) 40%, transparent);
  }
  .tool-tile:hover .eyebrow { color: var(--accent-ink); }
}
/* gold dot leading the eyebrow, pulses out on hover */
.tool-tile .eyebrow { display: flex; align-items: center; gap: .5rem; }
.tool-tile .eyebrow::before {
  content: ""; flex: none; width: .4rem; height: .4rem; border-radius: 999px;
  background: var(--accent);
  transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s;
}
.tool-tile:hover .eyebrow::before {
  transform: scale(1.35);
  box-shadow: 0 0 0 5px color-mix(in oklab, var(--accent) 18%, transparent);
}
/* each tool name: gold underline wipes in when its row is hovered */
.tool-tile li .display.t1 {
  position: relative; display: inline-block; width: fit-content;
  transition: color .3s;
}
.tool-tile li .display.t1::after {
  content: ""; position: absolute; left: 0; bottom: -3px; height: 2px; width: 100%;
  background: var(--accent); transform: scaleX(0); transform-origin: left;
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
.tool-tile li:hover .display.t1 { color: var(--accent-ink); }
.tool-tile li:hover .display.t1::after { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) {
  .tool-tile, .tool-tile .eyebrow::before, .tool-tile li .display.t1::after { transition: none; }
  .tool-tile:hover { transform: none; }
}

/* exhibit status dots: quiet pulse, gold = running, red = dead */
.stat-dot { display: inline-block; width: .5rem; height: .5rem; border-radius: 9999px; background: var(--dc, var(--accent)); margin-right: .55rem; vertical-align: 1px; }
html.js .stat-dot { animation: rec-pulse 2.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { html.js .stat-dot { animation: none; } }


/* Capture card: on phones the typed lines wrap instead of cutting off. */
.type-ghost { visibility: hidden; }
@media (max-width: 639px) {
  [data-typewriter] .truncate { white-space: normal; overflow: visible; text-overflow: clip; }
}

/* Improve card: 13-week days-to-close chart (JS-only; static card without JS). */
.close-chart { margin-top: 1.25rem; }
.close-plot { position: relative; height: 6.5rem; padding-top: 1.1rem; }
.close-bars { position: absolute; inset: 1.1rem 0 0; display: flex; align-items: flex-end; gap: 4px; }
.close-bar { flex: 1; border-radius: 3px 3px 1px 1px; background: color-mix(in oklab, var(--foreground) 8%, transparent); transition: background-color .2s, height .3s; }
.close-bar.is-on { background: var(--foreground); }
.close-bar.is-before.is-on { background: color-mix(in oklab, var(--foreground) 30%, transparent); }
.close-bar.is-live.is-on { background: var(--accent); }
.close-bar.is-now { box-shadow: 0 0 0 2px var(--background), 0 0 0 3.5px var(--foreground); }
.close-base { position: absolute; left: 0; right: 0; top: 1.1rem; border-top: 1px dashed color-mix(in oklab, var(--foreground) 35%, transparent); pointer-events: none; }
.close-base span { position: absolute; right: 0; bottom: 4px; font-size: .7rem; line-height: 1; color: var(--muted-foreground); }
.close-plot input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.close-plot:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 6px; border-radius: 6px; }
.close-axis { position: relative; display: flex; justify-content: space-between; margin-top: .5rem; font-size: .75rem; color: var(--muted-foreground); }
.close-axis-live { position: absolute; left: calc(5.5 / 13 * 100%); transform: translateX(-50%); color: var(--accent-ink); }
.close-hint { margin-top: .6rem; text-align: center; font-size: .7rem; color: var(--muted-foreground); transition: opacity .3s; }
.close-chart.is-used .close-hint { opacity: 0; }

/* Scroll progress: 2px gold line pinned to the top edge (JS-only). */
.scroll-progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 60; background: var(--accent); transform: scaleX(0); transform-origin: left; pointer-events: none; }

/* Magnetic primary buttons settle back smoothly. */
.btn.magnetic { transition: transform .35s cubic-bezier(.22,1,.36,1), background-color .2s, color .2s; will-change: transform; }

/* How it works: timeline bar + four stage columns, each with a small live card.
   Without JS every card shows its finished state; with JS the columns rise in
   turn as the bar fills. Hidden only after main.js arms the block, so a script
   failure or reduced motion leaves everything visible. */
.how-step { --c: var(--foreground); position: relative; display: flex; flex-direction: column; gap: .35rem; padding-top: calc(1rem + 3px); }
.how-step::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--c); transform-origin: left; }
.how-step:nth-child(2) { --c: color-mix(in oklab, var(--foreground) 60%, transparent); }
.how-step:nth-child(3) { --c: var(--accent); }
.how-step:nth-child(4) { --c: color-mix(in oklab, var(--accent) 35%, transparent); }
.how-n { font-family: var(--font-mono, ui-monospace, monospace); font-size: .75rem; letter-spacing: .08em; color: var(--accent-ink); }
.how-name { font-size: 1.75rem; line-height: 1.15; letter-spacing: -.02em; }
.how-when { display: flex; align-items: baseline; gap: .6rem; font-size: .875rem; color: var(--foreground); }
.how-dot { display: inline-block; width: .625rem; height: .625rem; border-radius: 9999px; }
.how-line { color: var(--muted-foreground); }
.how-card { flex: 1; display: flex; flex-direction: column; margin-top: .75rem; padding: 1rem; border-radius: 1.25rem; background: var(--surface); }
.how-card-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; font-size: .75rem; color: var(--muted-foreground); }
.how-rows { display: flex; flex-direction: column; gap: .4rem; padding-top: 1rem; }
.how-row { display: flex; align-items: center; justify-content: space-between; gap: .4rem; padding: .5rem .6rem; border-radius: .5rem; background: rgba(255,255,255,.9); box-shadow: 0 1px 2px rgba(0,0,0,.05); font-size: .8rem; color: var(--foreground); }
.how-tag { position: relative; flex-shrink: 0; min-width: 4.6rem; padding: .15rem .45rem; border-radius: 9999px; font-size: .7rem; text-align: center; transition: background-color .5s ease, color .5s ease; }
.how-tag.is-ok { background: var(--foreground); color: var(--background); }
.how-tag.is-flag { background: color-mix(in oklab, var(--accent) 22%, transparent); color: var(--accent-ink); }
.how-tag::after { content: "Checking"; font-size: .68rem; position: absolute; inset: 0; display: grid; place-items: center; color: var(--muted-foreground); opacity: 0; transition: opacity .5s ease; }
.how-tag.is-wait { background: rgba(0,0,0,.06); color: transparent; }
.how-tag.is-wait::after { opacity: 1; }
.how-card-live { background: var(--foreground); color: var(--background); }
.how-card-live .how-card-head { color: color-mix(in oklab, var(--background) 65%, transparent); }
.how-live-num { margin-top: auto; font-size: 3rem; line-height: 1; color: var(--accent); font-variant-numeric: tabular-nums; }
.how-live-sub { margin-top: .35rem; font-size: .875rem; }
.how-live-foot { margin-top: .75rem; padding-top: .6rem; border-top: 1px solid color-mix(in oklab, var(--background) 18%, transparent); font-size: .75rem; color: color-mix(in oklab, var(--background) 65%, transparent); }
.how-close-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem .5rem; margin-top: .75rem; }
.how-close-num { font-size: 1.5rem; line-height: 1; }
.how-close-sub { font-size: .8rem; color: var(--muted-foreground); }
.how-close-bar { margin-top: auto; padding-top: 1rem; }
.how-close-bar > .rounded-full { height: .375rem; background: rgba(0,0,0,.08); overflow: hidden; }
.how-close-bar > .rounded-full > .rounded-full { width: 50%; height: 100%; background: var(--foreground); }
[data-close-card] .close-chart { margin-top: auto; }
[data-close-card] .close-plot { height: 5rem; }
[data-close-card] .close-bars { gap: 3px; }
.how-step:nth-child(1) { --d: 0s; } .how-step:nth-child(2) { --d: .55s; } .how-step:nth-child(3) { --d: 1.1s; } .how-step:nth-child(4) { --d: 1.65s; }
.how-step > :nth-child(1) { --k: 0s; } .how-step > :nth-child(2) { --k: .09s; } .how-step > :nth-child(3) { --k: .18s; } .how-step > :nth-child(4) { --k: .3s; }
[data-how].is-armed .how-step::before { transform: scaleX(0); transition: transform 1s cubic-bezier(.65,0,.35,1) var(--d); }
[data-how].is-armed.is-in .how-step::before { transform: scaleX(1); }
[data-how].is-armed .how-step > * { opacity: 0; transform: translateY(10px); transition: opacity .9s cubic-bezier(.22,1,.36,1), transform .9s cubic-bezier(.22,1,.36,1); transition-delay: calc(var(--d) + .25s + var(--k)); }
[data-how].is-armed.is-in .how-step > * { opacity: 1; transform: none; }
/* rows inside the cards fade up as their card plays */
[data-how].is-armed .how-rows > .how-row { opacity: 0; transform: translateY(6px); transition: opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1); }
[data-how].is-armed .how-rows > .how-row.is-on { opacity: 1; transform: none; }


/* Hotel leak offer + calculator. */
.leak-group { padding-top: 1rem; border-top: 1px solid var(--border); color: var(--muted-foreground); }
.leak-calc { padding: 1.5rem; border-radius: 1.5rem; background: var(--background); box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.04); }
.leak-inputs { display: grid; gap: 1rem; margin-top: 1.25rem; }
@media (min-width: 640px) { .leak-inputs { grid-template-columns: 1fr 1fr; } }
.leak-field { display: flex; flex-direction: column; gap: .4rem; font-size: .8rem; color: var(--muted-foreground); }
.leak-field > span { display: flex; justify-content: space-between; gap: .5rem; }
.leak-field output { color: var(--foreground); font-variant-numeric: tabular-nums; }
.leak-field input[type="number"] { width: 100%; padding: .55rem .75rem; border: 1px solid var(--border); border-radius: .6rem; background: var(--background); color: var(--foreground); font: inherit; font-size: 1rem; }
.leak-field input[type="number"]:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.leak-field input[type="range"] { width: 100%; height: 1.25rem; margin: .45rem 0; background: transparent; cursor: pointer; appearance: none; -webkit-appearance: none; }
.leak-field input[type="range"]::-webkit-slider-runnable-track { height: 2px; border-radius: 9999px; background: var(--border); }
.leak-field input[type="range"]::-moz-range-track { height: 2px; border-radius: 9999px; background: var(--border); }
.leak-field input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 1rem; height: 1rem; margin-top: calc(-.5rem + 1px); border-radius: 9999px; background: var(--background); border: 1.5px solid var(--foreground); }
.leak-field input[type="range"]::-moz-range-thumb { width: 1rem; height: 1rem; border-radius: 9999px; background: var(--background); border: 1.5px solid var(--foreground); }
.leak-field input[type="range"]:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px; }
.leak-money { position: relative; display: block; }
.leak-money::before { content: "$"; position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--muted-foreground); font-size: 1rem; }
.leak-money input[type="number"] { padding-left: 1.6rem; }
.leak-result { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--border); }
.leak-stats { display: grid; grid-template-columns: 1.3fr 1fr; gap: 1rem; }
.leak-stats > div + div { padding-left: 1rem; border-left: 1px solid var(--border); }
.leak-stat-num { font-size: clamp(2rem, 4.5vw, 2.75rem); line-height: 1; color: var(--accent-ink); font-variant-numeric: tabular-nums; }
.leak-stats > div + div .leak-stat-num { color: var(--foreground); }
.leak-stat-label { margin-top: .4rem; font-size: .8rem; color: var(--muted-foreground); }
.leak-bar { display: flex; gap: 3px; height: .6rem; margin-top: 1.25rem; border-radius: 9999px; overflow: hidden; }
.leak-bar span { min-width: 4px; transition: flex-grow .35s cubic-bezier(.22,1,.36,1); }
.k-cards { background: var(--accent); }
.k-comm { background: var(--foreground); }
.k-unpaid { background: color-mix(in oklab, var(--foreground) 35%, transparent); }
.leak-rows { display: grid; gap: .1rem; margin-top: .9rem; font-size: .9rem; }
.leak-rows li { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px dashed var(--border); }
.leak-rows li > span:first-child { display: flex; align-items: center; gap: .6rem; }
.leak-rows i { display: inline-block; width: .6rem; height: .6rem; border-radius: 2px; }
.leak-rows li span:last-child { color: var(--foreground); font-variant-numeric: tabular-nums; }
.leak-real { display: flex; margin-top: 1.25rem; width: 100%; justify-content: center; }
.leak-note { margin-top: 1.25rem; font-size: .8rem; font-weight: 500; color: var(--foreground); }
.leak-assume { margin-top: .4rem; display: grid; gap: .2rem; font-size: .72rem; line-height: 1.5; color: var(--muted-foreground); list-style: disc; padding-left: 1rem; }
.leak-grid { display: grid; gap: var(--s2); }
.leak-copy { max-width: 32rem; }
@media (min-width: 1024px) { .leak-grid { grid-template-columns: 1fr 1.15fr; gap: var(--s3); align-items: start; } }

/* Tools: one panel, a track through the four stages. A gold pulse runs the line
   and lights each node as it passes (pure CSS; still under reduced motion). */
.tools-panel { padding: 2rem 1.75rem 1.75rem; border-radius: 1.5rem; background: var(--surface); }
.tools-track { --gap: 1.5rem; --node: 12px; --run: 3.6s; position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); }
.tools-track li { position: relative; }
.tools-track::before, .tools-track::after { content: ""; position: absolute; top: calc(var(--node) / 2 - .5px); height: 1px; pointer-events: none; }
.tools-track::before { left: calc(var(--node) / 2); right: calc((100% - 3 * var(--gap)) / 4 - var(--node) / 2); background: color-mix(in oklab, var(--foreground) 18%, transparent); }
.tools-node { display: block; position: relative; z-index: 1; width: var(--node); height: var(--node); border-radius: 9999px; background: var(--surface); border: 1.5px solid color-mix(in oklab, var(--foreground) 40%, transparent); transition: background-color .4s, border-color .4s, box-shadow .4s; }
.tools-node.is-lit { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 5px color-mix(in oklab, var(--accent) 18%, transparent); }
.tools-stage { margin-top: 1rem; font-size: .8rem; color: var(--muted-foreground); }
.tools-names { margin-top: .6rem; font-family: var(--font-mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-ink); }
.tools-owner { display: grid; gap: .4rem; margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid color-mix(in oklab, var(--foreground) 10%, transparent); }
@media (min-width: 1024px) { .tools-owner { grid-template-columns: 1fr 1.618fr; align-items: center; gap: var(--s3); } }
@media (max-width: 767px) {
  .tools-panel { padding: 1.5rem 1.25rem; }
  .tools-track { grid-template-columns: 1fr; gap: 1.25rem; }
  .tools-track li { padding-left: 1.75rem; }
  .tools-node { position: absolute; left: 0; top: .2rem; }
  .tools-stage { margin-top: 0; }
  .tools-track::before { top: calc(.2rem + var(--node) / 2); bottom: 2.6rem; left: calc(var(--node) / 2 - .5px); right: auto; width: 1px; height: auto; }
}

/* Offer steps + CTA row. */
.leak-steps { display: grid; gap: 1rem; margin-top: var(--s1); }
.leak-steps li { display: grid; grid-template-columns: 2rem 1fr; gap: .9rem; align-items: start; }
.leak-steps li p + p { margin-top: .15rem; font-size: .9rem; color: var(--muted-foreground); }
.leak-num { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 9999px; border: 1px solid color-mix(in oklab, var(--accent) 60%, transparent); color: var(--accent-ink); font-size: .85rem; font-variant-numeric: tabular-nums; }
.leak-cta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin-top: var(--s1); }
.leak-tag { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .75rem; border-radius: 9999px; border: 1px solid var(--border); background: var(--background); font-size: .8rem; color: var(--muted-foreground); }
.leak-tag::before { content: ""; width: .45rem; height: .45rem; border-radius: 9999px; background: var(--accent); }

/* Shine: a soft diagonal light sweeps top-left to bottom-right across a dark tile,
   over the text too. Loops with a long rest; off under reduced motion. */
.shine { position: relative; overflow: hidden; isolation: isolate; }
.shine::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 2; border-radius: inherit;
  background: linear-gradient(125deg, transparent 44%, rgba(255,236,200,.12) 47.5%, rgba(255,255,255,.28) 50%, rgba(255,236,200,.12) 52.5%, transparent 56%) no-repeat;
  background-size: 300% 300%; background-position: 100% 100%;
  mix-blend-mode: screen; animation: shine-sweep 7s cubic-bezier(.45,0,.25,1) 1s infinite; }
/* 100% 100% parks the band off the top-left corner; 0% 0% parks it off the bottom-right. */
@keyframes shine-sweep { 0% { background-position: 100% 100%; } 42%, 100% { background-position: 0% 0%; } }
@media (prefers-reduced-motion: reduce) { .shine::after { animation: none; opacity: 0; } }
@media (min-width: 640px) { .how-line { min-height: 3.24em; } }
.how-foot { margin-top: auto; padding-top: .75rem; border-top: 1px solid color-mix(in oklab, var(--foreground) 10%, transparent); font-size: .75rem; color: var(--muted-foreground); }
.how-rows + .how-foot { margin-top: auto; }
.how-card .how-rows { margin-bottom: 1rem; }
.leak-eg { margin-bottom: .35rem; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-ink); font-family: var(--font-mono); }
.leak-other { margin-top: .75rem; text-align: center; font-size: .85rem; color: var(--muted-foreground); }

/* Leak report is one collapsible section: closed it shows the offer line and a
   toggle; open it reveals the steps and the calculator. */
.leak-summary { display: grid; gap: var(--s1); align-items: end; cursor: pointer; list-style: none; }
.leak-summary::-webkit-details-marker { display: none; }
@media (min-width: 1024px) { .leak-summary { grid-template-columns: 1fr auto; } }
.leak-summary-text { max-width: 36rem; }
.leak-toggle { display: inline-flex; align-items: center; gap: .75rem; justify-self: start; padding: .7rem 1.1rem .7rem 1.35rem; border-radius: 9999px; background: var(--foreground); color: var(--background); font-size: .95rem; white-space: nowrap; transition: background-color .2s; }
.leak-summary:hover .leak-toggle { background: color-mix(in oklab, var(--foreground) 85%, var(--accent)); }
.leak-summary:focus-visible { outline: none; }
.leak-summary:focus-visible .leak-toggle { outline: 2px solid var(--accent); outline-offset: 3px; }
.leak-toggle-close { display: none; }
.leak-details[open] .leak-toggle-open { display: none; }
.leak-details[open] .leak-toggle-close { display: inline; }
.leak-details[open] .leak-toggle { background: transparent; color: var(--foreground); box-shadow: inset 0 0 0 1px var(--border); }
.leak-plus { position: relative; width: .8rem; height: .8rem; }
.leak-plus::before, .leak-plus::after { content: ""; position: absolute; left: 0; top: 50%; width: 100%; height: 1.5px; margin-top: -.75px; background: currentColor; transition: transform .3s cubic-bezier(.22,1,.36,1); }
.leak-plus::after { transform: rotate(90deg); }
.leak-details[open] .leak-plus::after { transform: rotate(0deg); }
.leak-details > .leak-grid { padding-top: var(--s2); }
[data-how].no-anim .how-step::before, [data-how].no-anim .how-step > *, [data-how].no-anim .how-row { transition: none !important; }
@media (min-width: 1024px) and (max-width: 1279px) { .how-steps { grid-template-columns: repeat(2, 1fr); row-gap: var(--s1); } }

/* Use-case areas: each closed row shows its best number; hover draws a gold edge. */
.uc-sum { position: relative; display: grid; grid-template-columns: 1fr auto; gap: .35rem 1.5rem; align-items: center; padding-block: var(--s1); cursor: pointer; list-style: none; }
.uc-sum::-webkit-details-marker { display: none; }
.uc-sum::before { content: ""; position: absolute; left: -.9rem; top: 18%; bottom: 18%; width: 2px; background: var(--accent); transform: scaleY(0); transform-origin: top; transition: transform .45s cubic-bezier(.22,1,.36,1); }
.uc-sum:hover::before, .uc[open] > .uc-sum::before { transform: scaleY(1); }
.uc-name, .uc-desc, .uc-stat { transition: transform .45s cubic-bezier(.22,1,.36,1); }
.uc-sum:hover .uc-name, .uc-sum:hover .uc-desc, .uc-sum:hover .uc-stat { transform: translateX(.6rem); }
.uc-name { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; grid-column: 1; }
.uc-tag { padding: .2rem .6rem; border-radius: 9999px; background: color-mix(in oklab, var(--accent) 16%, transparent); color: var(--accent-ink); font-size: .72rem; letter-spacing: .02em; }
.uc-desc { grid-column: 1 / -1; color: var(--muted-foreground); }
.uc-stat { grid-column: 1 / -1; display: flex; align-items: baseline; gap: .6rem; }
.uc-num { font-size: 1.6rem; line-height: 1; color: var(--accent-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.uc-label { font-size: .85rem; color: var(--muted-foreground); }
.uc-more { color: color-mix(in oklab, var(--muted-foreground) 70%, transparent); }
.uc-plus { position: relative; grid-column: 2; grid-row: 1; width: 1.5rem; height: 1.5rem; flex-shrink: 0; }
.uc-plus span { transition: background-color .3s, transform .3s; }
.uc-sum:hover .uc-plus span { background-color: var(--accent); }
@media (min-width: 1024px) {
  .uc-sum { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto; column-gap: var(--s2); }
  .uc-name { grid-column: 1; } .uc-desc { grid-column: 2; } .uc-stat { grid-column: 3; justify-content: flex-end; text-align: right; }
  .uc-stat { flex-direction: column; align-items: flex-end; gap: .25rem; }
  .uc-plus { grid-column: 4; grid-row: 1; }
}
@media (prefers-reduced-motion: reduce) { .uc-sum::before, .uc-name, .uc-desc, .uc-stat { transition: none; } .uc-sum:hover .uc-name, .uc-sum:hover .uc-desc, .uc-sum:hover .uc-stat { transform: none; } }
@media (min-width: 1024px) { .uc > ul { margin-left: calc((100% - 1.5rem - 3 * var(--s2)) / 3 + var(--s2)); } }
/* FAQ rows reuse the use-case row: question | key fact | plus. */
@media (min-width: 1024px) {
  .faq-sum { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) auto; }
  .faq-sum .uc-stat { grid-column: 2; }
  .faq-sum .uc-plus { grid-column: 3; }
}
.faq > p { max-width: 38rem; }

/* Sticky header: frosted, full-bleed across the container, slims once scrolled.
   The gold scroll-progress line rides its bottom edge. */
.site-header { position: sticky; top: 0; z-index: 50; margin-inline: -1.5rem; padding-inline: 1.5rem; background: color-mix(in oklab, var(--background) 86%, transparent); -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px); transition: height .3s cubic-bezier(.22,1,.36,1), box-shadow .3s; }
@media (min-width: 1024px) { .site-header { margin-inline: -2.5rem; padding-inline: 2.5rem; } }
.site-header.is-scrolled { height: 3.5rem; box-shadow: 0 1px 0 var(--border), 0 6px 20px rgba(0,0,0,.035); }
.site-header .scroll-progress { position: absolute; top: auto; bottom: -1px; z-index: 1; }
.site-nav a { position: relative; transition: color .2s; }
.site-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: .55rem; height: 1.5px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.22,1,.36,1); }
.site-nav a.is-active { color: var(--foreground); }
.site-nav a.is-active::after { transform: scaleX(1); }
.menu-links a.is-active { color: var(--accent-ink); }
.nav-dot { display: inline-block; width: .38rem; height: .38rem; margin-left: .4rem; margin-top: -.6rem; border-radius: 9999px; background: var(--accent); animation: rec-pulse 2.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .nav-dot { animation: none; } .site-header, .site-nav a::after { transition: none; } }
/* Mobile menu open: lift the header above the overlay so the close button stays usable. */
html.menu-open .site-header { z-index: 70; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; border-color: transparent; }
html.menu-open .site-header > a, html.menu-open .site-header .scroll-progress { visibility: hidden; }
html.menu-open .site-header .btn { display: none; }
html.menu-open .site-header .menu-btn span { background: var(--background); }

/* Leak report opening: a slower, softer slide, then the contents settle in order
   (steps, button row, locations line, calculator). Closing fades out quickly. */
.leak-details::details-content { transition: content-visibility .7s allow-discrete, block-size .7s cubic-bezier(.65,0,.35,1); }
.leak-details .leak-steps li, .leak-details .leak-cta, .leak-details .leak-group, .leak-details .leak-calc {
  opacity: 0; transform: translateY(14px); transition: opacity .25s ease, transform .25s ease; }
.leak-details[open] .leak-steps li, .leak-details[open] .leak-cta, .leak-details[open] .leak-group, .leak-details[open] .leak-calc {
  opacity: 1; transform: none; transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
.leak-details[open] .leak-steps li:nth-child(1) { transition-delay: .25s; }
.leak-details[open] .leak-steps li:nth-child(2) { transition-delay: .35s; }
.leak-details[open] .leak-steps li:nth-child(3) { transition-delay: .45s; }
.leak-details[open] .leak-cta { transition-delay: .55s; }
.leak-details[open] .leak-group { transition-delay: .65s; }
.leak-details[open] .leak-calc { transition-delay: .3s; transition-duration: 1s; }
.leak-details .leak-calc { transform: translateY(18px) scale(.985); transform-origin: top center; }
@media (prefers-reduced-motion: reduce) {
  .leak-details .leak-steps li, .leak-details .leak-cta, .leak-details .leak-group, .leak-details .leak-calc { opacity: 1; transform: none; transition: none; }
}

/* Tools: what goes in and what comes out at each stage; the kept deliverables;
   a chip that travels the line and becomes each stage's output (desktop, JS). */
.tools-panel { padding-top: 3rem; }
.tools-io { margin-top: .35rem; font-size: 1.05rem; line-height: 1.45; color: var(--muted-foreground); }
.tools-out { color: var(--foreground); }
.tools-arrow { color: var(--accent-ink); }
.tools-keep { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid color-mix(in oklab, var(--foreground) 10%, transparent); }
.tools-keep-label { font-size: .8rem; color: var(--muted-foreground); margin-right: .25rem; }
.tools-keep ul { display: flex; flex-wrap: wrap; gap: .5rem; }
.tools-keep li { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .8rem; border-radius: 9999px; background: var(--background); border: 1px solid var(--border); font-size: .85rem; color: var(--foreground); }
.tools-keep li::before { content: ""; width: .7rem; height: .4rem; margin-top: -.15rem; border-left: 1.5px solid var(--accent); border-bottom: 1.5px solid var(--accent); transform: rotate(-45deg); }
.tools-token { position: absolute; top: -2.1rem; left: 0; z-index: 2; padding: .2rem .6rem; border-radius: 9999px; background: var(--background); border: 1px solid color-mix(in oklab, var(--accent) 55%, transparent); color: var(--accent-ink); font-family: var(--font-mono); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; pointer-events: none; box-shadow: 0 2px 8px rgba(0,0,0,.05); transition: transform .9s cubic-bezier(.65,0,.35,1), opacity .3s; }
.tools-token.no-move { transition: opacity .3s; }
.tools-token-text { display: inline-block; transition: opacity .18s; }
@media (max-width: 767px) { .tools-panel { padding-top: 1.5rem; } .tools-token { display: none; } }
