/* Whitepaper portfolio: original document pages, composed as exhibition spreads. */
body.wp-portfolio { --folio-gutter:clamp(22px,4.5vw,88px); --folio-rule:#deded8; }
.wp-portfolio .wp-main { width:100%;max-width:1920px;margin:auto; }
.folio-hero { padding:46px var(--folio-gutter) 0; }
.folio-nav { display:flex;gap:30px;align-items:center;padding-bottom:26px;border-bottom:1px solid var(--folio-rule);font-size:13px; }
.folio-nav a { color:#6e706f;text-decoration:none;padding:6px 0; }
.folio-nav a[aria-current] { color:#b72c30; }
.folio-nav span { margin-left:auto;font-size:10px;letter-spacing:.15em;color:#777; }
.folio-intro { display:grid;grid-template-columns:1.3fr 1fr;gap:8%;align-items:end;padding:66px 0 44px; }
.folio-eyebrow { font-size:11px;letter-spacing:.14em;color:#8e3b37;margin:0 0 20px; }
body.wp-portfolio[data-site-section] main#main .folio-intro h1 { font-size:clamp(38px,4.4vw,72px)!important;line-height:1.15!important;letter-spacing:-.045em!important;margin:0;max-width:none; }
.folio-intro h1::after { content:"。";color:#c82d32; }
.folio-intro-copy > p { color:#5f6261;font-size:16px;line-height:1.9;margin:0 0 22px;max-width:480px; }
.folio-actions { display:flex;align-items:center;gap:32px;flex-wrap:wrap; }
.folio-actions a { color:#161a19;text-decoration:none;font-size:13px;display:inline-flex;gap:24px;align-items:center;padding-bottom:8px;border-bottom:1px solid #b8bdbb; }
.folio-actions a:first-child { color:#b42b30;border-color:#d8a09e; }
.folio-actions i { font-size:18px; }
.folio-hero-art { display:block;position:relative;width:100%;padding:0;border:0;cursor:pointer;background:var(--composition-bg,#e5e5df);color:#222;overflow:hidden;text-align:left; }
.folio-composition { display:block;position:relative;aspect-ratio:1.42;isolation:isolate;overflow:hidden;background:var(--composition-bg,#e5e5df); }
.folio-composition img { position:absolute;display:block;object-fit:contain;height:auto;box-shadow:0 15px 32px #171d2229,0 1px 3px #171d2212;transition:transform .65s cubic-bezier(.2,.7,.3,1); }
.folio-hero-art .folio-composition { aspect-ratio:2.45; }
.folio-composition[data-arrangement=spread] img:nth-child(1) { width:59%;left:5%;top:13%;transform:rotate(-5deg);z-index:2; }
.folio-composition[data-arrangement=spread] img:nth-child(2) { width:49%;right:3%;top:33%;transform:rotate(6deg);z-index:3; }
.folio-composition[data-arrangement=spread] img:nth-child(3) { width:33%;right:6%;top:6%;transform:rotate(6deg);z-index:1; }
.folio-composition[data-arrangement=spread] img:nth-child(4) { display:none; }
.folio-composition[data-arrangement=diagonal] img:nth-child(1) { width:61%;left:5%;top:8%;transform:rotate(-8deg);z-index:3; }
.folio-composition[data-arrangement=diagonal] img:nth-child(2) { width:52%;right:5%;top:36%;transform:rotate(7deg);z-index:2; }
.folio-composition[data-arrangement=diagonal] img:nth-child(3) { width:35%;left:6%;bottom:7%;transform:rotate(-8deg);z-index:1; }
.folio-composition[data-arrangement=diagonal] img:nth-child(4) { width:36%;right:4%;top:8%;transform:rotate(7deg); }
.folio-composition[data-arrangement=grid] { display:grid;grid-template-columns:1fr 1fr;gap:3%;align-content:center;padding:7%; }
.folio-composition[data-arrangement=grid] img { position:relative;width:100%; }
.folio-composition[data-arrangement=cascade] img:nth-child(1) { width:64%;left:7%;top:10%;z-index:4; }
.folio-composition[data-arrangement=cascade] img:nth-child(2) { width:59%;left:22%;top:33%;z-index:3; }
.folio-composition[data-arrangement=cascade] img:nth-child(3) { width:52%;left:38%;top:54%;z-index:2; }
.folio-composition[data-arrangement=cascade] img:nth-child(4) { display:none; }
.folio-composition[data-arrangement=duet] img:nth-child(1) { width:73%;left:7%;top:7%;transform:rotate(3deg);z-index:2; }
.folio-composition[data-arrangement=duet] img:nth-child(2) { width:68%;right:6%;bottom:8%;transform:rotate(-4deg);z-index:3; }
.folio-composition[data-arrangement=duet] img:nth-child(n+3) { display:none; }
.folio-composition[data-arrangement=shelf] img { width:58%;left:20%;transform:rotate(-10deg); }
.folio-composition[data-arrangement=shelf] img:nth-child(1) { top:7%;z-index:4; }
.folio-composition[data-arrangement=shelf] img:nth-child(2) { top:28%;left:14%;z-index:3; }
.folio-composition[data-arrangement=shelf] img:nth-child(3) { top:49%;left:8%;z-index:2; }
.folio-composition[data-arrangement=shelf] img:nth-child(4) { display:none; }
.folio-composition[data-arrangement=fan] img:nth-child(1) { width:70%;left:15%;top:28%;transform:rotate(-2deg);z-index:4; }
.folio-composition[data-arrangement=fan] img:nth-child(2) { width:56%;left:5%;top:13%;transform:rotate(-13deg);z-index:2; }
.folio-composition[data-arrangement=fan] img:nth-child(3) { width:56%;right:5%;top:12%;transform:rotate(13deg);z-index:1; }
.folio-composition[data-arrangement=fan] img:nth-child(4) { display:none; }
.folio-composition[data-arrangement=portrait] img { width:29%;top:14%; }
.folio-composition[data-arrangement=portrait] img:nth-child(1) { left:8%;transform:rotate(-7deg);z-index:3; }
.folio-composition[data-arrangement=portrait] img:nth-child(2) { left:35.5%;top:10%;z-index:2; }
.folio-composition[data-arrangement=portrait] img:nth-child(3) { right:8%;transform:rotate(7deg);z-index:1; }
.folio-composition[data-arrangement=portrait] img:nth-child(4) { display:none; }
.folio-composition[data-arrangement=offset] img:nth-child(1) { width:68%;left:6%;top:9%;z-index:2; }
.folio-composition[data-arrangement=offset] img:nth-child(2) { width:58%;right:6%;bottom:9%;z-index:3; }
.folio-composition[data-arrangement=offset] img:nth-child(n+3) { display:none; }
.folio-hero-art .folio-composition img:nth-child(1) { width:48%;left:6%;top:10%;transform:rotate(-5deg);z-index:3; }
.folio-hero-art .folio-composition img:nth-child(2) { width:40%;left:53%;right:auto;top:12%;transform:rotate(5deg);z-index:1; }
.folio-hero-art .folio-composition img:nth-child(3) { display:block;width:35%;left:53%;right:auto;top:44%;bottom:auto;transform:rotate(5deg);z-index:4; }
.folio-hero-art .folio-composition img:nth-child(4) { display:none; }
.folio-hero-art[data-hero=team-profile] .folio-composition img:nth-child(1) { width:46%;top:16%;transform:rotate(0); }
.folio-hero-art[data-hero=team-profile] .folio-composition img:nth-child(2) { width:30%;left:63%;top:8%;transform:rotate(0); }
.folio-hero-art[data-hero=team-profile] .folio-composition img:nth-child(3) { width:30%;left:63%;top:49%;transform:rotate(0); }
.folio-hero-label { position:absolute;bottom:22px;left:26px;z-index:5;color:#222;font-size:11px;letter-spacing:.06em;display:flex;gap:12px;align-items:center;background:#fffffff0;padding:8px 10px; }
.folio-open { position:absolute;right:22px;bottom:22px;z-index:6;border:1px solid #ffffffaa;border-radius:50%;width:50px;height:50px;display:grid;place-items:center;background:#ffffffea;color:#222;font-size:22px;transition:background .2s,color .2s; }
.folio-hero-art:hover .folio-open,.folio-card button:hover .folio-open { background:#c82d32;color:#fff; }
.folio-hero-foot { padding:18px 0 22px;display:flex;justify-content:space-between;gap:20px;color:#7b7c78;font-size:11px;border-bottom:1px solid var(--folio-rule); }
.folio-hero-foot strong { color:#333;font-weight:500; }
.folio-works { padding:88px var(--folio-gutter) 100px; }
.folio-section-top { display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:44px; }
body.wp-portfolio main#main .folio-section-top h2 { font-size:clamp(30px,3.6vw,54px);line-height:1.3;margin:10px 0 0; }
.folio-section-top p { max-width:340px;color:#747773;line-height:1.8;font-size:14px;margin:0; }
.folio-section-top small { color:#a43a36;font-size:10px;letter-spacing:.15em; }
.folio-grid { display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:64px 34px;align-items:start; }
.folio-card { min-width:0;grid-column:span 7; }
.folio-card:nth-child(4n+2),.folio-card:nth-child(4n+3) { grid-column:span 5; }
.folio-card:nth-child(4n+2) { padding-top:108px; }
.folio-card:nth-child(4n+4) { padding-top:84px; }
.folio-card:nth-child(4n+2) .folio-composition,.folio-card:nth-child(4n+3) .folio-composition { aspect-ratio:1.1; }
.folio-card:last-child:nth-child(odd):not(:first-child) { grid-column:3 / span 8; }
.folio-card:last-child:nth-child(odd) .folio-composition { aspect-ratio:1.7; }
.folio-card button { display:block;width:100%;padding:0;border:0;position:relative;cursor:pointer;color:inherit;background:transparent;text-align:left; }
.folio-card button:focus-visible,.folio-hero-art:focus-visible { outline:3px solid #bd3438;outline-offset:6px; }
.folio-card .folio-open { width:42px;height:42px;font-size:18px;bottom:18px;right:18px; }
.folio-caption { display:grid;grid-template-columns:1fr auto;gap:10px;padding-top:20px;border-top:1px solid #d9dad5;margin-top:18px; }
body.wp-portfolio main#main .folio-caption h3 { font-size:20px;line-height:1.3;margin:0 0 8px;font-weight:500;letter-spacing:-.02em; }
.folio-caption p { color:#767975;font-size:12px;margin:0;line-height:1.6; }
.folio-caption > span { color:#90938d;font-size:11px; }
.wp-portfolio .wp-section { padding:86px var(--folio-gutter); }
.wp-portfolio #approach { padding-top:80px;padding-bottom:64px; }
.wp-portfolio .wp-section-header { grid-template-columns:1fr 2fr;gap:50px;margin-bottom:44px; }
body.wp-portfolio main#main .wp-section-heading h2 { font-size:clamp(26px,2.75vw,40px);line-height:1.4;text-wrap:balance; }
.wp-portfolio .wp-section-heading > p { font-size:15px;margin-top:22px; }
.wp-portfolio .wp-editorial-item { min-height:0;padding-top:26px;padding-bottom:12px; }
body.wp-portfolio main#main .wp-editorial-item h3 { font-size:22px;margin-top:28px; }
.wp-portfolio .wp-editorial-item > span { color:#8a8d86;font-size:10px; }
.wp-portfolio .wp-editorial-item p { font-size:14px; }
.wp-portfolio #deliverables { background:#f5f5f1; }
.wp-portfolio .wp-row { padding-block:24px; }
body.wp-portfolio main#main .wp-row h3 { font-size:22px; }
.wp-portfolio .wp-row p { font-size:14px; }
body.wp-portfolio main#main .wp-process-step h3 { font-size:21px; }
.wp-portfolio .wp-process-step i { font-size:30px;color:#8a8d85; }
.wp-portfolio .wp-process-step p { font-size:14px; }
.wp-portfolio .wp-faq-layout { grid-template-columns:1fr 1.6fr; }
body.wp-portfolio main#main .wp-faq-intro h2 { font-size:clamp(26px,2.3vw,34px);line-height:1.45;text-wrap:balance; }
.wp-portfolio .wp-faq-list summary { font-size:17px;min-height:82px; }
.wp-portfolio .wp-closing { min-height:440px;background:#efeee9;padding:90px var(--folio-gutter); }
body.wp-portfolio main#main .wp-closing h2 { font-size:clamp(30px,4vw,54px);line-height:1.4;max-width:1100px;text-wrap:balance; }
.wp-portfolio .wp-closing .wp-primary-cta { min-height:56px; }
.wp-portfolio .wp-closing .wp-cta-label { font-size:15px;padding:15px 24px; }
.folio-dialog { padding:0;width:min(1400px,96vw);max-width:none;max-height:94svh;border:0;background:#f6f6f3;color:#141816; }
.folio-dialog::backdrop { background:#111a;backdrop-filter:blur(5px); }
.folio-dialog-head { display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:2;background:#fffffff5;padding:20px 30px;border-bottom:1px solid #ddd;gap:20px; }
.folio-dialog-head h2 { font:500 22px/1.4 var(--font-sans);margin:0; }
.folio-dialog-head p { font-size:12px;color:#737872;margin:6px 0 0; }
.folio-dialog button { cursor:pointer; }
.folio-close { border:1px solid #ddd;background:white;width:42px;height:42px;flex-shrink:0;font-size:24px; }
.folio-viewer { padding:28px clamp(16px,4vw,70px); }
.folio-viewer figure { margin:0; }
.folio-viewer figure > img { display:block;width:auto;height:auto;max-width:100%;max-height:65svh;margin:0 auto;object-fit:contain;box-shadow:0 8px 30px #0001; }
.folio-viewer figcaption { display:flex;justify-content:center;gap:20px;align-items:center;margin:20px 0;font-size:12px;color:#666; }
.folio-viewer figcaption button { width:40px;height:36px;border:1px solid #ccc;background:#fff;color:#222; }
.folio-viewer figcaption button:disabled { opacity:.3;cursor:default; }
.folio-thumbs { display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 auto 18px; }
.folio-thumbs button { width:82px;padding:3px;border:1px solid transparent;background:none;opacity:.55; }
.folio-thumbs button[aria-pressed=true] { border-color:#c82d32;opacity:1; }
.folio-thumbs img { width:100%;height:48px;object-fit:contain;display:block; }
.folio-viewer-note { color:#838780;font-size:11px;text-align:center;line-height:1.8;margin:0; }
@media(min-width:1800px) { .folio-hero-art .folio-composition { aspect-ratio:2.65; } }
@media(max-width:900px) {
 .folio-intro { grid-template-columns:1fr;gap:26px;padding:44px 0 34px; }
 .folio-intro-copy { display:flex;align-items:center;gap:40px;justify-content:space-between; }
 .folio-intro-copy > p { margin:0;max-width:440px; }
 .folio-actions { gap:14px;flex-shrink:0;flex-direction:column;align-items:start; }
 .folio-hero-art .folio-composition { aspect-ratio:1.8; }
 .folio-grid { gap:44px 24px; }
 .folio-card:nth-child(4n+2) { padding-top:70px; }
 .folio-card:nth-child(4n+4) { padding-top:40px; }
 .wp-portfolio .wp-section-header { grid-template-columns:1fr;gap:24px; }
 .wp-portfolio .wp-faq-layout { grid-template-columns:1fr; }
 .wp-portfolio .wp-faq-intro { position:static; }
}
@media(max-width:600px) {
 .folio-hero { padding-top:20px; }
 .folio-nav { gap:24px;padding-bottom:18px;font-size:12px; }
 .folio-nav span { display:none; }
 .folio-intro { padding-top:36px; }
 body.wp-portfolio[data-site-section] main#main .folio-intro h1 { font-size:clamp(28px,7.8vw,44px)!important;line-height:1.35!important; }
 .folio-eyebrow { font-size:9px;margin-bottom:14px; }
 .folio-intro-copy { display:block; }
 .folio-intro-copy > p { font-size:14px;line-height:1.9; }
 .folio-actions { flex-direction:row;gap:26px;margin-top:20px; }
 .folio-actions a { font-size:12px;gap:14px; }
 .folio-hero-art .folio-composition { aspect-ratio:1.1; }
 .folio-hero-art .folio-composition img:nth-child(1) { width:76%;left:5%;top:10%; }
 .folio-hero-art .folio-composition img:nth-child(2) { width:60%;left:34%;top:37%; }
 .folio-hero-art .folio-composition img:nth-child(3) { width:60%;left:12%;top:57%; }
 .folio-hero-art[data-hero=team-profile] .folio-composition img:nth-child(1) { width:82%;left:7%;top:8%; }
 .folio-hero-art[data-hero=team-profile] .folio-composition img:nth-child(2) { width:57%;left:36%;top:42%; }
 .folio-hero-art[data-hero=team-profile] .folio-composition img:nth-child(3) { width:57%;left:7%;top:53%; }
 .folio-hero-label { left:14px;bottom:16px;font-size:9px; }
 .folio-open { width:38px;height:38px;bottom:12px;right:12px;font-size:18px; }
 .folio-hero-foot { font-size:10px;line-height:1.8; }
 .folio-hero-foot > span:last-child { text-align:right; }
 .folio-section-top { display:block;margin-bottom:28px; }
 .folio-section-top > p { margin-top:18px;max-width:none; }
 .folio-works { padding:56px var(--folio-gutter); }
 .folio-grid { display:block; }
 .folio-card,.folio-card:nth-child(n) { padding:0;margin-bottom:38px; }
 .folio-card:last-child { margin-bottom:0; }
 .folio-card:nth-child(n) .folio-composition { aspect-ratio:1.25; }
 .folio-caption { margin-top:12px;padding-top:14px; }
 body.wp-portfolio main#main .folio-caption h3 { font-size:18px; }
 .wp-portfolio .wp-section,.wp-portfolio #approach { padding:54px var(--folio-gutter); }
 .wp-portfolio .wp-section-header { gap:20px;margin-bottom:28px; }
 .wp-portfolio .wp-editorial-grid { display:block; }
 .wp-portfolio .wp-editorial-item,.wp-portfolio .wp-editorial-item:first-child,.wp-portfolio .wp-editorial-item:last-child { padding:24px 0;border-left:0;border-bottom:1px solid #ddd; }
 body.wp-portfolio main#main .wp-editorial-item h3 { margin-top:12px;font-size:21px; }
 .wp-portfolio .wp-editorial-item p { margin-top:12px; }
 .wp-portfolio .wp-row { grid-template-columns:24px 1fr;gap:14px; }
 .wp-portfolio .wp-row p { grid-column:2; }
 .wp-portfolio .wp-row > i { display:none; }
 .wp-portfolio .wp-process-grid { grid-template-columns:1fr; }
 .wp-portfolio .wp-process-step { padding:24px 0;border-left:0;border-bottom:1px solid #ddd; }
 .wp-portfolio .wp-faq-list summary { grid-template-columns:24px 1fr auto;gap:10px;font-size:16px; }
 .wp-portfolio .wp-faq-list details p { margin-left:34px;margin-right:0; }
 .folio-dialog { width:100vw;max-height:100svh;height:100svh; }
 .folio-dialog-head { padding:16px; }
 .folio-dialog-head h2 { font-size:18px; }
 .folio-viewer { padding:22px 12px; }
 .folio-thumbs { gap:4px; }
 .folio-thumbs button { width:65px; }
}
@media(prefers-reduced-motion:reduce) { .folio-composition img,.folio-open { transition:none; } }

/* Honor the sentence divisions in the original section copy.
   Only direct phrase spans break; red period spans remain inline. */
body.wp-portfolio main#main :is(.wp-section-heading,.wp-faq-intro,.wp-closing) h2 > span:not(.inner-title-period) {
 display:block;
 text-wrap:balance;
}
.wp-portfolio .wp-section-heading > p { margin-top:24px; }
@media(max-width:600px) {
 body.wp-portfolio main#main .wp-section-heading h2 { font-size:26px;line-height:1.5; }
 body.wp-portfolio main#main .wp-closing h2 { font-size:28px;line-height:1.5; }
 .wp-portfolio .wp-closing { padding-block:64px;min-height:0; }
}

body.wp-portfolio main#main h2 .folio-title-phrase {
 display:inline-block;max-width:100%;text-wrap:balance;
}
