/* The crystal studies. A quiet, self-hosted 3D gallery. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.crystal-molecule{mask-mode:alpha}
.crystal-page{grid-template-columns:1.12fr 1fr;align-items:stretch}
.crystal-display{position:relative;min-height:740px;background:#16352d}
.crystal-viewer{position:absolute;inset:0;overflow:clip;isolation:isolate;background:radial-gradient(ellipse at 42% 36%,#3c5b50 0%,#213f35 43%,#102a22 90%)}
.crystal-viewer:before{content:"";position:absolute;inset:-20%;background:linear-gradient(120deg,transparent 24%,#eef9df07 34%,transparent 47%);pointer-events:none}
.crystal-viewer canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline-offset:-5px;opacity:0;transition:opacity .55s}
.crystal-viewer.is-ready canvas{opacity:1}
.crystal-viewer canvas.is-dragging{cursor:grabbing}
.crystal-viewer canvas:focus-visible{outline:2px solid #d9e6cb}
.crystal-viewer-kicker{position:absolute;z-index:2;top:29px;left:30px;right:30px;display:flex;justify-content:space-between;gap:20px;color:#e1e8d7;font-size:10px;letter-spacing:.14em;text-transform:uppercase;pointer-events:none}
.crystal-viewer-kicker>span{opacity:.65}
.crystal-floor-glow{position:absolute;width:64%;height:10%;left:18%;bottom:19%;border-radius:50%;background:radial-gradient(ellipse,#b8cbbb25,transparent 66%);filter:blur(11px);transform:rotate(-8deg);pointer-events:none}
.crystal-fallback{position:absolute;inset:18% 23% 23%;width:54%;height:59%;object-fit:contain;opacity:.24;transition:opacity .3s;pointer-events:none}
.crystal-viewer.is-ready .crystal-fallback{opacity:0}
.crystal-viewer[data-state=error] .crystal-fallback{opacity:.9}
.crystal-loading{position:absolute;top:49%;left:15px;right:15px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;color:#e4eddd;pointer-events:none}
.crystal-loading>span:first-child{width:12px;height:12px;border:1px solid #e4eddd44;border-top-color:#e4eddd;border-radius:50%;animation:crystal-load 1.1s linear infinite}
.crystal-viewer[data-state=ready] .crystal-loading,.crystal-viewer[data-state=error] .crystal-loading{display:none}
.crystal-viewer-bottom{position:absolute;left:28px;right:28px;bottom:24px;color:#e3eadb;pointer-events:none}
.crystal-viewer-caption{display:flex;justify-content:space-between;gap:16px;font-size:12px;letter-spacing:.025em;margin-bottom:26px}
.crystal-viewer-caption>span:last-child{color:#c4d0bf;font-size:10px}
#crystal-instructions{font-size:11px;color:#c1ccba;text-align:center;margin:0 0 11px;letter-spacing:.025em}
.crystal-viewer-tools{display:flex;justify-content:center;align-items:center;gap:2px;pointer-events:auto;width:fit-content;max-width:100%;margin:auto;padding:4px 7px;background:#0c241ca8;border:1px solid #d3dfc82b;border-radius:30px;backdrop-filter:blur(12px)}
.crystal-viewer-tools button{height:44px;min-width:42px;display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:0;border:0;background:transparent;border-radius:24px;color:#e3eadb;font-size:22px;line-height:1;cursor:pointer}
.crystal-viewer-tools button:hover,.crystal-viewer-tools button[aria-pressed=true]{background:#ebf4d91a}
.crystal-viewer-tools button:focus-visible{outline:2px solid #d5e2bf;outline-offset:0}
.crystal-viewer-tools button:disabled{opacity:.35;cursor:wait}
.crystal-viewer-tools .slow-turn{font-size:11px;padding:0 12px;min-width:92px;white-space:nowrap}
.slow-turn>span{font-size:18px}
.tool-divider{height:17px;width:1px;background:#d3dfc82b;margin:0 3px}
.crystal-copy{padding:47px 10%;justify-content:center}
.crystal-introduction h1{font-size:clamp(44px,4.6vw,67px);line-height:1.04;margin:21px 0}
.crystal-introduction>p{font-size:15px;line-height:1.9;max-width:380px}
.crystal-options{width:100%}
.crystal-proteins,.crystal-format{border:0;margin:29px 0 0;padding:0;width:100%}
.crystal-proteins legend,.crystal-format legend{font-size:12px;letter-spacing:.035em;margin:0 0 11px}
.crystal-proteins>div,.crystal-format>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.crystal-proteins button,.crystal-format button{font-family:inherit;border:1px solid var(--line);background:transparent;color:var(--ink);padding:15px 14px;display:flex;flex-direction:column;text-align:left;gap:6px;min-height:81px;cursor:pointer}
.crystal-proteins button[aria-pressed=true],.crystal-format button[aria-pressed=true]{border-color:#5d7257;background:#e9eddf}
.crystal-proteins button:focus-visible,.crystal-format button:focus-visible{outline:2px solid #48673c;outline-offset:3px}
.crystal-proteins strong{font-size:22px;font-family:var(--serif);font-weight:400}
.crystal-proteins span{font-size:11px;color:#5b6b57;line-height:1.45}
.crystal-format button{position:relative;padding-top:19px;min-height:121px;gap:8px}
.crystal-format strong{font-size:14px}
.crystal-format button>span:last-child{font-size:10px;line-height:1.5;color:#5b6b57;white-space:nowrap}
.crystal-shape-icon{display:block;box-sizing:border-box;width:21px;height:21px;border:1px solid #79886c;transform:skewY(-5deg);margin:1px 0 6px 3px;position:relative}
.crystal-shape-icon:after{position:absolute;content:"";top:-4px;right:-5px;bottom:2px;width:4px;transform:skewY(-32deg);border:1px solid #79886c80;border-left:0}
.crystal-shape-icon:before{position:absolute;content:"";top:-4px;left:1px;right:-4px;height:3px;transform:skewX(-42deg);border:1px solid #79886c80;border-bottom:0}
.block-icon{width:16px;height:26px;margin-top:-4px}
.crystal-options>.premium-footnote{font-size:11px;line-height:1.85;margin-top:22px;color:#63705c}
.crystal-options>.text-link{margin-top:25px;font-size:12px}
.viewer-visible-error{position:absolute!important;top:70px!important;left:8%!important;right:8%!important;width:auto!important;height:auto!important;clip:auto!important;clip-path:none!important;white-space:normal!important;text-align:center;font-size:12px;line-height:1.7;color:#e5eddc}
@keyframes crystal-load{to{transform:rotate(360deg)}}
@media(max-width:1100px) and (min-width:761px){.crystal-copy{padding-inline:7%}.crystal-display{min-height:770px}.crystal-viewer-bottom{left:13px;right:13px}.crystal-viewer-kicker{left:22px;right:22px}.crystal-format button{padding-inline:11px}}
@media(max-width:760px){
 .crystal-page{display:flex;flex-direction:column}
 .crystal-copy{display:contents}
 .crystal-introduction{order:-1;padding:30px 7% 28px}
 .crystal-introduction h1{font-size:44px;line-height:1.05;margin:14px 0}
 .crystal-introduction h1 br{display:none}
 .crystal-introduction h1 em:before{content:" "}
 .crystal-introduction>p{font-size:14px;line-height:1.8;max-width:450px}
 .crystal-display{min-height:460px;height:460px;width:100%}
 .crystal-viewer-kicker{top:21px;left:22px;right:22px;font-size:9px}
 .crystal-viewer-bottom{bottom:18px;left:15px;right:15px}
 .crystal-viewer-caption{margin-bottom:22px;font-size:11px;padding:0 7px}
 .crystal-viewer-caption>span:last-child{font-size:9px}
 .crystal-viewer-tools{padding-inline:5px;gap:0}
 .crystal-viewer-tools button{min-width:40px;height:44px}
 .crystal-viewer-tools .slow-turn{min-width:88px;padding-inline:9px}
 .tool-divider{margin-inline:2px}
 #crystal-instructions{font-size:10px}
 .crystal-options{padding:0 7% 36px}
 .crystal-proteins,.crystal-format{margin-top:25px}
 .crystal-proteins button{padding:14px}
 .crystal-options>.premium-footnote{font-size:11px}
 .crystal-options>.text-link{font-size:12px}
 .crystal-loading{font-size:11px;top:44%}
 .crystal-floor-glow{bottom:24%}
}
@media(prefers-reduced-motion:reduce){.crystal-viewer canvas,.crystal-fallback{transition:none}.crystal-loading>span:first-child{animation:none}}
