/* A distinct portrait chapter; a complete overview at normal text size. */
.portfolio-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;padding-block:38px 42px}
.intro-name>.eyebrow{margin-bottom:13px}
.portfolio-intro h1{font-size:clamp(3.3rem,4.6vw,4.6rem)}
.portfolio-intro .hero-position{font-size:1.12rem;margin-top:15px}
.intro-copy .hero-intro{margin:0;max-width:485px;font-size:1rem;line-height:1.75}
.wardrobe-section{background:var(--paper);border-block:1px solid var(--line);padding-block:24px}
.wardrobe.shell{width:min(1220px,calc(100% - 96px));margin:0 auto;--portrait-height:clamp(240px,calc(100svh - 320px),510px)}
.carousel-heading{display:grid;grid-template-columns:1.1fr 1fr auto;align-items:center;gap:35px;margin-bottom:15px}
.facet-intro h2{font-size:clamp(1.9rem,2.8vw,2.4rem);margin-top:8px;line-height:1.1}
.facet-description{color:var(--muted);font-size:1rem;line-height:1.65;max-width:470px}
.facet-context>summary{display:none}
.carousel-count{color:var(--ochre);font-size:.875rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.carousel-panel{position:relative}
.carousel-stage{position:relative;height:calc(var(--portrait-height) + 24px);isolation:isolate;overflow:hidden;touch-action:pan-y}
.carousel-backdrop{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:min(45%,470px);height:calc(var(--portrait-height) + 8px);border-radius:46% 46% 12px 12px;background:radial-gradient(ellipse at 50% 30%,#f0f1e7 0%,#e8ecdf 60%,#dde5d7 100%);pointer-events:none}
.portrait-viewport{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:min(36%,400px);height:var(--portrait-height);perspective:1100px;pointer-events:none;z-index:1}
.portrait-layer{position:absolute;inset:0;transform-origin:50% 65%;backface-visibility:hidden;will-change:transform,opacity}
.facet-portrait{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;user-select:none;-webkit-user-drag:none}
.portrait-layer.is-current{z-index:2}
.portrait-layer.is-entering{z-index:2;animation:carousel-portrait-enter .56s cubic-bezier(.22,.72,.28,1) both}
.portrait-layer.is-leaving{z-index:1;animation:carousel-portrait-leave .56s cubic-bezier(.4,0,.28,1) both}
@keyframes carousel-portrait-enter{from{opacity:0;transform:translate3d(var(--enter-x),0,-130px) rotateY(var(--enter-turn)) scale(.88)}to{opacity:1;transform:translate3d(0,0,0) rotateY(0) scale(1)}}
@keyframes carousel-portrait-leave{from{opacity:1;transform:translate3d(0,0,0) rotateY(0) scale(1)}to{opacity:0;transform:translate3d(var(--leave-x),0,-130px) rotateY(var(--leave-turn)) scale(.88)}}
.callout-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:2;pointer-events:none;transition:opacity .18s}
.callout-leaders g{color:var(--green);opacity:.25;transition:opacity .18s}
.callout-leaders path{fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;vector-effect:non-scaling-stroke}
.callout-leaders circle{fill:var(--paper);stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke}
.callout-leaders g.is-active{opacity:.72}
.carousel-stage.is-turning .callout-leaders{opacity:0}
.callout-controls{position:absolute;inset:0;z-index:3;pointer-events:none}
.quality-point{position:absolute;top:var(--point-top,var(--point-y));width:min(26%,300px);pointer-events:none}
.quality-point[data-side=left]{left:4.5%}.quality-point[data-side=right]{right:4.5%}
.quality-callout{display:inline-flex;align-items:center;gap:10px;width:max-content;max-width:100%;min-height:44px;padding:9px 13px;border:1px solid #bac6b2;border-radius:12px;background:var(--paper);color:var(--green-deep);text-align:left;font-size:.875rem;font-weight:500;line-height:1.5;pointer-events:auto;overflow-wrap:anywhere;transition:border-color .18s,background .18s}
.quality-callout:hover,.quality-callout.is-active{border-color:var(--green);background:#f3f5ed}
.quality-icon{display:grid;place-items:center;flex:0 0 23px;height:25px;color:var(--ochre)}
.quality-icon svg{display:block;width:23px;height:23px}
.bi-mark{font-size:.875rem;font-weight:650;letter-spacing:-.06em;line-height:1;border:1px solid currentColor;border-radius:3px;padding:5px 3px}
.quality-detail{margin-top:13px;padding:0 2px;max-width:100%;pointer-events:auto;animation:quality-reveal .24s ease both}
.quality-detail h3{font-size:1rem;font-weight:600;line-height:1.5}
.quality-detail p{font-size:1rem;color:var(--muted);line-height:1.65;margin-top:7px;overflow-wrap:anywhere}
@keyframes quality-reveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.carousel-chevron{position:absolute;top:calc(var(--portrait-height) * .5 + 8px);transform:translateY(-50%);z-index:4;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #bac6b2;border-radius:50%;background:var(--paper);color:var(--green);transition:border-color .18s,background .18s}
.carousel-chevron.previous{left:4px}.carousel-chevron.next{right:4px}
.carousel-chevron:hover{background:var(--sage);border-color:var(--green)}
.carousel-chevron svg{width:21px;height:21px}
.facet-tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 22px;margin-top:7px}
.facet-tabs button{position:relative;flex:0 1 auto;min-height:44px;padding:10px 5px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:.875rem;line-height:1.4;transition:border-color .18s,color .18s}
.facet-tabs button[aria-selected=true]{border-bottom-color:var(--green);color:var(--green);font-weight:600}
.facet-tabs button:hover{color:var(--green)}.facet-dot{display:none}
.carousel-caption{display:flex;justify-content:space-between;gap:20px;margin-top:7px;font-size:.75rem;color:var(--muted);line-height:1.5}
.carousel-caption>span{white-space:normal}
@media(min-width:1500px){.wardrobe.shell{width:min(1260px,calc(100% - 96px))}}
@media(max-width:1100px){.wardrobe.shell{width:calc(100% - 64px)}.portfolio-intro{gap:40px}.carousel-heading{gap:24px}.quality-callout{padding:9px 11px;gap:8px}}
@media(max-width:960px){
 .wardrobe.shell{--portrait-height:clamp(180px,calc(100svh - 380px),380px)}
 .carousel-heading{grid-template-columns:1fr auto;gap:5px 15px;align-items:start;margin-bottom:10px}
 .facet-intro{min-width:0}.facet-intro .eyebrow{font-size:.75rem;letter-spacing:.08em}
 .facet-intro h2{font-size:clamp(1.65rem,4.6vw,2rem);margin-top:6px;line-height:1.08}
 .carousel-count{grid-column:2;grid-row:1;padding-top:2px}
 .facet-context{grid-column:1/-1;grid-row:2}
 .facet-context>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;font-size:.875rem;color:var(--muted)}
 .facet-context .facet-description{max-width:100%;padding-bottom:6px}
 .carousel-stage{height:auto;padding-top:calc(var(--portrait-height) + 18px);overflow:visible}
 .portrait-viewport{width:min(76%,330px);height:var(--portrait-height);top:5px}
 .carousel-backdrop{width:min(82%,370px);height:calc(var(--portrait-height) + 4px);top:3px}
 .callout-leaders{display:none}
 .callout-controls{position:relative;inset:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 8px;width:100%;pointer-events:none}
 .quality-point,.quality-point[data-side=left],.quality-point[data-side=right]{display:contents;position:static}
 .quality-callout{grid-row:1;width:100%;max-width:100%;min-width:0;min-height:68px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:6px 3px;background:transparent;text-align:center;font-size:.875rem;line-height:1.25;overflow-wrap:normal}
 .quality-callout:hover,.quality-callout.is-active{background:#edf1e7;border-bottom-color:var(--green)}
 .quality-icon{height:23px;flex:0 0 23px}.quality-icon svg{width:21px;height:21px}
 .quality-detail{grid-column:1/-1;grid-row:2;max-width:100%;margin:13px 0 4px;padding:0 3px}
 .quality-detail p{line-height:1.6}
 .carousel-chevron{top:calc(var(--portrait-height) * .5 + 5px);border-color:transparent;background:transparent}
 .carousel-chevron.previous{left:-4px}.carousel-chevron.next{right:-4px}
 .facet-tabs{flex-wrap:nowrap;gap:0;margin:2px 0 0}
 .facet-tabs button{flex:0 0 44px;display:grid;place-items:center;padding:0;border:0}
 .facet-tabs .tab-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
 .facet-dot{display:block;width:6px;height:6px;border:1px solid var(--muted);border-radius:50%;background:transparent;transition:width .18s,background .18s}
 .facet-tabs button[aria-selected=true] .facet-dot{width:18px;border-color:var(--green);background:var(--green);border-radius:8px}
 .carousel-caption{justify-content:center;gap:4px 15px;flex-wrap:wrap;text-align:center;margin-top:0}
}
@media(max-width:800px){
 .portfolio-intro{grid-template-columns:1fr;gap:16px;padding-block:25px 28px}
 .portfolio-intro h1{font-size:clamp(2.65rem,8.8vw,3.65rem);line-height:1.04}
 .portfolio-intro .hero-position{font-size:1rem;margin-top:12px}
 .intro-copy .hero-intro{max-width:600px;line-height:1.65}
 .wardrobe-section{padding-block:16px 18px}
 .wardrobe.shell{width:calc(100% - 40px);--portrait-height:clamp(140px,calc(100svh - 350px - var(--mobile-dock-space,calc(84px + env(safe-area-inset-bottom,0px)))),360px)}
 .carousel-caption .carousel-instruction{display:none}
}
@media(max-width:380px){
 .wardrobe.shell{width:calc(100% - 32px)}
 .facet-intro h2{font-size:1.65rem}
 .facet-intro .eyebrow{letter-spacing:.04em}
 .carousel-heading{column-gap:8px}
 .carousel-count{font-size:.75rem}
 .quality-callout{font-size:.875rem}
 .carousel-caption{gap:1px 10px}
}
@media(prefers-reduced-motion:reduce){
 .portrait-layer{will-change:auto}.portrait-layer.is-entering,.portrait-layer.is-leaving,.quality-detail{animation:none}
 .callout-leaders,.callout-leaders g,.facet-dot{transition:none}
}
