.portrait-about{--portrait-gold:#d7c797;margin:35px 0 55px;color:#e4e6df}
.portrait-composition{display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(35px,6vw,85px);align-items:center;position:relative;padding:25px 0 35px;background:radial-gradient(ellipse at 70% 45%,#1d303940,transparent 65%)}
.portrait-composition::before{content:'';position:absolute;top:65px;left:0;right:20%;height:1px;background:linear-gradient(90deg,#d7c79760,#d7c79718);pointer-events:none;z-index:-1}
.portrait-intro h2{font:500 18px/1.4 var(--font-body);letter-spacing:.13em;margin:0 0 28px;color:#eee4ca}.portrait-intro p{font-size:15px;line-height:1.85;margin-bottom:18px}.portrait-intro p:first-of-type{font-size:21px;line-height:1.5;color:#efeee7}.portrait-intro p:last-child{margin-bottom:0}
.portrait-orbit{margin:0;min-width:0;text-align:center}.portrait-orbit figcaption{font-size:11px;letter-spacing:.15em;color:#c4b690;margin-bottom:18px}
.portrait-instrument{position:relative;padding:22px 35px;max-width:440px;margin:auto}.portrait-arcs{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;fill:none;stroke:#c5b68a;stroke-width:.6;overflow:visible}.portrait-arcs ellipse:first-child{stroke-dasharray:30 12 23 35;opacity:.65}.portrait-arcs ellipse:nth-child(2){stroke-dasharray:18 32 28 22;opacity:.25}.portrait-marker{fill:#e9d89c;stroke:none;filter:drop-shadow(0 0 3px #cdb779);transition:cx .35s,cy .35s}
.portrait-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:18px 5px 18px 5px;background:radial-gradient(ellipse,#1a252c,#080f14);box-shadow:0 20px 35px #0008,0 0 0 1px #bdae7935;height:480px;touch-action:pan-x pan-y;}
.portrait-track::-webkit-scrollbar{display:none}.portrait-slide{flex:0 0 100%;min-width:0;scroll-snap-align:center;scroll-snap-stop:always;display:flex;justify-content:center;align-items:center}.portrait-slide img{width:100%;height:100%;object-fit:contain;user-select:none}.portrait-track.is-dragging{scroll-snap-type:none;cursor:grabbing}
.portrait-controls{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:12px}.portrait-controls button{display:grid;place-items:center;width:46px;height:46px;border:1px solid #d7c79750;border-radius:50%;background:#0c151b;color:#ded0a8;font-size:22px;transition:background .2s,border-color .2s}.portrait-controls button:hover{border-color:#dfca90;background:#202c31}.portrait-counter{font-size:12px;letter-spacing:.15em;color:#c9bd9e;min-width:65px}
.portrait-details{margin-top:30px;border-top:1px solid #d7c79740}.portrait-detail{border-bottom:1px solid #d7c79730;overflow:hidden}.portrait-detail summary{display:flex;align-items:center;gap:25px;min-height:72px;padding:18px 15px;list-style:none;cursor:pointer;font-size:15px;line-height:1.5;color:#d5dad7}.portrait-detail summary::-webkit-details-marker{display:none}.portrait-detail summary:hover,.portrait-detail[open] summary{color:#f5e7c1;background:linear-gradient(90deg,#bca77a0b,transparent)}.portrait-detail__number{color:#aa9d7c;font-size:11px;letter-spacing:.1em}.portrait-detail__toggle{margin-left:auto;flex:0 0 16px;width:16px;height:16px;position:relative}.portrait-detail__toggle::before,.portrait-detail__toggle::after{content:'';position:absolute;top:7px;left:1px;width:14px;height:1px;background:#cbb98c}.portrait-detail__toggle::after{transform:rotate(90deg);transition:transform .2s}.portrait-detail[open] .portrait-detail__toggle::after{transform:rotate(0)}.portrait-detail__content{padding:0 55px 25px;max-width:950px;font-size:15px;line-height:1.85}.portrait-detail__content p:last-child{margin-bottom:0}
@media(max-width:700px){.portrait-about{margin-top:20px}.portrait-composition{grid-template-columns:1fr;gap:30px;padding-top:15px}.portrait-intro p{font-size:14px;line-height:1.8}.portrait-intro p:first-of-type{font-size:19px}.portrait-instrument{padding:18px 20px}.portrait-track{height:440px}.portrait-arcs ellipse:nth-child(2){display:none}.portrait-orbit{max-width:390px;width:100%;margin:auto}.portrait-detail summary{gap:15px;min-height:68px;padding-inline:5px;font-size:14px}.portrait-detail__content{padding:0 10px 25px 30px;font-size:14px}.portrait-composition::before{right:0;top:0}}
@media(prefers-reduced-motion:reduce){.portrait-about *{transition:none!important;scroll-behavior:auto!important}}

/* Keep ornamental lines outside the actual photograph. */
.portrait-track{position:relative;z-index:1}.portrait-pointer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible}.portrait-intro{position:relative;z-index:1}.portrait-composition{isolation:isolate}
