:root{color-scheme:dark;--bg:#060d17;--ink:#dce9f5;--muted:#87a0b6;--line:#213447;--blue:#97d7ff;--font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.6;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #a5e1ff;outline-offset:5px}button,a{transition:color .25s,background .25s,border-color .25s}a{color:inherit;text-decoration:none}button{border:0;background:none}button:hover,a:hover{color:white}[hidden]{display:none!important}.header{height:105px;display:flex;justify-content:space-between;align-items:center;margin:0 5%;border-bottom:1px solid #27384a77;position:relative;z-index:2}.brand{font-size:21px;letter-spacing:-.5px;font-weight:550}.brand span{display:block;font-size:8px;letter-spacing:.16em;color:#657d95;font-weight:400;margin-top:4px}.header-right{display:flex;gap:32px;align-items:center}.preview{font-size:8px;letter-spacing:.18em;color:#5d7992;border:1px solid #243849;padding:5px 9px;border-radius:3px}.text-button{font-size:11px;color:#8ea8c0;padding:9px 0}.text-button span{margin-left:12px}.experience{position:relative;isolation:isolate;min-height:800px;height:calc(100svh - 155px);max-height:1050px;overflow:hidden}.ambient{position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 67% 43%,#0a2853b0,transparent 49%),radial-gradient(ellipse at 45% 88%,#0a213953,transparent 55%)}.ambient:after{content:"";position:absolute;inset:0;opacity:.3;background-image:radial-gradient(#5b83a4 0.65px,transparent 0.65px);background-size:37px 37px;mask-image:radial-gradient(ellipse at 70% 40%,black,transparent 60%)}.intro{position:absolute;z-index:3;left:8.1%;top:19%;width:27%;pointer-events:none}.intro button{pointer-events:auto}.eyebrow{font-size:9px;letter-spacing:.2em;color:#7d9dbb;display:flex;align-items:center;gap:13px;margin:0 0 25px}.small-line{width:30px;height:1px;background:#5c92ba;flex-shrink:0}h1{font-size:clamp(42px,4.5vw,73px);font-weight:400;letter-spacing:-3.4px;line-height:1.08;margin:0 0 27px;text-wrap:balance}h1 em{font-style:normal;color:#9dcef1;font-weight:350}#description{font-size:14px;line-height:1.85;color:#8fa8bf;max-width:290px;margin:0}#region-note{font-size:10px;line-height:1.7;color:#647e98;max-width:245px;margin:17px 0 0}.intro-bottom{margin-top:70px;display:flex;gap:17px;align-items:center;color:#58718b}.intro-bottom p{font-size:10px;line-height:1.8;margin:0}.small-plus{font-size:26px;font-weight:200;color:#365b7f}.back-button{display:flex;align-items:center;gap:12px;color:#a4c7e5;margin-top:27px;font-size:17px;padding:8px 0}.back-button span{font-size:11px}.experience.focused .intro-bottom{display:none}.visual-area{position:absolute;inset:0 6% 110px 31%;z-index:1}#viewer{position:absolute;inset:10px 0 22px}canvas{display:block;width:100%;height:100%;touch-action:none;outline:none;filter:drop-shadow(0 0 8px #1f74bb45)}.orbit-ring{position:absolute;left:50%;bottom:3.5%;width:340px;height:87px;transform:translateX(-50%);border-radius:50%;border:1px solid #4178ad25;box-shadow:0 0 45px #0667c616,inset 0 0 35px #0765ad0c;pointer-events:none}.orbit-ring:before,.orbit-ring:after{content:"";position:absolute;inset:9px 34px;border:1px dashed #4d83b622;border-radius:50%}.orbit-ring:after{inset:19px 70px;border-style:solid}.view-caption{position:absolute;top:32px;left:26px;right:0;display:flex;align-items:center;gap:18px;pointer-events:none;font-size:8px;letter-spacing:.17em;color:#456a8c}#view-number{color:#86b8d9;font-variant-numeric:tabular-nums}.view-caption:after{content:"";height:1px;width:70px;background:linear-gradient(90deg,#2c567a,transparent)}.crosshair{position:absolute;width:14px;height:14px;opacity:.4;pointer-events:none}.crosshair:after,.crosshair:before{content:"";position:absolute;background:#5b8db7}.crosshair:before{width:14px;height:1px;top:7px}.crosshair:after{width:1px;height:14px;left:7px}.crosshair.top{right:13px;top:34px}.crosshair.bottom{right:13px;bottom:44px}.orientation{position:absolute;top:48%;left:6%;right:6%;display:flex;justify-content:space-between;pointer-events:none;color:#375876;font-size:9px}.orientation span{border:1px solid #1c3850;border-radius:50%;width:23px;height:23px;display:grid;place-content:center}.view-tools{position:absolute;z-index:4;right:6%;bottom:116px;display:flex;align-items:center;gap:16px}.motion-button{display:flex;align-items:center;gap:10px;color:#9ebedb;font-size:10px;border:1px solid #2b4c68;background:#071523aa;padding:9px 13px;border-radius:4px;min-height:42px;backdrop-filter:blur(12px)}.motion-button:hover{background:#112a40;border-color:#527b9c}#motion-symbol{font-size:14px;line-height:1;min-width:11px}.zoom-tools{display:flex;gap:2px;border-left:1px solid #26415c;padding-left:13px}.zoom-tools button{height:42px;width:35px;font-size:18px;font-weight:300;color:#749abb;border-radius:4px}.zoom-tools button:hover{background:#132b3d;color:white}.gesture{position:absolute;bottom:123px;left:8.1%;font-size:9px;color:#4d6e8b;display:flex;align-items:center;gap:12px;margin:0;z-index:3}.gesture span{font-size:22px;font-weight:200;color:#6f9ebf}.regions{position:absolute;bottom:23px;left:8.1%;right:6%;display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid #29435d77;border-bottom:1px solid #29435d40;z-index:5;background:linear-gradient(90deg,#0b1b2a88,transparent);backdrop-filter:blur(8px)}.regions button{position:relative;text-align:left;color:#7f9ab3;padding:19px 19px 19px 16px;display:flex;gap:16px;align-items:center;font-size:12px;min-height:65px}.regions button span{font-size:8px;letter-spacing:.08em;color:#416580;font-variant-numeric:tabular-nums}.regions button[aria-pressed=true]{color:#cce9fc;background:linear-gradient(180deg,#193d5b80,transparent)}.regions button[aria-pressed=true]:before{content:"";height:1px;background:linear-gradient(90deg,#a0d8fa,#507d9b);position:absolute;top:-1px;left:0;right:0;box-shadow:0 0 12px #6bb7ea88}.regions button[aria-pressed=true] span{color:#80b8df}.regions button:hover{background-color:#15314a44}.regions button:focus-visible{outline-offset:-4px}footer{margin:0 5%;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:65px;border-top:1px solid #243a4d44}footer p{font-size:9px;color:#607c95;margin:0}footer p span{color:#425d75;margin-left:9px}footer .text-button{font-size:9px}#loading{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#061222b0}#loading p{font-size:10px;letter-spacing:.14em;color:#7da9cb;margin-top:20px}.loader{width:46px;height:46px;border-radius:50%;border:1px solid #174164;border-top-color:#9bdcff;animation:spin 1.7s linear infinite;box-shadow:0 0 25px #197abf22}#error{position:absolute;inset:30% 20%;font-size:13px;color:#91acc2;text-align:center;z-index:10}#error button{border:1px solid #406485;border-radius:3px;padding:10px 22px;margin-top:15px}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:1px solid #2a4d67;border-radius:10px;background:#0c1927;color:#97b0c6;max-width:570px;width:calc(100% - 32px);max-height:85svh;padding:38px;line-height:1.85;font-size:12px;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#020911c9;backdrop-filter:blur(12px)}dialog h2{font-size:32px;font-weight:400;letter-spacing:-1px;color:#dceef9;line-height:1.2;margin:0 0 25px}dialog h3{font-size:13px;font-weight:500;color:#c4dfef;margin:28px 0 9px}dialog .close{float:right;font-size:26px;color:#8cabc1;margin-top:-18px;margin-right:-10px;padding:8px}dialog a{color:#a3cbed;text-decoration:underline;text-underline-offset:3px}dialog .eyebrow{font-size:8px;margin:0 0 16px}#reference-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;font-size:11px;margin:20px 0 25px}#reference-links a{padding:9px 11px;border:1px solid #274359;border-radius:3px;text-decoration:none}.credit{font-size:10px;color:#64859e}details{border-top:1px solid #294156;padding-top:16px}summary{cursor:pointer;color:#9fc1d9;font-size:11px}.experience.focused .orbit-ring{opacity:0}@media(min-width:1500px){.intro{left:10%}.visual-area{left:33%;right:8%}.regions{left:10%;right:8%}.view-tools{right:8%}.gesture{left:10%}}@media(max-width:1000px){.intro{left:6%;width:28%;top:22%}h1{font-size:49px;letter-spacing:-2.5px}#description{font-size:12px}.eyebrow{font-size:7px;letter-spacing:.14em;gap:8px}.small-line{width:18px}.visual-area{left:27%;right:3%}.regions{left:6%;right:4%}.regions button{font-size:11px;padding:18px 10px;gap:9px}.view-tools{right:4%}.gesture{left:6%}.intro-bottom{margin-top:45px}.intro-bottom p{font-size:9px}footer p span{display:block;margin:1px 0 0}.experience{min-height:740px}}@media(max-width:700px){.header{height:85px;margin:0 6%}.brand{font-size:19px}.brand span{font-size:7px}.header-right{gap:16px}.preview{font-size:7px;padding:4px 6px}.text-button{font-size:10px}.experience{height:auto;min-height:1020px;max-height:none}.intro{position:relative;top:auto;left:auto;width:auto;margin:37px 7% 0;max-width:360px}.eyebrow{font-size:7px;margin-bottom:18px;letter-spacing:.2em}h1{font-size:43px;line-height:1.08;letter-spacing:-2px;margin-bottom:18px}h1 br{display:none}h1 em{margin-left:7px}#description{font-size:12px;line-height:1.8;max-width:300px}#description br{display:none}#description br:after{content:' '}.intro-bottom{display:none}.visual-area{inset:212px 0 155px}.experience.focused .visual-area{top:252px}.view-caption{top:18px;left:7%;font-size:7px;gap:14px}.crosshair.top{right:7%;top:17px}.crosshair.bottom{right:7%}.orientation{left:7%;right:7%}.orbit-ring{width:270px;height:62px;bottom:5%}#viewer{inset:25px 0 10px}.view-tools{left:7%;right:7%;bottom:125px;justify-content:space-between;gap:9px}.gesture{left:7%;bottom:102px;font-size:8px;gap:8px}.gesture span{font-size:17px}.regions{left:6%;right:6%;bottom:17px;display:flex;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#29435c transparent;gap:0}.regions button{flex:0 0 auto;min-width:93px;padding:16px 12px;font-size:11px;min-height:61px}.regions button span{font-size:7px}.motion-button{font-size:10px;min-height:44px}.zoom-tools button{width:39px;height:44px}footer{margin:0 6%;align-items:start;padding:16px 0;min-height:85px}footer p{font-size:8px;max-width:220px}footer .text-button{font-size:8px;padding-top:0;white-space:nowrap}.back-button{margin-top:14px;padding:0;font-size:15px}.back-button span{font-size:10px}#region-note{font-size:9px;margin-top:10px;max-width:290px}.experience.focused .intro{min-height:183px}dialog{padding:29px 25px}dialog h2{font-size:29px}}@media(max-width:380px){.brand span{letter-spacing:.1em}.preview{display:none}.experience{min-height:980px}h1{font-size:39px}.visual-area{top:210px}.regions button{min-width:84px}.header{height:78px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.loader{animation:none}}

@media(max-width:700px){.experience{min-height:0;padding-bottom:161px}.visual-area{position:relative;inset:auto;height:610px;margin-top:17px}.experience.focused .visual-area{top:auto;margin-top:10px;height:550px}.experience.focused .intro{min-height:0}.view-tools{bottom:115px}.gesture{bottom:92px}.regions{bottom:14px}.intro{margin-top:32px}#description br{display:none}.intro h1{min-height:47px}}

/* Systems navigation and source-specific anatomy selector. */
.model-picker{position:absolute;z-index:6;top:25px;right:6%;display:flex;align-items:center;gap:5px;background:#091724b8;border:1px solid #263e52;border-radius:5px;padding:4px;backdrop-filter:blur(10px)}.model-picker>span{font-size:8px;color:#68869f;letter-spacing:.1em;padding:0 10px}.model-picker button{font-size:11px;min-width:68px;min-height:38px;border:1px solid transparent;border-radius:3px;color:#90aac0}.model-picker button[aria-pressed=true]{color:#dbf2ff;background:#18354c;border-color:#456d8b}.model-picker button:hover{background:#18354c66}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;pointer-events:auto}.detail-button{padding:6px 0;font-size:11px;text-align:left;color:#9fc9e6;border-bottom:1px solid #315371}.detail-button:hover{color:#e2f6ff}.regions{grid-template-columns:repeat(6,minmax(0,1fr));bottom:20px}.regions button{font-size:11px;min-height:53px;padding:12px 10px;gap:9px}.regions button:disabled{opacity:.35;cursor:not-allowed}.visual-area{bottom:165px}.view-tools{bottom:158px}.gesture{bottom:165px}.experience{min-height:850px}.intro{top:18%;width:28%;}.experience.focused h1{font-size:clamp(35px,3.5vw,57px);letter-spacing:-2px}.intro-bottom{margin-top:42px}#region-note{color:#7794ad;max-width:310px;font-size:10px}.view-caption{flex-wrap:wrap;max-width:240px;gap:4px 15px}.view-caption:after{display:none}#model-name{width:100%;color:#597f9d;font-size:7px}.back-button{margin-top:17px}.experience.focused .intro{top:17%}
@media(max-width:1000px){.regions{grid-template-columns:repeat(4,minmax(0,1fr));bottom:20px}.visual-area{bottom:210px}.view-tools{bottom:210px}.gesture{bottom:215px}.experience{min-height:930px}.intro{top:17%}.experience.focused h1{font-size:37px}.model-picker{right:4%;top:22px}}
@media(max-width:700px){.model-picker{position:relative;top:auto;right:auto;margin:25px 7% 0;width:fit-content}.experience{min-height:0;padding-bottom:205px}.intro,.experience.focused .intro{top:auto;margin-top:32px;max-width:500px;width:auto}.experience.focused h1{font-size:36px}.visual-area{position:relative;inset:auto;height:580px;margin-top:12px}.experience.focused .visual-area{top:auto;height:520px;margin-top:10px}.view-caption{max-width:250px;top:7px}#viewer{top:33px}.view-tools{bottom:146px}.gesture{bottom:123px}.regions{left:6%;right:6%;bottom:16px;display:grid;grid-template-columns:repeat(6,minmax(126px,1fr));grid-template-rows:repeat(2,48px);overflow-x:auto}.regions button{min-height:48px;min-width:126px;font-size:10px;padding:10px;gap:7px}.regions button span{font-size:7px}.intro h1{min-height:0}.detail-actions{margin-top:13px}#region-note{max-width:100%}.model-picker button{min-height:42px;min-width:77px}.model-picker>span{font-size:9px}}
#locomotor-controls{display:flex;flex-wrap:wrap;gap:5px;margin-top:18px;pointer-events:auto}#locomotor-controls button{min-height:40px;border:1px solid #315069;border-radius:3px;padding:7px 12px;font-size:11px;color:#89a7bf}#locomotor-controls button[aria-pressed=true]{background:#1b3c54;color:#d3edff;border-color:#6d9bb9}.front-button{font-size:9px;color:#819fb6;padding:10px 5px;min-height:42px}.regions{grid-template-columns:repeat(5,minmax(0,1fr))}.intro-bottom{margin-top:25px}@media(max-width:1000px){.regions{grid-template-columns:repeat(3,minmax(0,1fr))}.view-tools{gap:7px}.front-button{font-size:8px}}@media(max-width:700px){.regions{grid-template-columns:repeat(5,minmax(125px,1fr));grid-template-rows:repeat(2,48px)}.view-tools{flex-wrap:wrap}.motion-button{padding:8px}.zoom-tools{padding-left:7px;gap:0}.zoom-tools button{width:31px}.front-button{font-size:8px}#locomotor-controls button{min-height:44px}}
.regions{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px) and (min-width:701px){.regions{grid-template-columns:repeat(4,minmax(0,1fr))}.visual-area{bottom:165px}.view-tools{bottom:158px}.gesture{bottom:165px}}@media(max-width:700px){.regions{grid-template-columns:repeat(4,minmax(125px,1fr));grid-template-rows:repeat(2,48px)}}

/* A restrained colour key separates female reproductive organ surfaces. */
.anatomy-key{display:flex;flex-wrap:wrap;gap:10px 18px;margin:18px 0 12px;color:#b2c4d4;font-size:11px;line-height:1.5}.anatomy-key span{display:inline-flex;align-items:center;gap:7px}.anatomy-key span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--key)}.key-uterus{--key:#a2c8ff}.key-tubes{--key:#72d4e2}.key-ovaries{--key:#b4aaff}.key-vagina{--key:#699ac9}#reproductive-controls[hidden],#side-view[hidden]{display:none!important}

html.embedded .header{display:none} html.embedded body{min-height:0} html.embedded .experience{height:850px;min-height:850px;max-height:none}
@media(max-width:1000px) and (min-width:701px){html.embedded .experience{height:930px;min-height:930px}}
@media(max-width:700px){html.embedded .experience{height:auto;min-height:0}}

/* Compact project notes, with credits available without crowding the introduction. */
#sources-dialog{padding:0;width:min(640px,calc(100% - 32px));max-width:640px;max-height:calc(100svh - 32px);font-size:14px;line-height:1.75;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#37576f #0c1927}
.dialog-top{position:sticky;top:0;z-index:2;padding:28px 30px 22px;background:#0c1927;border-bottom:1px solid #243c50}
.dialog-top form{position:absolute;right:16px;top:15px}
#sources-dialog .close{float:none;display:grid;place-items:center;width:44px;height:44px;padding:0;margin:0;border-radius:50%;font-size:26px;line-height:1}
#sources-dialog .close:hover{background:#193044;color:#e5f3fd}
#sources-dialog .eyebrow{margin-bottom:13px;font-size:9px}
#sources-dialog h2{font-size:30px;line-height:1.18;margin:0;padding-right:30px}
.dialog-content{padding:22px 30px 26px}
.dialog-content p{margin:0 0 15px}
.dialog-intro{font-size:15px;color:#c6ddea}
.dialog-note{font-size:12px;color:#86a5bd;border-left:2px solid #375e7b;padding-left:13px}
#sources-dialog details{padding:0;border-top:1px solid #294156}
#sources-dialog summary{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:54px;font-size:14px;list-style:none;color:#bbd7e9}
#sources-dialog summary::-webkit-details-marker{display:none}
#sources-dialog summary::after{content:'+';font-size:20px;font-weight:300;color:#7ca6c6;flex-shrink:0}
#sources-dialog details[open]>summary::after{content:'−'}
#sources-dialog details p{font-size:13px}
#sources-dialog details .credit{font-size:11px;line-height:1.8;color:#83a2ba}
#sources-dialog #reference-links,#sources-dialog #inspiration-links{font-size:12px;margin:16px 0 20px}
#sources-dialog #reference-links a,#sources-dialog #inspiration-links a{display:flex;align-items:center;min-height:44px}
html.embedded #sources-dialog{position:fixed;inset:auto;left:50%;top:var(--dialog-center,50%);transform:translate(-50%,-50%);margin:0;max-height:var(--dialog-height,calc(100svh - 32px))}
@media(max-width:700px){.dialog-top{padding:22px 23px 18px}.dialog-content{padding:19px 23px 22px}#sources-dialog h2{font-size:27px}#sources-dialog #reference-links,#sources-dialog #inspiration-links{grid-template-columns:1fr}}
