/* One portrait room, from the first approach to hands-on exploration. */
.portrait-wall{transform-origin:50% 50%;transition:none!important;z-index:1}.scene{z-index:2}
/* Original card silhouette: cut corners, brushed rim and a quiet foil reflection. */
.portrait-card{clip-path:polygon(7% 0,93% 0,100% 5%,100% 94%,93% 100%,7% 100%,0 94%,0 5%);padding:8px;background:linear-gradient(128deg,#c5d8ef,#6e7d8d 14%,#e9e8dd 32%,#586b83 53%,#e4e9ee 76%,#8e9bb0);border:0;border-radius:0;box-shadow:none;filter:brightness(var(--frame-light,1)) drop-shadow(0 18px 20px #0009);overflow:hidden}
.portrait-card:before{inset:5px;clip-path:polygon(7% 0,93% 0,100% 5%,100% 94%,93% 100%,7% 100%,0 94%,0 5%);box-shadow:inset 0 0 0 2px #d5e2f28c,inset 0 0 0 5px #111e31;z-index:3}
.portrait-card img{padding:0;background:#101b2d;clip-path:polygon(6% 0,94% 0,100% 4%,100% 95%,94% 100%,6% 100%,0 95%,0 4%);object-fit:cover;object-position:50% 23%;height:100%;width:100%}
.portrait-card:after{inset:8px;border:0;clip-path:polygon(6% 0,94% 0,100% 4%,100% 95%,94% 100%,6% 100%,0 95%,0 4%);background:linear-gradient(120deg,transparent 15%,#d6e6ff12 var(--glint,45%),transparent 62%),repeating-linear-gradient(130deg,transparent 0 34px,#d4e4ff05 35px,transparent 36px);pointer-events:none;z-index:3}
.portrait-card[aria-current=true],.portrait-card:hover{box-shadow:none}
.portrait-card:focus-visible{outline:0;background:linear-gradient(130deg,#80afff,#fff,#ff7b88);filter:brightness(1.13)}
.card-edition{position:absolute;z-index:4;top:20px;left:22px;font-size:8px;font-weight:600;letter-spacing:2px;line-height:1;padding:7px 10px;color:#edf3ff;border:1px solid #d8e4ff4a;background:#111b2bc7;backdrop-filter:blur(8px);pointer-events:none}
.portrait-caption{left:8px;right:8px;bottom:8px;padding:64px 22px 25px;background:linear-gradient(transparent,#07101fde 43%,#0b1628 100%);z-index:2;min-height:130px}
.portrait-caption:after{content:'';position:absolute;bottom:13px;left:22px;width:46px;height:2px;background:linear-gradient(90deg,#668fff 33%,#edf2f9 33% 66%,#e16d7b 66%);opacity:.8}
.portrait-caption strong{font-size:clamp(19px,1.85vw,25px);line-height:1.13;letter-spacing:-.5px;padding-right:15px}
.portrait-caption small{font-size:11px;line-height:1.3;max-width:190px;margin-top:9px;color:#c3d0e6}
.portrait-arrow{right:15px;bottom:26px;width:25px;height:25px;line-height:23px;font-size:16px;background:#c5dcff08}
.profile-origin{opacity:0!important}
/* The opened card is a centered, expanded object, never a side drawer. */
#candidateDialog{position:fixed;inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;background:transparent;box-shadow:none;overflow:hidden;transform:none;color:#edf2fa}
#candidateDialog[open]{display:grid;place-items:center;animation:none!important}
#candidateDialog::backdrop{background:#02060de0;backdrop-filter:blur(14px)}
#candidateContent{position:relative;display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);width:min(1120px,calc(100vw - 80px));height:min(800px,84dvh);max-height:84dvh;padding:0;background:linear-gradient(140deg,#19263b,#0c1523 60%);border:1px solid #c1d3ed44;box-shadow:0 0 0 5px #8ca9cb0a,0 40px 140px #000b;overflow:hidden;opacity:0;transition:opacity .22s ease;clip-path:polygon(2% 0,98% 0,100% 3%,100% 97%,98% 100%,2% 100%,0 97%,0 3%)}
#candidateDialog.profile-ready #candidateContent{opacity:1}
#candidateDialog .close-button{position:fixed;top:20px;right:24px;width:44px;height:44px;z-index:30;border:1px solid #b1c9e359;border-radius:50%;background:#111e30d9;backdrop-filter:blur(8px);font-size:26px;line-height:1;color:#eff4fc}
#candidateDialog .close-button:hover{background:#324c71}
.candidate-portrait{position:relative;min-width:0;height:100%;overflow:hidden;background:#111d2c;border-right:1px solid #acc4e12a}
.profile-photo{width:100%;height:100%;object-fit:cover;object-position:50% 23%;display:block}
.candidate-portrait:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#091323 0%,#091323dc 15%,transparent 63%),linear-gradient(90deg,transparent 70%,#0c152344)}
.profile-identity{position:absolute;z-index:2;left:29px;right:25px;bottom:36px}
.profile-identity .index{font-size:9px;letter-spacing:1.6px;color:#ccdaf0}
.profile-identity h2{font-size:clamp(35px,3.5vw,49px);line-height:1.02;letter-spacing:-1.5px;margin:20px 0 15px;color:#f1f5fc;text-shadow:0 2px 20px #0006}
.profile-identity p{font-size:15px;line-height:1.4;margin:0;color:#c3d2e8}
.profile-identity:after{content:'';display:block;margin-top:25px;width:60px;height:2px;background:linear-gradient(90deg,#688eff 33%,#f0f4fc 33% 66%,#d66c7a 66%)}
.profile-reading{padding:43px 36px 28px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#496487 #101b2a}
.profile-reading>.index{font-size:9px;letter-spacing:2px;color:#aac1e2}
.profile-reading>h3{font-size:31px;font-weight:400;letter-spacing:-1px;line-height:1.15;margin:18px 0 20px;max-width:390px}
.profile-intro{font-size:16px;line-height:1.7;color:#b8c8df;margin:0 0 30px}
.flagship-position{display:grid;grid-template-columns:30px minmax(0,1fr);gap:16px;border-top:1px solid #a4bddc2a;padding:23px 0 24px}
.flagship-number{color:var(--topic-ink,#afc5e4);font-size:11px;letter-spacing:.8px;padding-top:6px}
.flagship-position h4{font-size:21px;line-height:1.25;font-weight:400;letter-spacing:-.3px;margin:0 0 12px;color:var(--topic-ink,#d2def0)}
.flagship-position p{font-size:17px;line-height:1.7;margin:0 0 15px;color:#d4dfee}
.flagship-date{display:block;font-size:10px;letter-spacing:.3px;line-height:1.5;color:#9caec8;margin-bottom:13px}
.flagship-position .position-source{background:#a9c3eb05;border-color:#adc7e027;padding:0 12px}
.flagship-position .position-source summary{font-size:11px;color:#b9cee9}
.flagship-position .position-source a{font-size:12px;line-height:1.6;display:block;margin-bottom:12px;overflow-wrap:anywhere;color:#b9d1ff;text-decoration:underline;text-underline-offset:4px}
.profile-scope{font-size:12px;line-height:1.7;color:#8fa5c4;padding:15px 0;border-top:1px solid #a4bddc2a;margin:0}
.profile-navigation{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 0;font-size:12px;border-top:1px solid #a4bddc2a}
.profile-navigation button{border:1px solid #a9c0df3d;background:#263d5c44;padding:10px 13px;font-size:12px;color:#dae7fc}
.profile-navigation button:hover{background:#314e77}
.profile-navigation>span{font-size:10px;letter-spacing:1px;color:#94abc9}
.profile-verification{font-size:10px;line-height:1.7;color:#8095b3;display:block;margin-top:10px}
.flying-card{pointer-events:none!important;transition:none!important;animation:none!important;transform-origin:50% 50%;will-change:left,top,width,height,opacity}
.flying-card .portrait-caption strong{font-size:clamp(22px,2.6vw,39px)}
@media(max-width:700px){
 .card-edition{font-size:7px;top:16px;left:17px;letter-spacing:1.5px;padding:6px 8px}
 .portrait-caption{padding:45px 17px 25px;min-height:110px}.portrait-caption strong{font-size:20px;padding-right:15px}.portrait-caption small{font-size:10px;max-width:155px}.portrait-caption:after{left:17px;bottom:13px;width:40px}.portrait-arrow{right:11px;bottom:26px;width:23px;height:23px;line-height:21px;font-size:14px}
 #candidateContent{display:block;width:calc(100vw - 28px);height:88dvh;max-height:88dvh;overflow-y:auto;overscroll-behavior:contain;clip-path:none;border-radius:2px;scrollbar-width:thin;scrollbar-color:#496487 #101b2a}
 #candidateDialog .close-button{top:10px;right:12px;width:39px;height:39px;font-size:24px}
 .candidate-portrait{height:310px;border:0}.profile-photo{object-position:50% 27%}.candidate-portrait:after{background:linear-gradient(0deg,#0e1828,transparent 95%),linear-gradient(90deg,#0a142866,transparent)}
 .profile-identity{left:24px;bottom:25px;right:24px}.profile-identity h2{font-size:39px;max-width:300px;line-height:1.02;margin:16px 0 12px}.profile-identity p{font-size:14px}.profile-identity .index{font-size:8px}.profile-identity:after{margin-top:17px;width:45px}
 .profile-reading{overflow:visible;padding:28px 23px 25px}.profile-reading>h3{font-size:28px;max-width:290px;margin:15px 0 19px}.profile-intro{font-size:15px;margin-bottom:24px}.flagship-position{gap:10px;grid-template-columns:23px minmax(0,1fr);padding:22px 0}.flagship-position h4{font-size:20px}.flagship-position p{font-size:16px}.flagship-number{font-size:10px}.profile-navigation button{font-size:11px;padding:10px 12px}
}
@media(prefers-reduced-motion:reduce){#candidateContent{transition:none}}

/* In the light version, leave the urn below the approaching portrait wall. */
.scene:not(.webgl-ready) .camera{transform:translateY(calc((1 - var(--zoom)) * 570px + var(--wall) * 52vh)) scale(calc(2.6 - var(--zoom) * 1.6 - var(--wall) * .25));opacity:calc(1 - var(--wall) * 1.7)}
