/* Navy Practice v2: shared visual layer, after the structural site/admin CSS. */
:root {
 --paper:#fff; --white:#fff; --ink:#152b48; --muted:#526278;
 --accent:#275fa9; --soft:#f3f6fb; --line:#dbe3ed; --danger:#a12d35;
 --gutter:clamp(22px,5.2vw,88px); --section:clamp(64px,6.5vw,104px);
 --radius-control:12px; --radius-photo:20px; --radius-panel:16px;
 --shadow-raised:0 12px 32px rgb(21 43 72 / .09);
}
html { scrollbar-color:#9aafc9 #f3f6fb; }
body { background:var(--paper); color:var(--ink); }
::selection { background:#d8e8ff; color:#102845; }
.skip-link:not(:focus) { clip-path:inset(50%); }
h1,h2,h3 { font-weight:650; }
h1 { font-size:clamp(36px,4.2vw,64px); line-height:1.65; }
h2 { font-size:clamp(27px,2.7vw,40px); }
.wrap { max-width:1520px; }
.button,.header-cta {
 background:var(--ink); color:#fff; border:1px solid var(--ink); border-radius:var(--radius-control);
 min-height:54px; padding:12px 24px; gap:22px; font-weight:550;
 transition:background .2s,color .2s,transform .2s;
}
.button:hover,.header-cta:hover { background:#234769; border-color:#234769; color:#fff; transform:translateY(-2px); }
.button.outline { border-color:#b8c8dc; background:#fff; color:var(--ink); }
.button.outline:hover { background:var(--soft); border-color:#8ba8ce; color:var(--ink); }
.button.danger { background:var(--danger); border-color:var(--danger); }
.button.small { border-radius:10px; }
.text-link { color:var(--accent); border-bottom-color:transparent; min-height:44px; gap:16px; }
.text-link:hover { color:#19477f; border-bottom-color:currentColor; }
.site-header,.site-header.over-hero {
 position:relative; inset:auto; height:96px; background:#fff; border-bottom:1px solid var(--line); gap:24px;
}
.brand strong { font-size:20px; font-weight:650; }
.brand small { color:var(--muted); }
.brand img { width:40px; height:48px; }
.desktop-nav { gap:26px; }
.desktop-nav a { font-size:14px; font-weight:500; padding:14px 4px; }
.desktop-nav a:hover,.desktop-nav a[aria-current] { color:var(--accent); }
.desktop-nav a[aria-current]:after { height:2px; bottom:4px; border-radius:2px; }
.over-hero .header-cta { background:var(--ink); }
.over-hero .header-cta:hover { background:#234769; }
.menu-toggle { border-radius:12px; background:var(--soft); color:var(--ink); }
.mobile-menu { top:96px; background:#fff; border-radius:0 0 16px 16px; box-shadow:var(--shadow-raised); }
.mobile-menu a { font-size:18px; }
.hero { background:#fff; min-height:0; height:auto; overflow:visible; isolation:auto; padding-top:56px; padding-bottom:0; }
.hero-copy {
 display:grid; grid-template-columns:1.35fr 1fr; align-items:end; gap:6%;
 width:100%; max-width:none; margin:0; padding:0 0 34px; position:static;
}
.hero-copy h1 { font-size:clamp(36px,4.3vw,64px); font-weight:750; line-height:1.7; margin:0; }
.hero-intro { padding-bottom:8px; }
.hero-copy p { font-size:17px; color:var(--muted); line-height:2.1; margin:0 0 24px; max-width:500px; }
.hero-copy .actions { gap:22px; }
.hero-copy .text-link { font-size:14px; }
.hero-copy .button { font-size:14px; padding-inline:22px; gap:18px; }
.hero-media { border-radius:var(--radius-photo); overflow:hidden; background:var(--soft); }
.hero-image {
 position:static; inset:auto; width:100%; height:auto; aspect-ratio:2.85;
 object-fit:cover; object-position:center 56%!important; z-index:auto;
}
.hero-caption { position:static; max-width:none; background:none; padding:12px 2px 18px; border-radius:0; color:var(--muted); font-size:11px; }
.demo-bar { background:var(--soft); border:0; font-size:11px; color:var(--muted); padding-block:14px; }
.intro { align-items:start; gap:9%; padding-bottom:0; }
.intro h2 { font-size:25px; line-height:1.9; max-width:350px; }
.large-copy { font-size:clamp(23px,2.45vw,35px); font-weight:500; line-height:1.95; }
.section-heading { margin-bottom:32px; }
.section-heading h2 { font-weight:700; }
.selected-grid { grid-template-columns:1.6fr 1fr; column-gap:34px; row-gap:42px; }
.project-1 { padding-top:0; }
.selected-grid .project-0 .project-image { aspect-ratio:1.38; }
.selected-grid .project-1 .project-image { aspect-ratio:.86; }
.project-2 { width:74%; column-gap:30px; }
.image-link,.gallery-link { border-radius:var(--radius-photo); overflow:hidden; }
.image-arrow { width:44px; height:44px; left:18px; bottom:18px; border-radius:12px; }
.project-caption { padding-top:18px; }
.project-caption h3,.project-caption h2 { font-size:23px; font-weight:650; }
.project-caption p,.project-caption>span { color:var(--muted); }
.sample-label { color:var(--accent); }
.services-band { background:var(--ink); color:#fff; margin-inline:var(--gutter); border-radius:16px; padding-block:68px; max-width:1344px; }
.services-layout { grid-template-columns:1fr 1.1fr; gap:10%; padding-inline:48px; }
.services-layout h2 { font-size:clamp(32px,3.4vw,48px); font-weight:650; }
.services-layout p { color:#c2d2e6; font-size:16px; }
.services-layout .text-link { color:#e0ecff; }
.service-rows a { font-size:21px; border-color:#637d9d; padding-block:20px; }
.service-rows a:first-child { border-color:#637d9d; }
.service-rows a:hover { color:#c7dfff; padding-inline:8px; }
.process ol { gap:28px; }
.process li { border-top-color:var(--line); padding-top:24px; }
.step-number { color:var(--accent); font-size:27px; font-weight:500; }
.process h3 { font-size:20px; }
.about-split { gap:7%; align-items:center; }
.studio-image,.wide-image,.engineer-portrait,.journal-image { border-radius:var(--radius-photo); }
.about-split h2 { font-size:clamp(31px,3.2vw,46px); font-weight:650; }
.journal-grid { gap:42px 5%; }
.journal-grid h3,.journal-grid h2 { font-size:24px; font-weight:650; }
.cta-band { background:var(--soft); padding-block:62px; }
.cta-band h2 { font-size:clamp(30px,3.2vw,46px); }
.cta-band p { color:var(--muted); }
.site-footer { background:#10243d; color:#f5f8fd; padding-top:62px; }
.footer-brand>p { color:#c0cfe1; }
.footer-brand>a { font-size:21px; }
.footer-top { gap:8%; padding-bottom:48px; }
.site-footer a:hover { color:#bdd7ff; }
.footer-bottom,.designer-credit,.footer-badges { border-color:#48607e; }
.footer-bottom,.designer-credit { color:#c0cfe1; }
.designer-credit strong { color:#fff; }
.footer-badges>h2 { color:#e2ecfa; }
.footer-badge .badge-image { background:#fff; border-radius:12px; }
.footer-brand img.logo-on-paper { border-radius:10px; }
.breadcrumbs { color:var(--muted); font-size:12px; padding-top:27px; }
.page-lead { padding-block:42px 30px; grid-template-columns:1.3fr 1fr; gap:8%; }
.page-lead h1 { font-size:clamp(34px,3.6vw,54px); line-height:1.7; }
.page-lead>p { font-size:16px; }
.about-main { gap:7%; padding-top:24px; padding-bottom:52px; grid-template-columns:1.25fr 1fr; align-items:start; }
.about-main .reading h2 { font-size:31px; }
.engineer-photo-block .wide-image { aspect-ratio:1.22; }
.engineer-portrait { aspect-ratio:4/5; max-height:660px; }
.engineer-introduction { padding-top:4px; }
.reading { font-size:16px; line-height:2.2; }
.reading h2 { font-weight:650; }
.engineer-credentials { padding:14px 18px; background:var(--soft); border:0; border-radius:12px; }
.engineer-credentials dd { font-size:17px; }
.resume-section { padding-top:0; padding-bottom:32px; }
.engineer-resume {
 display:grid; grid-template-columns:minmax(220px,.75fr) minmax(0,1.6fr); gap:7%;
 background:var(--soft); border:0; border-radius:var(--radius-panel); padding:44px;
}
.resume-identity h2 { font-size:27px; line-height:1.8; margin-bottom:24px; }
.resume-photo { margin:0; width:200px; max-width:100%; }
.resume-portrait { width:200px; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:16px; }
.resume-photo figcaption { font-size:12px; color:var(--muted); margin-top:12px; }
.resume-content { padding-top:4px; }
.resume-content>p:last-of-type { margin-bottom:0; }
.resume-credentials { margin:26px 0 0; border-top:1px solid #cad7e7; padding-top:18px; }
.resume-credentials>div { display:flex; gap:24px; align-items:center; flex-wrap:wrap; }
.resume-credentials dd { font-size:15px; }
.project-title { padding-block:42px 32px; }
.project-title h1 { font-size:clamp(36px,4.1vw,62px); }
.project-cover { padding-inline:var(--gutter); max-width:1520px; margin-inline:auto; }
.project-cover img { border-radius:var(--radius-photo); max-height:620px; }
.project-story { gap:9%; }
.project-facts { background:var(--soft); border-radius:16px; padding:24px 30px; align-self:start; }
.project-facts>div:last-child { border:0; }
.project-gallery { gap:28px; }
.project-grid { gap:44px 34px; }
.service-index article { padding-block:34px; gap:32px; }
.service-index h2 { font-size:27px; }
.deliverables { background:var(--soft); border-radius:16px; padding:32px; }
.deliverables li { border-color:#ccd8e8; }
.service-detail { gap:8%; }
.filters { background:var(--soft); border:0; border-radius:16px; padding:24px; gap:18px; }
.filters .button { min-height:50px; }
.pagination a { border-radius:12px; }
.empty-state { border-radius:16px; }
.contact-layout { gap:7%; padding-top:24px; }
.contact-form { background:var(--soft); border-radius:16px; padding:34px; }
.contact-aside h2 { font-weight:650; font-size:27px; }
input:not([type=checkbox]):not([type=radio]),select,textarea {
 border-color:#a5b6cc; border-radius:var(--radius-control); background:#fff;
 font-size:15px; min-height:50px; padding:12px 14px;
}
input::placeholder,textarea::placeholder { color:#5a6c83; }
.check input { accent-color:var(--accent); border-radius:4px; }
fieldset { border-radius:14px; }
.notice { border-radius:12px; background:#edf6f0; border-color:#8bae99; color:#284c37; }
.notice.error { background:#fff2f2; border-color:#bd7e84; color:#8d2530; }
.lightbox { background:#10243d; border-radius:16px; }
.lightbox::backdrop { background:#0b1e34e8; }
.lightbox button { border-radius:10px; background:#fff; }
.lightbox img { border-radius:12px; }
.success-rule { border-radius:4px; }
/* Owner operations use the same palette with compact, familiar controls. */
.admin-body { background:#f3f6fb; }
.admin-sidebar { background:#10243d; color:#fff; }
.admin-brand small { color:#c0cfe1; }
.admin-sidebar nav a { color:#c5d3e6; border-radius:10px; }
.admin-sidebar nav a:hover,.admin-sidebar nav a[aria-current] { background:#234365; color:#fff; }
.sidebar-bottom>a { border-color:#48607e; }
.sidebar-bottom button { color:#d2dff0; border-radius:10px; min-height:44px; }
.admin-topbar { background:#fff; border-bottom-color:var(--line); }
.admin-panel,.stats a { border-radius:16px; }
.dashboard-banner { background:#e5edf8; border-radius:16px; }
.settings-tabs a { border-color:#adbed4; background:#fff; border-radius:10px; }
.settings-tabs a[aria-current] { background:var(--ink); color:#fff; }
.settings-tabs a:hover { border-color:var(--accent); }
th { background:#f1f5fb; color:#3f536d; }
th,td { border-color:var(--line); }
.status { border-radius:8px; }
.status-new { background:#e3efff; color:#234f86; }
.status-reviewing { background:#fff1d9; color:#765013; }
.status-contacted { background:#e6f4ee; color:#265740; }
.status-closed { background:#eaf0f7; color:#42546c; }
.media-thumb,.gallery-thumb,.editor-cover,.settings-preview,.media-edit-preview { border-radius:12px; background:var(--soft); }
.badge-editor { background:#f7f9fd; }
.login-body,.setup-body { background:var(--soft); }
.login-visual { background:var(--ink); }
.login-visual:after { background:#10243dba; }
.login-panel { background:#fff; }
.setup { border-radius:16px; }
@media(min-width:1520px) { .services-band { margin-inline:auto; } }
@media(max-width:1180px) {
 .desktop-nav { gap:17px; } .brand strong { font-size:17px; }
 .header-cta { gap:14px; padding-inline:17px; font-size:13px; }
 .hero-copy { grid-template-columns:1.15fr 1fr; gap:4%; }
 .hero-copy h1 { font-size:clamp(36px,4.4vw,54px); }
 .hero-copy .actions { gap:14px; }
 .hero-copy .button { padding-inline:16px; gap:14px; }
 .services-layout { padding-inline:34px; gap:7%; }
}
@media(max-width:950px) {
 .site-header,.site-header.over-hero { height:86px; }
 .mobile-menu { top:86px; }
 .hero { padding-top:40px; }
 .hero-copy { grid-template-columns:1fr; gap:22px; }
 .hero-copy h1 { max-width:720px; font-size:46px; line-height:1.6; }
 .hero-intro { display:flex; align-items:center; gap:30px; padding:0; }
 .hero-copy p { font-size:15px; margin:0; flex:1; }
 .hero-copy .actions { flex-shrink:0; flex-direction:column; gap:4px; align-items:start; }
 .hero-image { aspect-ratio:2.2; }
 .about-main { grid-template-columns:1fr; gap:34px; }
 .engineer-photo-block { max-width:760px; }
 .engineer-photo-block .wide-image { aspect-ratio:1.7; }
 .engineer-resume { grid-template-columns:1fr 1.7fr; padding:30px; gap:6%; }
 .resume-identity h2 { font-size:24px; }
 .services-layout { gap:6%; }
}
@media(max-width:700px) {
 :root { --gutter:22px; --section:64px; --radius-photo:16px; }
 .site-header,.site-header.over-hero { height:80px; padding-inline:22px; }
 .brand strong { font-size:16px; }.brand small { font-size:11px; }.brand img { width:30px; height:40px; }
 .mobile-menu { top:80px; }
 .hero { height:auto; min-height:0; padding-top:32px; padding-bottom:0; overflow:visible; }
 .hero-copy { padding:0 0 26px; gap:20px; margin:0; }
 .hero-copy h1 { font-size:clamp(31px,7.9vw,40px); line-height:1.75; margin:0; }
 .hero-intro { display:block; }
 .hero-copy p { font-size:15px; margin-bottom:22px; }
 .hero-copy .actions { flex-direction:row; align-items:center; gap:18px; }
 .hero-copy .button { min-height:50px; font-size:12px; gap:12px; padding-inline:15px; }
 .hero-copy .text-link { font-size:12px; gap:9px; }
 .hero-image { position:static; height:auto; aspect-ratio:1.25; object-position:30% 50%!important; }
 .hero-caption { padding:10px 0 15px; font-size:10px; width:auto; max-width:none; }
 .demo-bar { font-size:10px; line-height:2; }
 .intro { gap:18px; }.intro h2 { font-size:23px; }.large-copy { font-size:25px; }
 .section-heading h2 { font-size:28px; }.section-heading .text-link { font-size:12px; }
 .selected-grid { grid-template-columns:1fr; gap:32px; }
 .project-1 { padding:0; width:100%; margin:0; }.project-2 { width:100%; display:block; }
 .selected-grid .project-0 .project-image,.selected-grid .project-1 .project-image,.selected-grid .project-2 .project-image { aspect-ratio:1.3; }
 .project-caption h3,.project-caption h2 { font-size:21px; }
 .image-arrow { left:14px; bottom:14px; border-radius:10px; }
 .services-band { margin-inline:14px; padding-block:38px; border-radius:16px; }
 .services-layout { grid-template-columns:1fr; padding-inline:24px; gap:26px; }
 .services-layout h2 { font-size:32px; }.services-layout p { font-size:14px; }
 .service-rows a { font-size:18px; padding-block:17px; }
 .process ol { gap:28px 20px; }.process h3 { font-size:18px; }.process li p { font-size:13px; }
 .about-split h2 { font-size:32px; }.journal-grid h3,.journal-grid h2 { font-size:22px; }
 .cta-band { padding-block:44px; }.cta-band h2 { font-size:32px; }
 .site-footer { padding-top:44px; }.footer-brand>a { font-size:19px; }
 .footer-top { padding-bottom:34px; gap:30px 20px; }
 .page-lead { display:block; padding-block:32px 22px; }
 .page-lead h1 { font-size:34px; }.page-lead>p { margin-top:20px; font-size:15px; }
 .about-main { padding-top:16px; padding-bottom:38px; gap:28px; }
 .about-main .reading h2 { font-size:28px; }.engineer-photo-block .wide-image { aspect-ratio:1.3; }
 .engineer-portrait { max-height:540px; }.reading { font-size:16px; }
 .engineer-resume { grid-template-columns:1fr; padding:26px 22px; gap:26px; }
 .resume-identity { display:flex; flex-direction:column; align-items:start; }
 .resume-identity h2 { font-size:25px; margin-bottom:20px; }.resume-photo,.resume-portrait { width:180px; }
 .resume-credentials>div { gap:14px; }
 .project-title { padding-block:32px 26px; }.project-title h1 { font-size:35px; }
 .project-cover img { height:320px; }.project-facts { padding:20px; }.project-grid { gap:34px; }
 .service-index h2 { font-size:25px; }.deliverables { padding:24px; }
 .filters { padding:20px 16px; gap:15px; }.contact-layout { gap:28px; }
 .contact-form { padding:25px 20px; }.contact-aside h2 { font-size:25px; }
 .admin-panel,.stats a { border-radius:14px; }.sidebar-bottom button { border-color:#7b93b1; }
}
@media(prefers-reduced-motion:reduce) { .button:hover,.header-cta:hover { transform:none; } }
