/* Shared public chrome. The original homepage art and content keep their own CSS. */
:root { --shell-cyan:#8ef0ff; --shell-amber:#ffc27a; --shell-ease:cubic-bezier(.22,1,.36,1); }
.public-header *, .public-footer * { box-sizing:border-box; }
.public-header { position:sticky; top:0; z-index:100; background:#070c12ed; border-bottom:1px solid #ffffff0a; backdrop-filter:blur(20px); }
.public-header-inner { width:min(1380px,calc(100% - 48px)); min-height:76px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.public-brand { position:relative; isolation:isolate; display:inline-block; flex:none; color:#f7fbff; font-size:23px; font-weight:800; line-height:1.3; letter-spacing:.155em; text-decoration:none; transform-origin:center; transition:transform .5s var(--shell-ease),letter-spacing .5s var(--shell-ease),filter .5s var(--shell-ease),color .3s; }
.public-brand::before { content:""; position:absolute; z-index:-1; inset:-13px -19px -12px; border-radius:999px; background:radial-gradient(ellipse at 35% 50%,#64e8ff33,transparent 46%),radial-gradient(ellipse at 72% 50%,#ffa04b1a,transparent 42%); filter:blur(13px); opacity:0; transform:scale(.72); transition:opacity .55s,transform .65s var(--shell-ease); pointer-events:none; }
.public-brand::after { content:""; position:absolute; left:-7%; right:-7%; bottom:-9px; height:1px; border-radius:999px; background:linear-gradient(90deg,transparent,#64e8ff26 12%,#8df0ff 38%,#fff 50%,#ffbf79 67%,#ffa04b1f 88%,transparent); box-shadow:0 0 12px #64e8ff6b,0 0 24px #ffa04b1f; opacity:0; transform:scaleX(.15); transition:opacity .45s,transform .7s var(--shell-ease); pointer-events:none; }
.public-brand:is(:hover,:focus-visible),.public-footer.is-pulsing .public-brand { color:transparent; background:linear-gradient(105deg,#fff 0%,#fff 22%,#8ef0ff 33%,#fff 43%,#ffc27a 54%,#fff 65%,#8ef0ff 76%,#fff 100%); background-size:285% 100%; background-clip:text; -webkit-background-clip:text; animation:public-brand-sweep 1.65s var(--shell-ease) infinite; transform:translateY(-1px) scale(1.045); letter-spacing:.175em; filter:drop-shadow(0 0 7px #ffffff1f) drop-shadow(0 0 14px #64e8ff38) drop-shadow(0 0 24px #ffa04b12); }
.public-brand:is(:hover,:focus-visible)::before,.public-footer.is-pulsing .public-brand::before { opacity:1; transform:scale(1); }
.public-brand:is(:hover,:focus-visible)::after,.public-footer.is-pulsing .public-brand::after { opacity:.95; transform:scaleX(1); }
@keyframes public-brand-sweep { from{background-position:185% 0} to{background-position:-85% 0} }
.public-nav { position:relative; display:flex; gap:7px; align-items:center; }
.public-nav-light { position:absolute; pointer-events:none; left:0; bottom:-16px; width:var(--light-width,0px); height:2px; transform:translateX(var(--light-left,0px)); border-radius:999px; background:linear-gradient(90deg,transparent,#8ef0ff,#fff,#ffc27a,transparent); box-shadow:0 0 14px #8ef0ff88,0 -9px 28px #8ef0ff33; opacity:0; transition:transform .55s var(--shell-ease),width .55s var(--shell-ease),opacity .25s; }
.public-nav.is-lit .public-nav-light { opacity:1; }
.public-nav a { position:relative; display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 15px; border-radius:12px; color:#bbc5ce; font-size:15px; font-weight:450; line-height:1.3; white-space:nowrap; text-decoration:none; background:transparent; transition:background .3s,color .3s,box-shadow .3s; }
.public-nav a::after { content:""; position:absolute; left:15px; right:15px; bottom:3px; height:1px; opacity:0; transform:scaleX(.2); background:linear-gradient(90deg,transparent,#8ef0ff,#fff,#ffc27a,transparent); transition:transform .45s var(--shell-ease),opacity .3s; box-shadow:0 2px 10px #8ef0ff66; }
.public-nav a[aria-current="page"] { color:#f4fbff; background:#8ef0ff07; }
.public-nav a[aria-current="page"]::after { opacity:.7; transform:scaleX(.65); }
.public-nav a:is(:hover,:focus-visible) { color:#fff; background:radial-gradient(ellipse at 30% 100%,#64e8ff1a,transparent 75%),#ffffff05; box-shadow:inset 0 1px 0 #8ef0ff16; }
.public-nav a:is(:hover,:focus-visible)::after { opacity:1; transform:scaleX(1); }
.public-menu { display:none; }
.public-header :focus-visible,.public-footer :focus-visible { outline:2px solid var(--shell-cyan); outline-offset:5px; }
.public-skip { position:fixed; top:10px; left:20px; z-index:300; padding:14px 18px; background:#8ef0ff; color:#041018; border-radius:12px; text-decoration:none; transform:translateY(-170%); }
.public-skip:focus { transform:none; }
.public-footer { position:relative; overflow:hidden; padding:50px 0 28px; background:radial-gradient(ellipse at 12% 0,#0d344755,transparent 55%),#070c12; border-top:1px solid #8ef0ff1f; color:#a9b8c3; }
.public-footer::before { content:""; position:absolute; inset:0 0 auto; height:1px; background:linear-gradient(90deg,transparent,#8ef0ff55 35%,#ffc27a55 68%,transparent); }
.public-footer-inner { width:min(1380px,calc(100% - 48px)); margin:auto; }
.public-footer-top { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.public-footer .public-brand { font-size:32px; }
.public-footer-links { display:flex; flex-wrap:wrap; gap:6px 24px; }
.public-footer-links a,.public-footer-legal a { display:inline-flex; align-items:center; min-height:44px; color:#b8c6d1; font-size:14px; text-decoration:none; transition:color .25s; }
.public-footer-links a:hover,.public-footer-legal a:hover { color:var(--shell-cyan); }
.public-footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:26px; padding-top:18px; border-top:1px solid #ffffff0a; }
.public-footer-legal { display:flex; flex-wrap:wrap; gap:4px 22px; }
.public-footer-legal a { font-size:12px; color:#8f9eaa; }
.public-footer-signal { position:absolute; top:0; left:0; width:30%; height:2px; background:linear-gradient(90deg,transparent,#8ef0ff,#fff,#ffc27a,transparent); box-shadow:0 0 24px #8ef0ff; opacity:0; pointer-events:none; }
.public-footer.is-pulsing .public-footer-signal { animation:public-signal 1.6s var(--shell-ease) both; }
@keyframes public-signal { 0%{transform:translateX(-100%);opacity:0} 15%{opacity:1} 85%{opacity:1} 100%{transform:translateX(440%);opacity:0} }

/* The four service heroes share dimensions, image treatment and section boundary. */
body .service-hero { position:relative; display:flex; align-items:center; min-height:calc(100svh - 76px); padding:0; overflow:hidden; background:radial-gradient(ellipse at 78% 42%,#64e8ff14,transparent 44%),linear-gradient(180deg,#0b1721,#07111a 72%,#05080d); border-bottom:1px solid #8ef0ff1f; }
body .service-hero::before { display:none; }
body .service-hero::after { content:""; position:absolute; z-index:3; left:12%; right:12%; bottom:0; width:auto; height:1px; transform:none; background:linear-gradient(90deg,transparent,#8ef0ff66,#ffc27a55,transparent); }
body .service-hero .service-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.85fr); gap:clamp(40px,5vw,76px); align-items:center; width:min(1380px,calc(100% - 48px)); margin:auto; padding:48px 0 56px; }
body .service-hero .service-hero-copy { transform:none; text-align:left; }
body .service-hero .service-hero-grid h1 { max-width:800px; margin:0; font-size:clamp(58px,6.8vw,102px); line-height:1.01; letter-spacing:-.06em; }
body .service-hero .service-hero-lead { max-width:650px; margin:30px 0 0; font-size:clamp(18px,1.48vw,22px); line-height:1.65; color:#b5c5d1; }
body .service-hero .service-hero-art { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:min(74svh,780px); min-height:0; margin:0; }
body .service-hero .service-hero-art::before { content:""; position:absolute; inset:12% -8% 6%; border-radius:45%; background:radial-gradient(ellipse,#64e8ff16,#ffa04b08 48%,transparent 72%); filter:blur(22px); pointer-events:none; }
body .service-hero .service-hero-art::after { display:none; }
body .service-hero .service-hero-art picture { display:contents; }
body .service-hero .service-hero-art img { display:block; position:relative; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; border-radius:30px; -webkit-mask-image:linear-gradient(#000 82%,#000d 92%,transparent 100%); mask-image:linear-gradient(#000 82%,#000d 92%,transparent 100%); filter:drop-shadow(0 24px 45px #0005); }
@media(min-width:961px) {
 .ai-page .ai-service--illustrated h2 { font-size:clamp(38px,4vw,56px); }
}
@media(max-width:1080px) {
 .public-header-inner { gap:18px; }
 .public-nav { gap:0; }
 .public-nav a { padding-inline:11px; font-size:14px; }
}
@media(max-width:960px) {
 .public-header-inner { min-height:72px; }
 .public-menu { display:flex; align-items:center; justify-content:center; min-width:84px; min-height:44px; padding:10px 15px; border:1px solid #8ef0ff30; border-radius:12px; color:#e6f8ff; background:#10202b; font:inherit; font-size:14px; cursor:pointer; }
 .public-nav { display:none; position:absolute; top:calc(100% + 8px); left:24px; right:24px; padding:12px; border:1px solid #8ef0ff30; border-radius:20px; background:#0b1721; box-shadow:0 20px 60px #0008; backdrop-filter:blur(24px); }
 .public-nav.is-open { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
 .public-nav-light { display:none; }
 .public-nav a { min-height:52px; justify-content:flex-start; padding:14px; font-size:16px; }
 .public-footer-top,.public-footer-bottom { align-items:flex-start; flex-direction:column; gap:18px; }
 .public-footer-links { gap:2px 22px; }
 .public-footer-bottom { margin-top:20px; gap:6px; }
 body .service-hero { min-height:0; }
 body .service-hero .service-hero-grid { grid-template-columns:1fr; padding:60px 0 40px; gap:34px; }
 body .service-hero .service-hero-grid h1 { font-size:clamp(48px,8.8vw,78px); max-width:760px; }
 body .service-hero .service-hero-art { height:650px; }
}
@media(max-width:620px) {
 .public-header-inner,.public-footer-inner { width:calc(100% - 40px); }
 .public-brand { font-size:22px; }
 .public-nav { left:16px; right:16px; }
 .public-nav a { font-size:14px; }
 .public-footer { padding:38px 0 24px; }
 .public-footer .public-brand { font-size:29px; }
 .public-footer-links { gap:0 20px; }
 .public-footer-legal { gap:0 18px; }
 body .service-hero .service-hero-grid { width:calc(100% - 40px); padding:42px 0 34px; gap:28px; }
 body .service-hero .service-hero-grid h1 { font-size:clamp(38px,10.7vw,62px); line-height:1.04; letter-spacing:-.055em; }
 body .service-hero .service-hero-lead { margin-top:24px; font-size:18px; line-height:1.6; }
 body .service-hero .service-hero-art { height:460px; }
 body .service-hero .service-hero-art img { border-radius:24px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 .public-header *,.public-footer * { animation:none!important; transition:none!important; }
 .public-brand:is(:hover,:focus-visible),.public-footer.is-pulsing .public-brand { transform:none; letter-spacing:.155em; }
 .public-footer.is-pulsing .public-footer-signal { animation:none; opacity:1; width:100%; }
}
