/* Scoped additive rules: existing project blocks retain their exact global styles. */
.pc-section{position:relative;isolation:isolate;box-sizing:border-box;margin-block:var(--pc-mt) var(--pc-mb);padding:var(--pc-pt) var(--pc-px) var(--pc-pb);min-height:var(--pc-height);overflow:clip;container-type:inline-size}
.pc-section[data-width=content]{max-width:var(--pc-max);margin-inline:auto}
.pc-section[data-width=wide]{margin-inline:-28px;padding-inline:calc(var(--pc-px) + 28px)}
.pc-section[data-width=bleed]{width:100vw;max-width:100vw;margin-inline:calc(50% - 50vw)}
.pc-grid{display:grid;grid-template-columns:var(--pc-columns);gap:var(--pc-gap);align-items:var(--pc-align);position:relative;min-height:inherit}
.pc-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;pointer-events:none}
.pc-element{width:var(--pc-width,100%);grid-column:var(--pc-col);grid-row:var(--pc-row);position:relative;min-width:0;max-width:100%;box-sizing:border-box;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;text-align:var(--pc-text-align);font-size:clamp(var(--pc-m-size),calc(var(--pc-size) * .35 + 5cqi),var(--pc-size));transform:translate(var(--pc-offset-x),var(--pc-offset-y));justify-self:var(--pc-text-align)}
.pc-image img{display:block;width:100%;height:auto;aspect-ratio:var(--pc-ratio);object-fit:var(--pc-fit);object-position:var(--pc-position)}
.pc-image figcaption{font:400 12px/1.4 Bright,sans-serif;margin-top:10px;white-space:pre-wrap}
.pc-shape{aspect-ratio:var(--pc-ratio,1);min-height:40px}
.pc-image-empty{min-height:180px;background:#eee;color:#555;display:grid;place-items:center;font:14px/1.4 sans-serif}
@media(max-width:800px){
 .pc-section{padding:var(--pc-m-pt) var(--pc-m-px) var(--pc-m-pb);min-height:var(--pc-m-height)}
 .pc-section[data-width=wide]{margin-inline:-18px;padding-inline:calc(var(--pc-m-px) + 18px)}
 .pc-grid{grid-template-columns:var(--pc-mobile-columns);gap:var(--pc-m-gap)}
 .pc-element{width:var(--pc-width,100%);grid-column:var(--pc-m-col);grid-row:var(--pc-m-row);font-size:var(--pc-m-size);text-align:var(--pc-m-text-align);justify-self:var(--pc-m-text-align);transform:none}
 .pc-section[data-mobile-order=reverse] .pc-grid{display:flex;flex-direction:column-reverse}
}

/* Visual placements are independent at each breakpoint. Old grid content is unchanged. */
@media(min-width:801px){
 .pc-section[data-canvas] .pc-grid{min-height:max(var(--pc-height),var(--pc-canvas-height));display:grid}
 .pc-section[data-canvas] .pc-element[data-placed]{position:absolute;left:var(--pc-free-x);top:var(--pc-free-y);width:var(--pc-free-w);height:var(--pc-free-h);transform:none;aspect-ratio:auto}
}
@media(max-width:800px){
 .pc-section[data-mobile-canvas] .pc-grid{min-height:max(var(--pc-m-height),var(--pc-m-canvas-height));display:grid}
 .pc-section[data-mobile-canvas] .pc-element[data-mobile-placed]{position:absolute;left:var(--pc-m-free-x);top:var(--pc-m-free-y);width:var(--pc-m-free-w);height:var(--pc-m-free-h);transform:none;aspect-ratio:auto}
}
.pc-element[data-placed] img,.pc-element[data-mobile-placed] img{max-height:100%}
@media(min-width:801px){.pc-image[data-placed]{display:flex;flex-direction:column}.pc-image[data-placed] img,.pc-image[data-placed] .pc-image-empty{flex:1;min-height:0;height:0;aspect-ratio:auto}}
@media(max-width:800px){.pc-image[data-mobile-placed]{display:flex;flex-direction:column}.pc-image[data-mobile-placed] img,.pc-image[data-mobile-placed] .pc-image-empty{flex:1;min-height:0;height:0;aspect-ratio:auto}}

/* Freeform uses authored artboard coordinates scaled uniformly to its section. */
.ff-composition{width:100%;margin:40px auto;container-type:inline-size;isolation:isolate}
.ff-artboard{position:relative;width:100%;overflow:hidden;isolation:isolate;container-type:inline-size}
.ff-artboard[data-artboard=mobile]{display:none}
.ff-object{position:absolute;box-sizing:border-box;margin:0;min-width:0;max-width:none;white-space:pre-wrap;overflow-wrap:anywhere;transform-origin:center;overflow:hidden}
.ff-object img{display:block;width:100%;height:100%;user-select:none}
.ff-placeholder{display:grid;place-items:center;height:100%;font:18px/1.2 sans-serif;color:#555}
@media(max-width:800px){.ff-artboard[data-artboard=desktop]{display:none}.ff-artboard[data-artboard=mobile]{display:block}}

.ff-line{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);pointer-events:none}
