/* Exhibition lighting: a warm white wall with overhead spot pools. */
:root{--ink:#29312f;background:#e1e3e0}
.viewport{
  background:
    radial-gradient(ellipse 25% 95% at 13% -16%,#fffef9 0%,#fffdf3d9 28%,#ffffff26 61%,#ffffff00 81%),
    radial-gradient(ellipse 22% 97% at 52% -15%,#fffefa 0%,#fffef5c2 24%,#ffffff24 60%,#ffffff00 82%),
    radial-gradient(ellipse 27% 92% at 91% -13%,#fffffb 0%,#fffef7d9 28%,#ffffff29 59%,#ffffff00 82%),
    linear-gradient(107deg,#cdcfcf 0%,#e5e5e2 21%,#d1d3d2 43%,#e4e5e1 72%,#cccfce 100%);
}
.viewport::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(104deg,#85908e12 0%,transparent 20%,#ffffff36 34%,transparent 47%,#8e999310 61%,transparent 83%);
  box-shadow:inset 0 20px 65px -42px #46534d6b,inset 0 -18px 32px -27px #34443b66;
}
.viewport::after{
  height:25px;
  background:
    linear-gradient(#83958b80 0,#fbfff9e6 1px,#fcfdfad9 3px,#b5beb575 4px,#e1e5df54 10px,#b9c2b92b 100%),
    repeating-linear-gradient(98deg,transparent 0 42px,#ffffff55 44px,transparent 50px 96px);
  box-shadow:0 -10px 25px #f9ffed35;
}
.scene::before{background:none}
.exhibit{
  border-radius:1px;
  border-width:1px;
  border-color:#fcfffbed #7c8c83b3 #99a59b9e #fbfff9eb;
  background:
    linear-gradient(135deg,#ffffff1a 0%,transparent 36%,#ffffff05 64%,transparent),
    linear-gradient(22deg,#a1b5ac0c,transparent 37%,#ffffff0a 75%,transparent);
  box-shadow:
    inset 0 0 0 1px #d3dcd445,
    inset 1px 1px 0 #ffffff,
    inset -1px -1px 0 #536c6052,
    inset 3px 3px 2px -1px #ffffffed,
    1px 2px 1px #364a3d45,
    5px 8px 2px -1px #4056482b,
    9px 18px 9px -2px #304b3b2e,
    13px 31px 19px -7px #2b463323;
}
.exhibit::before{
  inset:4px;border-radius:0;
  border:1px solid;border-color:#7a8c7e5e #ffffffd9 #fffffff5 #9aa99d73;
  box-shadow:-1px -1px 0 #ffffff,1px 1px 0 #5f786045,inset 1px 1px 1px #647e6740,inset -1px -1px 1px #ffffff;
}
.exhibit::after{
  inset:-1px;border-radius:1px;
  background:
    linear-gradient(90deg,transparent 2%,#fff 8%,#fff 24%,#ffffff35 38%,transparent 56%,#fff 72%,#fff 83%,transparent 97%) top/100% 3px no-repeat,
    linear-gradient(90deg,transparent 3%,#fff 15%,#fff 29%,transparent 48%,transparent 70%,#fff 90%,transparent 99%) bottom/100% 2px no-repeat,
    linear-gradient(0deg,transparent 8%,#ffffff66 27%,transparent 47%,#fff 88%,transparent 100%) left/2px 100% no-repeat;
}
.glass-side{
  top:4px;bottom:-5px;right:-5px;width:5px;transform:skewY(42deg);
  border:1px solid;border-color:#fffefa #98a99ac2 #869a89d1 #c6d5c585;
  background:linear-gradient(90deg,#627f728c 0%,#ffffff 19%,#ffffff21 49%,#6b85799e 80%,#ffffff 100%);
  box-shadow:1px 1px 0 #ffffffde,2px 0 3px #ffffff4d;
}
.glass-base{
  height:5px;bottom:-5px;left:4px;right:-5px;transform:skewX(42deg);
  border-top:1px solid #fffff5df;border-bottom:1px solid #6d856f85;
  background:linear-gradient(#a7b7a67a,#fcfff4d4 35%,#ffffff21 62%,#526c557a);
}
.glass-top{
  position:absolute;left:4px;right:-4px;top:-1px;height:4px;transform:skewX(42deg);transform-origin:left bottom;
  border-top:1px solid #ffffffed;pointer-events:none;
  background:linear-gradient(#faffedeb,#d2ded53b 50%,#6f847436);
}
.glass-glint{
  position:absolute;inset:0;z-index:4;pointer-events:none;
  background:
    radial-gradient(ellipse 7px 3px at 5px 4px,#ffffff 26%,#ffffffd9 48%,transparent 100%),
    radial-gradient(ellipse 4px 8px at 66px 64px,#ffffff 20%,#ffffffb0 44%,transparent 100%),
    linear-gradient(127deg,transparent 10%,#ffffffa6 10.7%,#ffffff1a 14%,transparent 17%,transparent 67%,#ffffff85 68%,#ffffff1a 69%,transparent 73%);
  filter:drop-shadow(0 0 1px #ffffff70);
}
.glass-caustic{
  position:absolute;left:5px;right:-10px;bottom:-23px;height:22px;z-index:-1;pointer-events:none;transform:skewX(21deg);
  background:
    radial-gradient(ellipse 70% 16% at 52% 21%,#fffffbed,transparent 90%),
    linear-gradient(111deg,transparent 8%,#fcffe79c 16%,transparent 28%,transparent 71%,#ffffe9a3 86%,transparent 91%);
  opacity:.35;filter:blur(.7px);
}
.exhibit:nth-child(4n+1) .glass-glint{opacity:.72}
.exhibit:nth-child(5n+3) .glass-caustic{opacity:.25}
.element-label{left:5px;width:24px;text-shadow:0 1px 2px #ffffffab}
.specimen,.exhibit.symbolic .specimen{left:30px}
.specimen{filter:drop-shadow(2px 5px 2px #253e3533)}
.exhibit.is-active{border-color:#c49b60;box-shadow:0 0 0 2px #c2a16e85,inset 1px 1px 1px #fff,7px 17px 8px #28413040}
@media(hover:hover){
  .exhibit:hover{border-color:#c6a66c;box-shadow:0 0 0 1px #c2a571b0,inset 1px 1px 1px #fff,8px 24px 13px #233e3645}
}
.gallery-controls{
  background:linear-gradient(#d7ded76e,#eff2eadb 28%,#e5eae3f5);
  border-top:1px solid #ffffffd9;
  box-shadow:0 -5px 20px #fcfff76e,inset 0 1px 0 #aebba94a;
}
.detail-overlay{background:#dfe2ddd4}
.detail-panel{
  border-color:#fffef8;
  background:linear-gradient(128deg,#ffffffe8,#edeFEBeb);
  box-shadow:inset 0 0 0 3px #fffdf4a8,inset 0 0 0 4px #9cac9c54,2px 3px 2px #3e554438,10px 20px 12px #2d433221,0 40px 85px #223f3633;
}
.detail-visual{background:radial-gradient(ellipse at 25% -15%,#fffdf3,#ffffff8c 36%,#cbd8c532 90%)}
.detail-image-stage{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0}
.detail-image-stage.has-multiple .detail-image-button{padding-left:36px;padding-right:36px}
.image-arrow{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;padding:10px;border:1px solid #a5b2a54d;border-radius:50%;background:linear-gradient(135deg,#ffffffd9,#ffffff52);box-shadow:inset 0 1px 0 #fff,0 3px 9px #3d514415;color:#627365;z-index:3;touch-action:manipulation;transition:background .18s,box-shadow .18s}
.image-previous{left:-10px}.image-next{right:-10px}
.image-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media(hover:hover){.image-arrow:hover{background:#fff;box-shadow:0 3px 12px #3d514426;color:#2f4334}}
.image-arrow:active{background:#eef3ed}
.image-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:10px;letter-spacing:2.2px;text-transform:uppercase}
#image-position{flex:none;letter-spacing:1.5px;font-variant-numeric:tabular-nums}
@media(max-width:700px){.detail-image-stage{height:195px}.image-heading{font-size:9px;letter-spacing:1.3px;margin-bottom:6px}}
@media(min-width:701px) and (max-height:500px){
  .detail-overlay{padding:12px}
  .detail-panel{height:calc(100svh - 24px);max-height:calc(100svh - 24px)}
  .detail-visual{padding:18px 22px;gap:8px}
  .specimen-label strong{font-size:32px}.specimen-label span{font-size:14px}
  .image-heading{font-size:9px;letter-spacing:1px;margin-bottom:6px}
  .specimen-caption p{font-size:11px;line-height:1.5}
  .detail-copy{padding:28px 32px}
}

/* Small, legible exhibit metadata; the specimen footprint stays unchanged. */
.radiation-mark{display:inline-flex;flex:none;align-items:center;justify-content:center;line-height:1}
.radiation-mark img{display:block;filter:none}
.wall-radiation{position:absolute;left:7px;bottom:8px;width:14px;height:14px;z-index:5;pointer-events:none}
.wall-radiation img{width:14px;height:14px}
.has-radiation .specimen-condition{bottom:24px;line-height:1}
.specimen-label .detail-radiation{align-self:center;width:22px;height:22px;margin-left:2px}
.category-tags{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0 30px 15px 0}
.category-tag{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid #b4c0b759;border-radius:6px;background:#ffffff80;box-shadow:inset 0 1px 0 #fff;color:#3d4c43;font-size:14px;line-height:1.35}
.category-swatch{display:block;width:11px;height:11px;border-radius:2px;background:var(--category-color);box-shadow:inset 0 0 0 1px #26382a12;flex:none}
.category-qualifier{font-size:12px;color:#718073;line-height:1.4;padding:4px 2px}
.property-note{font-size:13px;line-height:1.65;color:#6c796e;margin:0 0 18px;padding-left:11px;border-left:2px solid #c6d0c3}
.radioactive-note{color:#81704c;border-left-color:#c3ac78}
.utility-controls{display:flex;align-items:center;gap:12px;flex:none}
.fullscreen-toggle{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:11px;border:1px solid #bac6bd96;border-radius:50%;background:linear-gradient(145deg,#ffffffc9,#ffffff40);box-shadow:inset 0 1px 0 #fff,0 2px 5px #394e3910;color:#627066;touch-action:manipulation}
.fullscreen-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.fullscreen-toggle .collapse-icon{display:none}
.fullscreen-toggle[aria-pressed=true] .expand-icon{display:none}
.fullscreen-toggle[aria-pressed=true] .collapse-icon{display:block}
.fullscreen-toggle:focus-visible,.dismiss-help:focus-visible{outline:2px solid #977344;outline-offset:3px}
@media(hover:hover){.fullscreen-toggle:hover{background:#fff;color:#334f3e}}
.fullscreen-help{position:fixed;z-index:40;right:max(16px,env(safe-area-inset-right));bottom:100px;width:360px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 140px);overflow:auto;padding:22px;border:1px solid #fff;border-radius:10px;background:#f9fbf6f5;box-shadow:0 8px 35px #283c322b;backdrop-filter:blur(12px);color:#405046}
.fullscreen-help h2{font-size:16px;line-height:1.4;font-weight:550;margin:0 25px 10px 0}
.fullscreen-help p{font-size:14px;line-height:1.7;margin:0;color:#6a786b}
.dismiss-help{position:absolute;right:4px;top:4px;width:44px;height:44px;border:0;background:none;color:#728071;font-size:24px}
:root.is-expanded .viewport{height:100dvh}
:root.is-expanded .mobile-intro{display:none}
:root.is-expanded .gallery-controls{left:50%;right:auto;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);height:66px;padding:6px 12px;display:flex;gap:16px;border:1px solid #ffffffde;border-radius:36px;background:#eff3eee8;box-shadow:0 6px 26px #2a413d25;backdrop-filter:blur(14px)}
:root.is-expanded #interaction-hint,:root.is-expanded .control-divider{display:none}
:root.is-expanded .element-picker{max-width:210px}
@media(max-width:700px) and (orientation:portrait){
 .gallery-controls{grid-template-columns:minmax(0,1fr) auto;column-gap:8px}
 .element-picker{grid-column:1;grid-row:1;min-width:0;padding-left:10px;padding-right:20px}
 .view-controls{grid-column:2;grid-row:1;gap:0}
 .utility-controls{grid-column:1/-1;grid-row:2;justify-self:end;gap:12px}
 :root.is-expanded .element-picker,:root.is-expanded .view-controls .icon-button{display:none}
 :root.is-expanded .gallery-controls{width:auto;gap:14px;padding:6px 10px}
 :root.is-expanded .view-controls{flex:none}
 .fullscreen-help{bottom:96px}
}
@media(max-width:760px) and (orientation:landscape){
 .gallery-controls{gap:8px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .utility-controls{gap:6px}.element-picker{min-width:100px;max-width:170px;width:25vw}
 :root.is-expanded .gallery-controls{gap:8px}
}
