/* Lens dial — isolated from the home carousel and global navigation. */
#page-profile{--chapter-name-size:clamp(44px,3.6vw,56px);--ink:#eeebf4;--muted:#b7afc4;--lens-size:min(35.4vw,calc(100dvh - 300px),680px);padding:clamp(16px,calc((100dvh - var(--lens-size) - 244px)/2),100px) clamp(24px,3.5vw,72px) 68px;overflow:visible;background:none;min-height:calc(100dvh - 128px)}
#page-profile .lens-layout{--rail:clamp(128px,9.2vw,176px);--copy-gap:clamp(36px,2.3vw,44px);--copy-top:clamp(36px,calc(var(--lens-size)*.12),78px);position:relative;width:100%;max-width:min(88vw,calc(var(--rail) + var(--lens-size) + var(--copy-gap) + 480px));margin:0 auto;color:var(--ink)}
.lens-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#page-profile .profile-pane{display:grid;grid-template-columns:calc(var(--rail) + var(--lens-size)) minmax(0,1fr);gap:var(--copy-gap);align-items:start;min-height:max(var(--lens-size),calc(var(--copy-top) + 492px));animation:none}
#page-profile .profile-pane[hidden]{display:none!important}
#page-profile .profile-pane.lens-exiting{position:absolute;inset:0 0 auto;pointer-events:none;z-index:1}
#page-profile .lens-view{position:relative;margin:0 0 0 var(--rail);width:var(--lens-size);height:var(--lens-size);aspect-ratio:1;border:0;border-radius:50%;overflow:hidden;background:radial-gradient(ellipse at 60% 25%,#4e425631,transparent 65%),#191b21;box-shadow:none;padding:0;isolation:isolate}
#page-profile .lens-shell{position:absolute;left:var(--rail);top:0;width:var(--lens-size);height:var(--lens-size);border-radius:50%;pointer-events:none;z-index:3;overflow:clip;overflow-clip-margin:24px}
.lens-depth{position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 9px #100c1c59,0 3px 7px #07050e66,0 10px 22px #0003,0 0 10px #ac83d30c}
.lens-crystal-layer{position:absolute;inset:0;width:100%;height:100%;max-width:none;pointer-events:none}
.lens-image-return{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:50%;visibility:hidden;pointer-events:none}
.lens-image-return[hidden]{display:none}
.lens-crystal-light{position:absolute;inset:-24px;width:calc(100% + 48px);height:calc(100% + 48px);pointer-events:none;opacity:0}
.lens-crystal-fallback{filter:none}
.lens-shell[data-crystal-renderer=webgl] .lens-crystal-fallback{visibility:hidden}
.lens-shell[data-crystal-renderer=webgl] .lens-crystal-light{opacity:1}
.lens-shell[data-crystal-renderer=webgl] .lens-crystal-layer,.lens-shell[data-crystal-renderer=webgl] .lens-image-return{visibility:hidden}
.lens-exposure{position:absolute;inset:1.2%;border-radius:50%;background:radial-gradient(ellipse at 36% 24%,#b68cdb28,transparent 54%),#12101b;opacity:0;pointer-events:none}
#page-profile .portrait-frame::after{content:none}
.profile-photo-motion{position:absolute;inset:1.7%;width:96.6%;height:96.6%;overflow:hidden;border-radius:50%;box-shadow:0 0 4px #100b1d}
#page-profile #profileImage{display:block;position:static;width:100%;height:100%;max-width:none;object-fit:cover;object-position:58% center;opacity:1;filter:none;mask:none;transform:none;border-radius:0}
#page-profile .dial-nav{position:absolute;inset:0 auto auto var(--rail);width:var(--lens-size);height:var(--lens-size);display:block;border:0;padding:0;background:none;z-index:5;pointer-events:none}
#page-profile .dial-nav button{position:absolute;left:calc(var(--dx)*100% + 22px);top:calc(var(--dy)*100%);transform:translate(-100%,-50%);width:max-content;max-width:190px;min-height:44px;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:6px;background:none;border:0;box-shadow:none;border-radius:22px;color:#b7adc2;font:12px/18px var(--font-ui);letter-spacing:.075em;white-space:nowrap;pointer-events:auto;transition:color 150ms ease-out}
#page-profile .dial-nav button[aria-selected=true]{color:#f0e2ff;background:none;box-shadow:none}
#page-profile .dial-control{position:relative;display:block;width:32px;height:32px;flex:0 0 32px;border-radius:50%}
#page-profile .dial-nav .dial-button-glass{position:absolute;inset:0;width:32px;height:32px;overflow:visible;stroke:none}
.dial-button-body{opacity:.62}.dial-button-finish{opacity:.62}
.dial-button-light{opacity:calc(.08 + var(--dial-light,0)*.72)}
.dial-button-halo{opacity:calc(var(--dial-light,0)*.78)}
#page-profile .dial-nav .dial-button-icon{position:absolute;left:8px;top:8px;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #170d2380);transition:color 150ms ease-out}
#page-profile .dial-nav button:focus-visible{outline:1px solid #d7b5f5;outline-offset:3px}
@media(hover:hover){#page-profile .dial-nav button:hover{color:#f3e7ff}#page-profile .dial-nav button:hover .dial-button-finish{opacity:1}}
.dial-button-finish{transition:opacity 150ms ease-out}
.dial-geometry{position:absolute;left:var(--rail);top:0;width:var(--lens-size);height:var(--lens-size);overflow:visible;z-index:4;pointer-events:none}
.dial-line{fill:none;stroke:url(#profileMenuRail);stroke-width:1;vector-effect:non-scaling-stroke}
#dialSelection{pointer-events:none;opacity:.8}
html[data-theme=light] #page-profile .dial-control{color:#674682}
html[data-theme=light] #page-profile .dial-nav button[aria-selected=true] .dial-control{color:#42235c}
html[data-theme=light] #page-profile .dial-button-body{opacity:.34}
html[data-theme=light] #page-profile .dial-button-finish{opacity:.7}
html[data-theme=light] #page-profile .dial-button-halo{opacity:calc(var(--dial-light,0)*.42)}
html[data-theme=light] #page-profile .dial-nav .dial-button-icon{filter:none}
html[data-theme=light] #page-profile .dial-line{stroke:url(#profileMenuRail)}
.dial-drag-path{fill:none;stroke:transparent;stroke-width:44;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:grab;touch-action:none}
.dial-dragging .dial-drag-path{cursor:grabbing}.dial-dragging{user-select:none}
.orb-rail-refraction{fill:none;stroke:#d1b1ec;stroke-width:1.05;opacity:.3;stroke-linecap:round}
#page-profile .lens-copy{min-width:0;width:100%;padding:var(--copy-top) 0 0;color:#e8e2ee;align-self:start}
#page-profile .lens-eyebrow{font:11px/1.5 Georgia,serif;letter-spacing:.3em;color:#bba9cb;margin:0 0 16px}
#page-profile .lens-copy h2{font:400 clamp(36px,3.1vw,54px)/1.3 var(--serif);letter-spacing:-.045em;margin:0 0 28px;word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance}
#page-profile .profile-copy{display:flex;flex-direction:column;min-height:0;max-width:460px}
#page-profile .lens-copy:is(.profile-copy,.cats-copy)>h2{font-size:calc(var(--chapter-name-size)*var(--name-optical-scale,1));line-height:calc(var(--chapter-name-size)*1.25);translate:0 var(--name-optical-y,0px);margin-bottom:24px}
#page-profile .cats-copy>h2{max-width:100%}
#page-profile .cats-copy .lens-description{max-width:360px;margin-bottom:0}
#page-profile .cat-picker{width:100%;max-width:360px;margin-top:24px}
#page-profile .cat-picker[hidden]{display:none}
#page-profile .profile-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px;margin:0;font-size:15px}
#page-profile .profile-facts>div{display:flex;flex-direction:column;gap:7px;align-items:flex-start;padding:0;border:0;min-width:0}
#page-profile .profile-facts dt{font-size:12px;line-height:1.5;color:#b4a8c2;margin:0}
#page-profile .profile-facts dd{font:400 clamp(18px,1.2vw,20px)/1.55 var(--serif);color:#eee5f6;margin:0;overflow-wrap:anywhere}
#page-profile .profile-copy .profile-crew-block{margin-top:28px;padding-top:20px}
.profile-crew-block{margin-top:24px;padding-top:22px;border-top:1px solid #ba9cd726}
.profile-crew-block>p{font-size:12px;color:#aaa0b8;margin:0 0 8px}
#profileCrews{display:flex;flex-wrap:wrap;gap:4px 26px}
.crew-trigger{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:4px 0;border:0;background:none;color:#ede6f5;font:16px/1.4 var(--serif);cursor:pointer}
.crew-logo{display:block;height:calc(1.1em * var(--logo-scale,1));width:auto;max-width:5em;object-fit:contain;transform:translateY(var(--logo-y,0px));flex:none}
.crew-logo.ivory{filter:brightness(0) saturate(100%) invert(94%) sepia(14%) saturate(292%) hue-rotate(339deg) brightness(102%)}
.crew-trigger:hover{color:#fff}.crew-trigger[aria-expanded=true]{color:#d9bef4}
.crew-popover{position:fixed;z-index:2200;width:min(340px,calc(100vw - 32px));padding:18px;background:#25232df5;border:1px solid #bc9bd349;border-radius:15px;box-shadow:0 16px 54px #0007;backdrop-filter:blur(22px);color:#eee7f6}
.crew-popover[hidden]{display:none}.crew-popover h3{font:400 18px var(--serif);margin:0 0 14px}.crew-popover p{font-size:13px;color:#b6adbf;line-height:1.7;margin:0}
.crew-members{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 8px;max-height:300px;overflow:auto}
.crew-members a{display:flex;align-items:center;flex-direction:column;gap:7px;color:inherit;text-decoration:none;font-size:12px;padding:3px}
.crew-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;background:#3b3545;display:grid;place-items:center;font-size:18px}.crew-members a span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lens-description{font-size:15px;line-height:1.85;color:#bfb4cb;max-width:28em;margin:0 0 24px;white-space:pre-line;overflow-wrap:anywhere}
#catLensOpen:not(:disabled){cursor:zoom-in}
#catLensImage{position:absolute;inset:1.7%;width:96.6%;height:96.6%;border-radius:50%;object-fit:cover;display:block}#catLensImage[hidden]{display:none}
#catLensEmpty{position:absolute;inset:0;display:grid;place-items:center;color:#b2a7c0;font:18px var(--serif)}#catLensEmpty[hidden]{display:none}
.cat-thumbs{display:grid;grid-template-columns:repeat(auto-fill,84px);gap:22px 20px;margin:0;align-items:start}
.cat-thumbs:empty,.cat-thumbs[hidden]{display:none}
.cat-thumbs button{width:84px;min-height:112px;display:flex;flex-direction:column;align-items:center;gap:10px;border-radius:10px;padding:0;border:0;background:none;color:#b8adca;cursor:pointer;font:13px/1.5 var(--serif);transition:color 160ms}
.cat-choice-photo{position:relative;display:grid;place-items:center;width:84px;height:84px;flex:none;border-radius:50%;padding:3px;border:1px solid #bfa7d34a;background:#24212b;box-shadow:inset 0 1px 2px #ffffff12;transition:transform 180ms cubic-bezier(.22,1,.36,1),border-color 180ms,box-shadow 180ms}
.cat-choice-photo img{width:100%;height:100%;border-radius:50%;object-fit:cover;position:relative;z-index:1}
.cat-choice-photo img[hidden]{display:none}
.cat-choice-photo>span{position:absolute;inset:0;display:grid;place-items:center;color:#bba4d0;font-size:23px}
.cat-choice-name{display:block;width:100%;overflow-wrap:anywhere;text-align:center}
.cat-thumbs button[aria-pressed=true]{color:#f0e0ff}
.cat-thumbs button[aria-pressed=true] .cat-choice-photo{border-color:#ddc1f6;box-shadow:inset 0 1px 2px #ffffff30,0 0 0 3px #baa2d216,0 0 13px #b78dde20}
@media(hover:hover){.cat-thumbs button:hover .cat-choice-photo{transform:translateY(-2px);border-color:#d4b7ed}.cat-thumbs button:hover{color:#f0e0ff}}
.cat-thumbs button:active .cat-choice-photo{transform:scale(.97)}
.profile-glass-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 18px;border-radius:28px;border:1px solid #c9b1dc55;background:linear-gradient(145deg,#b89ec716,#eee3ff04);box-shadow:inset 0 1px #ffffff10;color:#e2d5ef;font:13px/1.5 inherit;cursor:pointer}
.profile-glass-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.profile-glass-button:hover:not(:disabled){border-color:#d9bcef9c;background-color:#d0aefa0c}.profile-glass-button:active:not(:disabled){transform:translateY(1px)}
#page-profile .lyric-lens{display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 50%,#3e354b3b,transparent 72%),#191b21}
.profile-lyrics-scroll{height:69%;width:65%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8c739f70 transparent;mask-image:linear-gradient(transparent,#000 5%,#000 90%,transparent);padding:22px 10px;text-align:center}
#page-profile #lyrics{position:static;transform:none;margin:0;font:400 clamp(14px,1.3vw,20px)/2.05 var(--serif);color:#e8dfef;word-break:keep-all;text-wrap:pretty}.profile-lyrics-scroll p{margin:0 0 28px}
.lyric-fan{color:#cfaaed;transition:color 160ms}#page-profile[data-fan=false] .lyric-fan{color:inherit}
.profile-fan-toggle{display:flex;align-items:center;justify-content:space-between;gap:40px;width:min(280px,100%);padding:12px 0;margin:8px 0 22px;border:0;border-bottom:1px solid #bfa4d02b;background:none;color:#d9cce7;font-size:14px;min-height:48px}
.profile-switch-track{width:34px;height:20px;flex:none;border:1px solid #a28bb966;border-radius:20px;background:#19181f;padding:3px;display:flex;align-items:center}.profile-switch-track i{width:12px;height:12px;border-radius:50%;background:#9b8aa8;transition:transform 160ms,background 160ms}.profile-fan-toggle[aria-checked=true] .profile-switch-track{background:#67537c}.profile-fan-toggle[aria-checked=true] i{transform:translateX(13px);background:#ecdbff}
#page-profile button:focus-visible,.crew-popover a:focus-visible,.profile-dialog button:focus-visible{outline:2px solid #e8cbff;outline-offset:5px}
/* One heading anchor per viewport; chapter content never centers itself. */
@media(min-width:1051px) and (max-height:780px){
 #page-profile{--lens-size:max(380px,min(35.4vw,calc(100dvh - 260px)))}
 #page-profile .lens-layout{--copy-top:32px}
 #page-profile .profile-pane{min-height:max(var(--lens-size),492px)}
 #page-profile .lens-copy h2{font-size:38px;margin-bottom:22px}
 #page-profile{--chapter-name-size:48px}
 #page-profile .profile-facts{gap:18px 26px}
 #page-profile .profile-copy .profile-crew-block{margin-top:24px;padding-top:18px}
 #page-profile .dial-nav button{font-size:11px;gap:12px}
}
@media(min-width:1051px) and (max-width:1230px){
 #page-profile .lens-layout{max-width:100%;--rail:128px}
 #page-profile .profile-facts{column-gap:20px}
 #page-profile .profile-facts dd{font-size:18px}
}
@media(max-width:1050px){
 #page-profile{--lens-size:min(65vw,560px);padding:24px 24px 100px}
 #page-profile .lens-layout{--rail:0px;max-width:none;padding-top:0}
 #page-profile .profile-pane{display:flex;flex-direction:column;gap:0;align-items:center;min-height:0}
 #page-profile .lens-shell{left:50%;translate:-50% 0}
 #page-profile .lens-view{margin:0 auto}
 #page-profile .lens-copy{width:min(520px,100%);max-width:none;padding:96px 0 0;align-self:center}
 #page-profile .dial-nav{left:50%;top:calc(var(--lens-size) + 16px);translate:-50% 0;width:min(570px,100%);height:64px;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 #page-profile .dial-nav button{position:static;transform:none;width:100%;min-width:0;min-height:64px;max-width:none;flex-direction:column-reverse;justify-content:center;font-size:11px;gap:7px;padding:0;border-radius:12px}
.dial-geometry{display:none}
 #page-profile .lens-copy h2{font-size:42px;margin-bottom:28px}
 #page-profile{--chapter-name-size:46px}
 #page-profile .profile-facts{gap:24px 32px}
 #page-profile .profile-facts dd{font-size:21px}
 #page-profile .profile-copy .profile-crew-block{margin-top:28px}
 #page-profile #lyrics{font-size:18px}
 .cat-thumbs{grid-template-columns:repeat(auto-fill,80px);gap:20px 18px}
 .cat-thumbs button,.cat-choice-photo{width:80px}
 .cat-choice-photo{height:80px}
}
@media(max-width:600px){
 #page-profile{padding:20px 22px 100px}
 #page-profile .lens-layout{--lens-size:min(83vw,430px,var(--lens-available-width,calc(100vw - 74px)))}
 #page-profile .dial-nav{gap:6px}
 #page-profile .dial-nav button{font-size:10px;letter-spacing:.04em;gap:7px}
 
 #page-profile .lens-copy{padding-top:90px}
 #page-profile .lens-copy h2{font-size:38px}
 #page-profile{--chapter-name-size:38px}
 #page-profile .cat-picker{margin-top:24px}
 .cat-thumbs{grid-template-columns:repeat(auto-fill,76px);gap:20px 18px}
 .cat-thumbs button{width:76px;min-height:104px;font-size:12px}
 .cat-choice-photo{width:76px;height:76px}
 #page-profile .lens-eyebrow{font-size:10px}
 #page-profile .profile-facts{gap:23px 24px}
 #page-profile .profile-facts dd{font-size:18px;line-height:1.6}
 #page-profile .profile-facts dt{font-size:12px}
 #page-profile .profile-copy .profile-crew-block{padding-top:20px}
 #page-profile[data-chapter="2"] .lens-shell{display:none}
 #page-profile .ending-pane{padding-top:0}
 #page-profile .lyric-lens{border:1px solid #b59bc333;border-radius:20px;width:var(--lens-size);height:var(--lens-size);overflow:hidden}
 #page-profile .profile-lyrics-scroll{width:100%;height:84%;padding:16px 22px;text-align:left;mask-image:linear-gradient(transparent,#000 4%,#000 91%,transparent)}
 #page-profile #lyrics{font-size:17px;line-height:2}
 .profile-dialog{width:calc(100% - 24px)!important}
 .crew-trigger{font-size:16px}
 .lens-exposure{background:#16121e}
}
@media(prefers-reduced-motion:reduce){#page-profile *,#page-profile *::before,#page-profile *::after,.crew-popover{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.profile-dialog { margin:auto; padding:0; width:min(1120px,calc(100% - 48px)); max-width:none; max-height:calc(100dvh - 48px); color:#eee8f5; border:1px solid #d8bce675; border-radius:16px; background:#1e1d25f7; box-shadow:0 32px 100px #0008; overflow:hidden; }
.profile-dialog::backdrop { background:#0c0d13c9; backdrop-filter:blur(10px); }
.profile-dialog[open] { display:flex; flex-direction:column; }
.profile-dialog header { padding:14px 20px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex:none; border-bottom:1px solid #d4bdde26; }
.profile-dialog h2 { font:400 21px/1.5 var(--serif); margin:0; }
.profile-dialog-actions { display:flex; align-items:center; gap:9px; }
.profile-dialog-icon { display:grid; place-items:center; width:44px; height:44px; padding:0; flex:none; }
.profile-photo-view { position:relative; min-height:0; padding:16px 70px; display:flex; justify-content:center; overflow:hidden; }
.profile-photo-view img { display:block; object-fit:contain; width:100%; height:min(68dvh,760px); min-height:0; }
.profile-photo-nav { position:absolute; top:50%; transform:translateY(-50%); border-radius:50%; }
.profile-photo-nav[data-step="-1"] { left:12px; }.profile-photo-nav[data-step="1"] { right:12px; }
.profile-dialog .profile-photo-nav:active { transform:translateY(-50%) scale(.98); }
.profile-photo-note { padding:0 24px 20px; margin:0; text-align:center; color:#c9bed2; font-size:15px; }
.profile-photo-loading { position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; color:#c9bed2; }
.profile-font-button { min-width:44px; padding:9px; font-size:16px; }
.profile-glass-button:disabled { opacity:.4; }
.profile-dialog [autofocus]:focus:not(:focus-visible) { outline:none; }
html:has(.profile-dialog[open]) { overflow:hidden; }

/* Preserve the active chapter geometry while its light leaves the viewport. */
#page-profile.profile-departing{display:block!important;position:fixed!important;top:var(--exit-top);left:var(--exit-left);width:var(--exit-width);z-index:20;pointer-events:none;min-height:0;background:none!important}
#page-profile .cats-copy #catLensBio[hidden]{display:none}
#page-profile .cats-copy #catLensBio[hidden]+.cat-picker{margin-top:0}

@media(prefers-reduced-motion:reduce){#page-profile .dial-nav button,#page-profile .dial-button-finish,#page-profile .dial-nav .dial-button-icon{transition:none}}
