/* Portfolio artwork: full device composition, never cropped. */
.vm-cover { position:relative; isolation:isolate; container-type:inline-size; width:100%; aspect-ratio:4/3; overflow:hidden; background:#f1e9df; }
.vm-cover picture { display:block; width:100%; height:100%; }
.vm-cover picture img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.vm-card-head { display:none; }
.project--vanessa .vm-cover { aspect-ratio:3/4; }
.project--vanessa .vm-card-head { display:block; position:absolute; top:8%; left:8%; right:6%; color:#292d27; font-family:Arial,Helvetica,sans-serif; }
.project--vanessa .vm-card-head>span { display:block; font-size:2.5cqw; letter-spacing:.13em; font-weight:600; }
.project--vanessa .vm-card-head strong { display:block; margin-top:5cqw; font-size:11cqw; line-height:1; letter-spacing:-.055em; font-weight:600; }
.project--vanessa .vm-card-head small { display:block; margin-top:4cqw; font-size:3cqw; }
.project--vanessa .vm-cover picture { position:absolute; top:35%; left:0; width:100%; height:58%; }
.project--vanessa .vm-cover img { object-fit:contain; object-position:center; }
.project--vanessa .project__trigger:hover .vm-cover img { transform:none; filter:none; }
.vm-showcase { container-type:inline-size; position:relative; width:100%; height:auto; aspect-ratio:4/3; overflow:hidden; color:#302f29; background:#e9e8e0; font-family:Arial,Helvetica,sans-serif; }
.vm-heading { position:absolute; top:7%; left:7%; right:7%; }
.vm-eyebrow { display:block; font-size:1.4cqw; font-weight:700; letter-spacing:.15em; line-height:1.4; color:#69675c; }
.vm-title { display:block; margin-top:1.5cqw; font-size:3.6cqw; line-height:1.1; font-weight:600; letter-spacing:-.04em; }
.vm-browser { position:absolute; top:23%; left:7%; width:86%; border:1px solid #c8c9c0; border-radius:1cqw; overflow:hidden; background:#fff; box-shadow:0 2cqw 4cqw #242a1c1a; }
.vm-browser__bar { display:flex; justify-content:space-between; align-items:center; height:3.3cqw; padding:0 1.3cqw; color:#74756f; background:#f9f9f5; border-bottom:1px solid #e3e4dc; font-size:1.1cqw; letter-spacing:.03em; }
.vm-browser__bar span:first-child { font-size:.9cqw; letter-spacing:.2em; color:#b6b9ae; }
.vm-browser__screen { aspect-ratio:1265/712; overflow:hidden; }
.vm-showcase .vm-browser__screen img { display:block; width:100%; height:auto; max-height:none; object-fit:contain; object-position:top; }
.vm-showcase--before { background:#eae5dd; }
.project-gallery[data-project-slug="vanessa-mobilcamping"] { width:100%; max-width:68rem; padding:0; border:0; box-shadow:none; background:transparent; }
.project-gallery[data-project-slug="vanessa-mobilcamping"] .project-gallery__stage { aspect-ratio:4/3; max-height:none; background:#f1e9df; }
.project-gallery[data-project-slug="vanessa-mobilcamping"] .vm-cover,
.project-gallery[data-project-slug="vanessa-mobilcamping"] .vm-showcase { height:100%; }
.project-gallery[data-project-slug="vanessa-mobilcamping"] .vm-cover img { max-height:none; object-fit:contain; }
.project-gallery[data-project-slug="vanessa-mobilcamping"] .project-gallery__thumb img { object-position:top; }
#project-dialog:has(.project-gallery[data-project-slug="vanessa-mobilcamping"]) .project-dialog__media { padding:clamp(1rem,2.5vw,3rem); }
#project-dialog:has(.project-gallery[data-project-slug="vanessa-mobilcamping"]) #project-dialog-title { font-size:clamp(2rem,3.6vw,3.8rem); line-height:1.03; overflow-wrap:normal; word-break:normal; }
.uiux-home { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(2rem,6vw,6rem); align-items:end; margin:clamp(3rem,6vw,6rem) var(--page-edge) 0; padding:clamp(1.5rem,4vw,4rem); border:1px solid var(--line); background:color-mix(in srgb,var(--ink) 3%,var(--paper)); }
.uiux-home h2 { font-size:clamp(2rem,3.5vw,3.7rem); line-height:1.08; letter-spacing:-.045em; font-weight:600; margin:1rem 0; }
.uiux-home p { max-width:45rem; line-height:1.7; color:var(--muted); }
.uiux-home a { display:inline-flex; gap:1rem; align-items:center; min-height:48px; font-size:.9rem; font-weight:600; text-underline-offset:5px; }
@media(max-width:800px) { .uiux-home { grid-template-columns:1fr; gap:.3rem; } }

/* The carousel uses its own portrait artwork; the gallery keeps the full approved mockup. */
.project--vanessa .vm-cover--portfolio picture { inset:0; width:100%; height:100%; }
.project--vanessa .vm-cover--portfolio img { object-fit:cover; }
.project--vanessa .vm-cover--portfolio .vm-card-head { z-index:1; top:7%; left:8%; right:8%; font-family:var(--sans); }
.project--vanessa .vm-cover--portfolio .vm-card-head>span { font-size:2.7cqw; letter-spacing:.04em; font-weight:500; }
.project--vanessa .vm-cover--portfolio .vm-card-head strong { margin-top:3cqw; font-size:10.5cqw; line-height:1.04; font-weight:600; letter-spacing:-.055em; }
