:root {
  color-scheme:dark;
  --bg:#090e18; --surface:#111b2a; --text:#edf3fc; --muted:#a5b5c9;
  --line:#28364a; --blue:#2364d9; --cyan:#70dbea; --max:1200px;
  --radius:18px; --shadow:0 18px 48px #00000038;
  font-family:Inter, 'Segoe UI', Arial, sans-serif;
  font-synthesis:none; color:var(--text); background:var(--bg);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:104px; }
body { margin:0; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
a,button { touch-action:manipulation; }
button { cursor:pointer; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { text-wrap:balance; }
p { line-height:1.75; }
h2 { font-size:clamp(2rem,3.7vw,3.15rem); line-height:1.15; letter-spacing:-.045em; font-weight:650; margin-bottom:24px; }
h3 { line-height:1.4; font-weight:650; }
a:hover { color:var(--cyan); }
:where(a,button,input,select,textarea):focus-visible { outline:3px solid #3281f3; outline-offset:5px; }
[hidden] { display:none!important; }
.container { width:min(var(--max),calc(100% - 80px)); margin-inline:auto; }
.section { padding-block:100px; }
.eyebrow { display:flex; align-items:center; gap:10px; font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); margin-bottom:22px; line-height:1.6; }
.muted { color:var(--muted); max-width:490px; }
.accent { color:var(--cyan); }
.skip-link { position:fixed; top:-100px; left:16px; z-index:100; background:var(--blue); color:white; padding:16px; border-radius:8px; }
.skip-link:focus { top:16px; }
.site-header { position:sticky; top:0; z-index:20; background:#090e18ed; border-bottom:1px solid var(--line); backdrop-filter:blur(16px); }
.nav-row { min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:10px; white-space:nowrap; font-size:1.5rem; font-weight:700; letter-spacing:-.05em; }
.brand img { object-fit:contain; }
.brand-divider { color:#8a9aac; margin-inline:4px; font-weight:300; }
.brand-ti { font-size:1.1rem; font-weight:450; letter-spacing:0; }
nav { display:flex; align-items:center; gap:28px; font-size:.8rem; font-weight:550; }
nav>a:not(.button) { position:relative; padding-block:16px; }
nav>a[aria-current] { color:var(--cyan); }
nav>a:not(.button)::after { content:''; position:absolute; bottom:7px; left:0; width:100%; height:2px; background:var(--cyan); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
nav>a:hover::after,nav>a[aria-current]::after { transform:scaleX(1); }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; padding:17px 23px; border:1px solid transparent; border-radius:9px; background:var(--blue); color:white; font-size:.83rem; font-weight:650; line-height:1.4; transition:background .2s,transform .2s,box-shadow .2s; }
.button:hover { background:#1b55bf; color:white; transform:translateY(-2px); box-shadow:0 8px 22px #145bd726; }
.button:disabled { opacity:.5; cursor:default; transform:none; }
.button-small { padding:13px 17px; font-size:.75rem; }
.text-link { display:inline-flex; align-items:center; gap:18px; font-size:.83rem; font-weight:650; padding-block:12px; }
.text-link span { color:var(--cyan); }
.text-link span,.button span { transition:transform .2s; }
.text-link:hover span,.button:hover span { transform:translate(3px,-2px); }
.menu-toggle { border:1px solid var(--line); background:var(--surface); color:var(--text); padding:12px; border-radius:8px; }
.hero { position:relative; overflow:hidden; isolation:isolate; background:#090e18; }
.hero-image { position:absolute; inset:42px 40px 90px 53%; z-index:-2; border-radius:24px; overflow:hidden; background:#0c1e33; }
.hero-image img { width:100%; height:100%; object-fit:cover; opacity:.8; }
.hero-shade { position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,#090e18 0%,#090e18 36%,#090e18eb 46%,#090e1826 75%),linear-gradient(0deg,#090e18,transparent 35%); }
.hero-content { padding-block:96px 60px; }
.hero h1 { max-width:670px; font-size:clamp(3rem,5.6vw,5rem); font-weight:650; letter-spacing:-.06em; line-height:1.06; margin-bottom:28px; }
.hero-description { max-width:475px; color:var(--muted); font-size:1.02rem; }
.status-dot { width:7px; height:7px; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 5px #70dbea12; flex-shrink:0; }
.actions { display:flex; align-items:center; gap:26px; margin-top:32px; }
.hero-location { color:var(--muted); font-size:.76rem; margin-top:36px; }
.hero-location span { color:var(--cyan); margin-right:8px; }
.hero-bottom { display:flex; justify-content:space-between; gap:24px; border-top:1px solid var(--line); padding-block:22px; color:var(--muted); font-size:.65rem; letter-spacing:.12em; }
.capabilities { border-block:1px solid var(--line); background:var(--surface); }
.capabilities .container { display:grid; grid-template-columns:repeat(4,1fr); }
.capabilities span { display:flex; justify-content:center; align-items:center; gap:10px; padding:25px 10px; font-size:.76rem; border-right:1px solid var(--line); }
.capabilities span:first-child { border-left:1px solid var(--line); }
.capabilities span::before { content:'↗'; color:var(--cyan); }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:50px; margin-bottom:42px; }
.section-heading h2 { margin:0; }
.section-heading>p { max-width:360px; margin-bottom:0; color:var(--muted); font-size:.91rem; }
.services { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.service { position:relative; display:flex; flex-direction:column; padding:28px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); transition:transform .25s,border-color .25s,box-shadow .25s; }
.service:hover { transform:translateY(-4px); border-color:#486788; box-shadow:var(--shadow); }
.service-photo { width:100%; aspect-ratio:2.4; object-fit:cover; border-radius:10px; margin-bottom:24px; }
.service-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.service-icon { width:40px; height:40px; padding:8px; color:var(--cyan); background:#192e43; border-radius:10px; }
.service-top>span { font:.75rem monospace; color:#93a6bd; }
.service h3 { font-size:1.35rem; letter-spacing:-.025em; margin-bottom:12px; }
.service>p { color:var(--muted); font-size:.87rem; margin-bottom:18px; }
.service ul { display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; list-style:none; margin:0 0 24px; padding:0; }
.service li { position:relative; padding-left:15px; color:var(--muted); font-size:.74rem; line-height:1.6; }
.service li::before { content:'·'; position:absolute; left:0; color:var(--cyan); font-weight:700; }
.service .text-link { margin-top:auto; border-top:1px solid var(--line); padding-top:20px; }
.approach { background:#0e1827; border-block:1px solid var(--line); }
.approach-grid,.quote-section { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.approach .text-link:hover { color:#8fc3ff; }
.approach-photo { width:100%; aspect-ratio:2; object-fit:cover; border-radius:12px; margin-top:28px; }
.principles { padding-top:40px; }
.principles article { display:flex; gap:24px; border-bottom:1px solid #ffffff26; padding:30px 0; }
.principles article:first-child { padding-top:0; }
.principles article>span { color:var(--cyan); font:.75rem monospace; padding-top:5px; }
.principles h3 { font-size:1.15rem; margin-bottom:10px; }
.principles p { color:var(--muted); font-size:.88rem; margin:0; }
.process { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:0; }
.process li { position:relative; border-top:1px solid var(--line); padding-top:24px; }
.process span { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; color:var(--cyan); background:#192e43; font:.75rem monospace; }
.process h3 { font-size:1rem; margin:22px 0 12px; }
.process p { color:var(--muted); font-size:.82rem; }
.projects-section { background:#0c1421; border-block:1px solid var(--line); }
.projects { display:grid; gap:28px; }
.project { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); align-items:center; gap:40px; margin:0; padding:24px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.project-link { display:block; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#0a1220; }
.project img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.project-zoom { display:block; padding:13px 16px; color:#dbe7f5; font-size:.7rem; text-align:right; }
.project figcaption { padding:8px 12px 8px 0; }
.project-number { display:block; color:var(--muted); font:.65rem monospace; letter-spacing:.12em; margin-bottom:22px; }
.project small { color:var(--cyan); font-size:.67rem; letter-spacing:.07em; text-transform:uppercase; }
.project h3 { font-size:clamp(1.3rem,2.1vw,1.8rem); letter-spacing:-.035em; margin:14px 0; }
.project figcaption>p { color:var(--muted); font-size:.85rem; }
.project-stats { display:grid; grid-template-columns:1fr 1fr; gap:16px; border-top:1px solid var(--line); padding-top:18px; margin-block:20px; }
.project-stats>div { display:flex; flex-direction:column-reverse; gap:6px; }
.project-stats dt { font-size:.68rem; color:var(--muted); }
.project-stats dd { margin:0; font-size:1.8rem; color:var(--cyan); }
.brands { padding-block:54px; border-bottom:1px solid var(--line); }
.brands .eyebrow { justify-content:center; color:var(--muted); font-size:.64rem; }
.brand-list { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.brand-card { display:grid; place-items:center; min-width:0; min-height:100px; padding:18px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.brand-card img { width:100%; height:56px; object-fit:contain; filter:none; opacity:1; transition:none; }
.quote-photo { width:100%; max-height:200px; object-fit:cover; border-radius:12px; margin-top:24px; }
.quote-note { display:flex; gap:16px; margin-top:25px; padding-top:20px; border-top:1px solid var(--line); }
.quote-note>span { color:var(--cyan); }
.quote-note p { color:var(--muted); font-size:.78rem; margin:0; }
form { padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow); }
.form-heading { display:flex; justify-content:space-between; gap:16px; margin-bottom:28px; }
.form-heading h3 { font-size:1.12rem; margin:0; }
.form-heading>span { color:var(--cyan); }
.form-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
label { display:block; font-size:.76rem; font-weight:600; margin-bottom:10px; }
label span { font-size:.64rem; color:var(--muted); font-weight:400; }
input,select,textarea { width:100%; min-width:0; padding:14px; margin-bottom:22px; border:1px solid #42536b; border-radius:8px; background:#0b1320; color:var(--text); font-size:.875rem; transition:border-color .2s,box-shadow .2s; }
input:focus,select:focus,textarea:focus { border-color:var(--blue); }
input::placeholder,textarea::placeholder { color:#96a8bf; }
textarea { resize:vertical; }
form>.button { width:100%; }
.form-help,#quote-status { color:var(--muted); font-size:.72rem; margin:16px 0 0; }
#quote-send { margin-top:18px; }
.contact-section { background:#101e31; border-block:1px solid var(--line); padding-block:60px; }
.contact-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.contact-heading h2 { font-size:2.3rem; }
.contact-heading p { color:var(--muted); font-size:.85rem; }
.contact-links { display:grid; grid-template-columns:1fr 1.4fr 1fr; gap:32px; margin-top:20px; }
.contact-links a { border-top:1px solid #ffffff30; padding-block:22px; font-size:1.12rem; overflow-wrap:anywhere; }
.contact-links a:hover { color:var(--cyan); }
.contact-links span { display:block; color:var(--muted); font-size:.68rem; margin-bottom:12px; }
/* Footer */
.site-footer { position:relative; overflow:hidden; }
.footer-glow { height:3px; background:linear-gradient(90deg,transparent 0%,#2364d9 20%,#70dbea 50%,#2364d9 80%,transparent 100%); opacity:.7; }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:40px; padding-block:56px 40px; }
.footer-brand p { color:var(--muted); font-size:.875rem; margin:16px 0 20px; line-height:1.7; }
.footer-social { display:flex; gap:14px; }
.footer-social-icon { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; color:var(--muted); transition:color .25s,border-color .25s,background .25s,transform .25s,box-shadow .25s; }
.footer-social-icon:hover { color:var(--cyan); border-color:var(--cyan); background:#70dbea10; transform:translateY(-3px); box-shadow:0 6px 20px #70dbea18; }
.footer-social-icon svg { width:18px; height:18px; }
.footer-nav h3,.footer-services-col h3,.footer-contact h3 { font-size:.8rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--cyan); margin-bottom:18px; }
.footer-nav ul,.footer-services-col ul,.footer-contact ul { list-style:none; padding:0; margin:0; }
.footer-nav li,.footer-services-col li,.footer-contact li { margin-bottom:12px; }
.footer-nav a,.footer-services-col a,.footer-contact a { position:relative; color:var(--muted); font-size:.875rem; padding-bottom:2px; transition:color .2s; }
.footer-nav a:hover,.footer-services-col a:hover,.footer-contact a:hover { color:var(--text); }
.footer-nav a::after,.footer-services-col a::after { content:''; position:absolute; bottom:0; left:0; width:0; height:1px; background:var(--cyan); transition:width .3s ease; }
.footer-nav a:hover::after,.footer-services-col a:hover::after { width:100%; }
.footer-contact a span { margin-right:8px; }
.footer-location { color:var(--muted); font-size:.8rem; margin-top:18px; }
.footer-location span { color:var(--cyan); margin-right:6px; }
.footer-bottom { display:flex; justify-content:space-between; gap:24px; border-top:1px solid var(--line); padding-block:24px; color:var(--muted); font-size:.8rem; }
.footer-bottom small { font-size:inherit; }
.footer-top-link { display:inline-flex; align-items:center; gap:6px; font-weight:600; transition:color .2s; }
.footer-top-link:hover { color:var(--cyan); }
.footer-top-link span { display:inline-block; transition:transform .3s ease; }
.footer-top-link:hover span { transform:translateY(-3px); }
.back-to-top { position:fixed; bottom:28px; right:28px; z-index:30; width:48px; height:48px; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--cyan); font-size:1.2rem; display:grid; place-items:center; cursor:pointer; opacity:0; transform:translateY(16px); transition:opacity .3s,transform .3s,background .3s,border-color .3s,box-shadow .3s; box-shadow:0 8px 24px #00000030; }
.back-to-top:not([hidden]) { opacity:1; transform:translateY(0); }
.back-to-top:hover { background:var(--blue); border-color:var(--blue); color:white; box-shadow:0 10px 30px #2364d940; }
.back-to-top span { display:inline-block; transition:transform .3s ease; }
.back-to-top:hover span { transform:translateY(-2px); }
.footer-preferences { padding-bottom:16px; }
dialog { max-width:min(1100px,92vw); max-height:92dvh; border:1px solid var(--line); padding:20px; border-radius:16px; color:var(--text); background:var(--surface); }
dialog::backdrop { background:#081a30cc; backdrop-filter:blur(5px); }
dialog img { max-height:70dvh; width:auto; object-fit:contain; }
dialog p { font-size:.85rem; margin:16px 0 0; }
.dialog-close { display:block; margin:0 0 16px auto; min-height:44px; padding:10px 18px; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--text); }
body:has(dialog[open]) { overflow:hidden; }
.error-page { background:radial-gradient(ellipse at 85% 30%,#16335260,transparent 55%),var(--bg); min-height:100svh; display:flex; flex-direction:column; }
.error-page main { flex:1; display:grid; align-content:center; justify-items:start; padding-block:70px; max-width:820px; }
.error-code { font-size:clamp(6rem,18vw,12rem); font-weight:750; letter-spacing:-.08em; color:#6c9bd9; line-height:1; margin-bottom:24px; }
.error-page h1 { font-size:clamp(2rem,5vw,3rem); letter-spacing:-.04em; }
.error-page main>p:not(.error-code):not(.eyebrow) { max-width:480px; color:var(--muted); }
@media(min-width:1600px) { .hero-image { right:max(40px,calc((100vw - 1360px)/2)); } }
@media(max-width:1100px) {
  nav { gap:18px; } nav .button { display:none; }
  .approach-grid,.quote-section { gap:40px; }
  .hero h1 { max-width:600px; }
  .service ul { grid-template-columns:1fr; }
  .project { gap:24px; }
  .process { gap:16px; }
  .contact-links { gap:22px; }
}
@media(max-width:760px) {
  html { scroll-padding-top:90px; }
  .container { width:calc(100% - 40px); }
  .section { padding-block:64px; }
  .nav-row { min-height:76px; flex-wrap:wrap; gap:0; }
  .brand { font-size:1.3rem; } .brand img { width:40px; height:40px; }
  .nav-row nav { width:100%; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:10px 0 22px; }
  .nav-row nav>a { padding:15px 8px; } .nav-row nav .button { display:flex; padding:15px; margin-top:8px; }
  .js-menu nav:not(.is-open) { display:none; }
  .hero-content { padding-block:58px 24px; }
  .hero h1 { font-size:clamp(2.65rem,9vw,4rem); max-width:580px; }
  .hero-image { position:relative; inset:auto; margin:0 20px 28px; height:220px; border-radius:16px; z-index:auto; }
  .hero { display:flex; flex-direction:column; }
  .hero-content { order:-1; } .hero-shade { display:none; }
  .hero-description { font-size:.94rem; }
  .actions { flex-wrap:wrap; gap:12px 20px; margin-top:24px; }
  .hero-location { margin-top:25px; }
  .hero-bottom { font-size:.55rem; line-height:1.6; }
  .hero-bottom span:last-child { text-align:right; }
  .capabilities .container { grid-template-columns:1fr 1fr; }
  .capabilities span { font-size:.67rem; padding:18px 8px; border-bottom:1px solid var(--line); }
  .capabilities span:nth-child(3) { border-left:1px solid var(--line); }
  .section-heading { display:block; margin-bottom:30px; }
  .section-heading>p { margin-top:20px; max-width:500px; }
  .section-heading>.text-link { margin-top:14px; }
  .services,.approach-grid,.quote-section { grid-template-columns:1fr; }
  .service { padding:24px; } .service ul { grid-template-columns:1fr 1fr; }
  .approach-grid,.quote-section { gap:32px; } .principles { padding-top:0; }
  .process { grid-template-columns:1fr; gap:0; }
  .process li { display:grid; grid-template-columns:38px 1fr; gap:0 18px; padding-block:22px; }
  .process span { grid-row:span 2; } .process h3 { margin:0 0 6px; } .process p { margin:0; }
  .project { grid-template-columns:1fr; padding:18px; gap:20px; }
  .project figcaption { padding:0 4px; } .project-number { margin-bottom:16px; }
  .brand-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .brand-card { min-height:72px; padding:12px; } .brand-card img { height:44px; }
  form { padding:24px; } input,select,textarea { font-size:1rem; }
  .contact-heading { display:block; } .contact-heading h2 { font-size:2rem; }
  .contact-links { grid-template-columns:1fr; gap:0; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:28px; padding-block:40px 28px; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; gap:14px; }
}
@media(max-width:390px) {
  .form-row,.service ul { grid-template-columns:1fr; }
  .actions>.button { width:100%; } .service,form { padding:20px; }
  .brand-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-grid { grid-template-columns:1fr; gap:24px; }
}
@media(prefers-reduced-motion:no-preference) {
  dialog[open],.js-menu nav.is-open { animation:enter .24s ease both; }
  @keyframes enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
}
@media print { .site-header,.actions,dialog,form,.skip-link { display:none!important; } .section { padding-block:24px; } .hero-image,.hero-shade { display:none; } .project,.service { break-inside:avoid; } }

/* Product-style navigation and service explorer. */
.services-menu summary { display:flex; align-items:center; gap:9px; cursor:pointer; list-style:none; padding:16px 0; }
.services-menu summary::-webkit-details-marker { display:none; }
.services-menu summary:focus-visible { outline:3px solid var(--cyan); outline-offset:5px; }
.services-menu[open] summary { color:var(--cyan); }
.services-menu summary span { transition:transform .2s; }
.services-menu[open] summary span { transform:rotate(180deg); }
.services-dropdown { position:absolute; top:100%; left:0; right:0; padding:32px max(40px,calc((100vw - 1200px)/2)); background:#0e1624; border-bottom:1px solid var(--line); box-shadow:0 24px 40px #0006; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.services-dropdown .eyebrow { grid-column:1/-1; margin:0 0 8px; }
.services-dropdown a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:22px 16px; border:1px solid var(--line); border-radius:8px; font-size:.9rem; }
.services-dropdown a:hover { background:#172639; border-color:#4a6f8e; }
.services-dropdown a span:last-child { color:var(--cyan); }
.services-dropdown .all-services { grid-column:1/-1; justify-content:start; padding:8px 0; border:0; font-size:.76rem; background:none; }
.service-tabs { display:flex; gap:8px; overflow-x:auto; padding:6px 4px 18px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.service-tabs a { white-space:nowrap; padding:15px 24px; font-size:.85rem; border-radius:6px; color:var(--muted); transition:background .2s,color .2s; }
.service-tabs a:hover { background:#142237; color:var(--text); }
.service-tabs a[aria-selected="true"] { background:#eaf2fa; color:#101a29; }
.services { grid-template-columns:1fr; }
.service { display:grid; grid-template-columns:1fr 1fr; gap:0 48px; padding:40px; min-height:440px; background:linear-gradient(135deg,#131f30,#0d1521); }
.service:hover { transform:none; }
.service-photo { grid-column:2; grid-row:1/6; height:100%; min-height:320px; aspect-ratio:auto; margin:0; }
.service-top,.service h3,.service>p,.service ul,.service>.text-link { grid-column:1; }
.service-top { grid-row:1; }
.service h3 { grid-row:2; font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.12; }
.service>p { grid-row:3; }
.service ul { grid-row:4; }
.service>.text-link { grid-row:5; }
.hero-content { padding-block:112px 76px; }
.hero h1 { max-width:760px; font-size:clamp(3.2rem,6.4vw,5.8rem); letter-spacing:-.065em; }
.hero-image { inset:24px 0 60px 42%; border-radius:0; }
.hero-shade { background:linear-gradient(90deg,#090e18 5%,#090e18f5 34%,#090e1899 58%,#090e1833),linear-gradient(0deg,#090e18,transparent 45%); }
.hero-bottom { font-size:.63rem; }
@media(max-width:1100px) {
  .service { gap:0 28px; padding:28px; }
  .services-dropdown { gap:10px; }
  .services-dropdown a { padding:18px 12px; font-size:.8rem; }
}
@media(max-width:760px) {
  .site-header { max-height:100dvh; overflow-y:auto; }
  .services-menu summary { padding:15px 8px; }
  .services-dropdown { position:static; padding:8px; grid-template-columns:1fr; box-shadow:none; border:0; border-radius:8px; }
  .services-dropdown .eyebrow { display:none; }
  .services-dropdown a { padding:15px; }
  .services-dropdown .all-services { padding:15px; }
  .service-tabs { gap:4px; }
  .service-tabs a { padding:13px 18px; }
  .service { grid-template-columns:1fr; padding:24px; gap:0; }
  .service-photo { grid-column:1; grid-row:6; height:220px; min-height:0; margin-top:20px; }
  .hero-content { padding-block:64px 28px; }
  .hero h1 { font-size:clamp(2.8rem,10vw,4.5rem); }
  .hero-image { inset:auto; border-radius:12px; }
}

.portfolio-intro { padding-block:48px 80px; }
.portfolio-intro>.eyebrow { margin-top:48px; }
.portfolio-intro h1 { font-size:clamp(3.2rem,7vw,6.5rem); line-height:1.04; letter-spacing:-.065em; margin-bottom:28px; }
.portfolio-intro .muted { max-width:580px; font-size:1.05rem; }
.portfolio-cases { padding-bottom:100px; }
.case-study { padding-top:40px; border-top:1px solid var(--line); }
.case-heading { max-width:780px; margin-bottom:36px; }
.case-study>.project-link { max-width:960px; margin-inline:auto; }
.case-study>.project-link img { width:100%; height:auto; object-fit:contain; }
.case-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:40px; }
.case-details span { color:var(--cyan); font-size:.68rem; letter-spacing:.08em; }
.case-details h3 { margin:16px 0 12px; }
.case-details p { color:var(--muted); font-size:.9rem; }
.case-deliverables { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:20px 0; }
.case-deliverables li { padding:10px 16px; border:1px solid var(--line); border-radius:6px; font-size:.75rem; color:var(--muted); }
.portfolio-cta { display:flex; align-items:center; justify-content:space-between; gap:32px; }
@media(max-width:760px) {
  .portfolio-intro { padding-block:24px 56px; }
  .portfolio-intro>.eyebrow { margin-top:32px; }
  .case-details { grid-template-columns:1fr; gap:20px; }
  .portfolio-cta { flex-direction:column; align-items:start; }
  .portfolio-cases { padding-bottom:64px; }
}
