/* TechFiscal enterprise direction. */
:root{--blue:#2855ad;--ink:#131f32;--muted:#5e6775;--line:#d8dee6;--paper:#f5f6f8;--navy:#0b1d33}body{background:#fff}html{scroll-behavior:smooth;scroll-padding-top:110px}h2{font-weight:500;line-height:1.22;letter-spacing:-1.9px}h3{font-weight:500}
.utility-bar{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:11px 6%;background:var(--navy);color:#d4dce7;font-size:12px;letter-spacing:.15px}.utility-bar a{color:white}.header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);height:95px;padding:0 6%;border-bottom:1px solid #e8ebef;transition:box-shadow .3s}.is-scrolled .header{box-shadow:0 4px 20px #0b1d3308}.brand{font-weight:750;font-size:28px;letter-spacing:-1.4px}.brand-icon{background:var(--navy);margin-right:11px}.header nav{gap:36px;font-size:14px;font-weight:400}.header nav a{padding:12px 0}.button{gap:30px;min-height:54px;font-size:14px;font-weight:550;transition:background .25s,box-shadow .25s}.button:hover{transform:none}.button>span{font-size:20px;transition:transform .3s}.button:hover>span{transform:translate(2px,-2px)}.blue:hover{background:#1e448e;box-shadow:0 5px 15px #19376115}.dark{background:var(--navy)}.small{min-height:46px;font-size:13px;padding:12px 18px}
.hero{padding:70px 9% 60px;background:#fff;color:var(--ink);overflow:visible}.hero-top{margin-bottom:27px;padding:0}.eyebrow,.section-label{font-size:11px;letter-spacing:1.5px;font-weight:500;color:var(--muted)}.square{width:6px;height:6px}.hero-grid{grid-template-columns:1.65fr 1fr;gap:60px;align-items:start;padding:0}h1{font-size:clamp(50px,5.2vw,84px);font-weight:500;letter-spacing:-3.8px;line-height:1.12;margin:0}h1>span{color:var(--blue)}.hero-copy{padding-top:5px}.hero-copy h2{font-family:'DM Sans',Arial,sans-serif;font-size:20px;font-weight:500;letter-spacing:-.3px;line-height:1.55;margin-bottom:14px}.hero-copy>p{font-size:15px;color:var(--muted);line-height:1.8;margin-bottom:25px;max-width:420px}.hero-secondary{display:flex;width:max-content;align-items:center;gap:22px;font-size:13px;margin-top:20px;color:var(--muted)}.hero-secondary:hover{color:var(--blue)}
.architecture-banner{position:relative;height:440px;margin:0 24px;overflow:hidden;background:#253a50;border-radius:3px}.architecture-banner>img{position:absolute;width:100%;height:125%;top:-12%;left:0;object-fit:cover;object-position:center 47%;will-change:transform}.architecture-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,21,40,.4),transparent 75%),linear-gradient(0deg,rgba(6,21,40,.65),transparent 65%);pointer-events:none}.banner-caption{position:absolute;left:7.7%;bottom:48px;color:#fff;z-index:2}.banner-caption>span{font-size:10px;letter-spacing:1.9px;color:#d1dce8}.banner-caption p{font-family:'Manrope',Arial,sans-serif;font-size:29px;line-height:1.35;letter-spacing:-.7px;margin:17px 0 0}.banner-scroll{position:absolute;left:50%;bottom:45px;width:44px;height:44px;border:1px solid #ffffff70;color:white;border-radius:50%;display:grid;place-items:center;z-index:2;transition:background .2s}.banner-scroll:hover{background:#ffffff25}.banner-services{position:absolute;right:7.7%;bottom:48px;z-index:2;color:#fff;width:225px}.banner-services a{display:flex;justify-content:space-between;gap:25px;padding:15px 0;border-bottom:1px solid #ffffff50;font-size:15px}.banner-services span{font-size:11px;color:#d6e1ef}.software{padding:38px 9%;gap:65px;border-bottom:1px solid #e5e8ed}.software>p{font-size:10px;letter-spacing:1.1px;line-height:1.8}.software>div>span{font-size:20px;font-weight:650;letter-spacing:-.7px;color:#586372}
.section{padding:110px 9%}.intro-grid{grid-template-columns:1.15fr 1fr;gap:80px;margin-bottom:42px}.intro-grid h2{margin-bottom:0}.intro-grid>p{margin-bottom:0;font-size:16px;max-width:440px}.service-cards{gap:60px}.service-card,.wisp-card{padding:26px 0 0;border:0;border-top:1px solid var(--ink);background:white;scroll-margin-top:120px;display:flex;flex-direction:column}.card-top{font-size:11px;letter-spacing:1.3px;margin-bottom:25px}.line-icon{display:none}.service-card h3{font-size:28px;line-height:1.35;font-weight:500;letter-spacing:-1px;margin-bottom:18px}.service-card>p{max-width:480px}.service-card ul{margin:15px 0 28px}.service-card li{line-height:1.7;padding:8px 0 8px 23px;margin:0}.service-card li:before{font-size:12px}.service-cta{border-color:var(--line);padding:20px 0;font-size:14px;font-weight:500;margin-top:auto}.service-cta span{font-size:20px;transition:transform .3s}.service-cta:hover span{transform:translate(3px,-3px)}.together{gap:25px;margin-top:30px;background:var(--paper);padding:23px 28px;border:0}.together-mark{font-size:28px;font-weight:400}.together p{font-size:13px;max-width:640px}.together a{font-size:13px}.together a span{margin-left:15px}
.difference{background:var(--navy);position:relative;overflow:hidden}.difference .section-label{color:#a8b6c9}.difference .square{background:#7999cf}.difference-grid{gap:90px}.difference h2{font-size:clamp(36px,3.6vw,55px);color:#eef2f8;letter-spacing:-1.9px;line-height:1.22}.large-copy{font-size:19px;color:#c0cbd9;line-height:1.75;margin-bottom:36px}.reason{gap:28px;border-color:#ffffff25;padding:26px 0 0;margin-top:24px}.reason>span{font-size:11px;letter-spacing:1px;color:#859ab7}.reason h3{font-size:17px;line-height:1.5;font-weight:500;letter-spacing:-.2px}.reason p{color:#afbdce;line-height:1.85}.section-heading h2{margin-bottom:0}.text-link{padding-bottom:5px;font-weight:400}.steps{gap:45px;margin-top:55px}.step-number{font-size:33px;font-weight:400;letter-spacing:-1px;margin-bottom:27px}.step-number>span{font-size:18px;color:#7d899c}.steps h3{font-size:18px;font-weight:500;letter-spacing:-.5px;margin-bottom:15px}.steps p{line-height:1.85}.faq{grid-template-columns:.9fr 1.1fr}.faq summary{padding:24px 0;font-size:15px;line-height:1.6}.faq summary span{font-weight:400;transition:transform .25s}.faq details p{line-height:1.85}.contact{gap:80px}.contact h2{font-size:clamp(35px,3.4vw,50px)}.contact-copy>p{font-size:16px}form{padding:35px;border-color:#e6e9ee}form h3{font-size:21px;font-weight:500;letter-spacing:-.6px}form label,legend{font-size:14px;font-weight:400}.choices span{font-size:13px;min-height:45px}.choices input:checked+span{background:#edf2fa}.form-note{line-height:1.75}footer{background:#081728;color:#f4f6fa;padding:55px 9% 25px}.footer-top .brand-icon{background:#fff;color:var(--navy)}.footer-top p{font-size:18px;line-height:1.65;color:#c6d0df}.footer-top>a:last-child{color:#c6d0df}.footer-bottom{border-color:#ffffff25;color:#9caabd}
.reveal-pending{opacity:0;transform:translateY(34px) scale(.975);filter:blur(3px);transition:opacity .85s cubic-bezier(.2,.65,.3,1),transform .95s cubic-bezier(.16,1,.3,1),filter .7s ease;transition-delay:var(--reveal-delay,0ms)}.reveal-pending.is-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}

/* Opening composition arrives in a controlled sequence. */
.motion-ready .story-opening .hero-top{animation:heroPop .72s .08s both cubic-bezier(.16,1,.3,1)}
.motion-ready .story-opening h1{animation:heroPop .9s .16s both cubic-bezier(.16,1,.3,1)}
.motion-ready .story-opening .hero-copy{animation:heroPop .9s .28s both cubic-bezier(.16,1,.3,1)}
.motion-ready .hero-landscape{animation:imagePop 1.05s .2s both cubic-bezier(.16,1,.3,1)}
@keyframes heroPop{from{opacity:0;transform:translateY(28px) scale(.97);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes imagePop{from{opacity:0;transform:translateY(38px) scale(.965);clip-path:inset(10% 3% 0 3% round 24px)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0 round 0)}}
@media(min-width:1700px){.hero,.section,.software,footer{padding-left:calc((100vw - 1400px)/2);padding-right:calc((100vw - 1400px)/2)}.hero-grid{grid-template-columns:1.7fr 1fr}.architecture-banner{height:500px}.banner-caption{left:calc((100vw - 1448px)/2)}.banner-services{right:calc((100vw - 1448px)/2)}}
@media(max-width:1100px){.header{padding:0 5%;gap:22px}.header nav{gap:22px}.hero,.section,.software,footer{padding-left:6%;padding-right:6%}.hero-grid{gap:35px;grid-template-columns:1.35fr 1fr}h1{font-size:clamp(48px,5.5vw,64px);letter-spacing:-2.8px}.hero-copy h2{font-size:18px}.intro-grid,.difference-grid,.contact{gap:45px}.service-cards{gap:35px}.software{gap:30px}.software>div{flex-wrap:wrap;gap:18px}.software>div>span{font-size:18px}.together{flex-wrap:wrap}.together p{flex:1}.together a{margin-left:48px}.faq{gap:40px}form{padding:25px}.form-grid{grid-template-columns:1fr;gap:0}}
@media(max-width:760px){html{scroll-padding-top:90px}.utility-bar{padding:10px 6%;font-size:10px}.utility-bar>span{max-width:220px;line-height:1.5}.utility-bar a{white-space:nowrap}.header{height:78px;padding:0 6%}.brand{font-size:25px}.brand-icon{width:29px;height:29px;margin-right:9px}.mobile-nav{position:sticky;top:78px;background:#fff;z-index:29}.hero{padding:45px 6% 40px}.hero-top{margin-bottom:25px;padding:0}.eyebrow{font-size:9px;letter-spacing:1px;line-height:1.7}.hero-grid{grid-template-columns:1fr;gap:30px;padding:0}h1{font-size:clamp(42px,8.8vw,64px);letter-spacing:-2.2px;line-height:1.16}.hero-copy{padding-top:0}.hero-copy h2{font-size:20px}.hero-copy>p{font-size:16px;max-width:550px}.hero-copy .button{font-size:14px}.hero-secondary{display:flex;margin:18px 0 0}.architecture-banner{height:340px;margin:0 12px}.banner-caption{left:7%;bottom:30px}.banner-caption>span{font-size:9px}.banner-caption p{font-size:23px;letter-spacing:-.5px}.banner-services{display:none}.banner-scroll{left:auto;right:7%;bottom:33px}.software{padding:28px 6%;display:block}.software>p{margin-bottom:20px;font-size:9px}.software>p br{display:none}.software>div{justify-content:flex-start;gap:18px 26px}.software>div>span{font-size:16px}.section{padding:65px 6%}.section-label{font-size:10px;letter-spacing:1.1px;margin-bottom:25px}h2{font-size:34px;letter-spacing:-1.4px}.intro-grid,.difference-grid,.faq,.contact{grid-template-columns:1fr;gap:25px}.intro-grid{margin-bottom:30px}.service-cards{grid-template-columns:1fr;gap:25px}.service-card h3{font-size:27px}.card-top{font-size:10px}.together{padding:22px;gap:15px}.together p{font-size:14px}.together a{margin-left:31px;white-space:normal;font-size:14px}.difference h2{font-size:37px;margin-bottom:0}.large-copy{font-size:18px}.reason{gap:20px}.text-link{display:inline-block;margin-top:25px}.steps{grid-template-columns:1fr;gap:15px;margin-top:35px}.step-number{font-size:30px;margin-bottom:20px}.faq{gap:22px}.contact{gap:35px}.contact h2{font-size:36px}.contact form{padding:24px}footer{padding:40px 6% 24px}.footer-top p{font-size:16px}}
@media(max-width:360px){h1{font-size:38px}.contact form{padding:18px}.choices span{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-pending{opacity:1!important;transform:none!important;filter:none!important}.motion-ready .story-opening .hero-top,.motion-ready .story-opening h1,.motion-ready .story-opening .hero-copy,.motion-ready .hero-landscape{animation:none!important}.architecture-banner>img{transform:none!important;will-change:auto}}@media print{.reveal-pending{opacity:1!important;transform:none!important;filter:none!important}.header{position:static}.architecture-banner>img{transform:none!important}}
@media(max-width:760px){.banner-scroll{top:24px;bottom:auto}}

/* Quiet, architectural navigation aligned to the editorial hero. */
.header{display:grid;grid-template-columns:1fr auto 1fr;height:86px;padding:0 5%;gap:32px;background:rgba(255,255,255,.9);border-bottom:1px solid rgba(20,35,56,.11);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);transition:height .35s cubic-bezier(.16,1,.3,1),background .3s ease,box-shadow .3s ease,border-color .3s ease}
.is-scrolled .header{height:74px;background:rgba(255,255,255,.965);border-color:rgba(20,35,56,.14);box-shadow:0 12px 36px rgba(18,36,61,.07)}
.header .brand{justify-self:start;font-size:25px;font-weight:720;letter-spacing:-1.25px;color:#111e32}
.header .brand-icon{position:relative;width:36px;height:36px;margin-right:12px;padding:0;border-radius:2px;background:#0b1d33;font-size:0;letter-spacing:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.header .brand-icon:before{content:'TF';font-family:'Manrope',Arial,sans-serif;font-size:13px;font-weight:800;letter-spacing:-1px;color:#fff}
.header .brand-icon:after{content:'';position:absolute;left:7px;right:7px;bottom:6px;height:2px;background:#4f75cf}
.header .brand-icon span{display:none}
.header nav{justify-self:center;display:flex;align-items:center;gap:2px;padding:4px;border:1px solid #dbe1e9;border-radius:999px;background:rgba(248,250,252,.86);font-size:12px;font-weight:500;color:#344156}
.header nav a{position:relative;padding:9px 17px;border-radius:999px;transition:color .25s ease,background .25s ease,box-shadow .25s ease}
.header nav a:hover{color:#14223a;background:#fff;box-shadow:0 3px 12px rgba(17,34,57,.07)}
.header>.button{justify-self:end;min-height:46px;padding:5px 6px 5px 20px;border-radius:2px;gap:20px;font-size:12px;letter-spacing:.05px;box-shadow:0 7px 18px rgba(11,29,51,.12)}
.header>.button>span{display:grid;place-items:center;width:34px;height:34px;border-radius:1px;background:#fff;color:#0b1d33;font-size:16px}
.header>.button:hover{background:#132b49;box-shadow:0 10px 25px rgba(11,29,51,.18)}
.header>.button:hover>span{transform:translate(1px,-1px)}
@media(max-width:920px) and (min-width:761px){.header{padding:0 4%;gap:18px}.header nav a{padding:9px 11px}.header>.button{padding-left:14px;gap:12px}.header .brand{font-size:22px}.header .brand-icon{width:32px;height:32px;margin-right:9px}}
@media(max-width:760px){.header{display:flex;height:76px;padding:0 5%;background:rgba(255,255,255,.95)}.is-scrolled .header{height:68px}.header .brand{font-size:23px}.header .brand-icon{width:33px;height:33px;margin-right:10px}.menu-toggle{display:flex;align-items:center;gap:12px;padding:8px 10px 8px 14px;border:1px solid #d9e0e9;border-radius:999px;color:#28364a;font-size:11px;letter-spacing:.3px;background:#fff}.menu-toggle span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#0b1d33;color:#fff;font-size:16px;line-height:1}.mobile-nav{position:sticky;top:68px;z-index:29;padding:18px 5% 24px;gap:0;background:rgba(255,255,255,.97);backdrop-filter:blur(18px);border-bottom:1px solid #dfe4eb;box-shadow:0 18px 30px rgba(18,36,61,.08)}.mobile-nav a{padding:16px 0;border-bottom:1px solid #e7eaf0;font-size:15px}.mobile-nav a:last-child{margin-top:14px;padding:14px 16px;border:0;background:#0b1d33;color:#fff;text-align:center}}
