:root{color-scheme:dark;--ink:#dde4ed;--muted:#78838f;--border:#ffffff17;--accent:#d2e7f7;--bg:#07090c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #c2ddf3;outline-offset:4px}button:disabled{opacity:.35;cursor:default}button[hidden]{display:none}header{height:80px;padding:0 4.5%;display:flex;align-items:center;justify-content:space-between;background:#07090c;color:#edf2f7;border-bottom:1px solid #ffffff0b}.brand{display:flex;gap:13px;align-items:center;color:inherit;text-decoration:none;font-size:17px;letter-spacing:.16em}.brand-symbol{display:grid;place-items:center;border:1px solid #aabcc34d;width:37px;height:37px;border-radius:50%;font-family:serif;font-size:21px}.brand small{display:block;font-size:7px;letter-spacing:.14em;color:#78848e;margin-top:5px}nav{display:flex;align-items:center;gap:40px;font-size:11px}.nav-current{color:#6e7884}.text-btn{border:0;background:none;color:inherit;font-size:11px;padding:10px 0}.text-btn span{margin-left:17px}.hero{position:relative;isolation:isolate;min-height:740px;height:calc(100svh - 80px);max-height:1100px;background:radial-gradient(ellipse at 42% 46%,#151a22 0%,#0b0e13 32%,#07090c 66%);overflow:hidden}.hero-intro{position:absolute;top:12%;left:4.5%;z-index:2;pointer-events:none}.eyebrow,.overline{font-size:8px;letter-spacing:.18em;font-weight:500;color:#768593}.eyebrow i{display:inline-block;width:4px;height:4px;border-radius:50%;background:#dce9f3;box-shadow:0 0 12px #d5e9ff8a;margin-right:10px}h1{font-family:"Songti SC",Georgia,serif;font-size:clamp(34px,3.3vw,51px);font-weight:400;letter-spacing:.06em;line-height:1.5;margin:28px 0 18px}h1 span{color:#8d9aa9}.hero-intro p{font-size:11px;color:#626f7e;line-height:2.2;letter-spacing:.05em}.portrait-stage{position:absolute;left:12%;top:0;width:61%;height:100%;z-index:1}.portrait-light{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:320px;height:430px;background:#6c8da712;filter:blur(75px);border-radius:50%;pointer-events:none}#scene{position:absolute;inset:0 0 90px;min-height:400px}#scene canvas{display:block;width:100%;height:100%;outline:0}.model-caption{position:absolute;bottom:128px;left:0;right:0;text-align:center;color:#768595;font-size:9px;letter-spacing:.06em;pointer-events:none}.status-dot{display:inline-block;background:#c6d9e8;width:3px;height:3px;border-radius:50%;margin-right:7px;vertical-align:middle}.caption-separator{margin:0 8px;color:#384654}.model-controls{position:absolute;bottom:70px;left:0;right:0;display:flex;justify-content:center;gap:3px;z-index:5}.model-controls button{border:1px solid #e3edf413;background:#d4e7fa05;color:#6e7b8b;padding:10px 18px;font-size:10px;backdrop-filter:blur(15px)}.model-controls button:first-child{border-radius:30px 0 0 30px}.model-controls button:last-child{border-radius:0 30px 30px 0;font-size:16px;line-height:12px;padding:10px 15px}.model-controls button.active{background:#dbedff12;border-color:#dcecff24;color:#d0e0ee}.gesture{position:absolute;bottom:45px;left:0;right:0;text-align:center;font-size:8px;color:#4b5c6e;letter-spacing:.035em}.model-index{position:absolute;bottom:21%;left:4.5%;font-size:7px;line-height:1.8;letter-spacing:.18em;color:#435265;pointer-events:none}.model-index div{height:60px;width:1px;background:linear-gradient(#8da4be4d,transparent);margin:19px 0}.consult-panel{position:absolute;right:4.5%;top:47.5%;transform:translateY(-50%);width:310px;padding:26px;border:1px solid #edf5ff12;border-radius:8px;background:linear-gradient(140deg,#1c2430a3,#0c1017a8);backdrop-filter:blur(24px);box-shadow:0 25px 70px #0003;z-index:3}.panel-top{display:flex;justify-content:space-between;align-items:center;color:#647386;font-size:8px;letter-spacing:.12em}.panel-top #region-count{font-size:9px;letter-spacing:0}.region-insight{min-height:175px;padding-top:26px}.region-insight-label{color:#8aa1b7;font-size:9px;letter-spacing:.06em}h2{font-family:"Songti SC",Georgia,serif;font-weight:400;font-size:27px;letter-spacing:.03em;margin:14px 0 10px}.consult-panel h2{font-size:26px;line-height:1.25;margin:13px 0 11px;color:#e8eef4}.region-insight p{font-size:11px;line-height:1.9;color:#7a8798;margin:0;min-height:42px}.inline-link{background:none;border:0;padding:10px 0 0;color:#b3cbdf;font-size:10px;text-align:left}.inline-link span{margin-left:10px}.regions{display:flex;flex-wrap:wrap;gap:5px}.regions button{border:1px solid #dbe9fa1a;border-radius:3px;background:none;color:#74879a;font-size:9px;padding:8px 9px;transition:all .2s}.regions button.active{border-color:#c5dff47a;background:#c5e0ff12;color:#d2e9fd}.panel-divider{height:1px;background:#ffffff0c;margin:22px 0}.concern-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#bac7d5}.count{font-size:9px;color:#66788c}.panel-description{font-size:9px;line-height:1.8;color:#536375;margin:7px 0 13px}.concerns{display:grid;grid-template-columns:1fr 1fr;gap:7px}.concern{display:flex;align-items:center;gap:7px;border:1px solid #d9e9ff12;border-radius:3px;background:#ffffff02;color:#8898ab;text-align:left;padding:11px 9px;min-height:44px;transition:all .2s}.concern:hover{border-color:#c4dff24d;background:#cce7ff08}.concern.selected{border-color:#a2c5e275;background:#c2e4ff0c;color:#cfe6f8}.concern .num,.concern small{display:none}.concern strong{display:block;font-size:10px;font-weight:400;line-height:1.5}.concern .plus{margin-left:auto;flex-shrink:0;font-size:10px;color:#6b8197}.concern.selected .plus{color:#d4e9fa;font-size:9px}.primary{display:inline-flex;justify-content:space-between;align-items:center;gap:25px;border:1px solid #c5d8e8;background:#c5d8e8;color:#223448;padding:13px 18px;border-radius:4px;font-size:11px;transition:background .2s}.primary:hover{background:#e2eef7}.primary span{font-size:17px}.consult-panel>.primary{width:100%;margin-top:23px}.privacy-note{font-size:8px;color:#4e6071;text-align:center;margin:13px 0 0}.hero-bottom{position:absolute;bottom:0;left:4.5%;right:4.5%;height:59px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff08;font-size:7px;letter-spacing:.12em;color:#3f4d5e;pointer-events:none}.hero-bottom a{color:#6f8299;text-decoration:none;letter-spacing:.02em;pointer-events:auto}.hero-bottom a span{margin-left:22px}.section{max-width:1230px;margin:0 auto;padding:80px 5%;scroll-margin-top:20px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.section-head p,.result>p{font-size:12px;color:#748394;line-height:1.9}.overline{color:#596d84}.badge{font-size:9px;color:#71869c;border:1px solid #ccdeef1c;padding:9px 13px;border-radius:30px}.tabs,.actions{display:flex;gap:8px;flex-wrap:wrap}.tabs{margin:28px 0 18px}.tabs button,.outline{border:1px solid #c8deef1c;padding:11px 15px;border-radius:4px;background:transparent;color:#8297ac;font-size:10px}.tabs button.active{background:#233343;border-color:#7995af50;color:#d6e5f2}.lesson{display:grid;grid-template-columns:1.1fr 1fr;background:#101720;border:1px solid #ffffff0c;border-radius:8px;overflow:hidden}.structure{padding:28px;background:#182128;display:flex;flex-direction:column;justify-content:center}.structure-top{display:flex;justify-content:space-between;color:#667c8c;font-size:8px;letter-spacing:.1em}.structure svg{width:100%;max-height:330px;margin:15px 0;filter:saturate(.25);opacity:.85}.structure>p{text-align:center;font-size:9px;color:#697f8a}.lesson-copy{padding:44px;display:flex;flex-direction:column}.lesson-copy h3{font-family:"Songti SC",Georgia,serif;font-size:25px;font-weight:400;margin:23px 0 15px}.lesson-copy>p{font-size:12px;color:#8193a4;line-height:2;margin:0}.note{border-top:1px solid #ffffff0c;margin-top:26px;padding-top:23px}.note b{font-size:10px;font-weight:500;color:#8aa5bb}.note p{font-size:11px;color:#697f93;line-height:1.9}.step-nav{display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:25px}.round{height:37px;width:37px;border:1px solid #9ab8d136;background:transparent;color:#a8bfd4;border-radius:50%}.round.dark{background:#9cb8cf;color:#1d3143;border-color:#9cb8cf}.step-nav span{font-size:9px;color:#627a90;margin-left:15px}.feedback{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:35px}.feedback h3{font-family:"Songti SC",Georgia,serif;font-size:19px;font-weight:400;margin:0 0 8px}.feedback p{font-size:11px;color:#687e92}.feedback-buttons{display:flex;gap:6px}.feedback .primary{font-size:10px;padding:11px 15px}.result{border-top:1px solid #ffffff0c;padding-top:55px;padding-bottom:65px}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid #ffffff0c;background:#ffffff0c;border-radius:5px;overflow:hidden;margin:26px 0}.result-grid div{background:#0d131b;padding:22px}.result-grid span,.result-grid strong{display:block;font-size:10px}.result-grid span{color:#60788f;margin-bottom:13px}.result-grid strong{font-size:12px;font-weight:400}.hint{font-size:9px!important;color:#526b83!important}.result .text-btn{color:#728da6;font-size:10px}#outcome{font-size:12px;color:#abcde7}footer{padding:28px 5%;border-top:1px solid #ffffff0c;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#536a80}footer small{font-size:6px;letter-spacing:.1em;margin-left:10px}footer a{color:inherit;font-size:7px;text-underline-offset:3px}footer>span:last-child{line-height:1.8;text-align:right}.selection-notice{font-size:9px;color:#c8ddee;margin:8px 0 0}
@media(min-width:1600px){.consult-panel{width:350px;padding:32px}.region-insight{min-height:185px}.concern{padding:14px 12px}.portrait-stage{left:16%;width:56%}.hero-intro{top:16%}}
@media(max-width:1100px) and (min-width:761px){header{height:74px}.hero{min-height:740px;height:calc(100svh - 74px)}.hero-intro{top:8%;max-width:190px}h1{font-size:33px}.hero-intro p{font-size:10px}.consult-panel{right:3%;width:280px;padding:22px}.portrait-stage{left:4%;width:67%}.model-index{display:none}.concern strong{font-size:9px}.lesson-copy{padding:32px}.feedback{align-items:flex-start}.feedback-buttons{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:760px){header{height:70px;padding:0 6%}.brand{font-size:14px;gap:10px}.brand-symbol{width:32px;height:32px;font-size:18px}.brand small{font-size:6px}nav{gap:0}.nav-current{display:none}.hero{height:auto;max-height:none;min-height:0;padding:0 5% 65px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 42% 25%,#161e28,#090c11 35%,#07090c 60%)}.hero-intro{position:relative;top:auto;left:auto;max-width:none;padding:25px 1% 0;z-index:2}.eyebrow{font-size:7px}h1{font-size:25px;line-height:1.45;letter-spacing:.03em;margin:15px 0 0;white-space:nowrap}h1 br{display:none}.hero-intro p{display:none}.portrait-stage{position:relative;left:auto;top:auto;width:calc(100% + 10vw);margin-left:-5vw;height:460px;min-height:0;margin-top:-12px}#scene{inset:0 0 65px;min-height:0}.portrait-light{width:230px;height:270px;filter:blur(60px)}.model-caption{bottom:74px;font-size:8px}.model-controls{bottom:27px}.model-controls button{font-size:9px;padding:10px 16px}.gesture{bottom:5px;font-size:8px}.model-index{display:none}.consult-panel{position:relative;top:auto;right:auto;transform:none;width:100%;padding:24px;margin-top:12px;border-radius:7px;background:linear-gradient(140deg,#1d2833a6,#10161eab)}.panel-top{font-size:9px}.region-insight{min-height:145px;padding-top:22px}.consult-panel h2{font-size:25px}.region-insight p{font-size:12px}.regions{gap:7px}.regions button{font-size:10px;padding:10px 12px}.panel-divider{margin:20px 0}.concern-heading{font-size:12px}.panel-description{font-size:10px}.concern{padding:13px 12px;min-height:47px}.concern strong{font-size:11px}.consult-panel>.primary{padding:14px 18px;font-size:12px}.privacy-note{font-size:9px}.hero-bottom{height:48px;left:6%;right:6%;font-size:6px}.hero-bottom>span:nth-child(2){display:none}.hero-bottom a{font-size:8px}.hero-bottom a span{margin-left:8px}.section{padding:50px 6%}.section-head h2{font-size:23px}.section-head p{font-size:11px}.badge{display:none}.tabs{gap:5px;margin-top:20px}.tabs button{padding:10px 11px;font-size:10px}.lesson{grid-template-columns:1fr}.structure{padding:22px}.structure svg{max-height:260px;margin:0}.lesson-copy{padding:28px}.lesson-copy h3{font-size:23px}.feedback{flex-direction:column;align-items:flex-start;gap:14px;margin-top:28px}.feedback-buttons{width:100%;flex-wrap:wrap}.feedback-buttons button{flex:1;white-space:nowrap;padding:11px}.feedback h3{font-size:18px}.result-grid{grid-template-columns:1fr}.result-grid div{padding:16px 20px}.result-grid span{margin-bottom:8px}.result .actions{gap:6px}.actions button{font-size:10px;padding:10px 12px}footer{padding:24px 6%;gap:20px}footer small{display:block;margin:5px 0 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Interactive portrait: the image and every overlay share one fixed coordinate space. */
.hero{background:#030507}.portrait-light{display:none}#scene{display:flex;justify-content:center;align-items:center}.flat-portrait{position:relative;height:100%;aspect-ratio:4/5;max-width:100%;isolation:isolate}.flat-portrait[hidden],.flat-structure[hidden]{display:none}.portrait-art{width:100%;height:100%;object-fit:contain;display:block;user-select:none;-webkit-user-drag:none}.portrait-vignette{position:absolute;inset:0;background:linear-gradient(0deg,#030507 0%,transparent 13%,transparent 86%,#030507aa 100%);pointer-events:none}.portrait-focus{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 14% 12% at var(--x,50%) var(--y,50%),#f1dcaf33,transparent);mix-blend-mode:screen;opacity:0;transition:opacity .45s}.portrait-focus.visible{opacity:1}.portrait-hotspots{position:absolute;inset:0}.portrait-loading{position:absolute;inset:0;display:grid;place-items:center;font-size:10px;color:#7b8a99;background:#030507}.portrait-loading[hidden]{display:none}.flat-hotspot{position:absolute;width:44px;height:44px;transform:translate(-50%,-50%);padding:0;border:0;border-radius:50%;background:none;color:#a9bac8;cursor:pointer;outline-offset:3px;z-index:2}.hotspot-core{position:absolute;left:19px;top:19px;width:6px;height:6px;border-radius:50%;background:#ebf7ff;box-shadow:0 0 0 5px #d5e8ff18,0 0 16px #d6e8ff70;transition:all .25s}.hotspot-ring{position:absolute;inset:7px;border:1px solid #d9eeff33;border-radius:50%;transform:scale(.65);opacity:0;transition:all .3s}.hotspot-name{position:absolute;left:65px;top:12px;white-space:nowrap;font-size:10px;letter-spacing:.07em;line-height:20px;color:#9faebd;text-shadow:0 1px 8px #000,0 0 5px #000}.hotspot-name small{font-size:7px;opacity:.5;margin-right:6px}.hotspot-name:before{content:"";position:absolute;right:calc(100% + 8px);top:10px;width:34px;height:1px;background:#a1b7ca60}.flat-hotspot[data-side=left] .hotspot-name{left:auto;right:65px}.flat-hotspot[data-side=left] .hotspot-name:before{right:auto;left:calc(100% + 8px)}.flat-hotspot:hover .hotspot-ring,.flat-hotspot:focus-visible .hotspot-ring{transform:scale(1);opacity:1}.flat-hotspot.selected .hotspot-core{background:#f5deb0;box-shadow:0 0 0 7px #f1ce8b1a,0 0 24px #f5cc7a99}.flat-hotspot.selected .hotspot-ring{opacity:1;transform:scale(1);border-color:#e8cd9555}.flat-hotspot.selected .hotspot-name{color:#f3dcae}.flat-hotspot.selected{z-index:3}.flat-structure{width:100%;padding:30px;max-width:620px}.flat-structure svg{display:block;width:100%;max-height:100%}.region-insight{min-height:190px}.region-insight .inline-link{font-size:9px;display:inline-block;padding-top:14px}.region-insight .inline-link[hidden]{display:none}#region-inspect{margin-right:18px;color:#d6e3ef}#region-explain{color:#d9bd88}.consult-panel{background:linear-gradient(140deg,#19212bba,#0c1018b3)}.concern{background:#ffffff02}.model-caption{background:#03050755;border-radius:20px;width:max-content;max-width:100%;margin:auto;padding:5px 11px;bottom:122px}.model-controls button{background:#080d15bb}.hero-intro{max-width:260px}#region-dialog{padding:0;border:1px solid #bdcfdf26;border-radius:10px;background:#0d141c;color:#dce7ee;max-width:820px;width:calc(100% - 40px);overflow:hidden;box-shadow:0 30px 100px #0009}#region-dialog[open]{display:grid;grid-template-columns:1fr 1fr}#region-dialog::backdrop{background:#010306c9;backdrop-filter:blur(14px)}#detail-close{position:absolute;right:15px;top:12px;width:32px;height:32px;border:1px solid #ffffff20;background:#0b1119cc;border-radius:50%;color:#aebecd;font-size:24px;z-index:2}.detail-crop{background-image:url('assets/particle-woman-airy.jpg');background-size:220% auto;background-repeat:no-repeat;min-height:410px;background-color:#030507}.detail-copy{padding:65px 34px 40px}.detail-copy h2{font-size:25px}.detail-copy p{font-size:12px;color:#8a9eaf;line-height:1.9}.detail-copy .detail-note{font-size:9px;color:#506b83;margin:25px 0}.detail-copy .primary{font-size:11px}.gesture{font-size:8px}
@media(max-width:1100px) and (min-width:761px){.hero-intro{max-width:190px}.portrait-stage{left:8%;width:62%}.hotspot-name{font-size:9px}}
@media(max-width:760px){.hero{background:radial-gradient(ellipse at 42% 24%,#111822,#030507 38%)}.hero-intro{max-width:none}.portrait-stage{height:470px;margin-top:-4px}.flat-portrait{height:100%;aspect-ratio:4/5}.portrait-vignette{background:linear-gradient(0deg,#030507,transparent 14%,transparent 88%,#03050755)}.hotspot-name{font-size:9px;left:50px}.hotspot-name small{display:none}.hotspot-name:before{width:20px}.flat-hotspot[data-side=left] .hotspot-name{left:auto;right:50px}.hotspot-core{width:5px;height:5px;left:19.5px;top:19.5px}.model-caption{bottom:69px;padding:5px 9px;font-size:7px}.region-insight{min-height:165px}.region-insight .inline-link{font-size:10px}.consult-panel{margin-top:15px}.detail-copy{padding:25px 25px 30px}.detail-copy h2{font-size:22px}.detail-copy p{font-size:11px}#region-dialog{max-height:90svh;overflow:auto;width:calc(100% - 30px)}#region-dialog[open]{grid-template-columns:1fr}.detail-crop{min-height:0;height:300px;background-size:190% auto}}
@media(prefers-reduced-motion:reduce){.portrait-focus,.hotspot-core,.hotspot-ring{transition:none}}
.hero{background:#000}.portrait-loading{background:#000}.portrait-vignette{background:linear-gradient(0deg,#000 0%,transparent 13%,transparent 90%,#0007 100%)}.hotspot-core{width:7px;height:7px;left:18.5px;top:18.5px;background:#c9e5ff;box-shadow:0 0 0 4px #0009,0 0 0 5px #cde8ff4d,0 0 18px #c4e3ff70}.hotspot-name{padding:0 4px;background:#0003;border-radius:2px}.hotspot-name:before{right:calc(100% + 4px)}.flat-hotspot[data-side=left] .hotspot-name:before{left:calc(100% + 4px)}
@media(max-width:760px){.hero{background:#000}.hotspot-name{font-size:10px}.hotspot-core{width:6px;height:6px;left:19px;top:19px}}
@media(min-width:1101px){.hero-intro{max-width:300px}.hero-intro h1{font-size:clamp(34px,3vw,46px)}}
@media(min-width:761px) and (max-width:1100px){.hero-intro h1{font-size:29px;letter-spacing:.02em}}
@media(min-width:761px) and (max-width:1100px){.hero-intro{max-width:155px}.hero-intro h1{font-size:24px;letter-spacing:0}.portrait-stage{left:16%;width:54%}.hero-intro p{font-size:9px}}
/* Monochrome interface; color remains within the artwork only. */
:root{--ink:#e7e7e7;--muted:#858585;--border:#ffffff17;--accent:#dedede;--bg:#030303}body{background:#030303;color:#e4e4e4}header{background:#080808}.hero{background:#000}.hero-intro,.model-index,.consult-panel,.model-caption,.model-controls,.gesture,.hero-bottom,header,.section,footer,.portrait-hotspots{filter:grayscale(1)}.consult-panel{background:linear-gradient(140deg,#1b1b1bba,#0c0c0cb3);box-shadow:0 25px 70px #0003}.primary{background:#dedede;border-color:#dedede;color:#202020}.primary:hover{background:#f6f6f6}.concern{background:#ffffff02}.concern.selected{background:#ffffff0c;border-color:#ffffff65}.portrait-focus{background:radial-gradient(ellipse 14% 12% at var(--x,50%) var(--y,50%),#eff6ff22,transparent)}.flat-hotspot.selected .hotspot-core{background:#fff;box-shadow:0 0 0 7px #ffffff16,0 0 25px #ffffff77}.flat-hotspot.selected .hotspot-name{color:#fff}.flat-hotspot.selected .hotspot-ring{border-color:#ffffff60}#scene3d{position:absolute;inset:0 0 90px;min-height:400px}#scene3d canvas{width:100%;height:100%;display:block}#scene[hidden],#scene3d[hidden]{display:none}.skin-particle-hotspots{filter:grayscale(1)}.model-controls button{white-space:nowrap}.model-caption{color:#969696;background:#03030388}.gesture{color:#6e6e6e}#region-dialog{background:#111;border-color:#ffffff24;color:#e8e8e8}.detail-copy,#detail-close{filter:grayscale(1)}#detail-close{background:#111c}.is-3d .model-caption{font-size:8px}.is-3d #region-inspect{display:none}
@media(max-width:760px){#scene3d{inset:0 0 65px;min-height:0}.consult-panel{background:linear-gradient(140deg,#1b1b1bbd,#101010bd)}.model-controls button{padding:10px 13px;font-size:9px}.model-controls button:last-child{padding:10px 12px}}
/* Air, light and restrained motion. All hotspot coordinates move with the image. */
.portrait-art{position:relative;z-index:1;opacity:.75;animation:portrait-light-breathe 8s ease-in-out infinite}.flat-portrait{animation:portrait-float 9s ease-in-out infinite;will-change:transform}.portrait-depth{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.portrait-depth i{position:absolute;width:var(--size);height:var(--size);border-radius:50%;background:#c4d7ed;box-shadow:0 0 14px #c5d9f973;opacity:.2;animation:depth-drift var(--duration) ease-in-out var(--delay) infinite}.portrait-depth i:nth-child(5n){filter:blur(1px);background:#c1b598}.portrait-vignette{z-index:2}.portrait-focus{z-index:3}.portrait-hotspots{z-index:4}.portrait-loading{z-index:6}.portrait-focus.visible{animation:focus-breathe 3.5s ease-in-out infinite}.portrait-tip{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:5;white-space:nowrap;padding:8px 13px;border:1px solid #ffffff24;border-radius:30px;background:#050505a8;color:#c9c9c9;font-size:10px;letter-spacing:.04em;backdrop-filter:blur(12px);pointer-events:none}.portrait-tip:before{content:"＋";display:inline-block;color:#fff;margin-right:7px;font-size:12px}.hotspot-core{width:9px;height:9px;left:17.5px;top:17.5px;background:#fff;box-shadow:0 0 0 4px #000b,0 0 0 5px #ffffff6b,0 0 20px #ffffff99}.hotspot-ring{inset:6px;opacity:.65;transform:scale(.8);border-color:#ffffff50}.hotspot-wave{position:absolute;inset:6px;border:1px solid #ffffff75;border-radius:50%;pointer-events:none;animation:hotspot-beacon 3.8s ease-out var(--pulse-delay) infinite}.hotspot-name{font-size:11px;font-weight:500;color:#e3e3e3;background:#000b;border:1px solid #ffffff25;padding:1px 7px;border-radius:4px;top:10px;backdrop-filter:blur(6px)}.hotspot-name small{color:#bcbcbc;opacity:.75}.hotspot-name:before{background:#ffffff6b}.flat-hotspot:hover .hotspot-core,.flat-hotspot:focus-visible .hotspot-core{box-shadow:0 0 0 5px #0008,0 0 0 7px #ffffff73,0 0 30px #ffffffa0}.flat-hotspot.selected .hotspot-ring{border-color:#fff;opacity:1;transform:scale(1.05)}.flat-hotspot.selected .hotspot-name{border-color:#ffffffa0;background:#eaeaea;color:#161616;text-shadow:none}.flat-hotspot.selected .hotspot-name small{color:#555}.flat-hotspot.selected .hotspot-core{box-shadow:0 0 0 7px #ffffff29,0 0 25px #ffffffa0}.gesture{font-size:9px;color:#aaa}#motion-toggle{font-size:10px;color:#a7a7a7;min-width:54px}.region-insight{transition:background .4s}.region-insight:has(#region-explain:not([hidden])){background:radial-gradient(ellipse at 0 40%,#ffffff06,transparent 75%)}
@keyframes portrait-light-breathe{0%,100%{opacity:.72}50%{opacity:.81}}@keyframes portrait-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes depth-drift{0%,100%{transform:translate(0,0);opacity:.08}50%{transform:translate(7px,-13px);opacity:.4}}@keyframes hotspot-beacon{0%{transform:scale(.6);opacity:.65}70%,100%{transform:scale(1.9);opacity:0}}@keyframes focus-breathe{0%,100%{opacity:.65}50%{opacity:1}}
body[data-motion=off] .flat-portrait,body[data-motion=off] .portrait-art,body[data-motion=off] .portrait-depth i,body[data-motion=off] .hotspot-wave,body[data-motion=off] .portrait-focus{animation:none}body[data-motion=off] .portrait-art{opacity:.76}body[data-motion=off] .hotspot-wave{opacity:0}body[data-motion=off] .portrait-depth i{opacity:.13}
@media(max-width:760px){nav{gap:15px}#motion-toggle{font-size:9px}.portrait-tip{font-size:8px;padding:6px 10px}.hotspot-name{font-size:10px;padding:1px 5px}.hotspot-core{width:8px;height:8px;left:18px;top:18px}.gesture{font-size:8px}}
@media(prefers-reduced-motion:reduce){.flat-portrait,.portrait-art,.portrait-depth i,.hotspot-wave,.portrait-focus{animation:none!important}.portrait-art{opacity:.76}}
/* The portrait viewport supports pan and zoom; overlays share its transform. */
.portrait-viewport{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;cursor:grab;border-radius:6px}.portrait-viewport[hidden]{display:none}.portrait-viewport.dragging{cursor:grabbing}.portrait-pan{position:relative;height:100%;aspect-ratio:4/5;max-width:100%;transform-origin:50% 50%;will-change:transform}.portrait-pan .flat-portrait{height:100%;width:100%;max-width:none}.portrait-ambient{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.portrait-art{pointer-events:none}.portrait-depth{pointer-events:none}.portrait-hotspots{pointer-events:none}.flat-hotspot{pointer-events:auto;touch-action:none}.flat-hotspot:not(.selected) .hotspot-name{display:none}.portrait-tip,.gesture,.hero-intro p,.model-caption{display:none}.consult-panel:not([data-has-region=true]) .region-insight{display:none}.consult-panel:not([data-has-region=true]) .panel-top{margin-bottom:24px}.portrait-zoom{position:absolute;right:15px;bottom:15px;z-index:8;display:flex;gap:3px;cursor:default;filter:grayscale(1)}.portrait-zoom button{width:34px;height:34px;border:1px solid #ffffff25;background:#050505b3;backdrop-filter:blur(10px);color:#ddd;border-radius:50%;font-size:18px;display:grid;place-items:center}.portrait-zoom button:hover{background:#ffffff20}.portrait-zoom button:focus-visible{outline:2px solid white;outline-offset:3px}.model-controls{bottom:50px}.portrait-stage #scene,.portrait-stage #scene3d{bottom:85px}
@media(max-width:760px){.portrait-zoom{bottom:12px;right:10px;gap:5px}.portrait-zoom button{width:34px;height:34px;font-size:18px}.portrait-stage #scene,.portrait-stage #scene3d{bottom:60px}.model-controls{bottom:12px}.region-insight{padding-top:22px}}
.particle-region:not([aria-pressed=true]) .particle-label{display:none}
/* The static outer halo dissolves; sampled image particles are redrawn and animated. */
.portrait-art{mask-image:radial-gradient(ellipse 49% 55% at 64% 48%,#000 35%,#000d 57%,#0004 78%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 49% 55% at 64% 48%,#000 35%,#000d 57%,#0004 78%,transparent 100%)}.flat-portrait{animation:none}.portrait-ambient{z-index:3;opacity:.95}.portrait-depth{display:none}
/* Let the interactive stage span the full hero rather than a narrow centre column. */
.portrait-stage{left:0;width:100%;pointer-events:none}.portrait-stage #scene,.portrait-stage #scene3d{left:0;right:0;pointer-events:auto}.portrait-viewport{border-radius:0;overflow:hidden}.portrait-zoom{right:calc(4.5% + 330px)}.portrait-stage .model-controls{pointer-events:auto}.portrait-stage .model-caption{pointer-events:none}.hero-intro,.model-index{z-index:2}.consult-panel{z-index:4}
@media(min-width:1600px){.portrait-stage{left:0;width:100%}.portrait-zoom{right:calc(4.5% + 370px)}}
@media(min-width:761px) and (max-width:1100px){.portrait-stage{left:0;width:100%}.portrait-zoom{right:calc(3% + 300px)}}
@media(max-width:760px){.portrait-stage{left:auto;top:auto;width:calc(100% + 10vw);margin-left:-5vw}.portrait-zoom{right:12px}}
/* Layer the portrait beneath translucent navigation and lower content. */
header{position:relative;z-index:10;background:rgba(8,8,8,.65);backdrop-filter:blur(14px)}.hero{isolation:auto;overflow:visible}.portrait-stage{z-index:1}.portrait-viewport{overflow:visible}.portrait-side-particles{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.portrait-pan{z-index:1}.portrait-zoom{z-index:8}.section{position:relative;z-index:2;background:rgba(4,4,4,.72);backdrop-filter:blur(8px)}.education,.result{border-radius:10px}.hero-bottom{z-index:3}.portrait-viewport[hidden]{display:none}
@media(max-width:760px){header{background:rgba(8,8,8,.65)}.hero{overflow:visible}.section{background:rgba(4,4,4,.74)}}
.three-tools{position:absolute;right:calc(4.5% + 330px);bottom:105px;display:flex;gap:5px;z-index:5;pointer-events:auto}.three-tools[hidden]{display:none}.three-tools button{border:1px solid #ffffff33;background:#090909cc;color:#ddd;border-radius:4px;padding:9px 12px;font-size:11px}.three-tools button:hover{background:#ffffff26}@media(max-width:760px){.three-tools{right:12px;bottom:70px}.three-tools button{padding:8px 10px;font-size:10px}}
/* Avoid repeatedly filtering the moving artwork through large backdrop surfaces. */
header,.section,.consult-panel,.model-controls button,.portrait-zoom button,.hotspot-name{backdrop-filter:none;-webkit-backdrop-filter:none}.portrait-art{animation:none;opacity:.76}.portrait-pan{will-change:auto}
.portrait-art{animation:portrait-light-breathe 8s ease-in-out infinite}
.region-structure-head{display:flex;justify-content:space-between;gap:15px;font-size:8px;letter-spacing:.1em;color:#888}.region-structure-title{font-family:"Songti SC",Georgia,serif;font-size:23px;font-weight:400;color:#ddd;margin:16px 0 0}.flat-structure{background:#101010de;border:1px solid #ffffff15;border-radius:8px;max-height:100%;overflow:auto;scrollbar-width:thin}.flat-structure svg{width:100%;max-height:300px;flex-shrink:0}.structure-part-tabs{display:flex;gap:6px;flex-wrap:wrap}.structure-part-tabs button{padding:9px 11px;border:1px solid #ffffff24;background:none;color:#999;border-radius:3px;font-size:10px;cursor:pointer}.structure-part-tabs button.active{border-color:#bbb;background:#ffffff0b;color:#fff}.anatomy-pin{cursor:pointer;outline:none}.anatomy-pin:focus circle,.anatomy-pin:hover circle{stroke:white}.anatomy-pin.active text{font-weight:600}.structure-part-copy,.structure>.structure-part-copy{color:#aaa;font-size:11px;line-height:1.85;margin:16px 0 7px;text-align:left}.structure-disclaimer,.structure>.structure-disclaimer{font-size:9px;color:#666;line-height:1.8;text-align:left}.structure .region-structure-title{font-size:22px}#region-structure{margin-right:16px;color:#ccc}.region-insight{height:auto;min-height:190px;padding-bottom:16px}@media(max-width:760px){.flat-structure{padding:16px;width:calc(100% - 24px);max-height:100%}.region-structure-title{font-size:19px;margin-top:12px}.flat-structure svg{max-height:190px}.structure-part-tabs button{font-size:9px;padding:8px}.structure-part-copy{font-size:10px}.structure .region-structure-title{font-size:20px}.region-insight{min-height:150px}.region-insight .inline-link{font-size:9px;margin-right:10px}}
@media(min-width:761px){.is-structure #scene{left:4.5%;right:calc(4.5% + 330px)}.is-structure .hero-intro,.is-structure .model-index{visibility:hidden}.is-structure .flat-structure{width:100%;max-width:620px}}
@media(min-width:1600px){.is-structure #scene{right:calc(4.5% + 370px)}}
