:root{--navy: #0f2a4a;--navy-700: #15375e;--navy-900: #0a1f38;--accent: #1f7ae0;--accent-dark: #1462bd;--teal: #0fa3a3;--ink: #16202e;--muted: #5a6b80;--line: #e4eaf1;--bg: #ffffff;--bg-soft: #f5f8fc;--bg-tint: #eef4fb;--shadow-sm: 0 1px 2px rgba(15,42,74,.06), 0 2px 8px rgba(15,42,74,.05);--shadow-md: 0 4px 14px rgba(15,42,74,.08), 0 10px 32px rgba(15,42,74,.07);--radius: 14px;--maxw: 1180px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}h1,h2,h3{line-height:1.15;letter-spacing:-.02em;color:var(--navy)}.promo{position:relative;background:var(--navy-900);color:#dbe7f5;font-size:13.5px;font-weight:500;text-align:center;padding:9px 44px;letter-spacing:.01em}.promo b{color:#fff;font-weight:700}.promo .sep{color:var(--accent);margin:0 8px}.promo-x{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#7f95b3;font-size:1.2rem;line-height:1;cursor:pointer;padding:0 6px}.promo-x:hover{color:#fff}header.site{position:sticky;top:0;z-index:50;background:#ffffffe0;backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}.nav{display:flex;align-items:center;justify-content:space-between;height:70px}.brand{display:flex;align-items:center;gap:11px}.brand .mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--navy) 0%,var(--accent) 130%);display:grid;place-items:center;color:#fff;font-weight:800;font-size:16px;box-shadow:var(--shadow-sm);letter-spacing:-.04em}.brand .name{font-weight:700;font-size:17px;color:var(--navy);letter-spacing:-.01em}.brand .name span{display:block;font-weight:500;font-size:11.5px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}nav.links{display:flex;align-items:center;gap:30px}nav.links a.navlink{font-size:15px;font-weight:500;color:#3a4859;transition:color .15s ease}nav.links a.navlink:hover{color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-weight:600;font-size:15px;border-radius:10px;padding:11px 20px;cursor:pointer;border:1px solid transparent;transition:all .18s ease;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px #1462bd4d,0 6px 18px #1f7ae047}.btn-primary:hover{background:var(--accent-dark);transform:translateY(-1px);box-shadow:0 4px 12px #1462bd59,0 10px 26px #1f7ae04d}.btn-secondary{background:#fff;color:var(--navy);border-color:var(--line);box-shadow:var(--shadow-sm)}.btn-secondary:hover{border-color:#c6d4e4;background:var(--bg-soft)}.btn-lg{padding:14px 26px;font-size:16px}.hero{position:relative;background:radial-gradient(1100px 500px at 78% -8%,var(--bg-tint) 0%,transparent 60%),linear-gradient(180deg,#fbfdff,#fff);overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(15,42,74,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(15,42,74,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(700px 400px at 80% 0%,#000 0%,transparent 70%);-webkit-mask-image:radial-gradient(700px 400px at 80% 0%,#000 0%,transparent 70%)}.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding-top:76px;padding-bottom:84px}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:20px}.eyebrow:before{content:"";width:26px;height:2px;background:var(--accent);border-radius:2px}.hero h1{font-size:54px;font-weight:800;margin-bottom:22px;letter-spacing:-.03em}.hero .lead{font-size:19px;color:#41526a;max-width:600px;margin-bottom:30px}.hero .lead b{color:var(--navy);font-weight:600}.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}.badges{display:flex;flex-wrap:wrap;gap:10px}.badge{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--navy-700);box-shadow:var(--shadow-sm)}.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--teal)}.hero-panel{background:linear-gradient(170deg,var(--navy) 0%,var(--navy-900) 100%);border-radius:18px;padding:32px;color:#e8f0fb;box-shadow:0 20px 50px #0f2a4a47,0 2px 6px #0f2a4a33;position:relative;overflow:hidden}.hero-panel:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;background:radial-gradient(circle,rgba(31,122,224,.5),transparent 70%);border-radius:50%}.hero-panel .label{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7fb0ec;margin-bottom:22px;position:relative}.metric-row{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px;position:relative}.metric{background:#ffffff0d;border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:16px}.metric .num{font-size:27px;font-weight:800;color:#fff;letter-spacing:-.02em}.metric .desc{font-size:12.5px;color:#aac4e3;margin-top:4px;line-height:1.4}.panel-exp{margin-top:16px;font-size:13.5px;color:#aac4e3;line-height:1.5;position:relative}.panel-foot{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);font-size:13.5px;color:#b9cee8;position:relative}.panel-foot b{color:#fff}section{padding:84px 0}.section-soft{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.sec-head{max-width:720px;margin-bottom:48px}.sec-head .kicker{font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.sec-head h2{font-size:38px;font-weight:800}.sec-head p{font-size:17px;color:var(--muted);margin-top:14px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;position:relative;overflow:hidden}.card:before{content:"";position:absolute;left:0;top:0;height:100%;width:3px;background:linear-gradient(var(--accent),var(--teal));opacity:0;transition:opacity .2s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:#d3e1f1}.card:hover:before{opacity:1}.card .ico{width:46px;height:46px;border-radius:11px;background:var(--bg-tint);color:var(--accent);display:grid;place-items:center;margin-bottom:18px}.card .ico svg{width:24px;height:24px}.card .num{font-size:12px;font-weight:700;color:#aab9cb;letter-spacing:.08em}.card h3{font-size:19px;font-weight:700;margin:6px 0 10px}.card p{font-size:14.5px;color:#4f6076;line-height:1.6}.card.approach{background:linear-gradient(165deg,var(--navy),var(--navy-900));border:none}.card.approach .num{color:#6fa3e0}.card.approach h3{color:#fff;margin-top:6px}.card.approach p{color:#bcd2ee}.about-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:56px;align-items:start}.about-body p{font-size:17px;color:#3c4d63;margin-bottom:18px}.about-body p:first-child{font-size:18.5px;color:var(--ink)}.about-body .uoft{font-weight:600;color:var(--navy)}.work-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden}.work-panel .wp-head{background:var(--navy);color:#fff;padding:18px 24px;font-weight:700;font-size:15px}.work-panel ul{list-style:none}.work-panel li{display:flex;align-items:flex-start;gap:13px;padding:16px 24px;border-bottom:1px solid var(--line);font-size:15px;font-weight:500;color:var(--ink)}.work-panel li:last-child{border-bottom:none}.work-panel li .chk{flex:none;width:22px;height:22px;border-radius:50%;background:var(--bg-tint);color:var(--accent);display:grid;place-items:center;margin-top:1px}.work-panel li .chk svg{width:13px;height:13px}.toolgroup{margin-bottom:26px}.toolgroup h4{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:12px;font-weight:700}.stack-wrap,.tools{display:flex;flex-wrap:wrap;gap:12px}.chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 16px;font-size:14.5px;font-weight:600;color:var(--navy-700);box-shadow:var(--shadow-sm);transition:all .15s ease}.chip:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.chip-ico{width:16px;height:16px;color:var(--muted);flex:none}.faq-list{display:grid;gap:14px;max-width:880px}details.faq{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .15s ease}details.faq[open]{border-color:#cfe0f2;box-shadow:var(--shadow-md)}details.faq summary{list-style:none;cursor:pointer;padding:20px 24px;font-weight:600;font-size:16.5px;color:var(--navy);display:flex;justify-content:space-between;align-items:center;gap:18px}details.faq summary::-webkit-details-marker{display:none}details.faq summary:hover{color:var(--accent)}details.faq summary:after{content:"+";color:var(--accent);font-size:24px;font-weight:400;line-height:1;flex:none;transition:transform .2s ease}details.faq[open] summary:after{content:"−"}details.faq[open] summary{border-bottom:1px solid var(--line)}.faq-a{padding:18px 24px 22px;color:#4f6076;font-size:15px;line-height:1.65}.contact-lead{font-size:17px;color:var(--muted);max-width:640px;margin-top:14px}.promo-note{display:flex;align-items:flex-start;gap:10px;background:var(--bg-tint);border:1px solid #d7e6f7;border-radius:12px;padding:14px 18px;color:#3c4d63;font-size:15px;max-width:680px;margin:22px 0 44px}.promo-note strong{color:var(--accent)}.promo-note-ico{width:20px;height:20px;color:var(--accent);flex:none;margin-top:2px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.contact-grid h3{font-size:18px;margin-bottom:16px;color:var(--navy)}.cal-embed{min-height:560px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}form.contact-form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:var(--shadow-md);display:grid;gap:18px}form.contact-form label{display:block;font-size:13.5px;font-weight:600;color:var(--navy);margin-bottom:7px}form.contact-form input,form.contact-form textarea{width:100%;font-family:var(--font);font-size:15px;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--bg-soft);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}form.contact-form input:focus,form.contact-form textarea:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #1f7ae021}form.contact-form textarea{resize:vertical;min-height:116px}form.contact-form .btn{width:100%}.contact-note{color:var(--muted);font-size:14px;margin-top:14px}footer.site{background:var(--navy-900);color:#b6cae3;padding:30px 0;font-size:14px}footer.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}footer.site .fbrand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700}footer.site .fbrand .mark{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--accent),var(--teal));display:grid;place-items:center;font-size:13px}footer.site .fsocial{display:flex;gap:18px}footer.site .fsocial a{color:#b6cae3;text-decoration:none;font-weight:600}footer.site .fsocial a:hover{color:#fff}@media (max-width: 980px){.hero .wrap{grid-template-columns:1fr;gap:40px;padding-top:56px;padding-bottom:60px}.hero h1{font-size:42px}.services-grid{grid-template-columns:1fr 1fr}.about-grid,.contact-grid{grid-template-columns:1fr;gap:36px}nav.links a.navlink{display:none}}@media (max-width: 620px){.services-grid{grid-template-columns:1fr}.hero h1{font-size:34px}footer.site .wrap{flex-direction:column}.promo{font-size:12px}section{padding:60px 0}}.blog-index{padding:72px 28px 90px}.blog-head{max-width:720px;margin-bottom:48px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12.5px;font-weight:700;color:var(--accent);margin-bottom:12px}.blog-head h1{font-size:46px;margin-bottom:14px}.blog-head .lede{color:var(--muted);font-size:18px;max-width:620px}.blog-index .empty{color:var(--muted)}.post-list{list-style:none}.post-row{border-top:1px solid var(--line)}.post-row:last-child{border-bottom:1px solid var(--line)}.post-row a{display:block;padding:28px 0;transition:padding-left .15s ease}.post-row a:hover{padding-left:8px}.post-row h2{font-size:24px;margin:8px 0}.post-row p{color:var(--muted);max-width:680px}.post-meta{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13.5px;font-weight:600}.post-meta .dot{color:var(--line)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.tag{font-size:12px;font-weight:600;color:var(--accent-dark);background:var(--bg-tint);border:1px solid var(--line);padding:3px 10px;border-radius:999px}.post{max-width:760px;padding:56px 28px 90px}.post .back{color:var(--accent-dark);font-weight:600;font-size:14px}.post .back:hover{text-decoration:underline}.post-head{margin:26px 0 36px}.post-head h1{font-size:40px;margin-top:12px}.prose{font-size:18px;color:var(--ink)}.prose>*+*{margin-top:1.25em}.prose h2{font-size:27px;margin-top:1.9em}.prose h3{font-size:21px;margin-top:1.6em}.prose a{color:var(--accent-dark);text-decoration:underline;text-underline-offset:2px}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.45em}.prose blockquote{border-left:3px solid var(--accent);padding-left:18px;color:var(--muted);font-style:italic}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--bg-soft);padding:2px 6px;border-radius:6px}.prose pre{background:var(--navy-900);color:#e6eefb;padding:18px 20px;border-radius:var(--radius);overflow-x:auto;font-size:14.5px}.prose pre code{background:none;padding:0;color:inherit}.prose img{max-width:100%;border-radius:var(--radius)}.post-cta{margin-top:56px;padding:30px 32px;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius)}.post-cta h3{font-size:21px;margin-bottom:8px}.post-cta p{color:var(--muted);margin-bottom:18px}@media (max-width: 620px){.blog-head h1{font-size:34px}.post-head h1{font-size:30px}.prose{font-size:17px}}
