@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Caveat:wght@400;500&display=swap');
:root{color-scheme:dark;--bg:#020d1b;--text:#e9eaff;--muted:#bdc9df;--panel:#05172a;--border:#16446a;--blue:#0789ff;--cyan:#00c9f5;--shadow:#006dff33}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:radial-gradient(ellipse at 0 0,#123e73,transparent 55%),#010b16;color:var(--text);font-family:'DM Sans',Arial,sans-serif;font-size:15px;line-height:1.55;padding:22px 35px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}img{max-width:100%;display:block}p,h1,h2,h3{margin:0}h1,h2,h3,.wordmark{font-family:Manrope,Arial,sans-serif}h2{font-size:30px;line-height:1.2;letter-spacing:-1px;font-weight:800}p{color:var(--muted)}.page-shell{max-width:1280px;margin:auto;background:radial-gradient(ellipse at 80% 8%,#06294d80,transparent 30%),var(--bg);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 20px 90px #0005}.site-header{position:relative;z-index:5;padding:20px 55px 12px}.nav-shell{display:flex;align-items:center;justify-content:space-between;gap:25px}.wordmark{display:flex;align-items:center;white-space:nowrap;gap:7px;font-size:29px;font-weight:800;letter-spacing:-1.6px;line-height:1}.wordmark img{width:53px;height:60px;object-fit:contain}.wordmark>span>span{color:#008bff}.desktop-nav{display:flex;gap:30px;font-size:13px}.desktop-nav a{position:relative;padding:12px 0}.desktop-nav a[aria-current]:after{content:'';position:absolute;bottom:3px;left:-7px;right:-7px;height:2px;background:var(--cyan);box-shadow:0 0 10px var(--blue)}.nav-actions{display:flex;align-items:center;gap:15px}.theme-toggle{border:1px solid #386fcb;border-radius:30px;background:#020c1b;padding:3px;display:flex;align-items:center;gap:2px;font-size:20px;height:35px}.theme-toggle span{width:32px;height:27px;line-height:27px;border-radius:30px}.theme-toggle .moon{background:#e9f0ff;color:#0876ff;box-shadow:0 0 12px #3984ff}.theme-toggle .sun{color:#a1b8ef}.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span{display:block;width:20px;height:1px;margin:5px 0;background:var(--text)}.mobile-nav[hidden]{display:none}.mobile-nav{padding:16px 0;display:grid;gap:12px}.hero{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:380px;padding:28px 55px 24px}.hero-copy{position:relative;z-index:2;width:115%}h1{font-size:clamp(30px,3.2vw,45px);line-height:1.08;letter-spacing:-1.65px;font-weight:800}h1 span{color:var(--cyan)}.hero-copy>p{max-width:490px;margin-top:18px;font-size:15px;line-height:1.5}.hero-actions{display:flex;gap:16px;margin-top:22px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:10px 28px;min-height:42px;border-radius:50px;font-size:14px;font-weight:600;line-height:1.2;white-space:nowrap;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 0 22px #008dff60}.primary{background:linear-gradient(110deg,#0073ff,#00bcf0);border:1px solid #00b9ff;color:white;box-shadow:0 0 20px #0085ff35}.secondary{border:1px solid var(--cyan);background:#00102080;color:var(--text);box-shadow:inset 0 0 10px #0273be20}.hero-art{position:relative;width:130%;margin-left:-12%;pointer-events:none;align-self:stretch;display:flex;align-items:center}.hero-art:before{content:'';position:absolute;inset:-40px -80px;background:radial-gradient(ellipse,#007eff25,transparent 65%)}.handwritten{font-family:Caveat,cursive;color:#8bb2f2;line-height:1.05;font-size:27px;transform:rotate(-12deg)}.section{margin:0 55px}.eyebrow{text-transform:uppercase;letter-spacing:5px;color:#9db9f3;font-size:11px;font-weight:600;margin-bottom:7px}.services{padding-top:12px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.service-card{display:flex;align-items:flex-start;gap:18px;border:1px solid var(--border);border-radius:17px;padding:20px 18px;background:linear-gradient(125deg,#05182980,#08213a80);box-shadow:inset 0 1px #ffffff04}.service-card h3{font-size:16px;margin:4px 0 7px;font-weight:800;letter-spacing:-.3px}.service-card p{font-size:13px;line-height:1.55}.icon{flex:0 0 55px;height:55px;border-radius:50%;border:1px solid var(--cyan);background:radial-gradient(circle at 25% 10%,#01caff,#0649b2 48%,#001c52 90%);box-shadow:0 0 18px #007cff40;display:grid;place-items:center}.icon svg{width:31px;height:31px;stroke:#eef2ff;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.about{display:grid;grid-template-columns:220px 1fr 165px;gap:28px;align-items:center;padding-top:32px}.about-monogram{height:170px;border:1px solid #286695;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 100%,#124b80,#041324 75%)}.about-monogram img{height:95px;width:95px;object-fit:contain}.about-monogram span{color:#c6d9f3;text-align:center;font-size:12px;line-height:1.3;margin-top:6px}.about-copy h2{font-size:28px}.about-copy>p:last-child{margin-top:9px;font-size:14px}.about-note{font-size:25px}.contact{display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;padding:34px 0 28px;margin-top:20px}.contact:before{content:'';position:absolute;inset:-15px -55px 0;pointer-events:none;background:radial-gradient(ellipse at 70% 100%,#007bff38,transparent 60%);border-bottom:1px solid var(--border)}.contact>div,.contact>a{position:relative}.contact h2{font-size:27px}.contact p:not(.eyebrow){font-size:13px;margin-top:5px}.contact .primary{padding:13px 29px}footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:12px 55px 16px}footer .wordmark{font-size:21px;letter-spacing:-1px}footer .wordmark img{width:35px;height:38px}footer nav{display:flex;gap:25px;font-size:10px}footer>p{font-size:9px;text-align:right}footer small{display:block;text-transform:uppercase;letter-spacing:2px;font-size:7px;margin-top:4px}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip-link:focus{position:fixed;top:10px;left:10px;z-index:20;padding:12px;background:var(--bg)}[data-theme=light]{color-scheme:light;--bg:#edf5ff;--text:#0b1f44;--muted:#435979;--panel:#fff;--border:#a2c9e8}[data-theme=light] body{background:#d5e7f9}[data-theme=light] .page-shell{background:var(--bg)}[data-theme=light] .service-card{background:#ffffffb8}[data-theme=light] .secondary{background:#f9fcff}[data-theme=light] .eyebrow{color:#3369a8}[data-theme=light] .hero-art{width:100%;margin-left:0}[data-theme=light] .hero-copy{width:100%}[data-theme=light] .theme-toggle .moon{background:none;color:#a1b8ef;box-shadow:none}[data-theme=light] .theme-toggle .sun{background:#e9f0ff;color:#0876ff;box-shadow:0 0 12px #3984ff}
@media(min-width:1400px){.hero{min-height:410px}}
@media(max-width:1100px){body{padding:15px}.site-header{padding:20px 30px 10px}.hero{padding:28px 30px}.section{margin-left:30px;margin-right:30px}.desktop-nav{gap:20px}.service-card{gap:12px;padding:15px}.icon{flex-basis:45px;height:45px}.about{grid-template-columns:170px 1fr;gap:24px}.about-note{display:none}footer{padding-left:30px;padding-right:30px}.wordmark{font-size:25px}}
@media(max-width:800px){body{padding:0}.page-shell{border:0;border-radius:0}.site-header{padding:20px 22px 7px}.desktop-nav{display:none}.menu-toggle{display:block}.wordmark{font-size:24px;letter-spacing:-1.2px}.wordmark img{width:40px;height:45px}.nav-shell{gap:10px}.nav-actions{gap:8px}.theme-toggle{height:29px;font-size:17px}.theme-toggle span{width:24px;height:22px;line-height:22px}.hero{grid-template-columns:1fr;padding:25px 24px 0;min-height:0;overflow:hidden}.hero-copy{width:100%}h1{font-size:clamp(29px,5.7vw,43px);letter-spacing:-1px;line-height:1.1}.hero-copy>p{max-width:600px;font-size:14px;margin-top:15px}.hero-actions{gap:10px;margin-top:18px}.button{font-size:13px;padding:10px 23px}.hero-art{width:calc(100% + 48px);margin:0 -24px;height:auto;max-height:380px;overflow:hidden}.section{margin:0 24px}.services{padding-top:2px}h2{font-size:25px;letter-spacing:-.65px}.eyebrow{font-size:10px;letter-spacing:4px}.service-grid{grid-template-columns:1fr;gap:10px;margin-top:14px}.service-card{padding:15px;gap:16px;border-radius:12px;align-items:center}.service-card h3{margin:0 0 4px;font-size:16px}.service-card p{font-size:13px}.icon{flex-basis:47px;height:47px}.about{grid-template-columns:85px 1fr;align-items:start;gap:17px;padding-top:30px}.about-monogram{height:110px;margin-top:23px}.about-monogram img{width:67px;height:67px}.about-monogram span{display:none}.about-copy h2{font-size:23px}.about-copy>p:last-child{font-size:13px}.contact{display:block;padding:30px 0 25px;margin-top:15px}.contact h2{font-size:25px}.contact p:not(.eyebrow){font-size:13px;margin:10px 0 18px}.contact .primary{width:100%}footer{flex-direction:column;gap:15px;padding:18px 24px 24px}footer nav{font-size:11px;gap:24px}footer>p{text-align:center}footer .wordmark{font-size:23px}.contact:before{inset:0 -24px}[data-theme=light] .hero-art{width:100%;margin:20px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Level 1: direct feedback. Shine runs only on hover or keyboard focus. */
.button { position:relative; isolation:isolate; overflow:hidden; transition:transform 180ms ease, box-shadow 220ms ease, border-color 220ms ease, background-color 220ms ease; }
.button.primary { box-shadow:inset 0 1px 0 #ffffff50,0 0 20px #0085ff35; }
.button.primary::after { content:''; position:absolute; z-index:-1; pointer-events:none; inset:-70% auto -70% -65%; width:45%; background:linear-gradient(90deg,transparent,#d6ffff90,transparent); transform:skewX(-25deg); opacity:0; }
@keyframes button-shine { 0%{left:-65%;opacity:0} 15%{opacity:.85} 85%{opacity:.85} 100%{left:135%;opacity:0} }
.button.primary:focus-visible { transform:translateY(-3px); border-color:#b2f7ff; box-shadow:inset 0 1px #ffffff80,0 0 0 1px #4de5ff70,0 5px 24px #00c9f550; }
.button.primary:focus-visible::after { animation:button-shine 650ms ease-out; }
.button.secondary:focus-visible { transform:translateY(-2px); border-color:#96efff; box-shadow:inset 0 1px #ffffff18,0 5px 16px #00c9f526; }
/* Override legacy hover transforms so touch does not retain hover movement. */
@media (hover:none) { .button:hover{ transform:none; } }
@media (hover:hover) and (pointer:fine) {
  .button.primary:hover { transform:translateY(-3px); border-color:#b2f7ff; box-shadow:inset 0 1px #ffffff80,0 0 0 1px #4de5ff70,0 5px 24px #00c9f550; }
  .button.primary:hover::after { animation:button-shine 650ms ease-out; }
  .button.secondary:hover { transform:translateY(-2px); border-color:#96efff; box-shadow:inset 0 1px #ffffff18,0 5px 16px #00c9f526; }
  .service-card:hover{ transform:translateY(-3px); border-color:#3dacc9; box-shadow:inset 0 1px #c6f8ff15,0 6px 22px #00c9f51f; }
  .service-card:hover .icon svg { transform:translateY(-1px) rotate(-4deg); }
}
.button:active{ transform:translateY(0); }
.theme-toggle,.menu-toggle{ transition:box-shadow 180ms ease,color 180ms ease; }

.site-header { background:linear-gradient(115deg,#c3edff08,#041329bf); box-shadow:inset 0 -1px #7adeff15; backdrop-filter:blur(10px); }
.desktop-nav a,footer nav a,.mobile-nav a { transition:color 180ms ease,text-shadow 180ms ease; }
.desktop-nav a::after { content:''; position:absolute; bottom:3px; left:-7px; right:-7px; height:2px; background:var(--cyan); transform:scaleX(0); transform-origin:left; opacity:0; transition:transform 200ms ease,opacity 200ms ease; box-shadow:0 0 8px #00c9f54d; }
.desktop-nav a[aria-current]::after,.desktop-nav a:focus-visible::after { transform:scaleX(1); opacity:1; }
.mobile-nav a { border-left:2px solid transparent; padding:8px 12px; }
.mobile-nav a[aria-current] { border-color:var(--cyan); background:#00c9f50b; }
@media (hover:hover) and (pointer:fine) {
  .desktop-nav a:hover::after { transform:scaleX(1); opacity:1; }
  .desktop-nav a:hover,footer nav a:hover,.mobile-nav a:hover { color:var(--cyan); text-shadow:0 0 12px #00c9f535; }
}
/* Level 2: small, once-only entrances. Translate stays independent of hover transform. */
.service-card{ transition:transform 200ms ease,border-color 200ms ease,box-shadow 200ms ease; }
.icon svg { transition:transform 200ms ease; }
.reveal-pending { opacity:0; translate:0 12px; }
.reveal-pending.is-visible { opacity:1; translate:0 0; transition:opacity 520ms ease var(--reveal-delay,0ms),translate 520ms ease var(--reveal-delay,0ms); }
/* Never leave a focused control hidden while waiting for the observer. */
.reveal-pending:focus-within { opacity:1; translate:0 0; transition-delay:0ms; }
/* Level 3: one very faint moving light layer; no particles or perpetual control pulses. */
.page-shell { position:relative; isolation:isolate; }
.page-shell::before { content:''; position:absolute; z-index:-1; pointer-events:none; inset:0; background:radial-gradient(ellipse at 82% 15%,#00a9dc12,transparent 45%),linear-gradient(115deg,transparent 25%,#a2ebff05 48%,transparent 66%); transform-origin:top center; animation:ambient-drift 28s ease-in-out infinite alternate; }
@keyframes ambient-drift { from{transform:translateY(0);opacity:.45} to{transform:translateY(14px);opacity:.85} }
[data-theme=light] .site-header { background:linear-gradient(115deg,#ffffffc9,#dcecffb8); }
[data-theme=light] .desktop-nav a:hover,[data-theme=light] footer nav a:hover,[data-theme=light] .mobile-nav a:hover { color:#075c9e; }
footer small { text-transform:none; letter-spacing:.3px; font-size:9px; max-width:260px; }
@media(min-width:1400px) { }
@media(max-width:800px) {
  .menu-toggle { min-width:44px; min-height:44px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .reveal-pending { opacity:1!important; translate:none!important; }
  .button:hover,.button:focus-visible,.service-card:hover,.service-card:hover .icon svg { transform:none!important; }
}

/* Keep hover feedback smooth after an element has finished its entrance. */
.reveal-pending.is-visible {
  transition:opacity 520ms ease var(--reveal-delay,0ms),translate 520ms ease var(--reveal-delay,0ms),transform 200ms ease,border-color 200ms ease,box-shadow 200ms ease;
}
@media(prefers-reduced-motion:reduce) {
  .reveal-pending.is-visible { transition:none!important; }
}

/* Launch refinements: preserve the existing design while keeping content in bounds. */
.hero { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; }
.hero-copy { width:100%; min-width:0; }
.hero-art { width:100%; margin-left:0; min-width:0; }
.brand-panel { position:relative; display:grid; place-items:center; width:100%; aspect-ratio:3/2; overflow:hidden; border:1px solid #35b9df40; border-radius:16px; background:radial-gradient(ellipse at 50% 60%,#08759722,transparent 65%),linear-gradient(135deg,#0a294280,#031325); box-shadow:inset 0 1px #c5faff12; }
.brand-panel::before,.brand-panel::after { content:''; position:absolute; width:85%; height:62%; border:1px solid #40dfff20; border-radius:50%; transform:rotate(-24deg); pointer-events:none; }
.brand-panel::after { width:115%; height:85%; transform:rotate(24deg); border-color:#2a7fff18; }
.brand-panel img { position:relative; width:42%; height:auto; max-width:240px; object-fit:contain; }
.button.primary { background:linear-gradient(110deg,#0756be,#00647e); }
.button.primary::after { background:linear-gradient(90deg,transparent,#d6ffff24,transparent); }
[data-theme=light] h1 span { color:#006a83; }
[data-theme=light] .handwritten { color:#315e97; }
[data-theme=light] .brand-panel { background:radial-gradient(ellipse at center,#b5ddf250,transparent 70%),#e4effa; border-color:#7cafca; }
.contact-links { display:flex; flex-wrap:wrap; gap:8px 22px; }
.contact-links a { color:var(--text); text-decoration:underline; text-decoration-color:#00c9f590; text-underline-offset:4px; padding:5px 0; overflow-wrap:anywhere; }
.contact-links a:hover { text-decoration-color:currentColor; }
:is(.theme-toggle,.menu-toggle):focus-visible { box-shadow:0 0 14px #00c9f538; }
.hero-actions { flex-wrap:wrap; }
.nav-shell .wordmark { flex-shrink:0; }
.nav-actions { flex-shrink:0; }
@media(max-width:800px) {
 .hero { grid-template-columns:minmax(0,1fr); gap:24px; padding-bottom:20px; }
 .hero-art,[data-theme=light] .hero-art { width:100%; margin:0; max-height:none; }
 .brand-panel { height:210px; aspect-ratio:auto; }
 .brand-panel img { width:130px; }
 .contact-links { flex-direction:column; gap:4px; }
 .contact-links a { min-height:36px; }
 .hero-copy h1 { overflow-wrap:break-word; }
}
@media(max-width:380px) {
 .site-header { padding-left:16px; padding-right:16px; }
 .nav-shell { flex-wrap:wrap; gap:8px; }
 .wordmark { font-size:21px; letter-spacing:-1.2px; gap:4px; }
 .wordmark img { width:32px; height:38px; }
 .nav-actions { gap:2px; }
 .hero { padding-left:20px; padding-right:20px; }
 .hero-copy h1 { font-size:28px; }
 .hero-actions { flex-direction:column; align-items:stretch; gap:10px; }
 .hero-actions .button { min-height:44px; }
 footer nav { flex-wrap:wrap; justify-content:center; gap:12px 22px; }
 .about { grid-template-columns:65px minmax(0,1fr); gap:14px; }
 .about-monogram img { width:55px; height:55px; }
 .about-copy h2 { font-size:22px; }
}
