/* Fase 3: kartu profil dan sloka. Tidak memodifikasi desain final Fase 1-2. */
.profile-section,.sloka-section {background:var(--ivory);color:var(--mauve); position:relative;}
.profile-content {padding:0 20px; width:100%; max-width:600px; margin:0 auto; display:flex; flex-direction:column; gap:26px;}
.portrait-card {position:relative; isolation:isolate; overflow:hidden; width:100%; min-height:440px; aspect-ratio:2/3; background:#59455f; border-radius:24px; box-shadow:0 14px 29px rgba(46,2,59,.16); color:var(--ivory);}
.portrait-media,.portrait-vignette {position:absolute;inset:0;}
.portrait-image {width:100%;height:100%;object-fit:cover;object-position:50% 35%;}
.portrait-empty {width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px; background:radial-gradient(ellipse at 53% 29%,#8A7591 0%,#62506E 44%,#392444 100%);text-align:center;padding:25px 18px 95px;color:#F7F1E8;}
.portrait-empty svg {flex-shrink:0;}
.portrait-placeholder-ornament {position:absolute;width:min(72%,265px); top:14%;left:50%;transform:translateX(-50%);opacity:.26;color:#e0c9cf;}
.portrait-empty-icon {position:relative;width:65px;height:65px;color:#F1E0EA;opacity:.9;}
.portrait-empty span {position:relative;font-size:clamp(11px,2.9vw,13px);font-weight:700;letter-spacing:.19em;}
.portrait-empty small {position:relative;font-size:clamp(10px,2.65vw,12px);color:#E8D7EB;max-width:230px;line-height:1.55;}
.portrait-vignette {pointer-events:none;background:linear-gradient(180deg,rgba(46,2,59,0) 25%,rgba(35,5,42,.05) 37%,rgba(27,3,34,.55) 62%,rgba(18,2,25,.95) 100%);}
/* Kartu dapat tumbuh ketika identitas keluarga panjang; placeholder tidak bertumpuk dengan teks. */
.portrait-card--dense {min-height:550px;aspect-ratio:auto;}
.portrait-card--dense .portrait-empty {justify-content:flex-start;padding-top:35px;}
.portrait-card--dense .portrait-empty svg {display:none;}
.portrait-card--dense .portrait-name {font-size:clamp(18px,5vw,24px);}
.portrait-description {position:absolute;z-index:1;bottom:0;left:0;right:0;text-align:center;padding:90px clamp(15px,5vw,28px) clamp(23px,6.2vw,34px); display:flex;flex-direction:column;align-items:center;gap:7px;text-shadow:0 1px 4px rgba(0,0,0,.25);}
.portrait-name {font:700 clamp(20px,5.4vw,28px)/1.32 var(--font-body);font-style:italic;letter-spacing:-.027em;margin:0;color:var(--ivory);overflow-wrap:anywhere;text-wrap:balance;}
.portrait-order,.portrait-parents,.portrait-address {font:400 clamp(12px,3.45vw,16px)/1.6 var(--font-body);margin:0;color:#FAF6F3;overflow-wrap:anywhere;text-wrap:pretty;}
.portrait-parents {font-weight:600;}
.portrait-address {opacity:.91;font-size:clamp(11px,3.15vw,14px);}
.sloka-content {max-width:650px;padding:60px 25px 100px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;}
.sloka-divider {height:1px;width:55%;max-width:250px;background:#D7C9D7;}
.sloka-quote {font:400 76px/1 Georgia,serif;color:var(--plum);opacity:.73;margin-top:49px;height:62px;}
.sloka-verse {font:400 clamp(18px,4.6vw,22px)/1.85 Georgia,'Times New Roman',serif;color:var(--plum);white-space:pre-line;overflow-wrap:break-word;margin:21px 0 0;max-width:580px;}
.sloka-citation {color:var(--plum);font:600 13px/1.6 var(--font-body);margin:10px 0 0;}
.sloka-inner-divider {height:1px;width:75px;background:#D7C9D7;margin-top:37px;}
.sloka-meaning-label {font:700 15px/1.5 var(--font-body);margin:30px 0 0;color:var(--mauve);}
.sloka-meaning {font:400 clamp(14px,3.85vw,17px)/1.85 var(--font-body);text-wrap:pretty;max-width:570px;color:var(--mauve);margin:15px 0 0;}
@media (max-width:350px){.profile-content{padding-inline:15px;gap:20px}.portrait-card{min-height:415px;border-radius:20px}.portrait-description{padding-inline:14px;gap:5px}.sloka-content{padding-inline:16px}}
@media (min-width:860px){.profile-section,.sloka-section{max-width:520px;margin-inline:auto}.profile-content{padding-inline:20px}.portrait-card{max-width:480px;margin-inline:auto}}
/* Diletakkan setelah media queries agar data keluarga panjang memperbesar kartu pada ponsel kecil. */
.portrait-card.portrait-card--dense { min-height:550px; aspect-ratio:auto; }
