*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.btn-magnetic{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;border-radius:9999px;font-weight:600;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(.25,.46,.45,.94)}.btn-magnetic:hover{transform:scale(1.03)}.btn-magnetic>span.bg-slide{position:absolute;top:0;right:0;bottom:0;left:0;--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.5s;transition-timing-function:cubic-bezier(.25,.46,.45,.94)}.btn-magnetic:hover>span.bg-slide{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.link-lift{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.link-lift:hover{transform:translateY(-1px)}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.right-8{right:2rem}.top-0{top:0}.top-\[5\%\]{top:5%}.-z-50{z-index:-50}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1\.5{margin-bottom:.375rem}.mb-6{margin-bottom:1.5rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-\[16\/10\]{aspect-ratio:16/10}.aspect-\[5\/4\]{aspect-ratio:5/4}.aspect-square{aspect-ratio:1 / 1}.h-0{height:0px}.h-1\.5{height:.375rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-full{height:100%}.min-h-\[18rem\]{min-height:18rem}.min-h-\[90vh\]{min-height:90vh}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1\.5{width:.375rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-pre-line{white-space:pre-line}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-4xl{border-radius:2rem}.rounded-5xl{border-radius:3rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[\#25221E\]\/10{border-color:#25221e1a}.border-white\/10{border-color:#ffffff1a}.border-white\/15{border-color:#ffffff26}.border-white\/30{border-color:#ffffff4d}.bg-\[\#F0EEEA\]\/90{background-color:#f0eeeae6}.bg-\[\#F0EEEA\]\/95{background-color:#f0eeeaf2}.bg-black\/20{background-color:#0003}.bg-brand-accent{background-color:var(--brand-accent)}.bg-brand-bg{background-color:var(--brand-bg)}.bg-brand-primary{background-color:var(--brand-primary)}.bg-surface-body{background-color:var(--surface-body)}.bg-surface-card-dark{background-color:var(--surface-card-dark)}.bg-surface-dark{background-color:var(--surface-dark)}.bg-surface-light{background-color:var(--surface-light)}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-black\/45{--tw-gradient-from: rgb(0 0 0 / .45) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-black\/35{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / .35) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[\#1C1A17\]{--tw-gradient-to: #1C1A17 var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-5{padding:1.25rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-28{padding-top:7rem;padding-bottom:7rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-1{padding-bottom:.25rem}.pb-20{padding-bottom:5rem}.pb-6{padding-bottom:1.5rem}.pt-28{padding-top:7rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-body,.font-heading{font-family:Inter,system-ui,sans-serif}.font-mono{font-family:JetBrains Mono,ui-monospace,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.leading-\[1\.05\]{line-height:1.05}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#25221E\]{--tw-text-opacity: 1;color:rgb(37 34 30 / var(--tw-text-opacity, 1))}.text-\[\#25221E\]\/80{color:#25221ecc}.text-\[\#25221E\]\/85{color:#25221ed9}.text-brand-accent{color:var(--brand-accent)}.text-brand-bg{color:var(--brand-bg)}.text-brand-muted{color:var(--brand-text-muted)}.text-brand-primary{color:var(--brand-primary)}.text-brand-text{color:var(--brand-text)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/80{color:#fffc}.text-white\/90{color:#ffffffe6}.opacity-0{opacity:0}.opacity-80{opacity:.8}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-\[border-color\,box-shadow\]{transition-property:border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.text-fluid-hero{font-size:clamp(2.6rem,7vw,6rem);line-height:.98}.text-fluid-h2{font-size:clamp(1.9rem,4vw,3.25rem);line-height:1.05}.text-fluid-h3{font-size:clamp(1.25rem,2vw,1.6rem)}.text-fluid-body{font-size:clamp(1rem,1.2vw,1.15rem)}:root{--brand-primary: #1C1A17;--brand-accent: #FB8A2E;--brand-bg: #F0EEEA;--brand-text: #25221E;--brand-text-muted: #6B655C;--brand-spare: #EBE6DE;--surface-body: #F0EEEA;--surface-light: #E3DED0;--surface-dark: #1C1A17;--surface-card-dark: #25221E;--font-heading: "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}html{scroll-behavior:smooth}body{background:var(--surface-body);color:var(--brand-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-white\/60:hover{border-color:#fff9}.hover\:bg-brand-accent:hover{background-color:var(--brand-accent)}.hover\:text-\[\#25221E\]:hover{--tw-text-opacity: 1;color:rgb(37 34 30 / var(--tw-text-opacity, 1))}.hover\:text-brand-accent:hover{color:var(--brand-accent)}.hover\:text-brand-bg:hover{color:var(--brand-bg)}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-brand-accent:focus{border-color:var(--brand-accent)}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-brand-bg{color:var(--brand-bg)}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:top-8{top:2rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:p-10{padding:2.5rem}.sm\:p-12{padding:3rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}}@media(min-width:768px){.md\:col-span-1{grid-column:span 1 / span 1}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.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-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:items-center{align-items:center}.lg\:gap-8{gap:2rem}}
/* ============================================================
   TGF custom CSS layer — REQUIRED. This is the part that gets
   lost if the stylesheet is regenerated by Tailwind against the
   HTML alone. Without it: no brand colours, no fluid heading
   sizes, no pill buttons. These rules MUST be present in
   styles.css. (They are already baked into the shipped
   styles.css — this file is just the reference of the must-keep
   block, expanded to plain CSS so it works with no Tailwind.)
   ============================================================ */

:root {
  --brand-primary: #1C1A17;
  --brand-accent: #FB8A2E;   /* the orange */
  --brand-bg: #F0EEEA;
  --brand-text: #25221E;
  --brand-text-muted: #6B655C;
  --brand-spare: #EBE6DE;

  --surface-body: #F0EEEA;
  --surface-light: #E3DED0;
  --surface-dark: #1C1A17;   /* the dark hero / dark sections */
  --surface-card-dark: #25221E;

  --font-heading: 'Inter', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}

html { scroll-behavior: smooth; }

body {
  background: var(--surface-body);
  color: var(--brand-text);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* Global film-grain overlay */
body::before {
  content: '';
  position: fixed; inset: 0; z-index: 9999;
  pointer-events: none; opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Fluid type scale — Tailwind preflight zeroes heading sizes, so
   without these the H1/H2/H3 collapse to body-text size. */
.text-fluid-hero { font-size: clamp(2.6rem, 7vw, 6rem); line-height: .98; }
.text-fluid-h2   { font-size: clamp(1.9rem, 4vw, 3.25rem); line-height: 1.05; }
.text-fluid-h3   { font-size: clamp(1.25rem, 2vw, 1.6rem); }
.text-fluid-body { font-size: clamp(1rem, 1.2vw, 1.15rem); }

/* Pill buttons + their sliding fill */
.btn-magnetic {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  overflow: hidden; border-radius: 9999px; font-weight: 600;
  transition: transform .3s cubic-bezier(.25,.46,.45,.94);
}
.btn-magnetic:hover { transform: scale(1.03); }
.btn-magnetic > span.bg-slide {
  position: absolute; inset: 0; transform: translateX(-100%);
  transition: transform .5s cubic-bezier(.25,.46,.45,.94);
}
.btn-magnetic:hover > span.bg-slide { transform: translateX(0); }

.link-lift { transition: transform .2s; }
.link-lift:hover { transform: translateY(-1px); }

/* Offset anchor jumps so the fixed header doesn't cover headings */
section[id], #top { scroll-margin-top: 6rem; }

/* --- Scroll-reveal (replaces GSAP ScrollTrigger) --- */
.reveal, .reveal-item {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s cubic-bezier(.25,.46,.45,.94),
              transform .8s cubic-bezier(.25,.46,.45,.94);
  will-change: opacity, transform;
}
.reveal-scale { transform: scale(.85); }
.reveal.is-visible, .reveal-item.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-item { opacity: 1 !important; transform: none !important; transition: none; }
}

/* --- Navbar colour states (replaces React conditional classes) --- */
#site-header { padding-top: 1rem; padding-bottom: 1rem; transition: padding .5s cubic-bezier(.25,.46,.45,.94); }
#site-header.scrolled { padding-top: .5rem; padding-bottom: .5rem; }

#site-header .nav-shell {
  border-color: rgba(255,255,255,.1);
  background: rgba(0,0,0,.2);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  padding-top: .75rem; padding-bottom: .75rem;
  transition: background .5s ease, border-color .5s ease, box-shadow .5s ease, padding .5s ease;
}
#site-header.scrolled .nav-shell {
  border-color: rgba(37,34,30,.1);
  background: rgba(240,238,234,.9);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  padding-top: .625rem; padding-bottom: .625rem;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);
}

#site-header .nav-text { color: #fff; transition: color .3s ease; }
#site-header.scrolled .nav-text { color: #25221E; }

#site-header .nav-link { color: rgba(255,255,255,.8); transition: color .3s ease; }
#site-header .nav-link:hover { color: #fff; }
#site-header.scrolled .nav-link { color: rgba(37,34,30,.8); }
#site-header.scrolled .nav-link:hover { color: #25221E; }

/* --- FAQ accordion (native <details>, fully crawlable) --- */
.faq-item { border-bottom: 1px solid rgba(37,34,30,.1); }
.faq-item > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.5rem 0; cursor: pointer; list-style: none;
}
.faq-item > summary::-webkit-details-marker { display: none; }
.faq-item .faq-icon { flex-shrink: 0; color: var(--brand-accent); }
.faq-item .icon-minus { display: none; }
.faq-item[open] .icon-plus { display: none; }
.faq-item[open] .icon-minus { display: block; }
/* Missing utilities patched */
[hidden] { display: none !important; }

.mb-16 { margin-bottom: 4rem; }
.pb-16 { padding-bottom: 4rem; }
.pb-24 { padding-bottom: 6rem; }
.pt-24 { padding-top: 6rem; }

.bg-\[\#F0EEEA\]\/95 { background-color: rgb(240 238 234 / 0.95); }

.border-\[\#25221E\]\/10 { border-color: rgb(37 34 30 / 0.1); }
.border-brand-accent\/40 { border-color: rgba(251, 138, 46, 0.4); }
.border-brand-bg\/10 { border-color: rgba(240, 238, 234, 0.1); }
.border-brand-bg\/15 { border-color: rgba(240, 238, 234, 0.15); }
.border-brand-text\/10 { border-color: rgba(37, 34, 30, 0.1); }
.border-brand-text\/15 { border-color: rgba(37, 34, 30, 0.15); }
.border-brand-text\/5 { border-color: rgba(37, 34, 30, 0.05); }

.hover\:border-brand-accent\/30:hover { border-color: rgba(251, 138, 46, 0.3); }
.hover\:border-brand-accent\/40:hover { border-color: rgba(251, 138, 46, 0.4); }
.hover\:border-brand-accent\/50:hover { border-color: rgba(251, 138, 46, 0.5); }
.hover\:shadow-brand-accent\/35:hover { --tw-shadow-color: rgba(251, 138, 46, 0.35); --tw-shadow: var(--tw-shadow-colored); }
.hover\:text-\[\#25221E\]:hover { color: #25221E; }

.shadow-brand-accent\/15 { --tw-shadow-color: rgba(251, 138, 46, 0.15); --tw-shadow: var(--tw-shadow-colored); }
.shadow-brand-accent\/20 { --tw-shadow-color: rgba(251, 138, 46, 0.20); --tw-shadow: var(--tw-shadow-colored); }

.text-\[\#25221E\] { color: #25221E; }
.text-\[\#25221E\]\/85 { color: rgb(37 34 30 / 0.85); }
.text-brand-bg\/50 { color: rgba(240, 238, 234, 0.5); }
.text-brand-bg\/60 { color: rgba(240, 238, 234, 0.6); }
.text-brand-bg\/70 { color: rgba(240, 238, 234, 0.7); }
.text-brand-bg\/75 { color: rgba(240, 238, 234, 0.75); }
.text-brand-bg\/80 { color: rgba(240, 238, 234, 0.8); }
.text-brand-bg\/85 { color: rgba(240, 238, 234, 0.85); }
/* ============================================================
   TGF custom CSS layer — REQUIRED. This is the part that gets
   lost if the stylesheet is regenerated by Tailwind against the
   HTML alone. Without it: no brand colours, no fluid heading
   sizes, no pill buttons. These rules MUST be present in
   styles.css. (They are already baked into the shipped
   styles.css — this file is just the reference of the must-keep
   block, expanded to plain CSS so it works with no Tailwind.)
   ============================================================ */

:root {
  --brand-primary: #1C1A17;
  --brand-accent: #FB8A2E;   /* the orange */
  --brand-bg: #F0EEEA;
  --brand-text: #25221E;
  --brand-text-muted: #6B655C;
  --brand-spare: #EBE6DE;

  --surface-body: #F0EEEA;
  --surface-light: #E3DED0;
  --surface-dark: #1C1A17;   /* the dark hero / dark sections */
  --surface-card-dark: #25221E;

  --font-heading: 'Inter', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}

html { scroll-behavior: smooth; }

body {
  background: var(--surface-body);
  color: var(--brand-text);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* Global film-grain overlay */
body::before {
  content: '';
  position: fixed; inset: 0; z-index: 9999;
  pointer-events: none; opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Fluid type scale — Tailwind preflight zeroes heading sizes, so
   without these the H1/H2/H3 collapse to body-text size. */
.text-fluid-hero { font-size: clamp(2.6rem, 7vw, 6rem); line-height: .98; }
.text-fluid-h2   { font-size: clamp(1.9rem, 4vw, 3.25rem); line-height: 1.05; }
.text-fluid-h3   { font-size: clamp(1.25rem, 2vw, 1.6rem); }
.text-fluid-body { font-size: clamp(1rem, 1.2vw, 1.15rem); }

/* Pill buttons + their sliding fill */
.btn-magnetic {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  overflow: hidden; border-radius: 9999px; font-weight: 600;
  transition: transform .3s cubic-bezier(.25,.46,.45,.94);
}
.btn-magnetic:hover { transform: scale(1.03); }
.btn-magnetic > span.bg-slide {
  position: absolute; inset: 0; transform: translateX(-100%);
  transition: transform .5s cubic-bezier(.25,.46,.45,.94);
}
.btn-magnetic:hover > span.bg-slide { transform: translateX(0); }

.link-lift { transition: transform .2s; }
.link-lift:hover { transform: translateY(-1px); }

/* Offset anchor jumps so the fixed header doesn't cover headings */
section[id], #top { scroll-margin-top: 6rem; }

/* --- Scroll-reveal (replaces GSAP ScrollTrigger) --- */
.reveal, .reveal-item {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s cubic-bezier(.25,.46,.45,.94),
              transform .8s cubic-bezier(.25,.46,.45,.94);
  will-change: opacity, transform;
}
.reveal-scale { transform: scale(.85); }
.reveal.is-visible, .reveal-item.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-item { opacity: 1 !important; transform: none !important; transition: none; }
}

/* --- Navbar colour states (replaces React conditional classes) --- */
#site-header { padding-top: 1rem; padding-bottom: 1rem; transition: padding .5s cubic-bezier(.25,.46,.45,.94); }
#site-header.scrolled { padding-top: .5rem; padding-bottom: .5rem; }

#site-header .nav-shell {
  border-color: rgba(255,255,255,.1);
  background: rgba(0,0,0,.2);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  padding-top: .75rem; padding-bottom: .75rem;
  transition: background .5s ease, border-color .5s ease, box-shadow .5s ease, padding .5s ease;
}
#site-header.scrolled .nav-shell {
  border-color: rgba(37,34,30,.1);
  background: rgba(240,238,234,.9);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  padding-top: .625rem; padding-bottom: .625rem;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);
}

#site-header .nav-text { color: #fff; transition: color .3s ease; }
#site-header.scrolled .nav-text { color: #25221E; }

#site-header .nav-link { color: rgba(255,255,255,.8); transition: color .3s ease; }
#site-header .nav-link:hover { color: #fff; }
#site-header.scrolled .nav-link { color: rgba(37,34,30,.8); }
#site-header.scrolled .nav-link:hover { color: #25221E; }

/* --- FAQ accordion (native <details>, fully crawlable) --- */
.faq-item { border-bottom: 1px solid rgba(37,34,30,.1); }
.faq-item > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.5rem 0; cursor: pointer; list-style: none;
}
.faq-item > summary::-webkit-details-marker { display: none; }
.faq-item .faq-icon { flex-shrink: 0; color: var(--brand-accent); }
.faq-item .icon-minus { display: none; }
.faq-item[open] .icon-plus { display: none; }
.faq-item[open] .icon-minus { display: block; }
/* Missing utilities patched */
[hidden] { display: none !important; }

.mb-16 { margin-bottom: 4rem; }
.pb-16 { padding-bottom: 4rem; }
.pb-24 { padding-bottom: 6rem; }
.pt-24 { padding-top: 6rem; }

.bg-\[\#F0EEEA\]\/95 { background-color: rgb(240 238 234 / 0.95); }

.border-\[\#25221E\]\/10 { border-color: rgb(37 34 30 / 0.1); }
.border-brand-accent\/40 { border-color: rgba(251, 138, 46, 0.4); }
.border-brand-bg\/10 { border-color: rgba(240, 238, 234, 0.1); }
.border-brand-bg\/15 { border-color: rgba(240, 238, 234, 0.15); }
.border-brand-text\/10 { border-color: rgba(37, 34, 30, 0.1); }
.border-brand-text\/15 { border-color: rgba(37, 34, 30, 0.15); }
.border-brand-text\/5 { border-color: rgba(37, 34, 30, 0.05); }

.hover\:border-brand-accent\/30:hover { border-color: rgba(251, 138, 46, 0.3); }
.hover\:border-brand-accent\/40:hover { border-color: rgba(251, 138, 46, 0.4); }
.hover\:border-brand-accent\/50:hover { border-color: rgba(251, 138, 46, 0.5); }
.hover\:shadow-brand-accent\/35:hover { --tw-shadow-color: rgba(251, 138, 46, 0.35); --tw-shadow: var(--tw-shadow-colored); }
.hover\:text-\[\#25221E\]:hover { color: #25221E; }

.shadow-brand-accent\/15 { --tw-shadow-color: rgba(251, 138, 46, 0.15); --tw-shadow: var(--tw-shadow-colored); }
.shadow-brand-accent\/20 { --tw-shadow-color: rgba(251, 138, 46, 0.20); --tw-shadow: var(--tw-shadow-colored); }

.text-\[\#25221E\] { color: #25221E; }
.text-\[\#25221E\]\/85 { color: rgb(37 34 30 / 0.85); }
.text-brand-bg\/50 { color: rgba(240, 238, 234, 0.5); }
.text-brand-bg\/60 { color: rgba(240, 238, 234, 0.6); }
.text-brand-bg\/70 { color: rgba(240, 238, 234, 0.7); }
.text-brand-bg\/75 { color: rgba(240, 238, 234, 0.75); }
.text-brand-bg\/80 { color: rgba(240, 238, 234, 0.8); }
.text-brand-bg\/85 { color: rgba(240, 238, 234, 0.85); }
.text-brand-muted\/80 { color: rgba(107, 101, 92, 0.8); }
.text-brand-text\/75 { color: rgba(37, 34, 30, 0.75); }

.to-\[\#1C1A17\] { --tw-gradient-to: #1C1A17 var(--tw-gradient-to-position); }
.top-\[5\%\] { top: 5%; }

.transition-\[border-color\,box-shadow\] { transition-property: border-color, box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.font-body { font-family: var(--font-body); }

/* Custom top padding for hero section to look more centered */
.hero-section-padding {
  padding-top: calc(7rem + 24px) !important;
}
@media (min-width: 640px) {
  .hero-section-padding {
    padding-top: calc(6rem + 24px) !important;
  }
}
