/* Portrait and editorial Instagram gallery. */
.hero-visual{min-height:530px}
.hero-photo{width:min(420px,85%);height:auto;aspect-ratio:1;border-radius:38px;transform:rotate(-3deg);animation:portrait-arrive 1.2s ease both;transition:transform .5s ease,box-shadow .5s ease}
.hero-photo>img{object-position:50% 38%}
.hero-blue-disc{width:440px;height:440px;max-width:94%;border-radius:35%;transform:translate(-50%,-47%) rotate(12deg)}
.hero-visual:hover .hero-photo{transform:rotate(1deg) translateY(-8px);box-shadow:0 32px 60px #67479738}
.hero-visual .label-top{top:60px;left:-3px;animation:portrait-label 1.4s ease both}
.hero-visual .label-bottom{bottom:28px;animation:portrait-label 1.6s ease both}
@keyframes portrait-arrive{from{opacity:0;transform:translateY(25px) rotate(3deg)}to{opacity:1;transform:rotate(-3deg)}}
@keyframes portrait-label{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
.photos-intro .section-heading{align-items:center;margin-bottom:35px}
.photos-intro h1{font-size:clamp(52px,5.6vw,84px);max-width:850px}
.instagram-cta{display:inline-flex;align-items:center;gap:10px;flex:none;padding:14px 18px;border:1px solid var(--ink);border-radius:999px;background:var(--surface);font-size:14px;font-weight:600;box-shadow:4px 4px 0 var(--primary-tint);transition:transform .2s,box-shadow .2s,background .2s}.instagram-cta>svg{width:21px;height:21px;color:var(--primary-strong)}.instagram-cta .instagram-cta-arrow{width:17px;height:17px;margin-left:3px;color:var(--ink)}.instagram-cta:hover{background:var(--primary-tint);transform:translate(-2px,-2px);box-shadow:6px 6px 0 #9471d240}.instagram-cta:focus-visible{outline:2px solid var(--primary-strong);outline-offset:4px}
.photos-meta{align-items:center;font-size:16px;padding-top:24px}.photo-gallery-note{color:var(--ink);font-weight:500}
.photo-gallery{padding-top:20px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 42px;align-items:start}
.photo-grid .photo-card{padding:14px 14px 20px;background:var(--surface);border:1px solid var(--line);border-radius:24px;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;position:relative}
.photo-grid .photo-card:nth-child(3n+2){padding-top:14px}.photo-grid .photo-card:nth-child(even){margin-top:55px}
.photo-card-image{aspect-ratio:4/4.5;border-radius:15px}.photo-card-caption{padding:18px 9px 0}.photo-card-caption strong{font-size:20px}.photo-card-caption>span>span{font-size:13px}.photo-card-caption>span:last-child{font-size:11px;border:1px solid var(--line);border-radius:20px;padding:3px 9px;height:max-content}
.photo-card.photo-revealed{animation:photo-enter .75s ease both}
@media(hover:hover){.photo-grid .photo-card:hover{transform:translateY(-9px) rotate(-1deg);border-color:var(--primary);box-shadow:10px 14px 0 #9471d21c}.photo-grid .photo-card:nth-child(even):hover{transform:translateY(-9px) rotate(1deg)}}
.photo-card:focus-visible{border-color:var(--primary);box-shadow:8px 8px 0 var(--primary-tint)}
@keyframes photo-enter{from{opacity:.2;translate:0 35px}to{opacity:1;translate:0 0}}
@keyframes stamp-arrive{from{opacity:0;transform:rotate(-15deg) scale(.85)}to{opacity:1;transform:rotate(10deg) scale(1)}}
@media(max-width:1100px){.hero-visual{min-height:465px}.hero-photo{width:85%}.hero-blue-disc{width:360px;height:360px}.photo-grid{gap:30px}.photo-card-caption{display:block}.photo-card-caption>span:last-child{display:inline-block;margin-top:10px}}
@media(max-width:760px){.hero-visual{min-height:410px;margin-top:20px}.hero-photo{width:85%;border-width:6px;border-radius:30px}.hero-blue-disc{width:320px;height:320px}.hero-visual .label-top{top:20px;font-size:12px}.hero-visual .label-bottom{bottom:0;font-size:18px}.orbit-label{top:-10px}.photos-intro .section-heading{display:flex;align-items:center;gap:10px}.photos-intro h1{font-size:45px}.instagram-cta{padding:11px 14px;font-size:13px}.photos-meta{align-items:start;gap:18px;flex-direction:column;font-size:15px}.photo-grid{grid-template-columns:1fr;gap:28px}.photo-grid .photo-card:nth-child(even){margin-top:0}.photo-grid .photo-card{padding:10px 10px 18px;border-radius:20px}.photo-grid .photo-card:nth-child(3n+2){padding-top:10px}.photo-card-caption{padding:14px 8px 0}.photo-card-caption strong{font-size:20px}.photo-gallery{padding-top:6px}}
@media(prefers-reduced-motion:reduce){.hero-photo,.hero-visual .floating-label,.photo-card.photo-revealed{animation:none}.hero-photo,.photo-grid .photo-card,.photo-card img,.instagram-cta{transition:none}.hero-visual:hover .hero-photo,.photo-grid .photo-card:hover,.instagram-cta:hover{transform:none}}

/* Close-up portrait and translucent playback controls. */
.hero-visual .hero-photo{border-radius:50%;transform:none;animation-name:portrait-circle;isolation:isolate}
.hero-photo>img{transform:scale(1.48);transform-origin:53% 32%;object-position:50% 38%}
.hero-photo .photo-caption{justify-content:center;padding-bottom:24px;background:linear-gradient(transparent,#1117)}
.hero-visual:hover .hero-photo{transform:translateY(-6px)}
@keyframes portrait-circle{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
.marquee-controls{background:rgba(255,255,255,.3);border:1px solid #fff9;box-shadow:0 10px 30px #67479712,inset 0 1px 0 #fffc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:9px;gap:10px}
.marquee-controls .marquee-toggle{background:#9471d2b0;box-shadow:0 4px 12px #67479720}.marquee-controls button:hover{background:#ffffff85}
.feed-details{will-change:transform,opacity}
.video-like[aria-pressed=true]{color:#ff7196;background:#46243199}.video-like[aria-pressed=true] svg{fill:currentColor}
.like-burst{position:absolute;left:50%;top:50%;width:104px;height:104px;transform:translate(-50%,-50%);color:#ff7196;z-index:5;pointer-events:none}
.like-heart{position:absolute;inset:0;opacity:0;filter:drop-shadow(0 6px 16px #23101e55)}
.like-heart svg,.like-particle svg{display:block;width:100%;height:100%;fill:currentColor}
.like-ring{position:absolute;inset:20px;border:2px solid #ffb5cd;border-radius:50%;opacity:0}
.like-ring-echo{border-color:#fff5e4;border-width:1px}
.like-particle{position:absolute;left:50%;top:50%;width:15px;height:15px;margin:-7.5px;opacity:0;color:#ff7196}
.like-particle:nth-of-type(4n){color:#fff5e4}
.like-spark{width:10px;height:10px;margin:-5px;color:#d4b9ff}
.like-spark::before,.like-spark::after{content:"";position:absolute;top:50%;left:50%;width:100%;height:2px;border-radius:2px;background:currentColor;transform:translate(-50%,-50%)}
.like-spark::after{transform:translate(-50%,-50%) rotate(90deg)}
@media(prefers-reduced-motion:reduce){.like-burst{display:none}}
@media(prefers-reduced-motion:reduce){.hero-visual .hero-photo{animation:none}.hero-visual:hover .hero-photo{transform:none}}

/* Circular portrait composition. */
.hero-visual.portrait-composition{display:flex;flex-direction:column;justify-content:center;gap:0;min-height:530px;padding:20px 0;margin-top:5px}
.portrait-orbit{position:relative;width:min(460px,93%);aspect-ratio:1;border:1px solid #9471d255;border-radius:50%;padding:23px}
.portrait-orbit:before{content:'';position:absolute;inset:10px;border:1px solid #9471d22b;border-radius:50%;pointer-events:none}
.portrait-composition .hero-photo{width:100%;height:100%;aspect-ratio:1;border:0;box-shadow:none;background:var(--primary-tint);animation:portrait-circle .9s ease both;transform:none}
.portrait-composition .hero-photo>img{transform:scale(1.4);transform-origin:53% 30%}
.portrait-composition:hover .hero-photo{transform:none;box-shadow:none}
.portrait-spark{position:absolute;right:14px;top:20px;z-index:2;display:grid;place-items:center;width:65px;height:65px;border-radius:50%;background:var(--paper);color:var(--accent);font-size:65px;line-height:1;transition:transform .6s ease}
.portrait-composition:hover .portrait-spark{transform:rotate(90deg)}
.portrait-signature{display:flex;flex-direction:column;align-items:center;margin-top:18px;line-height:1.2;gap:7px}
.portrait-signature>.serif{font-size:44px;color:var(--primary-strong)}
.portrait-signature>span:last-child{font-size:13px;color:var(--muted)}
.portrait-signature>span:last-child span{color:var(--accent);margin-left:5px}
.portrait-footnote{display:flex;align-items:center;gap:12px;margin-top:24px;font-size:10px;letter-spacing:.17em;color:var(--muted)}
.portrait-footnote i{width:3px;height:3px;background:var(--accent);border-radius:50%}
@media(max-width:1100px){.portrait-orbit{padding:19px}.portrait-signature>.serif{font-size:38px}.portrait-spark{width:52px;height:52px;font-size:52px;right:8px;top:14px}}
@media(max-width:760px){.hero-visual.portrait-composition{min-height:0;padding:25px 0 15px;margin-top:5px}.portrait-orbit{width:min(350px,94%);padding:18px}.portrait-signature{margin-top:17px}.portrait-signature>.serif{font-size:39px}.portrait-footnote{margin-top:20px}.portrait-spark{right:9px;top:12px}}
@media(prefers-reduced-motion:reduce){.portrait-composition .hero-photo{animation:none}.portrait-spark{transition:none}.portrait-composition:hover .portrait-spark{transform:none}}

.portrait-signature>.serif,.photo-teaser h2 .serif{color:var(--primary)}
