/*
 DeGrandis Works — site.css
 --------------------------------------------------------------------------
 Brand layer above Bootstrap 5. Keep layout/accessibility primitives in
 Bootstrap; keep visual character, technical-paper language, cards and motion
 here. Page-specific ornamentation is driven by build-generated body classes.
*/
:root {
 --dw-paper: #f4efe3;
 --dw-paper-2: #faf7ef;
 --dw-paper-3: #f7f1e5;
 --dw-ink: #2d3134;
 --dw-muted: #6f6d66;
 --dw-navy: #173f67;
 --dw-navy-2: #0f3151;
 --dw-slate: #58636d;
 --dw-slate-dark: #46515c;
 --dw-grid: rgba(73, 108, 131, .088);
 --dw-line: rgba(77, 72, 64, .24);
 --dw-blue: #466e89;
 --dw-orange: #bb7c3f;
 --dw-green: #4f796d;
 --dw-purple: #726693;
 --dw-radius: 1rem;
 --dw-shadow: 0 1rem 2.75rem rgba(52, 47, 39, .075);
 --dw-max: 1200px;
 --dw-header-h: 76px;
 --bs-primary-text-emphasis: var(--dw-navy);
}

html { scroll-behavior: smooth; }
body {
 color: var(--dw-ink);
 background-color: var(--dw-paper);
 background-image:
 linear-gradient(var(--dw-grid) 1px, transparent 1px),
 linear-gradient(90deg, var(--dw-grid) 1px, transparent 1px);
 background-size: 26px 26px;
 font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
 line-height: 1.62;
 overflow-x: hidden;
}
body::before {
 content: "";
 position: fixed;
 inset: 0;
 z-index: -2;
 pointer-events: none;
 background:
 radial-gradient(circle at 20% 15%, rgba(255,255,255,.57), transparent 34%),
 radial-gradient(circle at 82% 78%, rgba(255,255,255,.43), transparent 28%),
 linear-gradient(90deg, rgba(115,96,67,.018), transparent 8%, transparent 92%, rgba(115,96,67,.018));
}
body::after {
 content: "";
 position: fixed;
 inset: 0;
 z-index: -1;
 pointer-events: none;
 opacity: .065;
 background-repeat: no-repeat;
}

/* Page-specific technical marginalia: real acoustic motifs, not a generic texture. */
body.page-home::after {
 background-image: url('../img/ornament-polar.svg'), url('../img/ornament-rt.svg'), url('../img/ornament-diffuser.svg'), url('../img/ornament-simulation.svg');
 background-position: 1.5% 13%, 99% 40%, 1% 72%, 98% 92%;
 background-size: 205px auto, 245px auto, 220px auto, 215px auto;
}
body.page-work::after,
body.section-work::after {
 background-image: url('../img/ornament-simulation.svg'), url('../img/ornament-diffuser.svg'), url('../img/ornament-polar.svg');
 background-position: 99% 16%, 1% 59%, 98% 88%;
 background-size: 220px auto, 225px auto, 190px auto;
}
body.page-consulting::after,
body.section-consulting::after {
 background-image: url('../img/ornament-rt.svg'), url('../img/ornament-polar.svg'), url('../img/ornament-diffuser.svg');
 background-position: 99% 20%, 1% 55%, 99% 86%;
 background-size: 245px auto, 185px auto, 215px auto;
}
body.page-tools::after,
body.section-tools::after {
 background-image: url('../img/ornament-simulation.svg'), url('../img/ornament-rt.svg');
 background-position: 1% 45%, 99% 88%;
 background-size: 205px auto, 220px auto;
}
body.page-learning::after,
body.section-learning::after {
 background-image: url('../img/ornament-polar.svg'), url('../img/ornament-diffuser.svg');
 background-position: 99% 28%, 1% 82%;
 background-size: 190px auto, 215px auto;
}
body.page-research::after,
body.section-research::after {
 background-image: url('../img/ornament-polar.svg'), url('../img/ornament-simulation.svg'), url('../img/ornament-rt.svg');
 background-position: 1% 20%, 99% 55%, 1% 88%;
 background-size: 220px auto, 225px auto, 215px auto;
}
body.page-about::after,
body.section-about::after {
 background-image: url('../img/ornament-rt.svg'), url('../img/ornament-polar.svg');
 background-position: 99% 28%, 1% 84%;
 background-size: 210px auto, 190px auto;
}

img { max-width: 100%; }
a { color: var(--dw-navy); text-underline-offset: .2em; }
a:hover { color: var(--dw-navy-2); }
.text-primary-emphasis { color: var(--dw-navy) !important; }
:focus-visible { outline: 3px solid #d28d47; outline-offset: 3px; border-radius: .25rem; }

.dw-skip-link {
 position: fixed;
 left: .75rem;
 top: -4rem;
 z-index: 1100;
 padding: .75rem 1rem;
 background: #fff;
 color: #111;
}
.dw-skip-link:focus { top: .75rem; }

.dw-shell { max-width: var(--dw-max); margin-inline: auto; }
.dw-section { position: relative; padding-block: clamp(4rem, 8vw, 7rem); }
.dw-section-tight { position: relative; padding-block: clamp(2.7rem, 5vw, 4.5rem); }
.dw-rule { border-top: 1px solid var(--dw-line); }
.dw-muted { color: var(--dw-muted); }

.dw-paper-panel {
 position: relative;
 overflow: hidden;
 border: 1px solid var(--dw-line);
 background: rgba(250,247,239,.78);
 border-radius: var(--dw-radius);
 box-shadow: var(--dw-shadow);
}
.dw-paper-panel::after {
 content: "";
 position: absolute;
 inset: .45rem;
 border: 1px solid rgba(100,92,81,.075);
 border-radius: calc(var(--dw-radius) - .25rem);
 pointer-events: none;
}
.dw-paper-panel::before {
 content: "";
 position: absolute;
 width: 34px;
 height: 34px;
 right: 12px;
 top: 12px;
 opacity: .16;
 pointer-events: none;
 background:
 linear-gradient(var(--dw-navy), var(--dw-navy)) 0 50% / 100% 1px no-repeat,
 linear-gradient(var(--dw-navy), var(--dw-navy)) 50% 0 / 1px 100% no-repeat;
}

.dw-kicker { font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--dw-navy); font-weight: 800; }
.dw-display { font-size: clamp(2.8rem, 7vw, 5.8rem); line-height: .98; letter-spacing: -.045em; color: var(--dw-navy); font-weight: 800; }
.dw-h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1; letter-spacing: -.035em; color: var(--dw-navy); font-weight: 800; }
.dw-h2 { font-size: clamp(2rem, 3.5vw, 3.1rem); line-height: 1.08; letter-spacing: -.025em; color: var(--dw-navy); font-weight: 800; }
.dw-h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); color: var(--dw-navy); font-weight: 800; }
.dw-lede { font-size: clamp(1.12rem, 1.8vw, 1.35rem); max-width: 48rem; }
.dw-hand,
.dw-hand-callout {
 font-family: "Segoe Print", "Bradley Hand", "Comic Sans MS", cursive;
 color: #69645c;
}
.dw-hand { font-size: 1rem; transform: rotate(-1deg); }
.dw-hand-callout { display: inline-block; font-size: .92rem; transform: rotate(-2deg); border-bottom: 1px solid rgba(90,85,76,.25); padding: .1rem .2rem .2rem; }

/* Header / navigation */
.dw-header {
 position: sticky;
 top: 0;
 z-index: 1030;
 min-height: var(--dw-header-h);
 background: rgba(250,247,239,.92);
 border-bottom: 1px solid var(--dw-line);
 backdrop-filter: blur(12px);
 transition: box-shadow .2s ease, background-color .2s ease;
}
.dw-header.is-scrolled { box-shadow: 0 .5rem 1.5rem rgba(43,38,32,.08); background: rgba(250,247,239,.97); }

.dw-brand { color: var(--dw-ink); text-decoration: none; line-height: 1; display: inline-flex; align-items: center; gap: .8rem; }
.dw-brand-lockup { display: inline-block; }
.dw-brand-mark { width: 44px; height: 44px; object-fit: contain; flex: 0 0 auto; display: block; }
.dw-brand-name { letter-spacing: .025em; font-size: 1.08rem; line-height: 1; }
.dw-brand-name-main { font-weight: 800; }
.dw-brand-name-sub { font-weight: 600; }
.dw-brand small { display: block; margin-top: .3rem; font-family: "Segoe Print", "Bradley Hand", cursive; font-size: .72rem; color: var(--dw-navy); }
.dw-nav .nav-link { color: var(--dw-ink); font-weight: 700; padding-inline: .7rem !important; position: relative; }
.dw-nav .nav-link::after { content: ""; position: absolute; left: .7rem; right: .7rem; bottom: .2rem; height: 2px; transform: scaleX(0); background: var(--dw-navy); transform-origin: left; transition: transform .18s ease; }
.dw-nav .nav-link:hover::after,
.dw-nav .nav-link.active::after { transform: scaleX(1); }
.dw-nav .nav-link.active { color: var(--dw-navy); }

.dw-btn { --bs-btn-border-radius: .55rem; --bs-btn-font-weight: 800; --bs-btn-padding-y: .7rem; --bs-btn-padding-x: 1.05rem; }
.dw-btn-primary {
 --bs-btn-bg: var(--dw-navy);
 --bs-btn-border-color: var(--dw-navy);
 --bs-btn-color: #fff;
 --bs-btn-hover-bg: var(--dw-slate);
 --bs-btn-hover-border-color: var(--dw-slate);
 --bs-btn-hover-color: #fff;
 --bs-btn-active-bg: var(--dw-slate-dark);
 --bs-btn-active-border-color: var(--dw-slate-dark);
 --bs-btn-active-color: #fff;
 --bs-btn-focus-shadow-rgb: 88, 99, 109;
}
.dw-btn-outline { --bs-btn-color: var(--dw-navy); --bs-btn-border-color: var(--dw-navy); --bs-btn-hover-bg: var(--dw-navy); --bs-btn-hover-border-color: var(--dw-navy); --bs-btn-hover-color: #fff; background: rgba(250,247,239,.58); }

/* Hero / technical plates */
.dw-hero { min-height: min(800px, calc(100svh - var(--dw-header-h))); display: flex; align-items: center; overflow: hidden; }
.dw-hero-panel {
 position: relative;
 min-height: 360px;
 border: 1px solid var(--dw-line);
 border-radius: 1rem;
 overflow: hidden;
 background: rgba(250,247,239,.66);
 box-shadow: var(--dw-shadow);
}
.dw-hero-panel::before {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 background:
 linear-gradient(rgba(70,110,137,.055) 1px, transparent 1px),
 linear-gradient(90deg, rgba(70,110,137,.055) 1px, transparent 1px);
 background-size: 22px 22px;
}
.dw-hero-panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; z-index: 1; }
.dw-hero-sketch {
 min-height: 390px;
 border-color: transparent;
 border-radius: 0;
 background: transparent;
 box-shadow: none;
 overflow: visible;
}
.dw-hero-sketch::before { display: none; }
.dw-hero-sketch img { }
.dw-hero-note {
 position: absolute;
 z-index: 2;
 left: 1rem;
 bottom: 1rem;
 max-width: 15rem;
 background: rgba(250,247,239,.86);
 border: 1px solid var(--dw-line);
 border-radius: .5rem;
 padding: .45rem .7rem;
 font-family: "Segoe Print", "Bradley Hand", cursive;
 color: #655f57;
 font-size: .9rem;
 transform: rotate(-2deg);
}
.dw-hero-sketch .dw-hero-note { left: auto; right: 4%; bottom: 3%; }
.dw-consulting-hero { min-height: 460px; }
.dw-consulting-hero img { object-fit: cover; object-position: center; border-radius: .5rem; }
.dw-hero-blueprint { min-height: 430px; background: #f7f7f2; }
.dw-hero-blueprint img { object-fit: contain; object-position: center; padding: .15rem; background: #f7f7f2; }
.dw-hero-fill img { object-fit: cover; object-position: center; padding: 0; }
.dw-hero-blueprint .dw-hero-note { left: auto; right: 1rem; bottom: 1rem; }
.dw-hero-logo-panel { align-items: center; justify-content: center; background: rgba(255,255,255,.18); }
.dw-hero-logo-composition { min-height: 420px; }
.dw-hero-logo-composition .dw-hero-accent-back { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: .25rem; opacity: .34; z-index: 1; }
.dw-hero-logo-composition .dw-hero-accent-orbit { position: absolute; right: 2%; top: 3%; width: min(38%, 220px); height: auto; opacity: .18; transform: rotate(8deg); z-index: 1; }
.dw-hero-logo-composition .dw-hero-logo-mark { position: absolute; inset: 0; margin: auto; width: min(74%, 430px); height: auto; object-fit: contain; padding: .75rem; z-index: 2; }

/* Evidence strip */
.dw-proof { padding: 1.15rem 1.2rem; }
.dw-proof-item { display: flex; align-items: center; justify-content: center; gap: .8rem; min-height: 64px; }
.dw-proof-mark { width: 44px; height: 44px; flex: 0 0 44px; opacity: .88; }
.dw-proof-copy { text-align: left; }
.dw-proof-number { color: var(--dw-navy); font-weight: 900; font-size: clamp(1.45rem,2.3vw,2rem); line-height: 1; }
.dw-proof-label { font-size: .73rem; color: var(--dw-muted); text-transform: uppercase; letter-spacing: .055em; margin-top: .38rem; line-height: 1.25; }

/* Cards */
.dw-card {
 height: 100%;
 position: relative;
 border: 1px solid var(--dw-line);
 background: rgba(250,247,239,.84);
 border-radius: .9rem;
 overflow: hidden;
 transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.dw-card:has(.dw-card-media-link):hover { transform: translateY(-3px); box-shadow: 0 1rem 2.2rem rgba(52,47,39,.09); border-color: rgba(23,63,103,.34); }
.dw-card:focus-within { box-shadow: 0 0 0 3px rgba(210,141,71,.18); }
.dw-card-body { padding: 1.35rem; }
.dw-card-media { aspect-ratio: 16/10; overflow: hidden; border-bottom: 1px solid var(--dw-line); background: #ded8ca; }
.dw-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.dw-card:has(.dw-card-media-link):hover .dw-card-media img { transform: scale(1.012); }
.dw-card-tag { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--dw-muted); font-weight: 800; }
.dw-card-link { font-weight: 800; text-decoration: none; }
.dw-card-link::after { content: " →"; }
.dw-card-media-link { display: block; color: inherit; text-decoration: none; }
.dw-card-media-link:hover { color: inherit; text-decoration: none; }
.dw-card-title-link { color: inherit; text-decoration: none; }
.dw-card-title-link:hover { color: inherit; text-decoration: none; }
.dw-card-title-link:hover .dw-h3,
.dw-card-title-link:hover h2,
.dw-card-title-link:hover h3 { text-decoration: underline; text-underline-offset: .18em; }
.dw-card[id] { scroll-margin-top: calc(var(--dw-header-h) + 1.4rem); }

.dw-card-media.sketch-bg,
.dw-scope-graphic {
 background:
 linear-gradient(rgba(70,110,137,.05) 1px, transparent 1px),
 linear-gradient(90deg, rgba(70,110,137,.05) 1px, transparent 1px),
 rgba(248,244,235,.7);
 background-size: 18px 18px;
}
.dw-card-media.sketch-bg img { object-fit: cover; padding: 0; }
.dw-service-card .dw-card-media,
.dw-focus-card .dw-card-media,
.dw-mini-tool-card .dw-card-media,
.dw-learning-card .dw-card-media { aspect-ratio: 5/3; }
.dw-service-card .dw-card-media img,
.dw-focus-card .dw-card-media img,
.dw-mini-tool-card .dw-card-media img,
.dw-learning-card .dw-card-media img { object-fit: cover; padding: 0; }
.dw-learning-card .dw-card-media.dw-learning-track-media { background: #f3f1eb; }
.dw-learning-card .dw-card-media.dw-learning-track-media img { object-fit: cover; padding: 0; }


/* Homepage consulting cards: compact index treatment. */
.dw-home-consulting-card .dw-card-body {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: .35rem;
 min-height: 8.7rem;
}
.dw-home-consulting-card .dw-card-title-link { margin-top: .1rem; }
.dw-home-consulting-card .dw-card-title-link .dw-h3 { margin-bottom: .35rem; }
.dw-home-consulting-card .dw-card-link { margin-top: auto; }

/* Work scope plates */
.dw-scope-card { display: flex; flex-direction: column; }
.dw-scope-graphic { min-height: 10rem; padding: .55rem .7rem .2rem; display: flex; align-items: center; justify-content: center; border-bottom: 1px solid var(--dw-line); transition: background-color .2s ease; }
.dw-scope-graphic img { width: 100%; height: 9rem; object-fit: contain; opacity: .98; }
.dw-scope-card .dw-card-body { flex: 1; }
a.dw-card-media-link:hover .dw-scope-graphic { background-color: rgba(255,255,255,.52); }


/* Shared category art: supplied hand-drawn studies used across Home / Work / Consulting. */
.dw-category-art-media {
 background: rgba(255,255,255,.72) !important;
 background-image: none !important;
 padding: 0 !important;
 overflow: hidden;
}
.dw-card-media.dw-category-art-media,
.dw-scope-graphic.dw-category-art-media {
 aspect-ratio: 3 / 2;
 min-height: 0;
 padding: 0;
 display: block;
}
.dw-category-art-media img {
 width: 100%;
 height: 100%;
 padding: 0 !important;
 object-fit: cover !important;
 object-position: center;
 opacity: 1;
}
/* The control-room drawing is already a 3:2 composition, so it can fill cleanly. */
.dw-category-spaces img { object-fit: cover !important; object-position: 50% 50%; }
/* On the narrow four-up Home grid, focus the modelling image on the simulation field. */
.page-home .dw-category-measurement img { object-fit: cover !important; object-position: 50% 43%; }
/* Preserve the full geometry and full collaboration group rather than trimming informative edges. */
.dw-category-products img,
.dw-category-collaboration img { object-fit: cover !important; object-position: center; }

@media (max-width: 1199.98px) {
 /* Once the Home cards open to two columns, show the complete modelling study too. */
 .page-home .dw-category-measurement img { object-fit: cover !important; object-position: center; }
}
@media (max-width: 767.98px) {
 /* Give technical drawings more vertical room on phones so annotations remain legible. */
 .dw-card-media.dw-category-art-media,
 .dw-scope-graphic.dw-category-art-media { aspect-ratio: 4 / 3; }
 .dw-category-art-media img,
 .dw-category-spaces img,
 .page-home .dw-category-measurement img { object-fit: cover !important; object-position: center; }
}

/* Media / project photography */
.dw-media-frame { position: relative; overflow: hidden; border-radius: .85rem; border: 1px solid var(--dw-line); background: #e9e2d5; }
.dw-media-frame img { width: 100%; height: 100%; object-fit: cover; }
.dw-media-frame::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); pointer-events: none; }
.dw-gallery-media { aspect-ratio: 16/10; }
.dw-gallery-media img { object-fit: cover; }
.dw-photo-credit { margin-top: .45rem; color: var(--dw-muted); font-size: .76rem; font-style: italic; }
.dw-modeld-product { aspect-ratio: 4/3; background: #111; }
.dw-modeld-product img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.dw-video-still img { transform: scale(1.14); object-position: center 54%; }

/* Drafting details */
.dw-dim-line { position: relative; height: 1px; background: rgba(90,85,76,.35); }
.dw-dim-line::before,
.dw-dim-line::after { content: ""; position: absolute; top: -5px; width: 10px; height: 10px; border-top: 1px solid rgba(90,85,76,.5); transform: rotate(45deg); }
.dw-dim-line::before { left: 0; }
.dw-dim-line::after { right: 0; }
.dw-sketch-divider { height: 32px; opacity: .45; background: url('../img/wave-field.svg') center/contain no-repeat; }
.dw-section-note { position: relative; }
.dw-section-note::after { content: attr(data-note); position: absolute; right: 0; top: -1.2rem; font-family: "Segoe Print", "Bradley Hand", cursive; color: #6a635b; transform: rotate(-3deg); font-size: 1rem; }

/* Technical ornaments placed within sections */
.dw-ornamented { overflow: clip; }
.dw-ornament { position: absolute; z-index: 0; width: clamp(130px,18vw,280px); height: auto; opacity: .095; pointer-events: none; }
.dw-ornament-tr { top: 1rem; right: -2.5rem; transform: rotate(7deg); }
.dw-ornament-br { right: -2rem; bottom: .5rem; transform: rotate(-5deg); }
.dw-ornament-bl { left: -2.5rem; bottom: .5rem; transform: rotate(5deg); }
.dw-ornament-tl { left: -2rem; top: 1rem; transform: rotate(-6deg); }
.dw-ornamented > .container-fluid { position: relative; z-index: 1; }

/* CTA */
.dw-cta-band { color: #fff; background: var(--dw-navy); border-radius: 1rem; overflow: hidden; position: relative; }
.dw-cta-band::after { content: ""; position: absolute; right: -2rem; top: -5rem; width: 20rem; height: 20rem; background: url('../img/ornament-diffuser.svg') center/contain no-repeat; opacity: .12; filter: brightness(0) invert(1); }

/* Tools */
.dw-tool-card .dw-card-media { aspect-ratio: 4/3; background: #eee8dc; }
.dw-tool-card .dw-card-media img { object-fit: cover; object-position: center; }
.dw-tool-feature-list { list-style: none; padding: 0; margin: 1rem 0 0; }
.dw-tool-feature-list li { margin: .35rem 0; padding-left: 1.35rem; position: relative; color: var(--dw-muted); font-size: .92rem; }
.dw-tool-feature-list li::before { content: "✓"; position: absolute; left: 0; color: var(--dw-navy); font-weight: 900; }
.dw-mini-tool-card .dw-card-media { min-height: 7.5rem; }
.dw-mini-tool-card .dw-card-media img { max-height: none; width: 100%; height: 100%; object-fit: cover; padding: 0; }
.dw-mini-tool-card .dw-card-media.dw-demo-photo-media { background: #f3f1eb; }
.dw-mini-tool-card .dw-card-media.dw-demo-photo-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; padding: 0; max-height: none; }
.dw-mini-tool-card .dw-card-body { padding-top: 1rem; }

/* Timeline */
.dw-timeline { position: relative; }
.dw-timeline::before { content: ""; position: absolute; left: 1rem; top: .4rem; bottom: .4rem; width: 2px; background: rgba(23,63,103,.3); }
.dw-timeline-item { position: relative; padding-left: 3rem; margin-bottom: 2rem; }
.dw-timeline-item::before { content: ""; position: absolute; left: .62rem; top: .45rem; width: .8rem; height: .8rem; background: var(--dw-paper-2); border: 3px solid var(--dw-navy); border-radius: 50%; }

/* Contact */
.dw-contact-canvas { --bs-offcanvas-width: min(520px, 92vw); background: var(--dw-paper-2); }
.dw-contact-canvas .offcanvas-header { border-bottom: 1px solid var(--dw-line); }
.dw-form-note { font-size: .8rem; color: var(--dw-muted); }

/* Footer */
.dw-footer { background: #17212b; color: #edf2f5; margin-top: 0; }
.dw-footer a { color: #edf2f5; text-decoration: none; }
.dw-footer a:hover { text-decoration: underline; }
.dw-footer .dw-muted { color: #b8c1c8; }
.dw-footer-home { display: inline-block; color: #edf2f5; text-decoration: none; }
.dw-footer-home:hover { color: #fff; text-decoration: none; }
.dw-footer-home:hover .dw-brand-name { text-decoration: underline; text-underline-offset: .22em; }
.dw-footer-avatar { display: inline-block; width: 70px; height: 70px; border-radius: 50%; overflow: hidden; background: #fff; border: 2px solid rgba(255,255,255,.75); box-shadow: 0 .45rem 1.1rem rgba(0,0,0,.16); transition: transform .18s ease; }
.dw-footer-avatar img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.dw-footer-avatar:hover { transform: translateY(-2px); }

/* Motion hooks. Future GSAP/Lottie should reuse these selectors. */
[data-animate="reveal"] { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
[data-animate="reveal"].is-visible { opacity: 1; transform: none; }
[data-draw] path,
[data-draw] line,
[data-draw] polyline { stroke-dasharray: 900; stroke-dashoffset: 900; transition: stroke-dashoffset 1.2s ease .1s; }
[data-draw].is-visible path,
[data-draw].is-visible line,
[data-draw].is-visible polyline { stroke-dashoffset: 0; }

/* Responsive behavior */
@media (min-width: 992px) {
 .dw-proof .row > div:not(:first-child)::before { content: ""; position: absolute; left: 0; top: 10%; bottom: 10%; width: 1px; background: var(--dw-line); }
 .dw-proof .row > div { position: relative; }
}
@media (max-width: 991.98px) {
 :root { --dw-header-h: 68px; }
 .dw-hero { min-height: auto; padding-block: 4rem; }
 .dw-hero-panel { min-height: 300px; }
 .dw-hero-sketch { min-height: 320px; margin-top: .5rem; }
 .dw-consulting-hero { min-height: 380px; }
 .dw-hero-blueprint { min-height: 360px; }
 .dw-header .navbar-collapse { padding: 1rem 0 .75rem; }
 .dw-nav .nav-link { padding: .65rem 0 !important; }
 .dw-nav .nav-link::after { left: 0; right: auto; width: 3rem; bottom: .25rem; }
 .dw-section-note::after { position: static; display: block; margin-top: .35rem; }
 .dw-ornament { opacity: .07; width: 150px; }
 body::after { opacity: .045; background-size: 160px auto, 180px auto, 165px auto, 160px auto; }
}
@media (max-width: 767.98px) {
 .dw-scope-graphic { min-height: 8.3rem; }
 .dw-scope-graphic img { height: 7.2rem; }
 .dw-gallery-media { aspect-ratio: 4/3; }
 .dw-proof-item { justify-content: flex-start; }
}
@media (max-width: 575.98px) {
 body { background-size: 22px 22px; }
 body::after { display: none; }
 .dw-section { padding-block: 3.25rem; }
 .dw-display { font-size: clamp(2.7rem,16vw,4.1rem); }
 .dw-paper-panel { border-radius: .75rem; }
 .dw-card-body { padding: 1.1rem; }
 .dw-ornament { display: none; }
 .dw-footer-avatar { width: 58px; height: 58px; }
 .dw-brand { gap: .6rem; }
 .dw-brand-mark { width: 40px; height: 40px; }
 .dw-brand .dw-brand-name { font-size: .95rem; }
 .dw-brand small { font-size: .68rem; }
 .dw-hero-sketch { min-height: 270px; }
 .dw-consulting-hero { min-height: 310px; }
 .dw-hero-logo-composition { min-height: 300px; }
 .dw-hero-logo-composition .dw-hero-logo-mark { width: min(82%, 340px); }
 .dw-hero-logo-composition .dw-hero-accent-orbit { width: min(34%, 150px); top: 8%; right: 3%; }
 .dw-hero-blueprint { min-height: 300px; }
 .dw-hero-note { font-size: .78rem; max-width: 12rem; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
 [data-animate="reveal"] { opacity: 1; transform: none; }
 [data-draw] path,
 [data-draw] line,
 [data-draw] polyline { stroke-dashoffset: 0; }
}

/* Process strip: replaces generic text-only cards with a drafting-sequence treatment. */
.dw-process-strip {
 display: grid;
 grid-template-columns: repeat(5, minmax(0, 1fr));
 gap: 0;
 border-top: 1px solid var(--dw-line);
 border-bottom: 1px solid var(--dw-line);
 background: rgba(250,247,239,.42);
}
.dw-process-step {
 position: relative;
 padding: 1.15rem 1rem 1.25rem;
 min-height: 165px;
}
.dw-process-step:not(:last-child) { border-right: 1px solid var(--dw-line); }
.dw-process-step:not(:last-child)::after {
 content: "→";
 position: absolute;
 right: -.65rem;
 top: 1.05rem;
 z-index: 2;
 width: 1.3rem;
 height: 1.3rem;
 display: grid;
 place-items: center;
 color: var(--dw-muted);
 background: var(--dw-paper-2);
 font-family: "Segoe Print", "Bradley Hand", cursive;
}
.dw-process-number {
 display: inline-grid;
 place-items: center;
 width: 2.2rem;
 height: 2.2rem;
 border: 1px solid rgba(23,63,103,.45);
 border-radius: 50%;
 color: var(--dw-navy);
 font-weight: 900;
 line-height: 1;
}
.dw-process-step h3 { color: var(--dw-navy); font-weight: 800; margin-top: .8rem; }
.dw-process-step p { color: var(--dw-muted); font-size: .9rem; margin-bottom: 0; }
.dw-process-strip.dw-process-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dw-assumption-panel { border-left: 3px solid rgba(187,124,63,.58); }
.dw-assumption-panel h3 { color: var(--dw-navy); }

@media (max-width: 991.98px) {
 .dw-process-strip,
 .dw-process-strip.dw-process-4 { grid-template-columns: 1fr 1fr; }
 .dw-process-step { min-height: 145px; }
 .dw-process-step:nth-child(2n) { border-right: 0; }
 .dw-process-strip:not(.dw-process-4) .dw-process-step:nth-child(-n+4) { border-bottom: 1px solid var(--dw-line); }
 .dw-process-strip.dw-process-4 .dw-process-step:nth-child(-n+2) { border-bottom: 1px solid var(--dw-line); }
 .dw-process-step::after { display: none !important; }
}
@media (max-width: 575.98px) {
 .dw-process-strip,
 .dw-process-strip.dw-process-4 { grid-template-columns: 1fr; }
 .dw-process-step { min-height: 0; border-right: 0 !important; border-bottom: 1px solid var(--dw-line) !important; }
 .dw-process-step:last-child { border-bottom: 0 !important; }
}

/* Revision 04: Tools hierarchy and About evidence cards */
.dw-featured-tool-card .dw-card-media { aspect-ratio: 16/10; }
.dw-featured-tool-card .dw-card-media img { object-fit: cover; }
.dw-workbench-active .dw-card-media { aspect-ratio: 16/10; }
.dw-status-badge {
 display: inline-flex;
 align-items: center;
 min-height: 1.55rem;
 padding: .2rem .55rem;
 border: 1px solid rgba(23,63,103,.28);
 border-radius: 999px;
 color: var(--dw-navy);
 background: rgba(255,255,255,.42);
 font-size: .68rem;
 font-weight: 800;
 letter-spacing: .055em;
 text-transform: uppercase;
}
.dw-proof-card {
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: .65rem;
 min-height: 190px;
}
.dw-proof-card .dw-proof-mark { width: 50px; height: 50px; flex-basis: 50px; }
.dw-proof-card .dw-proof-label { max-width: 11rem; margin-top: 0; }

@media (max-width: 575.98px) {
 .dw-proof-card { min-height: 165px; padding-inline: 1rem !important; }
 .dw-mini-tool-card .dw-card-body { padding: .9rem; }
}

/* Research focus cards use supplied artwork with full-color rendering and consistent plate sizing. */
.dw-focus-card .dw-card-media.dw-research-focus-media { background: rgba(255,255,255,.72) !important; }
.dw-focus-card .dw-card-media.dw-research-focus-media img { object-fit: cover !important; object-position: center; padding: 0 !important; }
.dw-learning-aia .dw-card-media.dw-learning-track-media { background: #f3f1eb; }
.dw-learning-aia .dw-card-media.dw-learning-track-media img { object-fit: contain !important; object-position: center; padding: 0 !important; width: 100%; height: 100%; }

/* Consulting hero uses a photographic JPEG; keep its native color after styles load. */




.dw-mini-tool-logo-media { background: #f3f1eb; }
.dw-mini-tool-logo-media img { object-fit: contain !important; object-position: center; padding: .65rem !important; width: 100%; height: 100%; }
