/* ==== Base: fonts and fixes for the Adobe Portfolio export (was migration-v2.css) ==== */
@font-face{font-family:shzc;src:url(/assets/shzc-400.woff2);font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:nqdy;src:url('/assets/raleway.woff2') format('woff2'),url('/assets/raleway.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
html{scroll-behavior:smooth}
.portfolio-lightbox{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;box-sizing:border-box}
.portfolio-lightbox[open]{display:flex;align-items:center;justify-content:center;gap:10px}
.portfolio-lightbox img{max-height:calc(100dvh - 100px);}
.portfolio-lightbox button{border:0;background:transparent;font-size:32px;cursor:pointer;}
.portfolio-lightbox .close{position:absolute;right:15px;top:10px}
.js-lightbox,.js-grid-item-container{cursor:zoom-in}

/* The viewer surface follows transparent artwork instead of assuming a white canvas. */
.portfolio-lightbox{background:#101317;color:#edf0f2;padding:60px 20px;gap:8px}
.portfolio-lightbox[data-surface="light"]{background:#eeeae2;color:#252824}
.portfolio-lightbox::backdrop{background:#080a0eeb}
.portfolio-lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;max-width:calc(100% - 112px);max-height:calc(100dvh - 120px)}
.portfolio-lightbox figure img{max-width:100%;max-height:calc(100dvh - 165px);object-fit:contain}
.portfolio-lightbox .gallery-caption{font:12px/1.7 nqdy,Arial,sans-serif;text-align:center;margin-top:16px;max-width:700px;color:inherit}
.portfolio-lightbox button{color:inherit;min-width:44px;min-height:44px;flex:none;padding:8px}
.portfolio-lightbox button:focus-visible{outline:2px solid currentColor;outline-offset:3px}
@media(max-width:600px){.portfolio-lightbox{padding:65px 4px 35px}.portfolio-lightbox figure{max-width:calc(100% - 96px)}.portfolio-lightbox .gallery-caption{font-size:11px}.portfolio-lightbox figure img{max-height:calc(100dvh - 170px)}}

/* ==== Case studies: shell, intro, media, onward links (was project-experiences-v4.css) ==== */
/* AI studies and Singles style their own onward links (special-v1.css); :not(:where()) keeps specificity unchanged. */
/* Shared access and media rules; compositions and visual treatments are project-specific below. */
body.case-experience{background:var(--page-bg,#101820)!important}.case-experience .site-wrap,.case-experience .site-container,.case-experience .site-content{background:transparent}.case-shell{--case-text:#edf1f3;--case-muted:#b3bfc8;--case-panel:#ffffff07;max-width:1180px;width:calc(100% - 64px);margin:auto;padding:35px 0 55px;color:var(--case-text);font-family:nqdy,Arial,sans-serif}.case-shell *{box-sizing:border-box}.case-shell a{color:var(--case-accent);text-decoration:none}.case-back{margin:0 0 35px}.case-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:45px;margin:0 0 50px}.case-heading{min-width:0}.case-kicker{line-height:1.8;letter-spacing:.12em;text-transform:uppercase;color:var(--case-accent);margin:0 0 22px}.case-intro h1{color:var(--case-text);font-size:clamp(36px,4.8vw,66px);line-height:1.06;letter-spacing:-.045em;overflow-wrap:anywhere;margin:0 0 23px}.case-lead{font-size:14px;line-height:1.9;color:var(--case-muted);max-width:620px;margin:0 0 25px}.case-start{font-size:12px;display:inline-flex;gap:30px;padding-bottom:8px;border-bottom:1px solid var(--case-accent)}.case-preview{margin:0;}.case-preview img{display:block;width:100%;}.case-preview figcaption{color:var(--case-muted);margin:16px 0 0}.case-index{display:flex;flex-wrap:wrap;align-items:center;border-top:1px solid #7b7b7b40;border-bottom:1px solid #7b7b7b40}.case-index a{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:2px}.case-index a:hover,.case-index a:focus-visible{border-color:var(--case-accent)}.case-view-hint{color:var(--case-muted);margin:0 0 25px}.case-shell #project-modules{width:100%!important;max-width:none;display:grid;grid-template-columns:minmax(0,1fr);gap:28px;float:none}.case-shell .project-module{width:100%!important;max-width:none;float:none;clear:none;padding:0;margin:0;min-width:0}.case-shell .case-media{border-radius:3px;padding:18px!important}.case-shell .js-lightbox{display:flex;align-items:center;justify-content:center;min-width:0;width:100%!important}.case-shell .case-content img{display:block!important;position:static;inset:auto;padding:0;margin:0 auto;width:auto!important;height:auto!important;max-width:100%;max-height:min(66vh,600px);object-fit:contain;background:transparent;opacity:1!important}.case-shell .grid--main{display:grid!important;width:100%!important;align-items:center}.case-shell .grid__item-container{width:100%!important;position:relative;height:auto!important;flex-grow:0;min-width:0;overflow:visible!important;display:flex;align-items:center;justify-content:center}.case-shell .grid__item-filler,.case-shell .js-grid-spacer{display:none!important}.case-shell .module-caption,.case-shell .module-caption *{font:11px/1.8 nqdy,Arial,sans-serif;color:var(--case-muted);text-align:left}.case-shell .module-caption{margin-top:15px}.case-shell .module-text,.case-shell .module-text div,.case-shell .module-text span{font:14px/1.95 nqdy,Arial,sans-serif;color:var(--case-muted);text-align:left}.case-shell .module-text{max-width:790px;margin:10px auto}.case-shell .module-text a{color:var(--case-accent)}.case-shell .case-prose{grid-column:1/-1}.case-shell .case-film{grid-column:1/-1}.case-shell .embed-dimensions{max-width:100%;max-height:none}.case-shell .embed-aspect-ratio{position:relative;height:auto!important;aspect-ratio:16/9;padding:0;background:#05080c;overflow:hidden}.case-shell iframe{position:absolute;inset:0;width:100%!important;height:100%!important;border:0}.case-onward:not(:where(.ai-studies,.sound-studio) *){display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:start;padding:30px 0 10px;margin-top:50px;border-top:1px solid #7b7b7b40;font:12px/1.7 nqdy,Arial,sans-serif}.case-onward:not(:where(.ai-studies,.sound-studio) *) a:last-child{text-align:right}.case-shell :focus-visible{outline:2px solid var(--case-accent);outline-offset:4px}.case-piece-enter{animation:case-reveal .6s ease-out both}@keyframes case-reveal{from{opacity:.3;translate:0 12px}to{opacity:1;translate:0 0}}
/* F-16: wide film presentation, luminous cyan and a credits panel. */

/* SRIC: orbital brand shapes with space for the interface at full width. */

/* LM Collection: record-sleeve browsing, complete compositions within the viewport. */

/* Last Mill: restrained monochrome identity board with horizontal logo space. */

/* Museum night: neon poster exhibition with a contrasting application wall. */

/* Defence archive: quiet paper colours and an archival caption treatment. */
.case-prevention,.case-air-social,.case-lowpoly,.case-iade{--case-text:#242b2e;--case-muted:#536064;--case-panel:#ffffff70}
/* Prevention: print campaign, ink-red accent and a paired poster layout. */
.case-prevention h1{text-transform:uppercase;}.case-prevention .case-preview{rotate:-1deg}
/* V8: workshop contrast, squared borders and three compact applications. */

/* Air Force social: a light feed grid and compact square media. */
.case-air-social h1{font-size:clamp(40px,5vw,64px);font-weight:600}.case-air-social .case-intro{grid-template-columns:1.2fr .8fr}.case-air-social .case-preview{background:#fff9;border-radius:10px;padding:20px}.case-air-social #project-modules{grid-template-columns:repeat(3,minmax(0,1fr))}.case-air-social .case-media{border-radius:8px}.case-air-social .case-content img{max-height:48vh!important}
/* 2019 posters: technical magenta rules and two poster columns. */
.case-air-posters19 .case-heading{padding:25px 0;border-top:1px solid var(--case-accent);border-bottom:1px solid #f49bcf44}.case-air-posters19 h1{text-transform:uppercase;}.case-air-posters19 #project-modules{grid-template-columns:1fr 1fr}
/* Mustang: two parallel cinematic colour studies. */
.case-mustang .case-heading{max-width:920px;margin:auto}.case-mustang h1{font-style:italic;}
/* Pemafeel: warm illustration sheets, small details opened in the gallery. */

/* Spirit of Mission: film dossier with subdued olive tones and serif titles. */

/* KOOPPER: angular identity framing, contrasted with wide banner applications. */
.case-koopper .case-media:first-child{grid-column:1/-1}
/* Webfolio: a browser concept with an intentionally compact overview. */
.case-webfolio .case-intro{grid-template-columns:.85fr 1.15fr}.case-webfolio .case-preview{padding:30px 15px 15px;border:1px solid #f1b7a244;border-radius:8px;background:linear-gradient(#f1b7a218 24px,transparent 24px)}.case-webfolio .case-content .case-media{background:#331f32;border:1px solid #f1b7a233}.case-webfolio h1{font-weight:300;letter-spacing:-.065em}
/* Vaporwar: numbered episodes as an illustrated diptych. */

/* Low poly: a panoramic scene, airy background and generous horizontal space. */
.case-lowpoly .case-content img{max-height:55vh!important}
/* Older posters: a dark exhibition wall, individually framed portrait pieces. */
.case-air-posters .case-intro{grid-template-columns:1fr .7fr}.case-air-posters #project-modules{grid-template-columns:1fr 1fr}
/* EATT: publication opening, editorial typography and facing-page grids. */

/* IADE: project notebook with section labels and a light model display. */

/* Concept art: sketchbook sheets, paper background and a denser three-column wall. */

/* HD: precise monogram display, split black-and-white framing. */

.case-shell .case-index,.case-shell .case-onward{width:100%!important;float:none;clear:both}.case-shell .case-content{width:100%;display:block;clear:both}.case-shell .case-view-hint{float:none;text-align:left}
@media(max-width:1000px){.case-air-social #project-modules{grid-template-columns:1fr 1fr}.case-intro{gap:28px}.case-onward:not(:where(.ai-studies,.sound-studio) *){gap:18px}}
@media(max-width:760px){.case-shell{width:calc(100% - 32px);padding-top:25px}.case-shell .case-intro{grid-template-columns:1fr;gap:30px;margin-bottom:35px}.case-intro h1{font-size:clamp(36px,9vw,58px)}.case-back{margin-bottom:28px}.case-preview{max-width:560px;width:100%;margin-left:auto;margin-right:auto}.case-shell .case-content img{max-height:58svh!important}.case-shell #project-modules{grid-template-columns:minmax(0,1fr)!important;gap:22px}.case-shell .case-media{padding:13px!important}.case-shell .case-prose{grid-column:1}.case-onward:not(:where(.ai-studies,.sound-studio) *){grid-template-columns:1fr 1fr;}.case-onward:not(:where(.ai-studies,.sound-studio) *) a:nth-child(2){grid-column:1/-1;grid-row:2;text-align:center}.case-onward:not(:where(.ai-studies,.sound-studio) *) a:last-child{grid-column:2;grid-row:1}}
/* Media scale follows the individual piece: bounded artwork, width-fit applications, immersive landscapes. */
.case-shell .media-fit-width{grid-column:1/-1}.case-shell .media-fit-width img{width:100%!important;max-height:none!important}.case-shell .media-immersive{grid-column:1/-1;max-width:none!important;position:relative;}.case-shell .media-immersive img{max-height:none!important}.case-shell .media-immersive.case-piece-enter{animation:none}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.case-shell *{animation:none!important;transition:none!important}.case-piece-enter{opacity:1!important;translate:none!important}}

/* ==== Home and Work: intro, featured project, catalogue (was home-portfolio-v1.css) ==== */
body.home-experience{color:#e4edf1}.home-experience .site-wrap,.home-experience .site-container,.home-experience .site-content{background:transparent}
.home-portfolio{width:calc(100% - 64px);max-width:1360px;margin:0 auto;padding:45px 0 50px;font-family:nqdy,Arial,sans-serif}.home-portfolio a{color:inherit;text-decoration:none}
.home-intro{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:45px;align-items:center;margin-bottom:85px}.home-eyebrow{letter-spacing:.15em;line-height:1.8;margin:0 0 25px}.home-intro h1{font-size:clamp(58px,6.8vw,96px);font-weight:300;line-height:1.02;letter-spacing:-.055em;margin:0 0 28px}.home-lead{font-size:14px;line-height:1.9;max-width:385px;margin:0 0 32px}.home-actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap;font-size:12px}
.home-primary{display:inline-flex;gap:30px;align-items:center;border:1px solid #466672;border-radius:3px;padding:14px 18px;font-size:12px;transition:background .2s}.home-primary:hover{background:#203b45}.home-feature{position:relative;display:block;overflow:hidden;border-radius:5px;background:#141a24;min-height:500px}.home-feature img{display:block;width:100%;height:500px;object-fit:cover;object-position:50% 50%;transition:transform .6s}.home-feature:hover img{transform:scale(1.025)}.home-feature:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,#080f18e8);pointer-events:none}.home-feature-caption{position:absolute;left:30px;right:30px;bottom:28px;z-index:1}.home-feature-caption p{line-height:1.7;color:#bbced5;margin:10px 0 0}.home-feature-caption p:first-child{letter-spacing:.14em;color:#bbdbe2}.home-feature-caption h2{font-size:clamp(24px,2.5vw,34px);font-weight:400;line-height:1.3;color:white;letter-spacing:-.025em;margin:13px 0}.home-feature-caption h2 span{float:right}
.home-section-heading{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #293e48;padding-bottom:23px}.home-section-heading h2,.home-contact h2{font-size:34px;font-weight:300;letter-spacing:-.025em;margin:0}.home-project-count{letter-spacing:.05em;margin:0}.home-filters{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0 35px}.home-filters button{font:11px nqdy,Arial,sans-serif;border:1px solid #314753;border-radius:24px;background:transparent;padding:10px 15px;cursor:pointer}.home-filters button[aria-pressed=true]{background:#d4ebed;}.home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 25px}.home-card{min-width:0}.home-card[hidden]{display:none}.home-card-image{aspect-ratio:1.45;overflow:hidden;border-radius:3px;}.home-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s,filter .35s}.home-card a:hover img{transform:scale(1.035);filter:brightness(1.1)}.home-card-text{padding:17px 0 0}.home-card-text>p:first-child{letter-spacing:.11em;text-transform:uppercase;margin:0 0 10px}.home-card h3{font-size:18px;font-weight:400;line-height:1.4;letter-spacing:-.02em;margin:0 0 9px}.home-card h3 span{font-size:15px;}.home-card-tags{line-height:1.7;margin:0}.home-contact{margin-top:85px;padding:45px 0 0;border-top:1px solid #30434d;display:flex;justify-content:space-between;align-items:center;gap:30px}.home-contact .home-eyebrow{margin-bottom:14px}.home-portfolio :focus-visible{outline:2px solid #a2d7d9;outline-offset:5px}
@media(max-width:1050px){.home-intro{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px}.home-feature,.home-feature img{min-height:440px;height:440px}.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){.home-portfolio{width:calc(100% - 32px);padding-top:30px}.home-intro{grid-template-columns:1fr;gap:35px;margin-bottom:55px}.home-intro h1{font-size:70px}.home-lead{max-width:520px}.home-feature{min-height:0;height:auto}.home-feature img{min-height:0;height:auto;aspect-ratio:16/9}.home-feature:after{display:none}.home-contact{align-items:start;flex-direction:column}.home-feature-caption{position:relative;left:auto;right:auto;bottom:auto;padding:0 22px 22px}}
@media(max-width:650px){.home-grid{grid-template-columns:minmax(0,1fr);gap:32px}.home-filters{gap:8px}.home-filters button{padding:9px 12px}.home-section-heading h2,.home-contact h2{font-size:28px}.home-card h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){.home-portfolio *{transition:none!important;scroll-behavior:auto}}

/* ==== About and Contact (was profile-pages-v1.css) ==== */
body.profile-experience{background:#0b141b;color:#e7edf0}.profile-experience .site-wrap,.profile-experience .site-container,.profile-experience .site-content{background:transparent}.profile-page{font-family:nqdy,Arial,sans-serif;max-width:1160px;width:calc(100% - 64px);margin:auto;padding:50px 0 70px}.profile-page a{color:#bcdee2;text-decoration:none}.profile-eyebrow{line-height:1.8;letter-spacing:.16em;color:#98b4bf;margin:0 0 22px}.profile-page h1{font-size:clamp(48px,6vw,78px);line-height:1.07;font-weight:300;letter-spacing:-.05em;color:#f1f5f6;margin:0 0 28px}.profile-lead{font-size:16px;line-height:1.85;color:#b1c3cd;max-width:530px}.profile-button{display:inline-flex;align-items:center;gap:30px;border:1px solid #47636f;border-radius:3px;padding:15px 20px;font-size:12px;margin-top:20px;transition:background .2s}.profile-button:hover{background:#213740}.profile-hero{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:70px}.profile-portrait{margin:0}.profile-portrait img{display:block;width:100%;max-height:580px;object-fit:cover;object-position:50% 35%;border-radius:3px}.profile-portrait figcaption{color:#8ca7b4;margin-top:15px}.profile-story{display:grid;grid-template-columns:1fr 2fr;gap:60px;padding:70px 0;border-bottom:1px solid #2b414d}.profile-page h2{font-size:30px;font-weight:300;line-height:1.35;letter-spacing:-.025em;color:#e5eff3;margin:0 0 25px}.profile-story p:not(.profile-eyebrow),.profile-details p:not(.profile-eyebrow){font-size:14px;line-height:1.9;color:#aebfc9;margin:0 0 20px}.profile-details{display:grid;grid-template-columns:1fr 1fr;gap:65px;padding:55px 0}.profile-details a{font-size:13px}.profile-close{border-top:1px solid #2b414d;padding-top:35px;display:flex;justify-content:space-between;gap:30px;align-items:center}.profile-links{display:flex;gap:22px;flex-wrap:wrap;font-size:12px}.profile-page :focus-visible{outline:2px solid #a2d7d9;outline-offset:5px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.contact-direct{margin:40px 0 30px}.contact-direct .profile-eyebrow{margin-bottom:12px}.contact-direct a{font-size:clamp(16px,2vw,21px);overflow-wrap:anywhere}.contact-guidance{line-height:1.9;max-width:400px;color:#91aab8;margin-bottom:30px}.contact-panel{background:#11212b;border:1px solid #2b424e;border-radius:5px;padding:32px}.contact-panel h2{font-size:24px;margin-bottom:12px}.contact-note{color:#94abb7;margin-bottom:30px}.contact-panel .contact-form{margin:0;max-width:none;width:100%!important}.contact-panel .form-input{margin-bottom:23px}.contact-panel label{display:block!important;color:#c2d5df;font:12px nqdy,Arial,sans-serif;margin:0 0 10px}.contact-panel input:not([type=hidden]),.contact-panel textarea{display:block!important;box-sizing:border-box;border:1px solid #36505f;border-radius:3px;background:#0c1820;color:#e7eff3;font:14px/1.6 nqdy,Arial,sans-serif;padding:13px;width:100%!important;min-width:0!important;resize:vertical}.contact-panel textarea{min-height:160px}.contact-panel input::placeholder,.contact-panel textarea::placeholder{color:#829ba9;opacity:1}.contact-panel input:focus,.contact-panel textarea:focus{border-color:#acdcdf!important;outline:2px solid #acdcdf;outline-offset:2px}.contact-panel .submit-button{border:1px solid #b3dadd;background:#c8e4e6;color:#142d37;border-radius:3px;padding:15px 20px;width:100%!important;font:13px nqdy,Arial,sans-serif;cursor:pointer}.contact-panel .submit-button:hover{background:#e0f0f1!important}
@media(max-width:800px){.profile-hero,.contact-layout{grid-template-columns:1fr;gap:35px}.profile-portrait{max-width:500px}.profile-story{grid-template-columns:1fr;gap:10px}.profile-details{gap:30px}.contact-intro .profile-lead{max-width:600px}}
@media(max-width:550px){.profile-page{width:calc(100% - 32px);padding-top:28px}.profile-page h1{font-size:49px}.profile-hero{gap:30px}.profile-story{padding:45px 0}.profile-details{grid-template-columns:1fr;padding:40px 0}.profile-close{align-items:start;flex-direction:column}.contact-panel{padding:23px}.profile-page h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){.profile-page *{transition:none}}

/* ==== Header and mobile menu (was portfolio-header-v5.css) ==== */
@font-face{font-family:portfolio-ui;src:url('/assets/raleway.woff2') format('woff2'),url('/assets/raleway.ttf') format('truetype');font-weight:100 900;font-display:swap}
.portfolio-header,.portfolio-mobile-nav{font-family:portfolio-ui,Arial,sans-serif;color:#ecece7;box-sizing:border-box}
.portfolio-header{position:sticky;top:0;z-index:50;width:100%;margin:0;padding:0;border-bottom:1px solid #ffffff15}
.portfolio-header-inner{align-items:center;width:calc(100% - 64px);max-width:1360px;margin:auto;box-sizing:border-box}
.portfolio-header .portfolio-brand,.portfolio-mobile-nav .portfolio-brand{display:inline-flex;align-items:center;min-height:44px;flex:none;border:0;margin:0;padding:0;text-decoration:none}
.portfolio-brand img{display:block!important;position:static;width:100%!important;height:auto!important;max-width:100%!important;object-fit:contain;margin:0;padding:0;}
.portfolio-nav{display:flex!important;align-items:center;gap:32px;float:none;width:auto!important;margin:0;padding:0;position:static}
.portfolio-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:4px 0;font:500 14px/1.5 portfolio-ui,Arial,sans-serif;letter-spacing:.02em;text-transform:none;text-decoration:none;border:0;box-sizing:border-box}
.portfolio-nav a:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;scale:0 1;transform-origin:left;transition:scale .18s ease-out}.portfolio-nav a:hover:after,.portfolio-nav a.is-active:after{scale:1}
.portfolio-menu{display:none;align-items:center;justify-content:center;gap:12px;min-height:44px;min-width:76px;border:0;background:none;color:#ecece7;font:500 13px/1 portfolio-ui,Arial,sans-serif;padding:10px 0;cursor:pointer}.portfolio-menu svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.5;fill:none}
.portfolio-header :focus-visible,.portfolio-mobile-nav :focus-visible{outline:2px solid #c5e5e6;outline-offset:4px;border-radius:1px}
.portfolio-skip{position:fixed;left:16px;top:8px;z-index:200;padding:12px 18px;background:#f5f3e9;color:#111315;font:13px/1.5 portfolio-ui,Arial,sans-serif;translate:0 -150%;text-decoration:none}.portfolio-skip:focus{translate:0 0}
.portfolio-mobile-nav{position:fixed;inset:0 0 0 auto;border:0;border-left:1px solid #ffffff1e;width:min(100vw,420px);height:100dvh;max-height:none;max-width:none;margin:0;padding:24px;overflow:auto}
.portfolio-mobile-nav[open]{display:flex;flex-direction:column;animation:portfolio-menu-enter .18s ease-out both}.portfolio-mobile-nav::backdrop{background:#030609a6}
.portfolio-dialog-top{align-items:center;padding-bottom:25px;border-bottom:1px solid #ffffff20}.portfolio-mobile-nav .portfolio-brand{width:160px}
.portfolio-close-menu{display:inline-flex;align-items:center;gap:12px;min-width:66px;min-height:44px;padding:8px 0;border:0;background:none;color:#ecece7;font:12px/1.5 portfolio-ui,Arial,sans-serif;cursor:pointer}.portfolio-close-menu span{font:26px/1 Arial,sans-serif}
.portfolio-mobile-links{display:flex!important;flex-direction:column;gap:2px;float:none;width:100%!important;padding:25px 0;margin:0}
.portfolio-mobile-links a{display:block;color:#ecece7;text-decoration:none;font:400 clamp(30px,9vw,40px)/1.3 portfolio-ui,Arial,sans-serif;padding:14px 0;border-bottom:1px solid #ffffff15}.portfolio-mobile-links a.is-active{color:#b5e1e4!important}
.portfolio-mobile-social{display:grid!important;grid-template-columns:1fr 1fr;gap:0 20px;float:none;width:100%!important;margin:12px 0 25px;padding:0}.portfolio-mobile-social a{display:flex;align-items:center;min-height:44px;color:#aebec3;font:12px/1.6 portfolio-ui,Arial,sans-serif;text-decoration:none}.portfolio-mobile-social a:hover{text-decoration:underline;text-underline-offset:4px}
.portfolio-menu-note{margin:auto 0 0;padding-top:25px;border-top:1px solid #ffffff20;color:#839398;font:11px/1.8 portfolio-ui,Arial,sans-serif;letter-spacing:.08em}
.confirmation-page{margin:0;padding:0;max-width:none;background:#f2ede2;color:#273037;font-family:portfolio-ui,Arial,sans-serif}.portfolio-confirmation{max-width:620px;width:calc(100% - 40px);line-height:1.8}.portfolio-confirmation h1{font:400 42px/1.15 portfolio-ui,Arial,sans-serif;color:#273037}.portfolio-confirmation a{color:#315964}
@keyframes portfolio-menu-enter{from{opacity:.7;translate:16px 0}to{opacity:1;translate:0 0}}
@media(max-width:760px){.portfolio-header-inner{width:calc(100% - 32px);}.portfolio-menu{display:inline-flex}.portfolio-mobile-nav{padding:20px}}
@media(prefers-reduced-motion:reduce){.portfolio-header *,.portfolio-mobile-nav{animation:none!important;transition:none}}

/* Equal side columns keep the symmetric wordmark on the central axis. */
.portfolio-header-inner{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.portfolio-header .portfolio-brand{grid-column:2;grid-row:1;justify-self:center}
.portfolio-header .portfolio-nav,.portfolio-header .portfolio-menu{grid-column:3;grid-row:1;justify-self:end}
.portfolio-dialog-top{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px}
.portfolio-dialog-top .portfolio-brand{grid-column:2;grid-row:1;justify-self:center}
.portfolio-close-menu{grid-column:3;grid-row:1;justify-self:end}
@media(max-width:360px){.portfolio-menu{gap:0}.portfolio-menu-label{display:none}.portfolio-close-menu{justify-content:end;font-size:0;gap:0}}

/* Centred wordmark and navigation share one axis, without an empty side. */
@media(min-width:761px){.portfolio-brand img{max-height:28px}.portfolio-header .portfolio-nav{justify-content:center;}.portfolio-nav a:after{bottom:6px}}
@media(max-width:760px){.portfolio-menu{font-size:14px}}
@media(min-width:761px){.portfolio-header-inner{min-height:112px;gap:35px;padding:0}.portfolio-header .portfolio-brand{width:320px;min-height:102px;display:flex;align-items:center}.portfolio-header .portfolio-brand img{max-height:none}.portfolio-header .portfolio-nav{gap:34px}.portfolio-nav a{font-size:16px;min-height:44px}}
@media(max-width:760px){.portfolio-header-inner{min-height:68px;padding:0;gap:15px}.portfolio-header .portfolio-brand{width:205px;min-height:65px}.portfolio-header .portfolio-brand img{max-height:none;}.portfolio-menu{min-width:44px}.portfolio-nav{display:none!important}}

/* ==== Case studies: refined layouts (was project-refinements-v1.css) ==== */
@font-face{font-family:shzc;src:url('/assets/shzc-400.woff2') format('woff2');font-weight:400;font-display:swap}
/* Each composition follows its material: archive, campaign, identity, film or image. */
.case-refined .case-index{gap:8px 20px;padding:18px 0;margin:30px 0;border-block:1px solid #81818135}.case-refined .case-index a{width:auto;min-width:44px;min-height:44px;height:auto;padding:8px 10px;font-size:12px}.case-refined .case-content,.case-refined .case-media,.case-refined .refined-work{scroll-margin-top:110px}.case-refined .case-intro .refined-opening-art{margin:0!important;border-radius:0}.case-refined .refined-opening-art img{display:block;max-width:100%!important;object-fit:contain}.case-refined .case-content{margin-bottom:70px}.case-refined .case-view-hint{font-size:12px;margin-bottom:30px}.case-refined .refined-work{display:flex!important;align-items:stretch;padding:18px;border:1px solid #81818130}.refined-number{font:11px/1.6 'Courier New',monospace;letter-spacing:.06em;color:var(--case-muted);margin:0}.case-refined .case-index a:hover{background:#80808012}
/* Defence: a portal folio with the original backdrop beside the brief. */

/* Prevention: red ink, paired print sheets and uncut illustration detail. */
.case-prevention.case-refined .case-intro{grid-template-columns:1fr 1fr;align-items:center}.case-prevention.case-refined #project-modules{display:block}.case-prevention.case-refined .case-content img{max-height:80svh!important}
/* Workshop: squared identity plate and two larger application boards. */

/* Social posts: a feed with five independent, readable publication cards. */
.case-air-social.case-refined #project-modules{display:block}.case-air-social.case-refined .collection-wall{background:none;border:0;padding:0!important}.case-air-social.case-refined .refined-wall{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.case-air-social.case-refined .refined-work{background:#f8fcfd;border-radius:4px;padding:22px}.case-air-social.case-refined .case-content img{max-height:70svh!important}.case-air-social.case-refined .case-prose{padding-block:28px!important}
/* 2019: a technical exhibition wall, rather than seven squeezed thumbnails. */
.case-air-posters19.case-refined .case-intro{grid-template-columns:1fr .65fr;gap:80px}.case-air-posters19.case-refined h1{font-family:shzc,Impact,sans-serif;font-size:clamp(65px,8vw,110px);font-weight:400;letter-spacing:0}.case-air-posters19.case-refined #project-modules{display:block}.case-air-posters19.case-refined .collection-wall{padding:0!important;background:none;border:0}.case-air-posters19.case-refined .refined-wall{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.case-air-posters19.case-refined .refined-work{background:#121e28;border-top:2px solid #a9d5e0}.case-air-posters19.case-refined .case-content img{max-height:80svh!important}.case-air-posters19.case-refined .case-prose{margin:30px auto!important}
/* Mustang: a wide image-led diptych, with each atmosphere given its own scene. */
.case-mustang.case-refined .case-intro{display:block;text-align:left}.case-mustang.case-refined h1{max-width:1000px;font-size:clamp(48px,6vw,82px);font-weight:300}.case-mustang.case-refined .case-lead{margin:25px 0 40px;max-width:740px}.case-mustang.case-refined .refined-opening-art{padding:0!important;background:#130f1b}.case-mustang.case-refined #project-modules{grid-template-columns:1fr}.case-mustang.case-refined #piece-2{padding:0!important;background:#0d151b}.case-mustang.case-refined #piece-2 img{width:100%!important;max-height:none!important}.case-mustang.case-refined .module-caption{padding:18px 24px}
/* Spirit: the poster introduces the film; the stills and original credits follow. */

/* Koopper: the mark has one opening; variations, banners and Labs remain distinct. */
.case-koopper.case-refined .refined-opening-art{background:#14202e;}.case-koopper.case-refined #project-modules{grid-template-columns:1fr}.case-koopper.case-refined .case-content img{max-height:65svh!important}.case-koopper.case-refined .case-prose{padding:18px 0!important;border-top:1px solid #859dc844}
/* Low poly: the complete landscape, then the graphic layer it was designed for. */
.case-lowpoly.case-refined .case-lead{margin:20px 0 40px;max-width:750px}.case-lowpoly.case-refined .module-caption{padding:18px 22px}.case-lowpoly.case-refined #project-modules{grid-template-columns:1fr}.case-lowpoly.case-refined #piece-2{padding:30px!important}
/* Earlier posters: a paper archive with a larger, numbered exhibition grid. */
.case-air-posters.case-refined h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(45px,6vw,76px)}.case-air-posters.case-refined #project-modules{display:block}.case-air-posters.case-refined .collection-wall{padding:0!important;background:none;border:0}.case-air-posters.case-refined .refined-wall{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.case-air-posters.case-refined .refined-work{background:#e2e8eb09;border-radius:0;border-color:#e2e8eb30}.case-air-posters.case-refined .case-content img{max-height:75svh!important}.case-air-posters.case-refined .case-prose{padding:25px 0!important}
/* IADE: exhibition sheet, sketches, models and trophy, each in its own section. */

/* Personal identity: centred monogram plates and a separate three-dimensional study. */

@media(max-width:1000px){.case-air-posters.case-refined .refined-wall{grid-template-columns:1fr 1fr}.case-refined .case-intro{gap:35px}}
@media(max-width:760px){.case-refined .case-intro{text-align:left}.case-refined #project-modules{grid-template-columns:1fr!important}.case-refined .case-content .grid--main,.case-refined .case-content .refined-wall{grid-template-columns:1fr;}.case-refined .refined-work{padding:15px}.case-refined .case-content img{max-height:80svh!important}.case-refined .case-content .case-media{padding:15px!important}.case-refined .case-prose{padding:16px 0!important}.case-refined .case-index{gap:4px 10px}.case-refined .case-index a{padding-inline:4px}}

.case-refined img{aspect-ratio:auto var(--art-ratio,1)}.case-refined .case-intro .refined-opening-art img{height:auto!important;margin:auto}.case-mustang.case-refined .case-intro .refined-opening-art img{width:100%!important}

.case-refined .media-immersive{width:100%!important;left:auto;translate:none}.case-refined #project-modules{min-width:0}

@media(max-width:760px){.case-shell.case-refined .case-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}.case-shell.case-refined .case-intro h1{font-size:clamp(40px,11vw,60px)}.case-shell.case-refined .case-heading{min-width:0}}

.case-refined .case-content .grid--main{gap:28px}@media(max-width:760px){.case-refined .case-content .grid--main{gap:24px!important}}

/* ==== Case studies: crafted pages (was crafted-projects-v2.css) ==== */
/* Four projects, four compositions. The artwork stays complete and opens at its original resolution. */
.crafted-case{--case-text:#f2f0e9;max-width:1280px;width:calc(100% - 80px);position:relative;padding-top:30px}
.crafted-case img{display:block!important;position:static;inset:auto;padding:0;margin:0 auto;width:min(100%,calc(var(--art-height,60svh) * var(--art-ratio,1)))!important;aspect-ratio:auto var(--art-ratio,1);height:auto!important;max-width:100%;object-fit:contain;background:transparent;opacity:1!important}
.crafted-case .craft-index{width:100%!important;float:none;clear:both}
.crafted-case h1,.crafted-case h2,.crafted-case h3{color:var(--case-text);font-family:nqdy,Arial,sans-serif;font-weight:500;letter-spacing:-.04em;line-height:1.12;margin:0}
.crafted-case h2{font-size:clamp(29px,3.5vw,48px)}.crafted-case h3{font-size:23px}
.crafted-case p{font-size:15px;line-height:1.9;color:var(--case-muted);margin:20px 0 0;max-width:660px}
.crafted-case .case-back{margin-bottom:30px;}
.crafted-case .craft-kicker{letter-spacing:.13em;text-transform:uppercase;color:var(--case-accent);margin:0 0 25px;line-height:1.8}
.craft-hero{display:grid;gap:60px;align-items:center;min-height:540px;padding:25px 0 55px}
.craft-hero h1{font-size:clamp(45px,6.5vw,85px);letter-spacing:-.055em}.craft-hero .craft-lead{max-width:450px;font-size:16px}
.craft-covers .craft-credit{max-width:450px;margin-top:24px;font-size:13px;line-height:1.7;color:var(--case-muted)}
.hero-copy,.hero-art{min-width:0}.hero-art .case-media{background:none;padding:0!important}.crafted-case .hero-art img{max-height:62svh!important}.hero-art .module-caption{display:none}
.craft-index{display:flex;align-items:center;flex-wrap:wrap;gap:4px 26px;border-block:1px solid #ffffff30;padding:8px 0;margin:0 0 75px;position:relative}
.craft-index a,.craft-index button{font:12px/1.5 nqdy,Arial,sans-serif;display:inline-flex;align-items:center;min-height:44px;color:var(--case-accent)}.craft-index a:hover{text-decoration:underline;text-underline-offset:6px}
.crafted-case #project-modules{display:block!important;clear:both}
.craft-section{display:grid;gap:50px;align-items:start;margin:0 0 100px;}
.section-heading{padding-top:15px;min-width:0}.section-number{display:block;font:11px/1.7 'Courier New',monospace;letter-spacing:.09em;color:var(--case-accent);margin:0 0 24px}
.section-art{display:grid;gap:25px;min-width:0}.crafted-case .section-art .case-media{border-radius:0;}.crafted-case .section-art .module-caption,.crafted-case .section-art .module-caption *{font-size:12px!important}
.crafted-case .section-art img{max-height:min(72svh,620px)!important}
.crafted-case .project-source{margin:0 0 90px;font-size:13px;max-width:none}.project-source a{border-bottom:1px solid currentColor;padding-bottom:6px;display:inline-flex;min-height:30px;align-items:center}
.crafted-case .case-onward{margin-top:80px;font-size:13px}.crafted-case .craft-process,.craft-context,.craft-credits{padding:65px 0;border-top:1px solid #ffffff30;margin-bottom:50px;}
.process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin:50px 0 30px}.process-steps span{font:11px/1.8 'Courier New',monospace;letter-spacing:.04em;display:block;color:var(--case-accent);margin-bottom:16px}.process-steps p{font-size:14px}.crafted-case .process-context{max-width:900px}
/* Last Mill: the original wordmark is the opening. No enlarged duplicate title or preview. */

/* Cover collection: the warmth and proportions of a record catalogue. */
.craft-covers{--case-text:#f7ebd5;--case-muted:#d2c1a6;--case-accent:#dfc79e;max-width:1160px}.craft-covers h1,.craft-covers h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.04em}.record-opening{grid-template-columns:.9fr 1.2fr;min-height:530px}.record-opening .hero-art{position:relative;padding:22px;border:1px solid #dfc79e35;background:#dfc79e06;box-shadow:12px 14px 0 #0c0b0844}.record-opening .hero-art:before{content:'LM / ARTWORK COLLECTION';position:absolute;inset:-28px auto auto 0;font:10px 'Courier New',monospace;letter-spacing:.1em;color:var(--case-accent)}.craft-covers .craft-index{border-color:#dfc79e40;gap:4px 22px}.craft-covers .craft-section{grid-template-columns:240px 1fr;gap:55px;padding-top:35px;border-top:1px solid #dfc79e35}.craft-covers .section-heading{position:sticky;}.craft-covers .section-heading h2{font-size:36px;line-height:1.18}.craft-covers .section-heading p{font-size:14px}.craft-covers .section-number{margin-bottom:18px}.craft-covers .section-art .case-media{background:#dfc79e07;padding:20px!important;border-bottom:1px solid #dfc79e25}.craft-covers .section-art .grid--main{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:25px}.craft-covers .section-art img{max-height:min(58svh,480px)!important}.craft-covers .record-single .section-art img{max-height:min(58svh,480px)!important}.craft-covers .record-single .section-art{max-width:600px}.craft-covers .case-onward{border-color:#dfc79e40}
/* Noite dos Museus: the illuminated city is the visual thread of the campaign. */
.theme-night{background:radial-gradient(ellipse at 80% 12%,#341333 0,transparent 27%),radial-gradient(ellipse at 0 45%,#211332 0,transparent 36%),#100b1a}.craft-night{--case-text:#fff2f8;--case-muted:#dfc7da;--case-accent:#ffafd5;isolation:isolate}.night-beam{position:absolute;top:350px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#ff72c4b0,transparent);rotate:-13deg;box-shadow:0 0 14px #ff2ea6;opacity:.6}.beam-two{top:550px;rotate:9deg;background:linear-gradient(90deg,transparent,#8d70ffaa,transparent)}
.night-opening{grid-template-columns:1fr .85fr;gap:90px;padding:15px 0 65px;min-height:610px}.night-opening h1{font-weight:300;letter-spacing:.04em;line-height:1.08;font-size:clamp(40px,5.7vw,76px)}.night-opening h1 em{font-family:Georgia,serif;font-weight:400;font-size:.55em;letter-spacing:0;text-transform:none;display:inline-block;vertical-align:middle;padding-right:12px}.night-opening .hero-art{padding:20px;background:#0a0613;border:1px solid #d882c13b;}.craft-night .hero-art img{max-height:65svh!important}.craft-night .craft-lead{max-width:460px}.craft-night .craft-index{border-color:#ffafd53a}
.craft-night .night-invitation{grid-template-columns:1fr}.night-invitation .section-heading{max-width:620px}.craft-night .night-invitation .section-art{grid-template-columns:1.2fr 1fr;align-items:center;gap:30px}.craft-night .section-art .case-media{background:#0b0814;padding:18px!important;border:1px solid #ffafd527}.craft-night .night-invitation img{width:100%!important;max-height:none!important}.craft-night .night-programme{grid-template-columns:1fr 1fr;gap:90px;align-items:center}.craft-night .night-programme .section-art img{max-height:75svh!important}.craft-night .night-merch{grid-template-columns:1fr}.craft-night .night-merch .section-heading{max-width:620px}.craft-night .night-merch .grid--main{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.craft-night .night-merch .section-art .case-media{background:#170d22}.craft-night .process-steps{border-top:1px solid #ffafd530;padding-top:35px}.craft-night .craft-process h2{font-weight:300;font-size:clamp(36px,5vw,60px)}
/* Projection mapping: triangulated light, a scanning plane and pointer-controlled illumination. */
.theme-projection{background:radial-gradient(ellipse at 70% 8%,#072459 0,transparent 40%),#050b18}.craft-projection{--case-accent:#75e7ff;--case-muted:#b9cfdf;max-width:1320px}.projection-opening{grid-template-columns:1fr 1.5fr;gap:20px;padding:0 0 50px}.projection-opening h1{font-weight:300;font-size:clamp(54px,6.5vw,88px)}.projection-opening h1 em{font-style:normal;color:#8deeff;text-shadow:0 0 35px #117aff66}.projection-opening .craft-lead{max-width:420px}.projection-stage{position:relative;--light-x:50%;--light-y:45%;background:radial-gradient(ellipse at var(--light-x) var(--light-y),#168cfb30,transparent 48%);touch-action:pan-y;isolation:isolate}.projection-stage svg{display:block;width:100%;height:100%;overflow:visible}.projection-grid path{fill:none;stroke:#1982ff26;stroke-width:1}.projection-aircraft{transform-origin:50% 50%;transform:translate(var(--light-offset-x,0px),var(--light-offset-y,0px));transition:transform .12s ease-out}.aircraft-outline{fill:#091a32;stroke:url(#plane-light);stroke-width:2.5;filter:drop-shadow(0 0 8px #008cff80)}.projection-panels{fill:#174c7928;stroke:#26bfff8a;stroke-width:1}.projection-spine{fill:none;stroke:#8eedff;stroke-width:1;opacity:.8}.laser-sweep{animation:light-scan 7s linear infinite;fill:#108eff33}.laser-edge{stroke:#75f5ff;stroke-width:2;filter:drop-shadow(0 0 8px #1fffff)}@keyframes light-scan{from{transform:translateY(-160px)}to{transform:translateY(740px)}}.projection-coordinate{position:absolute;bottom:0;display:flex;justify-content:space-between;border-top:1px solid #52b9ff40;padding-top:14px;font:10px/1.7 'Courier New',monospace;letter-spacing:.08em;color:#87b4d6}.projection-coordinate span{letter-spacing:0}
.craft-projection .craft-index{border-color:#5dcaff40}.motion-switch{border:0;background:transparent;margin-left:auto;cursor:pointer;padding:0 10px;border-left:1px solid #5dcaff40}.craft-projection.motion-paused .laser-sweep{animation-play-state:paused}.craft-projection.motion-paused .projection-aircraft{transform:none}.craft-projection .projection-film{grid-template-columns:1fr;gap:30px}.craft-projection .projection-film .section-heading{display:grid;grid-template-columns:60px 1fr;gap:0 25px}.projection-film .section-heading p{grid-column:2;margin-top:14px}.craft-projection .embed-aspect-ratio{border:1px solid #44c6ff55;border-radius:0;max-height:none;box-shadow:0 0 70px #106bff18}.craft-projection .craft-context{display:grid;grid-template-columns:1fr 1.2fr;gap:15px 60px}.craft-context .craft-kicker{grid-column:1/-1}.craft-context h2{grid-row:2/4}.craft-context p{margin:0 0 20px}.craft-projection .craft-credits dl{display:grid;grid-template-columns:1fr 1fr;gap:35px 70px;margin-top:45px}.craft-credits dt{font:11px/1.8 'Courier New',monospace;letter-spacing:.05em;color:var(--case-muted);margin-bottom:10px}.craft-credits dd{margin:0;font-size:20px;line-height:1.7}.craft-credits a{display:inline-block}.craft-projection .project-source{margin-top:-65px}
@media(max-width:1000px){.crafted-case{width:calc(100% - 48px)}.craft-hero{gap:30px}.night-opening{gap:45px}.craft-section{gap:30px;}.craft-covers .craft-section{grid-template-columns:210px 1fr;gap:30px}.craft-night .night-invitation .section-art{grid-template-columns:1fr}.craft-night .night-merch .grid--main{grid-template-columns:repeat(2,minmax(0,1fr))}.process-steps{gap:25px}.projection-opening{grid-template-columns:1fr 1.1fr}.projection-coordinate span{display:none}}
@media(max-width:760px){.crafted-case{width:calc(100% - 32px);padding-top:22px}.crafted-case .case-back{margin-bottom:20px}.craft-hero{grid-template-columns:1fr;min-height:0;gap:35px;padding:5px 0 35px}.craft-hero h1{font-size:clamp(42px,11vw,65px)}.craft-hero .craft-lead{font-size:15px}.crafted-case .hero-art img{max-height:60svh!important}.craft-index{gap:0 20px;margin-bottom:45px}.craft-index a,.craft-index button{font-size:12px}.craft-section,.craft-covers .craft-section,.craft-night .night-programme{grid-template-columns:1fr;gap:25px;margin-bottom:60px}.crafted-case .section-art .case-media{padding:14px!important}.section-number{margin-bottom:12px}.section-heading p{font-size:14px}.craft-covers .section-heading{position:static}.craft-covers .section-heading h2{font-size:33px}.craft-covers .record-opening{gap:55px}.craft-covers .section-art .grid--main{grid-template-columns:1fr}.night-opening h1{font-size:clamp(41px,10.5vw,65px)}.craft-night .hero-art{max-width:450px;width:100%;margin:auto}.craft-night .night-invitation .section-art{grid-template-columns:1fr}.craft-night .night-merch .grid--main{grid-template-columns:1fr 1fr;gap:12px}.process-steps{grid-template-columns:1fr;gap:30px;margin-top:35px}.crafted-case .craft-process,.craft-context,.craft-credits{padding:40px 0;margin-bottom:30px}.crafted-case .project-source{margin-bottom:60px}.projection-opening{gap:15px}.projection-stage{margin-inline:-8px}.craft-projection .projection-film .section-heading{display:block}.projection-film .section-heading p{margin-top:15px}.craft-projection .craft-context{grid-template-columns:1fr;gap:20px}.craft-context h2{grid-row:auto}.craft-context .craft-kicker{grid-column:auto;margin-bottom:0}.craft-projection .craft-credits dl{grid-template-columns:1fr;gap:25px}.craft-projection .project-source{margin-top:-35px}.motion-switch{margin-left:0;border:0;padding-left:0}.crafted-case .case-onward{font-size:12px;margin-top:45px}}
@media(prefers-reduced-motion:reduce){.crafted-case *{animation:none!important;transition:none!important;scroll-behavior:auto}.projection-aircraft{transform:none!important}.craft-covers .section-heading{position:static}}

/* Reserve the artwork silhouette before it loads, including transparent logos. */
.craft-covers{--art-height:min(58svh,480px)}.craft-night .hero-art{--art-height:65svh}.craft-night .night-programme{--art-height:75svh}

/* Architectural planes echo the city built for the original campaign. */
.craft-night .night-opening .hero-copy{position:relative;padding:15px 0}.craft-night .night-opening .hero-art{box-shadow:0 25px 80px #ff24a523,inset 0 0 35px #d451a409}

/* ==== Case studies: chaptered pages (was project-chapters-v1.css) ==== */
/* A community identity, a print workshop and a two-part synthwave narrative. */
.chapter-motion{margin-left:auto;border:0;border-left:1px solid #ffffff30;background:none;padding:0 12px;cursor:pointer}.chapter-motion:disabled{color:var(--case-muted);cursor:default}
/* SRIC: the spiral and galaxy in the original identity inform a quiet orbital setting. */
.theme-community{background:radial-gradient(ellipse at 80% 12%,#301535 0,transparent 40%),#0c1020}.craft-community{--case-text:#f3eefa;--case-muted:#c5bfd6;--case-accent:#ff85b5;max-width:1240px}.community-opening{grid-template-columns:1.1fr 1fr;gap:65px;min-height:500px}.community-opening h1{font-weight:300;line-height:1.1;font-size:clamp(48px,6vw,78px)}.community-opening h1 em{font-style:normal;color:#ff85b5}.community-orbits{position:relative;isolation:isolate;overflow-x:clip;background:radial-gradient(ellipse,#44274c70,transparent 70%);padding:50px 35px}.community-orbits .case-media{position:relative;z-index:2}.craft-community .hero-art img{--art-height:48svh;max-height:48svh!important;width:min(100%,calc(48svh * var(--art-ratio,1)))!important}.community-orbit{position:absolute;inset:4% 0;border:1px solid #c589be40;border-radius:50%;animation:community-orbit 70s linear infinite;pointer-events:none}.community-orbit span{position:absolute;top:50%;left:-3px;width:6px;height:6px;background:#ff87b9;box-shadow:0 0 12px #ff5aa5;border-radius:50%}.community-orbit.orbit-two{inset:14% 10%;rotate:-22deg;border-color:#73c0e62b;animation-direction:reverse;animation-duration:95s}.orbit-two span{background:#8aceef;box-shadow:0 0 12px #4ba7fa;left:auto;right:-3px}
@keyframes community-orbit{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.craft-community.motion-paused .community-orbit{animation-play-state:paused}.craft-community .craft-index{border-color:#c589be40}.community-profile{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-bottom:95px;}.community-profile h2{font-weight:300;font-size:clamp(34px,4vw,50px)}.community-profile-art{padding:22px;background:#17172b;border:1px solid #c589be35}.community-profile-art .case-media{padding:0!important;background:none}.community-profile-art img{--art-height:60svh;max-height:60svh!important}
.community-disciplines{margin-bottom:90px;}.community-disciplines>header{max-width:780px;margin-bottom:40px;border-top:1px solid #c589be40;padding-top:35px}.community-disciplines h2{font-weight:300}.community-disciplines .case-media{padding:18px!important;background:#0a1723;border:1px solid #c589be30}.community-disciplines img{width:100%!important;max-height:none!important}.community-source{display:flex;justify-content:space-between;align-items:center;gap:60px;border-block:1px solid #c589be40;padding:40px 0;}.community-source h2{font-weight:300;font-size:36px}.community-source p{font-size:14px}.community-source a{display:inline-flex;align-items:center;min-height:48px;border:1px solid #ff85b55e;padding:12px 20px;font-size:13px;flex:none}.community-source a:hover{background:#ff85b512}
/* Pemafeel: ink, diagrams and the distinction between drawing and printed application. */
.theme-print{background:#f0ede7}.craft-print{--case-text:#242127;--case-muted:#5b515b;--case-accent:#763451;max-width:1260px}.print-opening{display:grid;grid-template-columns:.9fr 1.4fr;gap:60px;align-items:center;min-height:500px;margin-bottom:35px}.craft-print h1,.craft-print h2{font-family:shzc,Impact,'Arial Narrow',sans-serif;font-weight:400;letter-spacing:.005em;line-height:.95}.craft-print h1{font-size:clamp(65px,8vw,110px)}.craft-print h2{font-size:clamp(42px,5.5vw,66px)}.print-engine{position:relative;background:#fff;padding:30px;border:1px solid #76345130}.print-engine:before,.print-engine:after{content:'';position:absolute;inset:12px;pointer-events:none;border-top:1px solid #76345120;border-bottom:1px solid #76345120}.print-engine:after{inset:0 12px;border:0;border-left:1px solid #76345120;border-right:1px solid #76345120}.print-sheet{margin:0;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.print-sheet img{--art-height:62svh;max-height:62svh!important}.print-sheet figcaption{font:11px/1.8 'Courier New',monospace;color:#5b515b;margin-top:18px;align-self:stretch;line-height:1.8}.craft-print .craft-index{border-color:#76345135}.print-escort{display:grid;grid-template-columns:250px 1fr;gap:60px;margin-bottom:90px;}.print-escort>header{position:sticky;}.print-escort header p{font-size:14px}.print-pair{display:grid;grid-template-columns:1fr;gap:30px}.print-pair .print-sheet{padding:24px;background:#fff;border:1px solid #76345125}.print-pair .print-sheet:first-child img{width:100%!important;max-height:none!important}.print-pair .print-sheet:last-child img{--art-height:65svh;}
.print-applications{border-top:1px solid #76345135;padding-top:35px;margin-bottom:80px;}.print-applications>header{max-width:700px;margin-bottom:40px}.print-applications p{font-size:14px}.print-application-wall{display:grid;}.print-application-wall .print-sheet{background:#f9f6f0;border:1px solid #76345125}.print-application-wall img{--art-height:56svh;}.print-scope{border-block:1px solid #76345135;padding:35px 0;display:grid;grid-template-columns:250px 1fr;gap:60px;}.print-scope h2{font-size:50px}.print-scope dl{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:30px}.print-scope dt{font:11px/1.8 'Courier New',monospace;color:#763451;margin-bottom:10px}.print-scope dd{margin:0;font-size:15px;line-height:1.7}.craft-print .case-onward{border-color:#76345135}
/* Vaporwar: an ambient signal behind the title; the illustrations themselves remain untouched. */
.craft-signal{--case-text:#ffeff7;--case-muted:#d8baca;--case-accent:#ff9ec7;max-width:1360px}.signal-opening{position:relative;min-height:390px;padding:55px 0 50px;--ambient-x:50%;--ambient-y:70%;}.signal-opening h1{font:700 italic clamp(60px,9vw,120px)/1 'Courier New',monospace;letter-spacing:-.065em;text-shadow:2px 2px 0 #ff326a40}.signal-grid{position:absolute;width:200%;left:-50%;background:repeating-linear-gradient(90deg,transparent 0,transparent 79px,#c3529038 80px),repeating-linear-gradient(0deg,transparent 0,transparent 39px,#c3529038 40px);transform:perspective(330px) rotateX(60deg);transform-origin:50% 0;animation:signal-grid-drift 14s ease-in-out infinite alternate}.signal-line{position:absolute;width:70%;height:1px;left:15%;background:linear-gradient(90deg,transparent,#ff779f,transparent);box-shadow:0 0 20px #e8206a;animation:signal-line-drift 10s ease-in-out infinite alternate}.signal-deck{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-top:35px}.craft-signal .signal-deck p{margin:0;max-width:550px;font-size:14px}.craft-signal .signal-deck p:first-child{font:18px/1.5 'Courier New',monospace;letter-spacing:-.03em;color:#ffeff7}.craft-signal .craft-index{border-color:#ed80b647}.signal-episode{display:grid;grid-template-columns:220px minmax(0,1fr);gap:50px;align-items:start;margin:0 0 100px;}.episode-caption{position:sticky;}.craft-signal .episode-caption h2{font:700 italic 33px/1.2 'Courier New',monospace;letter-spacing:-.05em}.craft-signal .episode-caption p{font-size:13px;line-height:1.8}.signal-art{padding:16px;background:#0c0910;border:1px solid #ed80b641;box-shadow:0 20px 80px #f2326412;min-width:0}.signal-art .case-media{padding:0!important;background:none}.signal-art img{--art-height:78svh;max-height:78svh!important;width:min(100%,calc(78svh * var(--art-ratio,1)))!important}.craft-signal .module-caption,.craft-signal .module-caption *{font:11px/1.8 'Courier New',monospace!important;color:#d8baca!important}.second-episode{--case-accent:#ffb17f}.second-episode .signal-art{border-color:#ff9b7350;box-shadow:0 20px 80px #ff722012}.craft-signal .case-onward{border-color:#ed80b647}
@keyframes signal-grid-drift{from{translate:-10px 0}to{translate:10px 7px}}@keyframes signal-line-drift{from{opacity:.3;translate:-12px 0}to{opacity:.7;translate:12px -8px}}
@media(max-width:1000px){.community-opening{gap:35px}.community-profile{gap:40px}.print-opening{gap:30px}.print-escort,.print-scope{grid-template-columns:210px 1fr;gap:35px}.signal-episode{grid-template-columns:180px minmax(0,1fr);gap:30px}.signal-opening h1{font-size:clamp(60px,9vw,100px)}}
@media(max-width:760px){.community-opening{grid-template-columns:1fr;min-height:0;gap:35px}.community-opening h1{font-size:clamp(43px,11vw,62px)}.community-orbits{padding:40px 25px}.craft-community .hero-art img{--art-height:43svh;max-height:43svh!important;width:min(100%,calc(43svh * var(--art-ratio,1)))!important}.community-profile{grid-template-columns:1fr;gap:25px;margin-bottom:60px}.community-profile-art{padding:15px}.community-disciplines{margin-bottom:55px}.community-disciplines>header{margin-bottom:25px;padding-top:25px}.community-disciplines .case-media{padding:8px!important}.community-source{flex-direction:column;align-items:start;gap:25px;padding:30px 0}.community-source h2{font-size:31px}.community-source a{width:100%;justify-content:space-between}.chapter-motion{margin-left:0;border:0;padding-left:0}.print-opening{grid-template-columns:1fr;min-height:0;gap:25px;margin:0 0 30px}.craft-print h1{font-size:clamp(68px,18vw,100px)}.print-engine{padding:20px}.print-sheet img{--art-height:60svh;max-height:60svh!important}.print-escort,.print-scope{grid-template-columns:1fr;gap:25px;margin-bottom:55px}.print-escort>header{position:static}.craft-print h2{font-size:48px}.print-escort h2 br{display:none}.print-pair{gap:22px}.print-application-wall .print-sheet{margin-top:0!important}.print-applications{margin-bottom:55px}.print-applications>header{margin-bottom:25px}.print-scope{margin-bottom:0;padding:25px 0}.print-scope dl{grid-template-columns:1fr;gap:22px}.signal-opening{min-height:0;padding:30px 0 40px}.signal-opening h1{font-size:clamp(50px,13vw,78px);letter-spacing:-.065em}.signal-deck{grid-template-columns:1fr;gap:20px;margin-top:25px}.signal-episode{grid-template-columns:1fr;gap:25px;margin-bottom:60px}.episode-caption{position:static}.craft-signal .episode-caption h2{font-size:32px}.episode-caption h2 br{display:none}.signal-art{padding:10px}.signal-art img{--art-height:65svh;max-height:65svh!important;width:min(100%,calc(65svh * var(--art-ratio,1)))!important}}
@media(prefers-reduced-motion:reduce){.community-orbit,.signal-grid,.signal-line{animation:none!important}.episode-caption,.print-escort>header{position:static}}

/* ==== Case studies: study and sketchbook pages (was study-projects-v1.css) ==== */
/* EATT is a publication. Concept art is a sketchbook. Both remain deliberately quiet. */
.craft-journal{--case-text:#263039;--case-muted:#4d5557;--case-accent:#843725;max-width:1220px}
.journal-masthead{border-block:2px solid #263039;padding:15px 0 35px;margin:15px 0 0}.journal-edition{display:flex;justify-content:space-between;gap:25px;font:11px/1.8 'Courier New',monospace;letter-spacing:.07em;text-transform:uppercase;color:#4d5557}
.craft-journal .journal-masthead h1{font:400 clamp(100px,14vw,180px)/.85 Georgia,serif;letter-spacing:-.065em;margin:45px 0 35px}.journal-masthead h1 span{display:inline-block;font-size:.35em;letter-spacing:-.035em;margin-left:35px}
.journal-deck{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;border-top:1px solid #26303950;padding-top:25px}.craft-journal .journal-deck p{margin:0}.craft-journal .journal-deck p:first-child{font:30px/1.25 Georgia,serif;color:#263039}.craft-journal .journal-deck p:last-child{font-size:14px;max-width:500px}
.craft-journal .craft-index{border-top:0;border-color:#26303950;margin-bottom:60px}.journal-spread{margin:0 0 80px;}.journal-spread header{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;margin-bottom:25px}.journal-spread header .section-number{color:#843725;border-top:3px solid #843725;padding-top:15px;max-width:250px}.craft-journal .journal-spread header p{font-size:14px;margin:0}
.craft-journal .journal-spread .case-media{padding:20px!important;background:#e5dccb;border:1px solid #cfc2aa}.craft-journal .journal-spread img{width:100%!important;max-height:none!important}.craft-journal .module-caption,.craft-journal .module-caption *{color:#4d5557!important;}
.journal-process{display:grid;grid-template-columns:.85fr 1.7fr;gap:60px;margin:60px 0 80px;border-top:1px solid #26303950;padding-top:45px;}.craft-journal .journal-process h2,.craft-journal .journal-read h2{font-family:Georgia,serif;font-size:40px}.journal-copy p:first-child{margin-top:0}.craft-journal .journal-copy p{font-size:15px;max-width:720px}.journal-workflow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;border-top:1px solid #26303950;margin-top:35px;padding-top:25px}.journal-workflow span{font:12px/1.8 'Courier New',monospace;color:#843725;margin-bottom:15px;display:block}.journal-workflow h3{font-family:Georgia,serif;font-size:26px}.craft-journal .journal-workflow p{font-size:13px;line-height:1.8;margin-top:12px}
.journal-read{display:flex;justify-content:space-between;align-items:center;gap:40px;border-block:1px solid #26303950;padding:35px 0;}.craft-journal .journal-read .craft-kicker{margin-bottom:15px}.craft-journal .case-onward{border-color:#26303950}
/* Paper, margins and paired interpretations, with complete original sheets. */
.theme-sketchbook{background:repeating-linear-gradient(0deg,#55483305 0,#55483305 1px,transparent 1px,transparent 48px),#ece7d9}.craft-sketchbook{--case-text:#302c25;--case-muted:#595247;--case-accent:#734334;max-width:1180px;border-left:1px solid #a9614933;padding-left:30px;padding-right:10px}.craft-sketchbook h1,.craft-sketchbook h2,.craft-sketchbook h3{font-family:Georgia,serif;font-weight:400}.sketch-opening{grid-template-columns:1fr 1.05fr;gap:65px;padding-bottom:55px}.sketch-opening h1{font-size:clamp(43px,5.8vw,72px);line-height:1.12}.sketch-opening h1 em{font-style:italic}.craft-sketchbook .sketch-note{font:12px/1.8 'Courier New',monospace;color:#734334;margin-top:25px}.craft-sketchbook .hero-art{padding:18px 18px 0;background:#f8f4e9;box-shadow:8px 12px 0 #55483310;border:1px solid #55483325}.craft-sketchbook .hero-art img{width:100%!important;max-height:55svh!important}.craft-sketchbook .craft-index{border-color:#55483340}.craft-sketchbook .study-sheet{background:#faf7ee;padding:16px;margin:0;border:1px solid #55483322;min-width:0;display:flex;flex-direction:column;justify-content:center;box-shadow:0 8px 20px #55483306}.craft-sketchbook .hero-art .study-sheet{padding:0;border:0;box-shadow:none;background:none}.craft-sketchbook .study-sheet img{max-height:min(58svh,490px)!important;max-width:100%!important;height:auto!important}.study-sheet figcaption{font:12px/1.8 nqdy,Arial,sans-serif;color:#595247;display:flex;align-items:baseline;gap:15px;justify-content:space-between;margin:15px 0 0}.study-sheet figcaption span{font:10px/1.8 'Courier New',monospace;color:#734334;flex:none}
.sketch-chapter{margin-bottom:85px;padding-top:30px;border-top:1px solid #55483340;}.sketch-chapter>header{display:grid;grid-template-columns:180px 1fr;gap:0 40px;margin:0 0 40px}.sketch-chapter>header .section-number{grid-row:1/3;margin-top:10px}.sketch-chapter>header h2{font-size:clamp(31px,3.5vw,44px)}.craft-sketchbook .sketch-chapter>header p{grid-column:2;max-width:630px;font-size:14px;margin-top:20px}
.study-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.study-wall .study-sheet:nth-child(2){margin-top:50px}.study-wall .study-sheet:nth-child(4){grid-column:2}.study-pair{margin-bottom:50px}.study-pair h3{font-size:28px;margin:0 0 25px;padding-bottom:12px;border-bottom:1px solid #55483325}.paired-art{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:stretch}.paired-art .study-sheet img{max-height:62svh!important}.paired-art .study-sheet{justify-content:space-between;padding:22px}.paired-art .grid__item-container{flex:1!important}.paired-art figcaption{padding-top:15px;border-top:1px solid #55483320}.digital-chapter .study-wall{grid-template-columns:1fr 1fr}.digital-chapter .study-wall .study-sheet{margin-top:0;grid-column:auto}.digital-chapter .study-wall .study-sheet:last-child{max-width:550px}.craft-sketchbook .case-onward{border-color:#55483340}
@media(max-width:1000px){.sketch-opening{gap:35px}.journal-process{gap:35px}.journal-masthead h1 span{margin-left:20px}.craft-sketchbook{padding-left:22px;padding-right:0}.sketch-chapter>header{grid-template-columns:135px 1fr;gap:0 25px}.journal-workflow{grid-template-columns:1fr;gap:22px}.journal-workflow article{display:grid;grid-template-columns:30px 100px 1fr;gap:15px;align-items:start}.journal-workflow span{margin-top:5px}.craft-journal .journal-workflow p{margin:0}}
@media(max-width:760px){.journal-edition{flex-direction:column;gap:6px;}.craft-journal .journal-masthead h1{font-size:clamp(100px,29vw,155px);margin:30px 0}.journal-masthead h1 span{display:block;font-size:.42em;margin:18px 0 0;letter-spacing:-.04em}.journal-deck{grid-template-columns:1fr;gap:20px}.craft-journal .journal-deck p:first-child{font-size:28px}.journal-spread header{grid-template-columns:1fr;gap:0;margin-bottom:20px}.journal-spread header .section-number{max-width:none;margin-bottom:15px}.craft-journal .journal-spread .case-media{padding:10px!important}.journal-process{grid-template-columns:1fr;gap:25px;margin:40px 0 55px;padding-top:30px}.craft-journal .journal-process h2,.craft-journal .journal-read h2{font-size:34px}.journal-margin .craft-kicker{margin-bottom:15px}.journal-workflow article{display:block}.journal-workflow span{margin-bottom:8px}.craft-journal .journal-workflow p{margin-top:10px}.journal-spread{margin-bottom:55px}.journal-read{flex-direction:column;align-items:start;gap:25px}.craft-sketchbook{padding-left:13px;padding-right:0;width:calc(100% - 32px)}.sketch-opening{grid-template-columns:1fr;gap:30px;padding-bottom:35px}.sketch-opening h1{font-size:clamp(41px,10.5vw,63px)}.craft-sketchbook .hero-art{padding:14px 14px 0}.sketch-chapter{margin-bottom:55px;padding-top:25px}.sketch-chapter>header{display:block;margin-bottom:25px}.sketch-chapter>header .section-number{margin-bottom:15px}.craft-sketchbook .sketch-chapter>header p{font-size:14px}.study-wall,.digital-chapter .study-wall,.paired-art{grid-template-columns:1fr;gap:22px}.study-wall .study-sheet:nth-child(2){margin:0}.study-wall .study-sheet:nth-child(4){grid-column:auto}.craft-sketchbook .study-sheet{padding:13px}.craft-sketchbook .study-sheet img{max-height:63svh!important}.paired-art .study-sheet{padding:16px}.paired-art figcaption{margin-top:16px}.study-pair{margin-bottom:35px}.study-pair h3{font-size:27px}.study-sheet figcaption{gap:12px}.craft-sketchbook .craft-lead{font-size:15px}}
@media(prefers-reduced-motion:reduce){.craft-sketchbook *,.craft-journal *{animation:none!important;transition:none!important}}

.craft-sketchbook .study-sheet{--art-height:min(58svh,490px)}.craft-sketchbook .hero-art{--art-height:55svh}.craft-sketchbook .paired-art{--art-height:62svh}.craft-sketchbook .hero-art img{width:min(100%,calc(55svh * var(--art-ratio,1)))!important}
@media(max-width:760px){.craft-sketchbook .study-sheet{--art-height:63svh}}

/* ==== Case studies: artwork sizing (was artwork-layout-v2.css) ==== */
/* Complete artwork openings, and full-width single-image boards. */
.case-shell .case-preview img{width:min(100%,calc(54svh * var(--art-ratio,1)))!important;height:auto!important;max-height:none;object-fit:contain;margin:0 auto}
.case-shell .case-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.case-shell .case-preview figcaption{width:100%;text-align:center;line-height:1.7}
.case-shell .grid--main:has(>.grid__item-container):not(:has(>.grid__item-container ~ .grid__item-container)){grid-template-columns:minmax(0,1fr)!important}
.case-shell .grid--main,.case-shell .case-media{overflow:visible!important}

@media(max-width:760px){.case-shell .case-preview img{width:min(100%,calc(60svh * var(--art-ratio,1)))!important}}

.case-shell .grid__item-container{flex-direction:column;gap:14px}

.craft-projection .projection-stage{min-width:0;width:100%;max-width:100%;box-sizing:border-box}.craft-projection .projection-coordinate{min-width:0;gap:8px;flex-wrap:wrap}

.case-shell [id],.case-shell img{scroll-margin-top:120px}@media(max-width:760px){.case-shell [id],.case-shell img{scroll-margin-top:90px}}

/* ==== Footer and shared polish (was portfolio-polish-v1.css) ==== */
/* Shared navigation and footer belong to the site; project palettes remain local. */
.portfolio-footer{position:relative;z-index:2;color:#c2c9ca;border-top:1px solid #ffffff1c;font:13px/1.8 portfolio-ui,Arial,sans-serif;padding:35px 0 25px;margin:0;clear:both}.portfolio-footer *{box-sizing:border-box}.portfolio-footer-inner{max-width:1360px;width:calc(100% - 64px);margin:auto}.portfolio-footer-main{display:flex;align-items:center;justify-content:space-between;gap:25px}.portfolio-footer-social{display:flex;flex-wrap:wrap;gap:4px 24px;float:none;width:auto!important;margin:0;padding:0}.portfolio-footer a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;border:0;font:13px/1.7 portfolio-ui,Arial,sans-serif}.portfolio-footer a:hover{color:#fff!important;text-decoration:underline!important;text-underline-offset:5px}.portfolio-footer-bottom a{font-size:12px!important}.portfolio-footer a:focus-visible{outline:2px solid #c5e5e6;outline-offset:3px}@media(max-width:900px){.portfolio-footer-main{align-items:start;flex-direction:column;gap:18px}.portfolio-footer-social{gap:2px 22px}}@media(max-width:760px){.portfolio-footer-inner{width:calc(100% - 32px)}.portfolio-footer{padding-block:28px 20px!important}.portfolio-footer-social{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%!important;gap:4px 14px}}

.case-shell .case-back{display:inline-flex;align-items:center;min-height:44px;font-size:12px}.case-shell .case-onward a{display:flex;align-items:center;min-height:44px}.case-shell .case-onward a:nth-child(2){justify-content:center}.case-shell .case-onward a:last-child{justify-content:flex-end}

.home-filters button{min-height:44px;font-size:12px}.case-shell .case-start{min-height:44px;align-items:center}.case-shell .module-caption,.case-shell .module-caption *{font-size:12px!important}.contact-panel label{font-size:13px!important}.contact-panel input:not([type=hidden]),.contact-panel textarea{font-size:16px!important}.profile-links a{min-height:44px;display:inline-flex;align-items:center}

#portfolio-main,#portfolio-main [id],.home-work{scroll-margin-top:132px}.craft-covers .section-heading,.episode-caption,.print-escort>header{top:136px}@media(max-width:760px){#portfolio-main,#portfolio-main [id],.home-work{scroll-margin-top:90px}}

body.confirmation-page{min-height:100svh;display:flex;flex-direction:column}.confirmation-page .portfolio-confirmation{flex:1;margin:60px auto}.confirmation-page .portfolio-header,.confirmation-page .portfolio-footer{flex-shrink:0}@media(max-width:760px){.confirmation-page .portfolio-confirmation{margin:40px auto}}

/* ==== Brand system: HD Plex, charcoal header and footer (was brand-system-v1.css) ==== */
@font-face{font-family:HD Plex;src:url('/assets/hd-2026/IBMPlexSans-Variable.woff2') format('woff2'),url('/assets/hd-2026/IBMPlexSans-Variable.ttf') format('truetype');font-weight:100 700;font-display:swap}@font-face{font-family:HD Orbitron;src:url('/assets/hd-2026/Orbitron-Variable.woff2') format('woff2'),url('/assets/hd-2026/Orbitron-Variable.ttf') format('truetype');font-weight:400 900;font-display:swap}
.portfolio-header{background:#141414;border-bottom-color:#d6d0c423}.portfolio-header:before{content:'';position:absolute;inset:0;background:url('/assets/hd-2026/textura_carvao.jpg') center/960px auto;opacity:.09;pointer-events:none}.portfolio-header .portfolio-nav a,.portfolio-menu,.portfolio-mobile-nav,.portfolio-footer{font-family:HD Plex,Arial,sans-serif}.portfolio-header .portfolio-nav a{color:#d6d0c4}.portfolio-header .portfolio-nav a:hover,.portfolio-header .portfolio-nav a.is-active{color:#fff!important}.portfolio-header .portfolio-nav a:after{background:#d6d0c4}.portfolio-mobile-nav{background:#141414}.portfolio-brand img{filter:none;opacity:1!important}.portfolio-footer a{font-family:HD Plex,Arial,sans-serif!important;color:#d6d0c4}
body.home-experience{background:#141414}.home-experience .home-intro h1{color:#f3f2ef}.home-experience .home-intro h1 span{color:#d6d0c4}.home-experience .home-card:has(a[href*="hubert-dungen-branding"]){background:#141414}
@media(max-width:760px){.portfolio-mobile-nav .portfolio-brand{width:205px!important;min-width:160px}.portfolio-mobile-nav .portfolio-brand img{width:100%!important;height:auto!important;max-height:none!important}.portfolio-dialog-top{gap:8px}.portfolio-close-menu{flex:none;min-width:44px}}
.portfolio-header-inner{display:flex!important;flex-direction:row;justify-content:space-between}.portfolio-dialog-top{display:flex!important;justify-content:space-between}
.home-experience .home-eyebrow,.home-experience .home-project-count,.home-experience .home-card-text>p:first-child,.home-experience .home-card-tags{color:#bcb6a9}.home-experience .home-lead{color:#c4bfb4}.home-experience .home-card h3,.home-experience .home-section-heading h2,.home-experience .home-contact h2{color:#f3f2ef}.home-experience .home-card h3 span{color:#d6d0c4}.home-experience .home-section-heading,.home-experience .home-contact{border-color:#d6d0c430}.home-experience .home-primary{border-color:#a6a6a6;color:#f3f2ef}.home-experience .home-primary:hover{background:#3a3a38}.home-experience .home-filters button{color:#d6d0c4;border-color:#757575}.home-experience .home-filters button[aria-pressed=true]{background:#d6d0c4;color:#141414;border-color:#d6d0c4}.home-experience .home-portfolio :focus-visible{outline-color:#d6d0c4}.home-experience .home-card-image{background:#1f1f1f}

/* ==== Brand interactions: logo glow (was brand-interactions-v2.css) ==== */
.portfolio-header .portfolio-brand,.extra-brand{position:relative;isolation:isolate;--brand-x:0px;--brand-y:0px;--brand-light-x:50%;--brand-light-y:50%}
.portfolio-header .portfolio-brand:before,.extra-brand:before{position:absolute;inset:-5px -12px;background:radial-gradient(ellipse at var(--brand-light-x) var(--brand-light-y),#d6d0c426,transparent 65%);opacity:0;z-index:-1;pointer-events:none;transition:opacity .3s ease}
.portfolio-header .portfolio-brand.is-brand-active:before,.extra-brand.is-brand-active:before{opacity:1}
.portfolio-header .portfolio-brand img,.extra-brand img{transform:translate3d(var(--brand-x),var(--brand-y),0);transform-origin:center}
.portfolio-footer{isolation:isolate;overflow:hidden;background:#141414}.portfolio-footer:before,.webfolio-footer:before{content:'';position:absolute;inset:0;background:url('/assets/hd-2026/footer-fragments-v1.svg') center/cover no-repeat;pointer-events:none;z-index:0;opacity:.65}
.portfolio-footer-inner{position:relative;z-index:1;display:block!important}.portfolio-footer-main{float:none;width:100%!important}.portfolio-footer-brand{max-width:none;width:auto;font:400 16px/1.8 HD Plex,Arial,sans-serif;color:#d6d0c4;letter-spacing:.025em;margin:0}
.portfolio-footer .portfolio-footer-bottom{display:flex!important;float:none;clear:both;width:100%!important;max-width:none;background:transparent;border-top:1px solid #d6d0c430;margin:22px 0 0;padding:14px 0 0;align-items:center;gap:24px;flex-wrap:wrap}.portfolio-footer .portfolio-footer-social{background:transparent}.portfolio-footer .portfolio-footer-bottom a:last-child{margin-left:auto}
.webfolio-footer{position:relative;isolation:isolate;overflow:hidden}.webfolio-footer>*{position:relative;z-index:1}.webfolio-footer>p{font-size:12px;letter-spacing:.08em;color:#ead9df}
.webfolio-footer a{display:inline-flex;align-items:center;min-height:44px;font-size:12px}
.portfolio-footer{background-image:linear-gradient(#141414b8,#141414b8),url('/assets/hd-2026/textura_carvao.jpg')!important;background-size:auto,960px auto!important}.webfolio-footer{background-image:linear-gradient(#20102ab8,#20102ab8),url('/assets/hd-2026/textura_carvao.jpg');background-size:auto,960px auto}
@media(max-width:760px){.portfolio-footer-brand{font-size:14px!important;max-width:270px}.portfolio-footer .portfolio-footer-bottom{gap:4px 18px}.portfolio-footer .portfolio-footer-bottom a:last-child{margin-left:0}.portfolio-footer:before,.webfolio-footer:before{background-position:63% center;opacity:.4}}
@media(prefers-reduced-motion:reduce){.portfolio-header .portfolio-brand img,.extra-brand img{transform:none!important}.portfolio-header .portfolio-brand:before,.extra-brand:before{opacity:0!important;transition:none}}
@media(hover:none),(pointer:coarse){.portfolio-header .portfolio-brand img,.extra-brand img{transform:none!important}}

/* Light lives on the entire header plane, rather than a cropped logo rectangle. */
.portfolio-header .portfolio-brand:before,.extra-brand:before{content:none;display:none!important}.portfolio-header .portfolio-brand,.extra-brand{background:transparent;box-shadow:none}
.portfolio-header:after,.extra-nav:after{content:'';display:block;position:absolute;inset:0;width:auto;height:auto;clear:none;background:radial-gradient(ellipse 220px 40px at var(--header-glow-x,180px) var(--header-glow-y,56px),#d6d0c426,transparent 80%);opacity:var(--header-glow-active,0);pointer-events:none;z-index:0;transition:opacity .3s ease}
.portfolio-header .portfolio-header-inner{position:relative;z-index:1}.extra-nav{isolation:isolate}.extra-nav>*{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.portfolio-header:after,.extra-nav:after{opacity:0!important;transition:none}}

/* ==== Editions: V8 Garage, Memory of Defence, Spirit of Mission (was portfolio-editions-v1.css) ==== */
/* Four editorial presentations. Artwork remains complete and opens at full size. */
body.edition-experience{background:var(--edition-bg,#e9e6de);color:var(--edition-ink,#22282a)}
.edition-experience .site-wrap,.edition-experience .site-container,.edition-experience .site-content{background:transparent}
.edition-page{--ink:var(--edition-ink,#22282a);--muted:var(--edition-muted,#626661);--line:var(--edition-line,#22282a30);--accent:var(--edition-accent,#344f5b);font-family:'HD Plex',Arial,sans-serif;max-width:1360px;width:calc(100% - 96px);margin:auto;padding:38px 0 70px;color:var(--ink);overflow-wrap:break-word}
.edition-page *{box-sizing:border-box}.edition-page a{color:inherit;text-decoration:none}.edition-back{display:inline-flex;min-height:44px;align-items:center;font-size:12px;color:var(--muted)!important;margin-bottom:28px}
.edition-page nav{float:none;width:100%}
.edition-page .edition-eyebrow{line-height:1.8;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0 0 22px}
.edition-page h1{font-size:clamp(54px,7.2vw,106px);font-weight:400;line-height:1.02;letter-spacing:-.065em;color:var(--ink);margin:0 0 28px}.edition-page h1 em{font-style:normal;color:var(--accent)}
.edition-page h2{font-size:clamp(30px,4vw,53px);font-weight:400;line-height:1.08;letter-spacing:-.045em;color:var(--ink);margin:0 0 24px}.edition-page h3{font-size:22px;line-height:1.3;font-weight:400;color:var(--ink);margin:0 0 15px}
.edition-page p{font-size:15px;line-height:1.85;color:var(--muted);margin:0 0 21px}.edition-page .edition-lead{font-size:clamp(16px,1.4vw,19px);max-width:39ch;line-height:1.75}
.edition-page figure{margin:0;min-width:0}.edition-page img{display:block;width:100%;height:auto;max-width:100%}.edition-page figcaption{line-height:1.6;color:var(--muted);display:flex;justify-content:space-between;gap:15px;margin-top:14px}.edition-page figcaption span:last-child{opacity:.8}
.edition-meta{display:flex;gap:22px;flex-wrap:wrap;padding-top:20px;margin-top:30px;border-top:1px solid var(--line)}.edition-meta span{color:var(--muted)}
.edition-hero{display:grid;grid-template-columns:1fr 1.22fr;align-items:center;gap:clamp(30px,5vw,80px);padding:18px 0 62px;min-height:540px}.edition-hero>div{min-width:0}
.edition-index{border-block:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:13px 0;margin:0 0 75px}.edition-index a{display:flex;align-items:center;min-height:44px;font-size:12px;color:var(--muted);border-bottom:1px solid transparent}.edition-index a:hover,.edition-index a:focus-visible{color:var(--ink);border-color:var(--accent)}
.edition-section{margin:0 0 100px;}.edition-section-heading{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:0 0 35px}.edition-section-heading>div{max-width:680px}.edition-section-heading p:last-child{margin-bottom:0}.edition-inline-link{display:inline-flex;gap:22px;align-items:center;min-height:44px;border-bottom:1px solid var(--accent);font-size:12px;margin-top:10px}
.edition-page .js-lightbox{cursor:zoom-in}.edition-page :focus-visible{outline:2px solid var(--accent);outline-offset:6px}.edition-page .edition-project-nav{display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:25px}.edition-project-nav a{display:flex;align-items:center;min-height:44px;font-size:12px;color:var(--muted)}
.air-hero-wall{position:relative;min-height:510px;display:block;perspective:1100px;background:radial-gradient(ellipse at 50% 65%,#a6a39936,transparent 66%)}
.air-hero-wall img{position:absolute;width:42%;height:85%;object-fit:contain;filter:drop-shadow(0 17px 13px #131b2433);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.air-hero-wall img:nth-child(1){left:6%;top:2%;transform:rotate(-11deg) translateY(20px)}.air-hero-wall img:nth-child(2){left:29%;top:0;z-index:2;transform:rotate(3deg)}.air-hero-wall img:nth-child(3){right:6%;top:8%;transform:rotate(13deg) translateY(20px)}
.air-hero-wall:hover img:nth-child(1){transform:rotate(-14deg) translate(-6px,10px)}.air-hero-wall:hover img:nth-child(2){transform:rotate(0deg) translateY(-7px)}.air-hero-wall:hover img:nth-child(3){transform:rotate(16deg) translate(6px,10px)}
.air-collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px 28px}.air-artwork{background:#f4f1e9;padding:22px 22px 18px;border:1px solid #242d3517;box-shadow:0 14px 34px -28px #111b2a55}.air-artwork .js-lightbox{display:flex;align-items:center;justify-content:center;min-height:0}.air-artwork img{width:100%;height:clamp(270px,31vw,460px);object-fit:contain}.air-artwork figcaption{padding-top:13px;border-top:1px solid #22282a20;display:block;line-height:1.55}.air-artwork figcaption small{display:block;letter-spacing:.06em;color:#676b68;margin-bottom:6px}
.edition-air .air-posts .air-artwork{background:#dfe4e2}.edition-air .air-posts img{height:clamp(260px,28vw,400px)}.air-related{padding:27px 0;margin-top:35px;border-block:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:25px}.air-related p{margin:0;max-width:60ch;font-size:14px}.air-related a{white-space:nowrap;font-size:12px;min-height:44px;display:flex;align-items:center}
.edition-v8 .edition-hero{grid-template-columns:.85fr 1.3fr}.edition-v8 h1{color:#efc42a;letter-spacing:-.055em}.v8-render{transform:perspective(1100px) rotateX(var(--ed-tilt-x,0deg)) rotateY(var(--ed-tilt-y,0deg));transition:transform .3s;will-change:auto;box-shadow:0 25px 65px #0004}.v8-render img{border:1px solid #e8bc252a}.v8-render figcaption{padding:0 15px 12px}.v8-print-story{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}.v8-print-story>div{max-width:410px}.v8-print-story figure{box-shadow:0 22px 55px #0003}.v8-print-story img{border:1px solid var(--line)}.v8-signature{padding:40px 0;border-block:1px solid var(--line);margin-top:65px}.v8-signature img{width:100%;height:auto}.v8-signature figcaption{padding-inline:2px}
.edition-memory h1,.edition-memory h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.055em}.edition-memory h1{font-size:clamp(54px,6.6vw,94px)}.edition-memory .edition-hero{grid-template-columns:1fr 1.18fr;gap:40px}.memory-browser{background:#f8f6f0;box-shadow:0 22px 55px #252b2c20;border:1px solid #303e4530}.memory-browser-top{display:flex;align-items:center;gap:6px;height:32px;border-bottom:1px solid #303e4520;padding:0 12px}.memory-browser-top i{width:5px;height:5px;border-radius:50%;background:#b3b8b7}.memory-browser-top span{font-size:9px;letter-spacing:.04em;color:#626c6c;margin-left:10px}.memory-browser figcaption{padding:0 18px 14px}.memory-art img{border:1px solid #2b363128}.memory-note{display:grid;grid-template-columns:1fr 1fr;gap:8vw;border-top:1px solid var(--line);padding-top:30px;margin-top:35px}.memory-note p{font-size:14px}.memory-credit{font-size:12px!important;max-width:75ch;margin:35px 0 0!important}
.edition-film{max-width:1280px}.edition-film .film-heading{display:grid;grid-template-columns:1.25fr 1fr;align-items:end;gap:60px;margin:25px 0 45px}.edition-film h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(58px,7.5vw,108px);font-weight:400;letter-spacing:-.06em}.edition-film .film-heading .edition-lead{max-width:42ch;font-size:16px}
.edition-film .film-meta{margin-bottom:0}.edition-film .film-availability{font-size:12px;line-height:1.8;max-width:75ch;margin:20px 0 65px}
.film-screen{background:#090b09;position:relative;width:100%;aspect-ratio:16/9;isolation:isolate;}.film-launch{display:block;position:absolute;inset:0;overflow:hidden}.film-launch img{width:100%;height:100%;object-fit:contain}.film-launch:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#000b);pointer-events:none}.film-watch{position:absolute;z-index:2;bottom:24px;left:28px;display:flex;align-items:center;gap:15px;color:#fff;font-size:13px;text-shadow:0 1px 8px #000}.film-watch b{width:48px;height:48px;border:1px solid #fff9;border-radius:50%;display:grid;place-items:center;line-height:1;font-size:16px;padding-left:3px;background:#10171066;backdrop-filter:blur(6px);transition:background .2s}.film-launch:hover .film-watch b{background:#e6dacb;color:#171a14}.film-meta{display:flex;gap:25px;justify-content:space-between;flex-wrap:wrap;color:var(--muted);padding:17px 0;border-bottom:1px solid var(--line);}.film-stills{display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:start;margin:0 0 90px}.film-stills figure:nth-child(2){margin-top:95px}.film-stills img{width:100%;height:auto}.film-radio{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px}.film-radio>div{max-width:470px}.film-radio img{border:1px solid var(--line)}.film-credits{padding-top:28px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:20px;font-size:12px;margin-top:60px}
.sound-visual-study{border-block:1px solid #879eae45;margin:65px 0 45px}.sound-visual-study>summary{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:25px 0;cursor:pointer;list-style:none;min-height:85px;color:#e4edf1}.sound-visual-study>summary::-webkit-details-marker{display:none}.sound-visual-study summary strong{display:block;font-size:23px;font-weight:400;letter-spacing:-.03em}.sound-visual-study summary small{display:block;color:#a7bac7;font-size:12px;margin-top:9px}.sound-visual-study summary:after{content:'+';font-size:25px;line-height:1;font-weight:300}.sound-visual-study[open] summary:after{content:'−'}.sound-visual-study .visual-study-intro{font-size:14px;color:#b7c8d4;line-height:1.85;max-width:65ch;margin:16px 0 35px}.visual-study-pair{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding-bottom:40px}.visual-study-pair figure{margin:0;}.visual-study-pair img{display:block;width:100%;height:auto}.visual-study-pair .js-lightbox{cursor:zoom-in}.visual-study-pair figcaption{line-height:1.7;color:#b7c8d4;margin-top:14px}.sound-visual-study :focus-visible{outline:2px solid #afdcdf;outline-offset:5px}
.home-card-image.air-cover{position:relative;background:#dcd8cf;display:block}.home-card-image.air-cover img{position:absolute;object-fit:contain;width:48%!important;height:92%!important;top:4%;filter:drop-shadow(0 8px 7px #0004);}.home-card-image.air-cover img:nth-child(1){left:0;transform:rotate(-9deg)!important}.home-card-image.air-cover img:nth-child(2){left:26%;z-index:2;transform:rotate(2deg)!important}.home-card-image.air-cover img:nth-child(3){right:-1%;transform:rotate(11deg)!important}
.visual-study-intro h3{font:400 clamp(21px,2.2vw,28px)/1.3 nqdy,Arial,sans-serif;letter-spacing:-.03em;color:#e7edf1;margin:0 0 20px}
@media(max-width:1000px){.edition-page{width:calc(100% - 64px)}.edition-hero,.edition-v8 .edition-hero,.edition-memory .edition-hero{gap:30px}.air-hero-wall{min-height:440px}.air-collection{gap:30px 20px}.air-artwork{padding:16px}.film-radio{gap:35px}}
@media(max-width:760px){.edition-page{width:calc(100% - 40px);padding:20px 0 50px}.edition-back{margin-bottom:20px}.edition-hero,.edition-v8 .edition-hero,.edition-memory .edition-hero{grid-template-columns:1fr;min-height:0;padding:15px 0 35px;gap:35px}.edition-page h1{font-size:clamp(49px,11vw,78px);letter-spacing:-.055em}.edition-page h2{font-size:clamp(29px,7.7vw,42px)}.edition-page .edition-lead{max-width:47ch;font-size:16px}.edition-page .edition-eyebrow{margin-bottom:17px;}.edition-meta{margin-top:20px;gap:10px 20px}.air-hero-wall{min-height:390px;max-width:480px;width:100%;margin:auto}.edition-index{margin-bottom:45px;gap:0 20px;justify-content:flex-start;padding:8px 0}.edition-section{margin-bottom:65px;}.edition-section-heading{grid-template-columns:1fr;gap:10px;padding-bottom:25px}.edition-section-heading>.edition-eyebrow{margin-bottom:3px}.air-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.air-artwork{padding:12px}.air-artwork img,.edition-air .air-posts img{height:clamp(180px,45vw,330px)}.air-related{display:block}.air-related a{margin-top:15px}.v8-print-story,.memory-note,.film-radio{grid-template-columns:1fr;gap:30px}.v8-print-story>div{max-width:none}.v8-signature{margin-top:35px;padding:25px 0}.edition-film .film-heading{grid-template-columns:1fr;gap:10px;margin:15px 0 30px}.edition-film .film-heading h1{font-size:clamp(52px,13vw,86px)}.film-watch{bottom:15px;left:16px;gap:10px;font-size:12px}.film-watch b{width:40px;height:40px}.film-meta{gap:10px}.film-stills{gap:18px;margin-bottom:55px}.film-stills figure:nth-child(2){margin-top:35px}.film-credits{gap:12px 20px}.memory-browser-top span{font-size:8px}.edition-project-nav{gap:8px 22px!important}.sound-visual-study{margin-top:45px;}.visual-study-pair{grid-template-columns:1fr;gap:30px}.sound-visual-study summary strong{font-size:22px}}
@media(max-width:420px){.air-collection{grid-template-columns:1fr;gap:28px}.air-artwork{padding:20px}.air-artwork img,.edition-air .air-posts img{height:auto;max-height:none}.air-hero-wall{min-height:320px}.film-stills{grid-template-columns:1fr}.film-stills figure:nth-child(2){margin-top:0}}
@media(prefers-reduced-motion:reduce){.edition-page *{transition:none!important;scroll-behavior:auto}.v8-render{transform:none!important}}
@media(prefers-reduced-motion:reduce){.air-hero-wall:hover img:nth-child(1){transform:rotate(-11deg) translateY(20px)!important}.air-hero-wall:hover img:nth-child(2){transform:rotate(3deg)!important}.air-hero-wall:hover img:nth-child(3){transform:rotate(13deg) translateY(20px)!important}}

/* ==== Brand stories: DungenLabs, Espaco3, Mais Alto (was brand-stories-v1.css) ==== */
/* Scoped identity presentations; no changes to existing project interactions. */
.brand-story{--accent:#984a37}.brand-story-page .site-content{padding:0}.brand-story .story-intro{display:grid;grid-template-columns:1.25fr 1fr;align-items:end;gap:7vw;padding:12px 0 46px}.brand-story .story-intro h1{font-size:clamp(52px,6.6vw,96px);margin-bottom:0}.brand-story .story-intro>div{min-width:0}.brand-story .story-intro .edition-lead{max-width:40ch;margin-bottom:23px}.brand-story .story-credit{line-height:1.9;margin:0}.brand-story .story-stage{position:relative;min-height:520px;aspect-ratio:2.05;isolation:isolate;margin:0 0 35px;overflow:hidden;perspective:1100px}.story-stage .stage-coordinate{position:absolute;left:28px;top:24px;z-index:3;letter-spacing:.13em;color:#dbe9e3}.story-stage .stage-end{left:auto;top:auto;right:28px;bottom:24px}.stage-object{transform:rotateX(var(--brand-x,0deg)) rotateY(var(--brand-y,0deg));transition:transform .55s cubic-bezier(.2,.7,.2,1);will-change:auto}.dl-stage{background:#11363f;display:grid;place-items:center}.dl-stage .stage-object{width:62%;filter:drop-shadow(0 20px 12px #061a2044)}.stage-orbit{position:absolute;inset:-45% -10%;z-index:-1;background:repeating-linear-gradient(135deg,transparent 0 92px,#ec826c22 93px 94px,transparent 95px 188px);transform:rotate(-5deg)}.dl-stage:after{content:'';position:absolute;width:50%;height:170%;background:#ec826c0d;transform:rotate(36deg);left:-36%;top:-30%;z-index:-1}.brand-story .stage-caption{position:absolute;bottom:25px;left:28px;font-size:15px;letter-spacing:-.025em;color:#f3c2b5}.story-heading{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-bottom:38px}.story-heading>div{max-width:660px}.story-heading p:last-child{margin:0}.brand-lockups{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}.brand-story .brand-plate{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;padding:55px 45px 26px;position:relative}.brand-story .brand-plate img{max-width:85%;height:155px;object-fit:contain}.brand-story .brand-plate figcaption{margin:35px 0 0;width:100%;color:inherit;opacity:.8}.brand-plate.light{background:#fff;color:#183638}.brand-plate.teal{background:#11363f;color:#e1efee}.brand-plate.forest{color:#dbe7e0}.story-palette{display:grid;grid-template-columns:repeat(3,1fr);margin-top:24px}.story-palette>div{background:var(--swatch);color:var(--swatch-ink);padding:29px 22px;min-height:135px;display:flex;flex-direction:column;justify-content:space-between;}.application-stage{min-height:550px;position:relative;perspective:1300px;overflow:hidden;margin-bottom:45px!important}.application-stage figcaption{position:absolute;left:25px;bottom:18px;}.dl-paper-stage{background:#d6dcd7}.stationery-group{position:absolute;inset:12% 14% 14%;transform:rotateX(calc(16deg + var(--brand-x,0deg))) rotateY(calc(-9deg + var(--brand-y,0deg)));transition:transform .6s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}.identity-folder{position:absolute;width:48%;height:96%;left:14%;top:0;background:#11363f;box-shadow:1px 2px 0 #718183,2px 4px 0 #81948d,12px 28px 30px #15302c30;padding:35px;transform:rotate(-9deg)}.brand-story .identity-folder img{width:70%;margin-bottom:55px}.identity-folder>span{display:block;font-size:clamp(21px,2.7vw,40px);line-height:1.02;color:#ec826c;letter-spacing:-.04em}.identity-folder small{position:absolute;bottom:25px;color:#e0eae6;font-size:9px;letter-spacing:.12em}.identity-card{position:absolute;right:3%;bottom:6%;width:48%;aspect-ratio:1.8;background:white;box-shadow:0 2px 0 #b5bab3,6px 17px 24px #15302c30;transform:translateZ(28px) rotate(9deg);padding:32px;display:flex;flex-direction:column;justify-content:space-between}.brand-story .identity-card img{width:76%}.identity-card span{font-size:9px;line-height:1.6;color:#11363f}.service-symbols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;background:#11363f;padding:40px;margin-bottom:45px}.service-symbols figure{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:18px}.brand-story .service-symbols img{height:120px;width:125px;object-fit:contain}.brand-story .service-symbols figcaption{color:#deebe7;}.story-photo img{max-height:740px;object-fit:cover}.lab-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px}.brand-story .lab-pair img{height:360px;object-fit:contain;background:#dce0da;padding:25px}.brand-story .lab-pair figcaption{max-width:48ch}.brand-story .story-role{font-size:12px;max-width:75ch;margin:28px 0 0}.story-destination{display:block!important;margin-top:35px;padding:30px 0;border-block:1px solid var(--line)}.story-destination>span{display:block;letter-spacing:.1em;margin-bottom:18px;color:var(--muted)}.story-destination strong{font-weight:400;font-size:clamp(23px,3vw,39px);letter-spacing:-.04em;display:flex;justify-content:space-between;gap:20px}.story-destination:hover strong{color:var(--accent)}.space-grid{position:absolute;inset:-20%;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 79px,#9cb2a11a 80px 81px),repeating-linear-gradient(90deg,transparent 0 79px,#9cb2a11a 80px 81px);transform:perspective(600px) rotateX(55deg) rotateZ(-28deg);}.space-floating{position:absolute;left:18%;top:13%;width:24%;height:70%;display:grid;align-items:center;filter:drop-shadow(16px 22px 7px #0005)}.brand-story .space-floating img{height:100%;object-fit:contain}.space-signature{position:absolute;right:10%;top:40%;width:38%}.space-paper-stage{isolation:isolate}.space-board{position:absolute;left:19%;top:12%;width:39%;height:76%;background:#0d1812;transform:rotate(-10deg) rotateX(calc(12deg + var(--brand-x,0deg))) rotateY(var(--brand-y,0deg));box-shadow:2px 3px 0 #536454,12px 28px 30px #10261935;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:30px;transition:transform .6s}.space-board>span,.space-board small{font-size:9px;letter-spacing:.14em;color:#abb2a8}.brand-story .space-board img{width:45%;height:60%;object-fit:contain}.space-pass{position:absolute;left:51%;width:32%;aspect-ratio:1.5;background:#fff;transform:rotate(9deg) rotateX(var(--brand-x,0deg)) rotateY(var(--brand-y,0deg));box-shadow:1px 2px 0 #b9c2b7,8px 15px 24px #1c2b2033;padding:26px;transition:transform .6s}.brand-story .space-pass img{background:#0d1812;padding:15px;width:100%}.pass-lines{height:35px;border-bottom:1px solid #849b8c;margin-bottom:16px}.space-pass>span{font-size:9px;letter-spacing:.08em;line-height:1.7;display:block}.tejo-presentation{display:grid;grid-template-columns:1fr 1.4fr;align-items:center;gap:12%;padding:8% 15%;min-height:390px;perspective:1000px}.brand-story .tejo-presentation .stage-object img{height:260px;object-fit:contain;filter:drop-shadow(12px 16px 6px #0004)}.brand-story .story-banner{margin-top:28px}.brand-story .story-banner img{width:100%;height:auto}.brand-story .js-lightbox{cursor:zoom-in}
@media(max-width:1000px){.brand-story .story-intro{gap:30px}.brand-story .story-stage{min-height:420px}.identity-folder{padding:25px}.brand-story .identity-folder img{margin-bottom:40px}.application-stage{min-height:470px}.brand-story .brand-plate{padding:40px 25px 20px;min-height:280px}.space-pass{width:36%;left:49%}.service-symbols{padding:30px;gap:20px}}
@media(max-width:760px){.brand-story .story-intro{grid-template-columns:1fr;gap:27px;padding:8px 0 32px}.brand-story .story-intro h1{font-size:clamp(49px,10.3vw,76px)}.brand-story .story-intro .edition-lead{font-size:16px;max-width:50ch}.brand-story .story-stage{min-height:330px;aspect-ratio:auto}.dl-stage .stage-object{width:77%}.story-stage .stage-coordinate{left:18px;top:18px}.story-stage .stage-end{left:auto;top:auto;bottom:18px;right:18px;max-width:40%;text-align:right;line-height:1.6}.brand-story .stage-caption{left:18px;bottom:18px;font-size:12px}.story-heading{grid-template-columns:1fr;gap:5px;margin-bottom:28px}.brand-lockups{gap:14px;grid-template-columns:1fr}.brand-story .brand-plate{min-height:245px;padding:40px 25px 20px}.brand-story .brand-plate img{height:125px;max-width:85%}.brand-story .brand-plate.teal img{max-width:42%}.story-palette{margin-top:14px}.story-palette>div{padding:18px 13px;min-height:110px;}.application-stage{min-height:440px;margin-bottom:30px!important}.stationery-group{inset:12% 3% 15%}.identity-folder{width:57%;left:8%;padding:22px}.brand-story .identity-folder img{width:90%;}.identity-folder>span{font-size:clamp(22px,5.6vw,35px)}.identity-folder small{font-size:7px;bottom:20px}.identity-card{padding:20px;bottom:12%}.identity-card span{font-size:7px}.brand-story .identity-card img{width:95%}.service-symbols{grid-template-columns:1fr 1fr;padding:25px;gap:32px 20px;margin-bottom:30px}.brand-story .service-symbols img{height:90px;width:95px}.lab-pair{gap:30px;grid-template-columns:1fr}.brand-story .lab-pair img{height:330px;padding:22px}.space-floating{left:11%;width:28%;top:17%;height:60%}.space-signature{right:9%;width:40%;top:42%}.space-board{left:9%;width:55%;padding:20px;height:74%;top:13%}.space-board>span,.space-board small{font-size:7px;line-height:1.8}.space-pass{left:44%;top:48%;width:49%;padding:17px}.brand-story .space-pass img{padding:10px}.space-pass>span{font-size:7px}.pass-lines{height:20px;margin-bottom:10px}.tejo-presentation{min-height:270px;padding:9% 10%;gap:10%}.brand-story .tejo-presentation .stage-object img{height:175px}.brand-story .story-banner{margin-top:18px}.application-stage figcaption{left:18px;bottom:16px;}.brand-story .story-photo img{object-fit:contain}}
.brand-story .story-stage{width:100%}
@media(min-width:761px){.space-pass{top:37%}}
@media(max-width:760px){.brand-story .identity-folder img{margin-bottom:23px}.identity-card{right:3%;width:50%}}
@media(prefers-reduced-motion:reduce){.brand-story *{transition:none!important}.brand-story{--brand-x:0deg!important;--brand-y:0deg!important}}

/* ==== Mais Alto (was mais-alto-v1.css) ==== */
.story-magazine{--accent:#31566a}.story-magazine h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(70px,11vw,150px);letter-spacing:-.07em;line-height:1;margin-bottom:38px}.story-magazine h1>span{display:block;font-family:'HD Plex',Arial,sans-serif;font-size:clamp(22px,3vw,39px);letter-spacing:-.04em;margin-top:20px}.ma-intro-bottom{display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:7vw;margin-bottom:40px}.story-magazine .ma-intro-bottom .edition-lead{max-width:60ch;margin:0}.story-magazine .ma-credit{font-size:12px;line-height:1.9;margin:0}.ma-credit>span{color:var(--muted);}.ma-shelf{height:590px;position:relative;background:#d5d4cb;perspective:1400px;overflow:hidden;margin-bottom:30px!important}.ma-fan{position:absolute;inset:9% 15% 12%;transform-style:preserve-3d}.ma-cover{display:block;position:absolute;width:34%;height:100%;top:0;filter:drop-shadow(10px 15px 12px #25343d30);transform-origin:bottom center}.story-magazine .ma-cover img{width:100%;height:100%;object-fit:contain}.ma-cover-0{left:8%;transform:rotate(-14deg) rotateY(12deg)}.ma-cover-1{left:34%;transform:rotate(3deg) translateY(-10px)}.ma-cover-2{left:60%;transform:rotate(15deg) rotateY(-12deg)}.story-magazine .ma-shelf figcaption{position:absolute;left:25px;bottom:18px;}.ma-issue{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:8%;padding:45px 5% 55px;border-bottom:1px solid var(--line);}.ma-issue:nth-child(odd){direction:rtl}.ma-issue>*{direction:ltr}.ma-object{perspective:1100px}.ma-object>div{max-width:400px;margin:auto;transform:rotateY(-9deg) rotateZ(-3deg);box-shadow:1px 2px 0 #e5e2d7,3px 4px 0 #b5b5aa,7px 15px 24px #1b2f3935;transition:transform .5s}.ma-issue:nth-child(odd) .ma-object>div{transform:rotateY(9deg) rotateZ(3deg)}.story-magazine .ma-issue h3,.story-magazine .ma-contribution h3{font-family:Georgia,'Times New Roman',serif;font-size:clamp(32px,3.5vw,48px);line-height:1.15;letter-spacing:-.04em}.story-magazine .ma-issue-credit{line-height:1.9;margin-top:25px}.ma-contribution{display:grid;grid-template-columns:.7fr 1fr;gap:8%;align-items:center;max-width:950px;margin:0 auto 40px}.ma-contribution figure{max-width:310px;box-shadow:3px 4px 0 #b5b5aa,6px 12px 24px #1b2f3925}.story-magazine .ma-note{font-size:12px;max-width:70ch;margin:40px 0 0}.home-card-image.ma-home{background:#d5d4cb;position:relative;overflow:hidden}.home-card-image.ma-home img{position:absolute;top:7%;height:88%!important;width:36%!important;object-fit:contain;filter:drop-shadow(3px 6px 5px #20303c4a)}.home-card-image.ma-home img:nth-child(1){left:1%;transform:rotate(-10deg)!important}.home-card-image.ma-home img:nth-child(2){left:32%;transform:rotate(2deg)!important}.home-card-image.ma-home img:nth-child(3){left:63%;transform:rotate(10deg)!important}
@media(hover:hover) and (pointer:fine){.ma-object>div:hover,.ma-issue:nth-child(odd) .ma-object>div:hover{transform:rotateY(0) rotateZ(0) translateY(-5px)}}
@media(max-width:760px){.ma-intro-bottom{grid-template-columns:1fr;gap:25px;margin-bottom:30px}.story-magazine h1{font-size:clamp(65px,18vw,115px);margin-bottom:26px}.ma-shelf{height:330px}.ma-cover-0{transform:rotate(-11deg)}.ma-cover-1{transform:rotate(1deg) translateY(-5px)}.ma-cover-2{transform:rotate(11deg)}.ma-issue,.ma-issue:nth-child(odd){grid-template-columns:1fr;direction:ltr;gap:38px;padding:25px 0 45px;}.ma-object>div{max-width:310px;width:87%}.ma-issue-copy{padding-inline:8px}.ma-contribution{grid-template-columns:1fr;gap:30px}.ma-contribution figure{width:70%;max-width:290px;margin:auto}.ma-shelf figcaption{left:18px!important}.story-magazine .ma-issue h3{font-size:34px}}
@media(max-width:760px){.ma-fan{inset:12% 8% 15%}.ma-cover{width:34%}.ma-cover-0{left:1%}.ma-cover-1{left:33%}.ma-cover-2{left:65%}}
@media(prefers-reduced-motion:reduce){.ma-object>div:hover,.ma-issue:nth-child(odd) .ma-object>div:hover{transform:none}}

/* ==== Home and Work: chronological catalogue (was catalogue-order-v1.css) ==== */
.home-card-category{display:flex;justify-content:space-between;gap:12px}.home-card-period{letter-spacing:.04em;text-transform:none;opacity:.8;text-align:right}.home-order-note{font:11px/1.8 "HD Plex",Arial,sans-serif;color:#a5a29a;max-width:80ch;margin:0 0 26px}.home-card[data-project="industrial-design"] .home-card-image{background:#eeeade}.home-card[data-project="industrial-design"] img{object-fit:contain!important;padding:12% 12%;box-sizing:border-box}.home-card[data-project="xarlie-visual-identity"] img{object-fit:cover!important}

/* ==== Studio pages: shared base (was next-projects-v1.css) ==== */
/* Scoped project presentations: shared navigation stays unchanged. */
body.next-project-page{background:var(--next-bg,#ece9df);color:var(--next-ink,#26382b)}.next-project-page .site-wrap,.next-project-page .site-container,.next-project-page .site-content{background:transparent}.next-project-page .site-content{padding:0}.next-case{color:var(--next-ink,#26382b);width:calc(100% - 96px);max-width:1380px;margin:auto;padding:36px 0 90px;font-family:'HD Plex',Arial,sans-serif}.next-case *{box-sizing:border-box}.next-case a{color:inherit;text-decoration:none}.next-case h1,.next-case h2,.next-case h3{font-weight:400;color:inherit;line-height:1.05;letter-spacing:-.055em;margin:0 0 25px}.next-case h2{font-size:clamp(36px,4.7vw,66px)}.next-case h3{letter-spacing:-.035em}.next-case p{font-size:15px;line-height:1.85;color:var(--muted);margin:0 0 22px}.next-case .eyebrow{letter-spacing:.14em;text-transform:uppercase;line-height:1.8}.next-case .back{display:inline-flex;min-height:44px;align-items:center;font-size:12px;margin-bottom:40px;color:var(--muted)}.next-case img{display:block;max-width:100%;width:100%}.next-case figure{margin:0;min-width:0}.next-case figcaption{color:var(--muted);margin-top:15px}.next-case button{font:inherit;cursor:pointer;color:inherit}.next-case :focus-visible{outline:2px solid var(--accent);outline-offset:5px}.next-hero{display:grid;grid-template-columns:1.15fr .75fr;gap:7vw;align-items:end;padding-bottom:30px}.next-hero .intro{font-size:clamp(17px,1.4vw,20px);max-width:40ch}.academic{display:flex;align-items:center;gap:18px;margin:0 0 28px}.next-case .academic img{width:135px;height:auto}.academic span{color:var(--muted);line-height:1.6;max-width:26ch}.next-index{display:flex;gap:12px 35px;flex-wrap:wrap;border-block:1px solid var(--line);padding:8px 0;margin:32px 0 75px}.next-index a{display:inline-flex;align-items:center;min-height:44px;font-size:12px}.next-index a:hover{text-decoration:underline;text-underline-offset:7px}.next-section{margin:95px 0;}.next-section>header{display:grid;grid-template-columns:1fr 1.4fr;gap:8vw;align-items:start;margin-bottom:35px}.next-section>header p{max-width:53ch}.product-stage{position:relative;display:grid;place-items:center;perspective:1200px;isolation:isolate}.product-stage:before{content:'';position:absolute;inset:3%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#b8b39b28,transparent 68%)}.product-stage .product-object{max-height:72svh;object-fit:contain;transform:rotateX(var(--nx,0deg)) rotateY(var(--ny,0deg));transition:transform .5s cubic-bezier(.2,.7,.2,1)}.product-stage .stage-label{position:absolute;left:0;top:12px;letter-spacing:.11em;color:var(--muted)}.stage-label-bottom{position:absolute;bottom:0;right:0;color:var(--muted)}.product-selector{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin:20px 0 0}.product-selector button{min-height:44px;background:none;border:0;border-bottom:1px solid transparent;padding:5px 0}.product-selector button[aria-pressed=true]{border-color:var(--accent)}.next-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;border-top:1px solid var(--line);padding-top:28px;margin:45px 0}.next-facts p{font-size:13px}.next-facts strong{display:block;font-weight:400;font-size:19px;letter-spacing:-.025em;margin-bottom:10px}.next-links{display:flex;gap:15px 30px;flex-wrap:wrap;margin:25px 0}.next-links a{min-height:44px;display:inline-flex;align-items:center;font-size:12px;border-bottom:1px solid var(--line)}.next-close{border-top:1px solid var(--line);padding-top:30px;margin-top:80px;display:flex;justify-content:space-between;gap:25px;font-size:12px}
/* XARLIE: high-contrast packaging and typography, not a wall of mockups. */
.next-case nav{width:100%;float:none;clear:both}.next-case .next-section>header{width:100%;max-width:none;clear:both;float:none}.next-case .next-section>header>div{min-width:0}.next-case .next-section>header>p{min-width:0}
.next-case .quiet-detail{border-top:1px solid var(--line);}.quiet-detail summary{cursor:pointer;}.quiet-detail figure{margin-top:20px}
/* Casa do Lago: spaces are shown as a coherent proposal, not loose slides. */
.lago-zones{display:grid;grid-template-columns:1.3fr .7fr;align-items:center}.zone-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:24px}.zone-tabs button{min-height:44px;border:0;border-bottom:1px solid transparent;padding:8px 12px;background:none;font-size:12px}.zone-tabs button[aria-pressed=true]{border-color:#4e6547}.lago-zones .zone-copy{min-height:145px}.lago-zones .zone-copy h3{font-size:29px}
/* Development: editorial demonstrations; none pretend to be application captures. */
.next-tech{--muted:#a4b8ba;--line:#a7d9cc30;--accent:#b8ead4;color:#e4f0ed}.next-tech .next-hero h1{font-family:Georgia,serif;font-size:clamp(58px,8.2vw,113px)}.tech-map{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:40px 0 70px;border:1px solid var(--line);background:#12272b}.tech-map a{min-height:185px;padding:28px 23px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line)}.tech-map a:last-child{border-right:0}.tech-map span{font-family:monospace;color:#8db9b1}.tech-map strong{font-size:20px;line-height:1.2;font-weight:400;letter-spacing:-.03em}.tech-map a:hover{background:#b8ead410}.next-tech .project-state{display:inline-block;letter-spacing:.07em;border:1px solid var(--line);padding:6px 10px;margin-bottom:23px}.workflow-demo{border:1px solid var(--line);padding:35px;background:#12272b}.workflow-demo .demo-label{font:10px/1.6 monospace;color:#8db9b1;letter-spacing:.1em;margin-bottom:25px}.workflow-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.workflow-steps>div{min-width:0}.workflow-steps span{color:#82bdb6;}.workflow-steps h3{font-size:24px;margin:15px 0}.workflow-steps p{font-size:13px}.tech-switches{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}.tech-switches button{border:1px solid var(--line);background:none;min-height:44px;font-size:12px;padding:9px 15px}.tech-switches button[aria-pressed=true]{background:#b8ead4;color:#102321}.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.preset-grid strong{display:block;color:#d2f2df;font-size:clamp(30px,5vw,65px);font-weight:400;margin:20px 0 10px;font-family:Georgia,serif}.preset-grid span{font-size:12px;color:#abc1bf}.next-tech .source-note{color:#8da6a7;max-width:80ch}.next-tech .workflow-demo output{display:block;white-space:pre-line;font:14px/2 monospace;color:#dbefdf;margin:22px 0 0}
@media(max-width:900px){.next-case{width:calc(100% - 56px)}.next-hero{gap:30px}.next-section>header{gap:35px}.tech-map{grid-template-columns:repeat(2,1fr)}.tech-map a:nth-child(2){border-right:0}.tech-map a:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:650px){.next-case{width:calc(100% - 32px);padding-top:25px}.next-hero,.next-section>header,.lago-zones{grid-template-columns:1fr;gap:20px}.next-hero{padding-bottom:5px}.academic{margin-top:10px}.next-case .back{margin-bottom:25px}.next-section{margin:65px 0}.next-index{gap:4px 22px;margin:25px 0 50px}.next-facts{grid-template-columns:1fr;gap:16px;margin:25px 0}.product-stage .product-object{max-height:58svh}.product-selector{gap:8px 22px}.next-close{flex-wrap:wrap}.workflow-demo{padding:23px 17px}.workflow-steps{grid-template-columns:1fr;gap:16px}.workflow-steps p{margin-bottom:5px}.tech-map a{padding:20px 16px;min-height:140px}.tech-map strong{font-size:18px}.preset-grid{gap:12px}.preset-grid strong{font-size:42px}.next-tech .next-hero h1{font-size:clamp(52px,13vw,76px)}}
@media(prefers-reduced-motion:reduce){.next-case *{transition:none!important;scroll-behavior:auto}.product-stage .product-object{transform:none}}

/* ==== Studio pages: layouts (was studio-pages-v2.css) ==== */
/* Independent art direction; original renders remain uncropped. */
.studio-case{--line:#57665830;padding-bottom:100px}.studio-case .eyebrow{text-transform:uppercase}.studio-case .intro{font-size:clamp(18px,1.6vw,23px);line-height:1.65}.studio-heading{margin:0 0 48px}.studio-heading>p{padding-top:28px}.studio-heading h2{font-size:clamp(38px,5vw,72px)}.studio-case img{height:auto}.studio-case .next-section{margin:110px 0}.studio-case figure img{width:100%;height:auto;max-height:none;object-fit:contain}.studio-case figcaption{display:flex;gap:15px;letter-spacing:.015em;margin-top:18px;line-height:1.7}.studio-case nav{float:none;width:100%}.studio-case .next-index{margin-top:32px}.studio-case .text-reference{display:inline-flex;min-height:44px;align-items:center;font-size:12px;text-decoration:underline;text-underline-offset:6px}.studio-case .quiet-detail{margin-top:44px;padding:23px 0;border-block:1px solid var(--line)}.studio-case .quiet-detail summary{font-size:12px;min-height:32px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px}.studio-case .quiet-detail summary:after{content:'+';font-size:20px}.studio-case .quiet-detail[open] summary:after{content:'−'}.studio-case .section-note{margin-top:28px;font-size:12px;max-width:80ch}
/* Casa do Lago — room, rhythm and material. */
.studio-lago{--muted:#586a60;--accent:#51654c;max-width:1500px}.lago-intro{display:grid;grid-template-columns:1.2fr .9fr;gap:0 8vw;align-items:end;margin:8px 0 65px}.lago-intro>.eyebrow{grid-column:1/-1}.lago-intro h1{font-family:Georgia,serif;font-size:clamp(65px,8.8vw,132px);font-weight:400;line-height:.99;letter-spacing:-.065em}.lago-intro h1 em{font-weight:400;color:#6a7b55}.lago-intro-copy{padding-top:25px}.lago-intro-copy p{max-width:48ch}.studio-lago .lago-cover img{aspect-ratio:auto;object-fit:contain}.lago-cover figcaption{justify-content:flex-end}.lago-note{display:grid;grid-template-columns:.5fr 1.5fr;gap:8vw;max-width:1050px;margin:80px auto 100px}.lago-note>span{letter-spacing:.16em;padding-top:9px}.lago-note p{font-size:clamp(21px,2.4vw,32px);line-height:1.55;letter-spacing:-.025em;color:#3a5143}.studio-lago .studio-heading h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.06em}.lago-view-pair{display:grid;grid-template-columns:1fr 1fr;gap:30px}.lago-view-pair figure:nth-child(2){margin-top:90px}.lago-panorama{width:100%}.lago-offset{width:77%;margin:65px 0 0 auto!important}.studio-lago .lago-zones{gap:7vw}.studio-lago .lago-zones figure{background:transparent}.studio-lago .lago-zones img{mix-blend-mode:multiply}.studio-lago .lago-zones .zone-tabs{border-top:1px solid var(--line);padding-top:20px}
/* XARLIE — the identity's white, ink, amber and orange, with room for the artwork. */
.studio-xarlie{--muted:#c0c1bf;--line:#ffffff2a;--accent:#ffb400;max-width:1460px}.studio-xarlie .academic img{filter:brightness(0) invert(1)}.xarlie-title{display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-items:center}.xarlie-title h1{font-family:'HD Plex',Arial,sans-serif;font-weight:500;font-size:clamp(65px,8.5vw,125px);letter-spacing:-.07em}.xarlie-title h1 em{font-style:normal;color:#ffb400}.xarlie-title .intro{max-width:36ch;color:#d5d6d1}.xarlie-brand{min-width:0;transform:rotate(-3deg);background:#161616}.xarlie-brand img{aspect-ratio:1;object-fit:contain}.xarlie-speed{overflow:hidden;border-block:1px solid #f3ad2666;margin:55px 0 25px;padding:10px 0;transform:skewY(-2deg);color:#ffb400}.xarlie-speed span{display:block;white-space:nowrap;font-weight:500;font-size:clamp(32px,5.5vw,82px);letter-spacing:-.06em;line-height:1.2}.studio-xarlie .studio-heading h2{font-weight:500;letter-spacing:-.055em}.studio-xarlie .studio-heading .eyebrow{color:#e7ac3b}.brief-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;padding-top:35px;border-top:1px solid var(--line)}.brief-columns span{letter-spacing:.13em;color:#ffb400}.brief-columns p{font-size:14px;margin-top:16px}.xarlie-marks{background:#fff;color:#192129;padding:60px;display:grid;grid-template-columns:1.8fr .7fr;gap:6vw;align-items:center}.xarlie-marks figure img{max-height:600px}.xarlie-marks figcaption{color:#626b68}.xarlie-colours{display:flex;margin-top:0}.xarlie-colours span{flex:1;background:var(--swatch);padding:23px 22px;color:#11151d;letter-spacing:.03em}.xarlie-colours span:last-child{color:#eee;border:1px solid var(--line)}.xarlie-packaging{background:#f3f3ef;padding:25px 45px}.xarlie-packaging figcaption{color:#5a625d}.xarlie-campaign-grid{display:grid;grid-template-columns:.9fr 1fr;gap:6vw;align-items:start}.xarlie-campaign-grid>div{padding-top:70px}.xarlie-campaign-grid .xarlie-object{margin-bottom:60px}.studio-xarlie .xarlie-poster img{width:100%;max-height:none}
/* Industrial — a material-led object study; gentle physical movement. */
.studio-industrial{--muted:#59695d;--line:#43554830;--accent:#536743}.industrial-intro{display:grid;grid-template-columns:1.15fr .8fr;gap:0 8vw;align-items:end}.industrial-intro>.eyebrow{grid-column:1/-1}.industrial-intro h1{font-size:clamp(68px,9.2vw,136px);line-height:.98}.industrial-intro h1 em{font-style:normal;color:#78865b}.industrial-intro>div{max-width:44ch;padding-bottom:12px}.studio-bike-stage{min-height:530px;margin-top:35px;padding:40px 5% 35px}.studio-bike-stage .product-object{width:100%;max-height:72svh;filter:drop-shadow(0 20px 15px #35472f22)}.studio-industrial .product-selector{margin-top:8px}.studio-industrial .studio-heading h2{letter-spacing:-.055em}.bike-process{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:3vw;padding:25px 0}.bike-process .bike-perspective img{width:100%}.bike-process .bike-sketch img{width:100%;mix-blend-mode:multiply}.bike-details{display:grid;grid-template-columns:1.1fr .9fr;gap:5vw;align-items:center}.bike-details figure:nth-child(2){padding-top:70px}.adaptus-studio{--accent:#bb4e2c;padding-top:65px;border-top:1px solid var(--line)}.adaptus-lead{display:grid;grid-template-columns:1.4fr .7fr;gap:7vw;align-items:center}.adaptus-hero{transform:rotate(-6deg);margin:0 0 40px!important}.adaptus-hero img{mix-blend-mode:multiply}.adaptus-decisions>div{margin:30px 0}.adaptus-decisions span{letter-spacing:.13em;color:#9e482c}.adaptus-decisions h3{font-size:29px;margin:12px 0}.adaptus-decisions p{font-size:13px}.floating-gallery{display:grid;grid-template-columns:1fr 1.4fr 1fr;align-items:start;gap:45px 6vw;margin:70px 0 130px;padding:0 4%;perspective:1200px}.floating-piece{transform:translate3d(0,var(--paper-y,0px),0) rotate(var(--paper-r,0deg)) rotateX(var(--float-x,0deg)) rotateY(var(--float-y,0deg));will-change:transform}.floating-piece img{box-shadow:0 19px 35px #25332520}.floating-piece:nth-child(2){margin-top:55px}.floating-piece:nth-child(4){grid-column:1/3;max-width:65%;justify-self:end}.floating-piece:nth-child(5){margin-top:10px}.adaptus-engineering{display:grid;grid-template-columns:1.2fr 1fr;gap:6vw;align-items:center;margin:30px 0 60px}.adaptus-engineering figure:nth-child(2){padding-top:70px}.tablet-studio{padding-top:70px;border-top:1px solid var(--line)}.tablet-object-stage{display:grid;grid-template-columns:1.5fr .7fr;gap:6vw;align-items:center;padding:15px 3% 60px}.tablet-main{transform:rotate(-5deg);filter:drop-shadow(0 15px 18px #37403320)}.tablet-usb{transform:rotate(8deg);align-self:end}.tablet-build{display:grid;grid-template-columns:.8fr 1fr;gap:9vw;align-items:start;margin:55px 7% 80px}.tablet-build>div:first-child{transform:rotate(-3deg);max-width:400px}.tablet-prototype img{box-shadow:0 19px 32px #27332926}.tablet-process-copy{padding-top:45px}.tablet-process-copy h3{font-size:clamp(30px,3.4vw,49px)}.tablet-process-copy p{max-width:45ch}.tablet-process-copy .tablet-inside{width:50%;max-width:250px;margin:45px auto 0;transform:rotate(5deg)}.tablet-process-copy .tablet-inside img{box-shadow:0 17px 26px #27332920}.tablet-development{display:grid;grid-template-columns:1fr .65fr 1fr;gap:4vw;align-items:center;margin:35px 0}.tablet-development figure:first-child img{mix-blend-mode:multiply}.tablet-development figure:nth-child(2){width:80%;justify-self:center}.tablet-development figure:last-child{padding-top:70px}
@media(max-width:900px){.lago-intro{gap:30px}.lago-intro h1{font-size:80px}.xarlie-title h1{font-size:72px}.adaptus-lead{gap:35px}.floating-gallery{gap:30px}.tablet-build{margin-inline:0;gap:45px}.studio-bike-stage{min-height:440px}.xarlie-marks{padding:30px}.brief-columns{gap:25px}}
@media(max-width:650px){.studio-case .next-section{margin:70px 0}.studio-heading>p{padding-top:0}.studio-heading h2{font-size:43px}.lago-intro,.xarlie-title,.industrial-intro{grid-template-columns:1fr;gap:15px}.lago-intro{margin-bottom:30px}.lago-intro h1,.industrial-intro h1{font-size:clamp(57px,15vw,85px)}.lago-intro-copy{padding-top:0}.lago-note{grid-template-columns:1fr;gap:15px;margin:45px 0}.lago-note p{font-size:23px}.lago-view-pair{grid-template-columns:1fr;gap:30px}.lago-view-pair figure:nth-child(2){margin-top:0}.lago-offset{width:100%;margin-top:30px!important}.studio-lago .lago-zones{grid-template-columns:1fr}.xarlie-title h1{font-size:clamp(59px,15vw,86px)}.xarlie-brand{max-width:480px;margin:auto;width:100%;transform:rotate(0deg)}.xarlie-speed{margin-top:30px}.brief-columns{grid-template-columns:1fr;gap:15px}.xarlie-marks{padding:15px;gap:15px;grid-template-columns:1fr}.xarlie-mark-small{width:40%;justify-self:center}.xarlie-colours{flex-wrap:wrap}.xarlie-colours span{padding:20px 10px;}.xarlie-packaging{padding:12px}.xarlie-campaign-grid{grid-template-columns:1fr;gap:30px}.xarlie-campaign-grid>div{padding-top:0}.xarlie-campaign-grid .xarlie-object{margin-bottom:30px}.studio-bike-stage{min-height:275px;padding:35px 0;margin-top:15px}.studio-bike-stage .product-object{max-height:60svh}.bike-process{grid-template-columns:1fr;gap:45px}.bike-process .bike-sketch{width:92%;margin:auto}.bike-details{grid-template-columns:1fr;gap:35px}.bike-details figure:nth-child(2){padding-top:0}.adaptus-lead{grid-template-columns:1fr;gap:15px}.adaptus-hero{margin:10px 0!important}.adaptus-decisions{display:grid;grid-template-columns:1fr;gap:5px}.adaptus-decisions>div{margin:10px 0}.floating-gallery{grid-template-columns:1fr 1fr;gap:28px 30px;margin:30px 0 70px;padding:0 10px}.floating-piece{--paper-y:0px!important;--paper-r:0deg!important}.floating-piece:nth-child(2){margin-top:35px}.floating-piece:nth-child(3){margin-top:-30px}.floating-piece:nth-child(4){grid-column:auto;max-width:100%;align-self:end}.floating-piece:nth-child(5){grid-column:1/-1;width:65%;justify-self:center;margin:0}.adaptus-engineering{grid-template-columns:1fr;gap:30px}.adaptus-engineering figure:nth-child(2){padding-top:0}.tablet-object-stage{grid-template-columns:1fr;gap:25px;padding:10px 10px 25px}.tablet-usb{width:50%;justify-self:end}.tablet-build{grid-template-columns:1fr;gap:30px;margin:30px 10px}.tablet-build>div:first-child{width:70%;margin:auto}.tablet-process-copy{padding-top:15px}.tablet-process-copy .tablet-inside{width:50%;margin:30px auto}.tablet-development{grid-template-columns:1fr 1fr;gap:25px}.tablet-development figure:last-child{grid-column:1/-1;padding-top:0;width:80%;justify-self:center}.tablet-development figure:nth-child(2){width:75%}}
@media(prefers-reduced-motion:reduce){.floating-piece,.tablet-main,.tablet-usb{transform:none!important}.floating-piece{will-change:auto}.studio-case *{scroll-behavior:auto!important}}

/* ==== Type floor: labels never below 12px, lead copy never below 14px (was type-floor-v1.css) ==== */
/*
  Type floor: labels, captions and credits never render below 12px,
  lead copy below 14px.

  Kept after the rules it raises: shared components here, page-specific
  ones at the end of each page file. Each block repeats the selector of the
  rule that sets the small size (grouped by the file that owns it), so these
  win on source order at equal specificity; !important only where the
  original rule already uses it.

  Left as drawn on purpose: lettering inside stationery and screen mockups
  (.identity-card, .identity-folder, .space-board, .space-pass, .card-back,
  .memory-browser-top), which is part of the artwork rather than page text.
*/
/* brand-stories-v1.css */
.brand-story .brand-plate figcaption,
.brand-story .lab-pair figcaption,
.brand-story .service-symbols figcaption,
.brand-story .story-credit,
.story-destination > span,
.story-palette > div,
.story-stage .stage-coordinate { font-size: 12px; }
.application-stage figcaption { font-size: 12px !important; }
/* catalogue-order-v1.css */
.home-card-period,
.home-order-note { font-size: 12px; }
/* crafted-projects-v2.css */
.craft-credits dt,
.crafted-case .craft-kicker,
.process-steps span,
.projection-coordinate,
.section-number { font-size: 12px; }
.crafted-case .process-context { font-size: 14px; }
/* home-portfolio-v1.css */
.home-card-tags,
.home-card-text > p:first-child,
.home-eyebrow,
.home-feature-caption p,
.home-feature-caption p:first-child,
.home-project-count { font-size: 12px; }
/* mais-alto-v1.css */
.ma-credit > span,
.story-magazine .ma-issue-credit,
.story-magazine .ma-shelf figcaption { font-size: 12px; }
/* next-projects-v1.css */
.academic span,
.next-case .eyebrow,
.next-tech .project-state,
.next-tech .source-note,
.product-selector button,
.product-stage .stage-label,
.stage-label-bottom,
.tech-map span,
.workflow-demo .demo-label,
.workflow-steps span { font-size: 12px; }
/* portfolio-editions-v1.css */
.air-artwork figcaption small,
.edition-meta span,
.edition-page .edition-eyebrow,
.edition-page figcaption,
.film-meta,
.visual-study-pair figcaption { font-size: 12px; }
@media (max-width: 760px) {
  .air-artwork figcaption { font-size: 12px; }
}
/* portfolio-header-v5.css */
.portfolio-menu-note { font-size: 12px; }
/* profile-pages-v1.css */
.contact-note,
.profile-eyebrow,
.profile-portrait figcaption { font-size: 12px; }
.contact-guidance { font-size: 14px; }
/* project-chapters-v1.css */
.print-scope dt,
.print-sheet figcaption { font-size: 12px; }
/* project-experiences-v4.css */
.case-kicker,
.case-preview figcaption,
.case-view-hint { font-size: 12px; }
@media (max-width: 760px) {
  .case-onward { font-size: 12px; }
  .case-shell .case-lead { font-size: 14px; }
}
/* project-refinements-v1.css */
.refined-number { font-size: 12px; }
@media (max-width: 760px) {
  .case-refined .case-index a { font-size: 12px; }
}
/* studio-pages-v2.css */
.adaptus-decisions span,
.brief-columns span,
.floating-piece figcaption,
.lago-note > span,
.studio-case figcaption,
.xarlie-colours span { font-size: 12px; }
/* study-projects-v1.css */
.journal-edition,
.study-sheet figcaption span { font-size: 12px; }
@media (max-width: 760px) {
  .study-sheet figcaption { font-size: 12px; }
}
/* webfolio/experience-v6.css */
