/* Shared renderer for real customer portfolios and public examples. */
.ps-site{--paper:#f5f3ec;--ink:#142040;--muted:#536078;--line:#d1d5df;--accent:#304fdf;--on-accent:#fff;--panel:#fff;--soft:#e7ecfb;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.65;min-height:100vh;overflow:clip}.ps-site *{box-sizing:border-box}.ps-site a{color:inherit;text-underline-offset:5px}.ps-site h1,.ps-site h2,.ps-site h3,.ps-site h4,.ps-site p{margin-top:0;overflow-wrap:anywhere}.ps-site h1,.ps-site h2,.ps-site h3{line-height:1.06;letter-spacing:-.045em;text-wrap:balance}.ps-site :focus-visible{outline:3px solid var(--accent);outline-offset:5px}.ps-shell{width:min(1240px,calc(100% - 64px));margin:auto}.ps-navigation{display:flex;justify-content:space-between;gap:25px;align-items:center;border-bottom:1px solid var(--line);padding:30px 0}.ps-name{font-size:1.15rem;font-weight:750;text-decoration:none;letter-spacing:-.035em}.ps-navigation>div{display:flex;gap:24px;flex-wrap:wrap;justify-content:flex-end}.ps-navigation>div>a{font-size:.78rem;text-decoration:none}.ps-hero{padding:85px 0 90px}.ps-hero h1{font-size:clamp(3.5rem,7.3vw,7rem);margin-bottom:28px}.ps-kicker{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:750;color:var(--accent);margin-bottom:22px}.ps-intro{font-size:clamp(1.12rem,1.7vw,1.4rem);line-height:1.6;color:var(--muted);max-width:750px;margin-bottom:30px}.ps-actions{display:flex;gap:15px;flex-wrap:wrap;align-items:center}.ps-primary,.ps-secondary{display:inline-flex;min-height:48px;align-items:center;gap:24px;padding:12px 20px;font-weight:650;font-size:.86rem;text-decoration:none!important;border:1px solid var(--accent);border-radius:4px}.ps-site .ps-primary{background:var(--accent);color:var(--on-accent)}.ps-secondary{border-color:var(--line)}.ps-photo{margin:0;min-width:0}.ps-photo img{display:block;width:100%;aspect-ratio:1.5;object-fit:cover}.ps-photo figcaption{font-size:.65rem;color:var(--muted);line-height:1.5;margin-top:10px;max-width:750px}.ps-photo-hero img{aspect-ratio:4/5}.ps-headshot{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:4/5;max-width:240px;padding:28px;gap:12px;border:1px dashed var(--line);background:var(--soft);text-align:center}.ps-headshot>span{display:grid;place-items:center;width:80px;height:80px;border:1px solid var(--line);border-radius:100%;font-size:1.7rem;color:var(--muted)}.ps-headshot>strong{font-size:.86rem}.ps-headshot>small{font-size:.7rem;color:var(--muted)}.ps-section{padding:80px 0;border-top:1px solid var(--line);scroll-margin-top:24px}.ps-section-heading{margin-bottom:40px}.ps-section-heading h2{font-size:clamp(2.3rem,4.4vw,4.6rem);font-weight:600;max-width:850px;margin-bottom:0}.ps-projects{display:grid;gap:35px}.ps-project{min-width:0;scroll-margin-top:30px}.ps-project-heading{display:flex;gap:22px;margin-bottom:26px;align-items:baseline}.ps-project-number{font-size:.75rem;letter-spacing:.1em;font-weight:700;color:var(--accent);flex-shrink:0}.ps-project h3{font-size:clamp(1.7rem,2.8vw,2.8rem);margin:0 0 15px}.ps-project h3 a{text-decoration:none}.ps-project-role{font-size:.84rem;color:var(--muted);margin-bottom:0;max-width:700px}.ps-project-summary{max-width:800px;margin-top:22px;color:var(--muted);font-size:1rem}.ps-project-details{border-top:1px solid var(--line);margin-top:22px}.ps-project-details summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;min-height:56px;font-size:.85rem;font-weight:700;color:var(--accent);padding:15px 0}.ps-project-details summary::-webkit-details-marker{display:none}.ps-project-details summary>span{font-size:1.3rem}.ps-project-details[open] summary>span{transform:rotate(45deg)}.ps-story{padding:28px 0 18px;max-width:850px}.ps-story section+section{margin-top:30px}.ps-story h4{font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:12px}.ps-story p{font-size:1rem;color:var(--muted);line-height:1.75;margin-bottom:16px;white-space:pre-line}.ps-copy{max-width:850px;color:var(--muted);font-size:1.08rem;line-height:1.8}.ps-copy p{white-space:pre-line}.ps-about,.ps-experience,.ps-education{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.ps-about .ps-section-heading h2,.ps-experience .ps-section-heading h2,.ps-education .ps-section-heading h2{font-size:clamp(2rem,3.6vw,3.6rem)}.ps-skills{padding-block:35px}.ps-skills ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:12px}.ps-skills li{border:1px solid var(--line);border-radius:30px;padding:8px 15px;font-size:.83rem}.ps-contact{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.ps-contact h2{font-size:clamp(2.8rem,5.5vw,5.5rem);margin-bottom:0}.ps-contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding-top:18px;min-width:0}.ps-contact-links>a{overflow-wrap:anywhere}.ps-demo-contact{font-size:.85rem;color:var(--muted);max-width:380px}.ps-footer{width:min(1240px,calc(100% - 64px));margin:auto;border-top:1px solid var(--line);padding:28px 0 40px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.76rem;color:var(--muted)}.ps-demo-banner{padding:14px max(24px,calc((100vw - 1240px)/2));background:#e8edff;color:#142040;font-size:.72rem;border-bottom:1px solid #cdd6ef}.ps-demo-banner a{font-weight:700;margin-left:10px}.ps-links ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:18px}.ps-links li{min-width:0;overflow-wrap:anywhere}.ps-project-index{list-style:none;margin:0;padding:0}.ps-project-index a{display:flex;align-items:baseline;gap:20px;border-top:1px solid var(--line);padding:20px 0;text-decoration:none;font-size:.92rem}.ps-project-index span{font-size:.7rem;color:var(--accent);font-family:ui-monospace,monospace}.ps-project-index b{margin-left:auto}.ps-code-label{display:block;font-family:ui-monospace,monospace;font-size:.65rem;letter-spacing:.1em;margin-bottom:35px;color:var(--accent)}
.ps-palette-navy{--paper:#142040;--ink:#f4f6fd;--muted:#c0cce1;--line:#4b5b78;--accent:#b5caff;--on-accent:#142040;--panel:#203153;--soft:#203153}.ps-palette-forest{--paper:#f2f2e9;--ink:#203d32;--muted:#54655c;--line:#c8d0c5;--accent:#2d634b;--on-accent:#fff;--panel:#fffef7;--soft:#e2e8d9}.ps-palette-warm{--paper:#f3eee4;--ink:#342b26;--muted:#706056;--line:#d1c5b7;--accent:#914a2f;--on-accent:#fff;--panel:#fffcf6;--soft:#e7ded0}.ps-palette-mono{--paper:#f8f8f6;--ink:#191919;--muted:#555;--line:#cececa;--accent:#202020;--on-accent:#fff;--panel:#fff;--soft:#ebebe7}.ps-palette-plum{--paper:#f8f1f5;--ink:#432b43;--muted:#71566d;--line:#d8c5d2;--accent:#784468;--on-accent:#fff;--panel:#fff;--soft:#ecdce6}.ps-palette-ocean{--paper:#f2f5fc;--ink:#142040;--muted:#52617a;--line:#cbd5e7;--accent:#304fdf;--on-accent:#fff;--panel:#fff;--soft:#e3eafa}
/* Technical portfolio: persistent side rail and a field-journal composition. */
.ps-layout-technical .ps-shell{display:grid;grid-template-columns:190px minmax(0,1fr);gap:60px}.ps-layout-technical .ps-navigation{align-self:start;position:sticky;top:0;min-height:85vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:55px 0;gap:50px;border:0;border-right:1px solid var(--line);padding-right:25px}.ps-layout-technical .ps-navigation>div{flex-direction:column;gap:22px}.ps-layout-technical .ps-name{text-transform:uppercase;font-size:.95rem;letter-spacing:.04em}.ps-layout-technical .ps-hero{display:grid;grid-template-columns:1fr;gap:45px;padding-block:65px}.ps-layout-technical .ps-hero h1{font-weight:800;letter-spacing:-.065em;font-size:clamp(3.6rem,6.8vw,6.5rem);text-transform:uppercase}.ps-layout-technical .ps-photo-hero,.ps-layout-technical .ps-headshot{max-width:230px}.ps-layout-technical .ps-engineer-hero:has(.ps-photo-hero),.ps-layout-technical .ps-engineer-hero:has(.ps-headshot){grid-template-columns:1fr 190px;align-items:center;gap:30px}.ps-layout-technical .ps-engineer-index{max-width:680px}.ps-layout-technical .ps-work h2{font-size:clamp(2.4rem,4.4vw,4.2rem)}.ps-layout-technical .ps-work-casebook .ps-projects{grid-template-columns:1fr 1fr;gap:40px 28px}.ps-layout-technical .ps-work-casebook .ps-project:first-child{grid-column:1/-1}.ps-layout-technical .ps-project{border-top:2px solid var(--line);padding-top:26px}.ps-layout-technical .ps-project-heading{display:block}.ps-layout-technical .ps-project-number{display:block;margin-bottom:15px}.ps-layout-technical .ps-project h3{font-size:1.8rem}.ps-layout-technical .ps-project:first-child h3{font-size:2.8rem}.ps-layout-technical .ps-photo img{aspect-ratio:1.6}.ps-layout-technical .ps-about,.ps-layout-technical .ps-experience,.ps-layout-technical .ps-education{grid-template-columns:1fr;gap:20px}.ps-layout-technical .ps-section-heading{margin-bottom:25px}.ps-layout-technical .ps-skills li{border-radius:0;font-family:ui-monospace,monospace;border:0;padding:0 18px 0 0}.ps-layout-technical .ps-contact{grid-template-columns:1fr;gap:20px}
/* Editorial profile: a portrait margin, experience-led narrative, and project index. */
.ps-layout-editorial{font-family:Georgia,'Times New Roman',serif}.ps-layout-editorial .ps-navigation,.ps-layout-editorial .ps-kicker,.ps-layout-editorial .ps-actions,.ps-layout-editorial .ps-project-role,.ps-layout-editorial .ps-project-details summary,.ps-layout-editorial .ps-footer,.ps-layout-editorial .ps-demo-banner{font-family:Inter,ui-sans-serif,system-ui,sans-serif}.ps-layout-editorial .ps-name{font-family:Georgia,serif;font-size:1.5rem;font-weight:500}.ps-layout-editorial .ps-editor-hero{display:grid;grid-template-columns:210px 1fr;gap:95px;align-items:center;padding-block:95px}.ps-layout-editorial .ps-editor-identity>.ps-kicker{font-size:.66rem;margin-top:20px;line-height:1.8}.ps-layout-editorial .ps-headshot,.ps-layout-editorial .ps-photo-hero img{border-radius:140px 140px 4px 4px}.ps-layout-editorial .ps-hero h1{font-weight:400;font-size:clamp(4rem,7.8vw,7.3rem)}.ps-layout-editorial .ps-intro{font-size:1.35rem}.ps-layout-editorial .ps-section-heading h2{font-weight:400}.ps-layout-editorial .ps-work-index .ps-projects{gap:0}.ps-layout-editorial .ps-project{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0 65px;border-top:1px solid var(--line);padding:40px 0}.ps-layout-editorial .ps-project-heading{grid-column:2;grid-row:1;display:block;align-self:end}.ps-layout-editorial .ps-project-number{display:block;margin-bottom:20px}.ps-layout-editorial .ps-project>.ps-photo{grid-column:1;grid-row:1/3}.ps-layout-editorial .ps-project-summary{grid-column:2;margin-top:0}.ps-layout-editorial .ps-project-details{grid-column:1/-1}.ps-layout-editorial .ps-project:not(:has(>.ps-photo)) .ps-project-heading,.ps-layout-editorial .ps-project:not(:has(>.ps-photo)) .ps-project-summary{grid-column:1/-1}.ps-layout-editorial .ps-photo img{aspect-ratio:1.25}.ps-layout-editorial .ps-story{margin-left:auto;max-width:850px}.ps-layout-editorial .ps-copy{font-size:1.2rem;line-height:1.8}.ps-layout-editorial .ps-experience .ps-copy{padding-left:30px;border-left:2px solid var(--accent)}.ps-layout-editorial .ps-skills ul{gap:15px 28px}.ps-layout-editorial .ps-skills li{border:0;padding:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif}
/* Visual portfolio: full-width photographic masthead and staggered gallery. */
.ps-layout-visual .ps-navigation{border:0}.ps-layout-visual .ps-name{font-family:Georgia,serif;font-weight:400;font-size:1.7rem}.ps-layout-visual .ps-art-hero{position:relative;isolation:isolate;min-height:500px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:80px 0;gap:30px}.ps-layout-visual .ps-art-hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(4.5rem,10vw,10rem);line-height:.95}.ps-layout-visual .ps-art-hero .ps-intro{max-width:700px;margin-inline:auto}.ps-layout-visual .ps-art-hero .ps-actions{justify-content:center}.ps-layout-visual .ps-art-hero>.ps-photo-cover{position:absolute;inset:0;z-index:-2}.ps-layout-visual .ps-art-hero>.ps-photo-cover img{height:100%;width:100%;object-fit:cover;aspect-ratio:auto}.ps-layout-visual .ps-art-hero.has-cover:before{content:'';position:absolute;inset:0;z-index:-1;background:rgba(10,18,28,.76)}.ps-layout-visual .ps-art-hero.has-cover{color:#fff;margin:20px 0 70px;padding:70px 35px;min-height:650px}.ps-layout-visual .ps-art-hero.has-cover .ps-kicker,.ps-layout-visual .ps-art-hero.has-cover .ps-intro{color:#f2f2f2}.ps-layout-visual .ps-art-hero.has-cover .ps-secondary{border-color:#cbd5e7;color:#fff}.ps-layout-visual .ps-art-hero.has-cover .ps-primary{background:#fff;color:#142040;border-color:#fff}.ps-layout-visual .ps-photo-cover figcaption{position:absolute;bottom:12px;left:20px;right:20px;color:#fff;font-size:.62rem;max-width:none}.ps-layout-visual .ps-headshot{aspect-ratio:auto;flex-direction:row;max-width:380px;padding:15px 25px;gap:16px}.ps-layout-visual .ps-headshot>span{width:45px;height:45px;flex-shrink:0;font-size:1rem}.ps-layout-visual .ps-headshot>small{display:none}.ps-layout-visual .ps-section-heading h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(3rem,5.6vw,5.5rem)}.ps-layout-visual .ps-work-gallery .ps-projects{display:grid;grid-template-columns:1fr 1fr;gap:70px 55px;align-items:start}.ps-layout-visual .ps-project{display:flex;flex-direction:column}.ps-layout-visual .ps-project:nth-child(even){padding-top:100px}.ps-layout-visual .ps-project>.ps-photo{order:-1;margin-bottom:25px}.ps-layout-visual .ps-photo img{aspect-ratio:.9}.ps-layout-visual .ps-project:nth-child(3n) .ps-photo img{aspect-ratio:1.4}.ps-layout-visual .ps-project h3{font-family:Georgia,serif;font-weight:400;font-size:2.6rem}.ps-layout-visual .ps-project-heading{display:block;margin-bottom:10px}.ps-layout-visual .ps-project-number{display:block;margin-bottom:15px}.ps-layout-visual .ps-project-summary{font-size:.94rem;margin-top:5px}.ps-layout-visual .ps-about{grid-template-columns:1fr 1fr;gap:100px}.ps-layout-visual .ps-skills li{border:0;border-radius:0;padding:0 20px 0 0;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}
/* Product portfolio: split introduction + build index and compact project tiles. */
.ps-layout-product .ps-navigation,.ps-layout-product .ps-kicker{font-family:ui-monospace,SFMono-Regular,monospace}.ps-layout-product .ps-builder-hero{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center}.ps-layout-product .ps-builder-hero h1{font-size:clamp(3.7rem,6.3vw,6rem);letter-spacing:-.065em}.ps-layout-product .ps-builder-panel{background:var(--ink);color:var(--paper);border-radius:12px;padding:35px;--line:#64708c}.ps-layout-product .ps-builder-panel .ps-kicker,.ps-layout-product .ps-builder-panel .ps-project-index span{color:#b8ccff}.ps-layout-product .ps-builder-panel .ps-headshot{display:none}.ps-layout-product .ps-work-bento .ps-projects{grid-template-columns:1fr 1fr;gap:24px}.ps-layout-product .ps-project{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:28px;overflow:hidden}.ps-layout-product .ps-project:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.15fr;gap:0 35px;background:var(--soft)}.ps-layout-product .ps-project:first-child>.ps-photo{grid-column:2;grid-row:1/3}.ps-layout-product .ps-project:first-child>.ps-project-details{grid-column:1/-1}.ps-layout-product .ps-project:not(:has(>.ps-photo)):first-child{display:block}.ps-layout-product .ps-project-heading{display:block}.ps-layout-product .ps-project-number{display:block;margin-bottom:15px;font-family:ui-monospace,monospace}.ps-layout-product .ps-project h3{font-size:2rem}.ps-layout-product .ps-photo img{aspect-ratio:1.7;border-radius:5px}.ps-layout-product .ps-skills li{background:var(--soft);border:0;border-radius:5px;font-family:ui-monospace,monospace}.ps-layout-product .ps-contact{border-radius:12px;padding:40px;background:var(--soft);margin-bottom:50px}
.ps-site .review-feedback{width:min(100% - 48px,1100px);margin:30px auto;padding:30px;background:var(--panel);color:var(--ink);border:1px solid var(--line)}.ps-site .review-feedback label{display:block;margin-bottom:10px}.ps-site .review-feedback textarea{display:block;width:100%;font:inherit;padding:15px;min-height:140px;margin-bottom:15px;color:#142040;background:#fff}.ps-site .review-feedback button{font:inherit;padding:13px 22px;border:0;background:var(--accent);color:var(--on-accent);cursor:pointer}.ps-site .review-feedback button:disabled{opacity:.5;cursor:not-allowed}.ps-site .portfolio-review-banner{padding:14px 25px;font-size:.8rem;background:#fff4d5;color:#493d20}.ps-site .review-error{color:#a52937}.ps-site .review-success{color:#247250}
@media(max-width:1000px){.ps-layout-technical .ps-shell{grid-template-columns:150px minmax(0,1fr);gap:35px}.ps-layout-technical .ps-engineer-hero:has(.ps-photo-hero),.ps-layout-technical .ps-engineer-hero:has(.ps-headshot){grid-template-columns:1fr}.ps-layout-editorial .ps-editor-hero{gap:50px;grid-template-columns:170px 1fr}.ps-layout-product .ps-builder-hero{gap:30px}.ps-layout-product .ps-builder-panel{padding:24px}.ps-layout-visual .ps-work-gallery .ps-projects{gap:45px 30px}.ps-contact{gap:35px}}
@media(max-width:760px){.ps-shell{width:calc(100% - 40px)}.ps-navigation{align-items:flex-start;flex-direction:column;gap:18px;padding:22px 0}.ps-navigation>div{justify-content:flex-start;gap:12px 19px}.ps-navigation>div>a{font-size:.72rem}.ps-hero{padding:48px 0 55px}.ps-hero h1{font-size:clamp(3rem,15vw,4.6rem)}.ps-kicker{font-size:.65rem}.ps-intro{font-size:1.1rem}.ps-section{padding:50px 0}.ps-section-heading{margin-bottom:28px}.ps-section-heading h2{font-size:2.5rem}.ps-about,.ps-experience,.ps-education,.ps-contact{grid-template-columns:1fr;gap:20px}.ps-story{padding-top:20px}.ps-story p{font-size:.95rem}.ps-project h3{font-size:1.8rem}.ps-contact h2{font-size:2.8rem}.ps-footer{width:calc(100% - 40px)}.ps-demo-banner{padding:12px 20px;font-size:.67rem}.ps-photo figcaption{font-size:.64rem}.ps-layout-technical .ps-shell{display:block}.ps-layout-technical .ps-navigation{position:static;min-height:0;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line);padding:23px 0;gap:20px}.ps-layout-technical .ps-navigation>div{flex-direction:row;gap:15px}.ps-layout-technical .ps-hero{padding-block:45px;gap:30px}.ps-layout-technical .ps-hero h1{font-size:clamp(3.1rem,16vw,5rem)}.ps-layout-technical .ps-work-casebook .ps-projects{grid-template-columns:1fr;gap:30px}.ps-layout-technical .ps-project:first-child h3{font-size:2rem}.ps-layout-technical .ps-headshot{max-width:180px}.ps-layout-editorial .ps-editor-hero{display:flex;flex-direction:column-reverse;align-items:flex-start;padding-block:50px;gap:30px}.ps-layout-editorial .ps-hero h1{font-size:clamp(3.8rem,17vw,5.3rem)}.ps-layout-editorial .ps-editor-identity{display:flex;align-items:center;gap:25px}.ps-layout-editorial .ps-headshot,.ps-layout-editorial .ps-photo-hero{max-width:150px}.ps-layout-editorial .ps-editor-identity>.ps-kicker{max-width:120px}.ps-layout-editorial .ps-project{display:flex;flex-direction:column;gap:0;padding:30px 0}.ps-layout-editorial .ps-project>.ps-photo{order:-1;margin-bottom:25px}.ps-layout-editorial .ps-copy{font-size:1.1rem}.ps-layout-visual .ps-art-hero{padding:50px 0;min-height:400px}.ps-layout-visual .ps-art-hero h1{font-size:clamp(4rem,19vw,6rem)}.ps-layout-visual .ps-art-hero.has-cover{padding:50px 22px;min-height:560px;margin:0 0 40px}.ps-layout-visual .ps-art-hero.has-cover .ps-intro{font-size:1.05rem}.ps-layout-visual .ps-section-heading h2{font-size:2.9rem}.ps-layout-visual .ps-work-gallery .ps-projects{grid-template-columns:1fr;gap:45px}.ps-layout-visual .ps-project:nth-child(even){padding-top:0}.ps-layout-visual .ps-project h3{font-size:2.4rem}.ps-layout-visual .ps-about{grid-template-columns:1fr;gap:20px}.ps-layout-product .ps-builder-hero{grid-template-columns:1fr;gap:35px}.ps-layout-product .ps-builder-hero h1{font-size:clamp(3.3rem,16vw,5rem)}.ps-layout-product .ps-work-bento .ps-projects{grid-template-columns:1fr}.ps-layout-product .ps-project:first-child{display:flex;flex-direction:column;gap:0}.ps-layout-product .ps-project:first-child>.ps-photo{order:initial}.ps-layout-product .ps-project{padding:22px}.ps-layout-product .ps-contact{padding:30px 22px}.ps-art-hero .ps-headshot{max-width:100%}}
@media(prefers-reduced-motion:reduce){.ps-site{scroll-behavior:auto}}@media print{.ps-demo-banner,.ps-footer,.ps-navigation{display:none}.ps-shell,.ps-layout-technical .ps-shell{display:block;width:100%}.ps-site{background:#fff;color:#111}.ps-project-details{display:block}.ps-photo{break-inside:avoid}}
/* Keep photo credits above the cover scrim, with the photograph behind it. */
.ps-layout-visual .ps-art-hero>.ps-photo-cover{z-index:auto}.ps-layout-visual .ps-photo-cover img{position:absolute;inset:0;z-index:-2}.ps-layout-visual .ps-photo-cover figcaption{z-index:3;background:#142040dd;padding:5px 8px;width:fit-content;max-width:calc(100% - 40px);color:#fff}
/* Third edition: richer project websites. Existing frozen editions retain their layout. */
.ps-edition-3{--paper:#f8f7f3;--ink:#152333;--muted:#526174;--line:#d6dce1;--panel:#fff;--soft:#eaf0f2;--accent:#235c69;--on-accent:#fff;scroll-behavior:smooth}.ps-edition-3 .ps-shell{width:min(1200px,calc(100% - 64px))}.ps-edition-3 .ps-person-name{font-size:1.05rem;font-weight:650;margin-bottom:18px;color:var(--muted)}.ps-edition-3 .ps-navigation{position:relative;z-index:4}.ps-edition-3 .ps-theme-toggle{font:inherit;font-size:.76rem;cursor:pointer;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:50px;padding:7px 12px;min-height:36px}.ps-edition-3 .ps-hero h1{font-size:clamp(3rem,5.8vw,5.4rem);text-transform:none;line-height:1.04;letter-spacing:-.055em;max-width:900px}.ps-edition-3 .ps-hero{padding-block:95px 100px}.ps-edition-3 .ps-photo img{border-radius:12px}.ps-edition-3 .ps-photo-hero img{object-position:top}.ps-edition-3 .ps-project h3{font-size:clamp(1.6rem,2.5vw,2.4rem)}.ps-edition-3 .ps-project-role{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ps-edition-3 .ps-case-link{display:inline-flex;align-items:center;min-height:48px;margin-top:12px;font-size:.85rem;font-weight:750;text-decoration:none;color:var(--accent)}.ps-edition-3 .ps-directory-link{margin-top:40px}.ps-edition-3 .ps-case-hero{padding:65px 0 55px}.ps-edition-3 .ps-case-hero>a{display:inline-block;font-size:.84rem;margin-bottom:45px}.ps-edition-3 .ps-case-hero h1{font-size:clamp(2.8rem,5.8vw,5.5rem);margin-bottom:30px;max-width:1000px}.ps-edition-3 .ps-case-cover img{max-height:650px;object-fit:contain;background:var(--soft);aspect-ratio:1.8}.ps-edition-3 .ps-case-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:70px;padding-block:55px}.ps-edition-3 .ps-case-layout>aside{font-size:.85rem;color:var(--muted);border-top:1px solid var(--line);padding-top:25px}.ps-edition-3 .ps-story{max-width:760px;padding-top:0}.ps-edition-3 .ps-story section{padding-bottom:30px;border-bottom:1px solid var(--line)}.ps-edition-3 .ps-story h4{font-size:.8rem;letter-spacing:.1em;color:var(--accent)}.ps-edition-3 .ps-story p{font-size:1.08rem;line-height:1.85}.ps-edition-3 .ps-gallery{display:grid;gap:30px;margin-top:35px}.ps-edition-3 .ps-gallery img{object-fit:contain;background:var(--soft);aspect-ratio:auto;max-height:700px}.ps-edition-3 .ps-project-pagination{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding:30px 0 60px;font-size:.9rem}.ps-edition-3 .ps-contact{padding:50px;background:var(--soft);border:1px solid var(--line);border-radius:20px;margin-block:35px 80px}.ps-edition-3 .ps-section{padding-block:75px}.ps-edition-3.ps-layout-technical .ps-shell{display:block}.ps-edition-3.ps-layout-technical .ps-navigation{min-height:0;position:relative;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border:0;border-bottom:1px solid var(--line);padding:25px 0;gap:25px}.ps-edition-3.ps-layout-technical .ps-navigation>div{flex-direction:row;align-items:center;gap:22px}.ps-edition-3.ps-layout-technical .ps-engineer-hero:has(.ps-photo-hero){grid-template-columns:minmax(0,1fr) 280px;gap:70px}.ps-edition-3.ps-layout-technical .ps-photo-hero{max-width:280px;transform:rotate(2deg)}.ps-edition-3.ps-layout-technical .ps-photo-hero img{aspect-ratio:3/4}.ps-edition-3.ps-layout-technical .ps-work-casebook .ps-projects{grid-template-columns:1fr 1fr;gap:30px}.ps-edition-3.ps-layout-technical .ps-project,.ps-edition-3.ps-layout-product .ps-project{border:1px solid var(--line);padding:28px;border-radius:15px;background:var(--panel)}.ps-edition-3.ps-layout-technical .ps-project:first-child{grid-column:auto}.ps-edition-3.ps-layout-technical .ps-project:first-child h3{font-size:2.1rem}.ps-edition-3.ps-layout-editorial .ps-editor-hero{grid-template-columns:200px 1fr;gap:80px}.ps-edition-3.ps-layout-visual .ps-art-hero.has-cover h1{font-size:clamp(3rem,6vw,6rem)}.ps-edition-3.ps-layout-visual .ps-project:nth-child(even){padding-top:65px}.ps-edition-3 .ps-project{animation:ps-arrive .65s ease both}.ps-edition-3 .ps-project:nth-child(2){animation-delay:.08s}.ps-edition-3 .ps-project:nth-child(3){animation-delay:.16s}@keyframes ps-arrive{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
.ps-edition-3.ps-palette-navy{--paper:#081420;--ink:#f5f1e8;--muted:#b5c5d7;--line:#293c4c;--panel:#102437;--soft:#132a3e;--accent:#55d2c0;--on-accent:#081420}.ps-edition-3.ps-palette-plum{--accent:#784468}.ps-edition-3.ps-palette-warm{--accent:#914a2f;--soft:#f0e7dd}.ps-edition-3.ps-palette-mono{--accent:#202020}.ps-edition-3.ps-palette-ocean{--accent:#304fdf;--soft:#e5ecfb}.ps-edition-3[data-color-mode=dark]{--paper:#0c1620;--ink:#f4f3ed;--muted:#b8c6d3;--line:#344556;--panel:#142535;--soft:#192e40;--accent:#8edacc;--on-accent:#0c1620}.ps-edition-3.ps-palette-navy[data-color-mode=light]{--paper:#f8f7f3;--ink:#152333;--muted:#526174;--line:#d6dce1;--panel:#fff;--soft:#eaf0f2;--accent:#235c69;--on-accent:#fff}
@media(max-width:760px){.ps-edition-3 .ps-shell{width:calc(100% - 36px)}.ps-edition-3 .ps-hero{padding-block:45px 60px}.ps-edition-3 .ps-hero h1{font-size:clamp(2.6rem,11vw,4rem)}.ps-edition-3.ps-layout-technical .ps-navigation{align-items:flex-start;flex-direction:column;gap:15px}.ps-edition-3.ps-layout-technical .ps-navigation>div{gap:12px 18px;flex-wrap:wrap}.ps-edition-3.ps-layout-technical .ps-engineer-hero:has(.ps-photo-hero){grid-template-columns:1fr;gap:35px}.ps-edition-3.ps-layout-technical .ps-photo-hero{max-width:240px}.ps-edition-3.ps-layout-technical .ps-work-casebook .ps-projects{grid-template-columns:1fr}.ps-edition-3 .ps-contact{padding:28px 22px;margin-bottom:45px}.ps-edition-3 .ps-case-layout{grid-template-columns:1fr;gap:30px;padding-top:35px}.ps-edition-3 .ps-case-layout>aside{display:none}.ps-edition-3 .ps-case-hero{padding-block:40px}.ps-edition-3 .ps-case-hero h1{font-size:2.7rem}.ps-edition-3 .ps-story p{font-size:1rem}.ps-edition-3.ps-layout-visual .ps-project:nth-child(even){padding-top:0}.ps-edition-3.ps-layout-editorial .ps-editor-hero{display:flex;gap:35px}.ps-edition-3 .ps-section{padding-block:50px}}
@media(prefers-reduced-motion:reduce){.ps-edition-3 .ps-project{animation:none}.ps-edition-3{scroll-behavior:auto}}
.ps-photo video{display:block;width:100%;max-height:650px;background:#07121d;border-radius:12px}.ps-edition-3 .ps-photo video{aspect-ratio:16/9}
