:root{color-scheme:light;--background:#ffffff;--ink:#111111;--muted:#343434;--accent:#740d2b;--line:#d7dadd;--gutter:clamp(24px,2.08vw,48px);--header-h:clamp(82px,5vw,104px);--rail:clamp(228px,16vw,310px);--column-gap:clamp(24px,1.875vw,42px)}
*{box-sizing:border-box}html{background:var(--background);scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--ink);font:400 14px/1.5 Archivo,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:1px solid var(--accent);outline-offset:5px}::selection{background:#740d2b;color:#ffffff}.skip-link{position:fixed;left:24px;top:-100px;background:var(--ink);color:var(--background);padding:12px;z-index:100}.skip-link:focus{top:12px}.studio-shell{min-height:100svh;display:grid;grid-template-rows:var(--header-h) minmax(0,1fr) 42px}.studio-header{padding:0 var(--gutter);display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.studio-identity{display:flex;align-items:center;gap:18px}.identity-mark{font:500 37px/.9 'Source Serif 4',Georgia,serif;letter-spacing:-.085em}.identity-mark>span{color:var(--accent)}.studio-identity strong{font-size:12px;letter-spacing:.11em;font-weight:600}.studio-identity small{display:block;font:8px/1.5 'DM Mono',monospace;letter-spacing:.055em;margin-top:6px;color:var(--muted)}.studio-nav{display:flex;align-items:center;justify-content:space-between;gap:clamp(18px,2vw,36px);width:min(49vw,710px);margin-left:auto;font-size:clamp(12px,.9vw,15px)}.studio-nav a{padding:12px 0;color:var(--ink);position:relative;white-space:nowrap}.studio-nav a:nth-child(2):before,.studio-nav a:nth-child(3):before{content:"";position:absolute;left:calc(clamp(18px,2vw,36px)*-.5);top:50%;height:20px;transform:translateY(-50%);width:1px;background:var(--line)}.studio-nav a:hover,.studio-nav .current{color:var(--ink)}.studio-nav .current:after{content:'';position:absolute;bottom:4px;height:1px;background:var(--accent);left:0;right:0}.studio-nav .contact-nav{color:var(--accent);border:1px solid var(--accent);padding:10px 18px;transition:background .2s,color .2s}.studio-nav .contact-nav:hover{background:var(--accent);color:#fff}.studio-language{display:flex;align-items:center;gap:1px;font:10px 'DM Mono',monospace;margin-left:12px}.studio-language button{min-width:36px;min-height:44px;color:#343434}.studio-language button[aria-pressed=true]{color:var(--ink)}.studio-language>span{color:#343434}.studio-main{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);gap:var(--column-gap);padding:0 var(--gutter);align-items:center;min-height:0}.practice-rail{align-self:center;position:relative;display:flex;flex-direction:column;justify-content:center;padding:28px 20px 24px 0;min-width:0;border-right:1px solid var(--line)}.practice-rail:after{content:"";position:absolute;right:-1px;top:0;width:1px;height:28px;background:var(--accent)}.eyebrow{font:8px/1.7 'DM Mono',monospace;letter-spacing:.1em;color:var(--muted);margin:0 0 28px;max-width:24ch}.small-rule{display:block;background:var(--accent);width:28px;height:1px;margin-bottom:17px}h1{font:400 clamp(44px,3.7vw,74px)/.98 'Source Serif 4',Georgia,serif;letter-spacing:-.045em;margin:0 0 25px}h1>span,h1>em{display:block}h1>em{font-weight:400;color:var(--accent);font-style:italic}.practice-description{font-size:clamp(12px,.85vw,15px);line-height:1.8;color:var(--muted);max-width:24ch;margin:0}.rail-discovery{position:relative;margin-top:clamp(24px,4.4vh,50px);padding-top:20px;border-top:1px solid var(--line)}.discovery-index{font:10px 'DM Mono',monospace;color:var(--accent)}.rail-discovery>p{font-size:12px;line-height:1.55;margin:10px 0;max-width:25ch}.rail-discovery .discovery-instruction{font-size:11px;line-height:1.75;color:var(--muted);max-width:23ch}.discovery-arrow{position:absolute;right:0;top:17px;font-size:18px;color:var(--accent)}.rail-context{min-height:110px;margin-top:clamp(24px,4vh,48px);border-left:1px solid var(--accent);padding:2px 0 2px 16px}.context-number{font:9px 'DM Mono',monospace;color:var(--accent)}.context-title{font:400 21px/1.2 'Source Serif 4',Georgia,serif;margin:9px 0 6px}.context-caption{font-size:11px;line-height:1.6;color:var(--muted);margin:0;max-width:24ch}.discipline-list{display:grid;gap:2px;margin-top:clamp(22px,3.2vh,34px);padding-top:14px;border-top:1px solid var(--line);max-height:calc(100dvh - 330px);overflow:auto}.discipline-list-item{display:grid;grid-template-columns:28px 1fr;align-items:baseline;gap:8px;width:100%;padding:5px 4px;text-align:left;color:var(--muted);font:11px/1.25 Archivo,Arial,sans-serif;border-left:2px solid transparent}.discipline-list-item>span{font:10px 'DM Mono',monospace;color:var(--accent)}.discipline-list-item b{font-weight:400}.discipline-list-item:hover,.discipline-list-item:focus-visible,.discipline-list-item[aria-current=true]{color:var(--accent);background:#f7f0f2;border-left-color:var(--accent)}.exhibit.is-list-active .model-focus{border-color:#740d2b80;opacity:1;transform:translateY(0)}
.exhibition{position:relative;width:min(100%,calc((100dvh - var(--header-h) - 56px)*16/9));aspect-ratio:16/9;justify-self:center;min-width:0;isolation:isolate}.exhibition:focus{outline:none}.media-layer{position:absolute;inset:0;pointer-events:none}.atlas-poster,.studio-film{position:absolute;width:100%;height:100%;object-fit:contain;inset:0;display:block}.atlas-poster,.studio-film{opacity:0}.exhibition.poster-ready .atlas-poster{opacity:1}.exhibition.video-ready .studio-film{opacity:1}.exhibition.video-ready .atlas-poster{opacity:0}.exhibition.poster-ready .exhibit-preview,.exhibition.video-ready .exhibit-preview{visibility:hidden}.tier-lines{position:absolute;inset:0;display:grid;grid-template-rows:repeat(3,1fr);pointer-events:none}.tier-lines>span{position:relative}.tier-lines>span:after{content:'';position:absolute;left:1.5%;right:1.5%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#d7dadd 6%,#d7dadd 94%,transparent)}.exhibit-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.exhibit{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column}.model-link{position:relative;display:block;flex:1;min-height:0;z-index:1;outline-offset:-10px!important;border-radius:5px}.exhibit-preview{display:block;position:absolute;inset:3% 4% 0;width:92%;height:97%;object-fit:contain;pointer-events:none}.exhibit-preview:not([src]){visibility:hidden}.model-focus{position:absolute;bottom:4%;left:12%;right:12%;height:20%;border-bottom:1px solid transparent;border-radius:50%;opacity:0;transform:translateY(4px);transition:opacity .22s,transform .22s,border-color .22s;pointer-events:none}.exhibit:has(a:hover) .model-focus,.exhibit:has(a:focus-visible) .model-focus{border-color:#740d2b80;opacity:1;transform:translateY(0)}.exhibit-title{height:13.333333%;min-height:27px;display:flex;align-items:center;gap:10px;margin:0 6%;position:relative;z-index:2}.exhibit-number{font:400 clamp(16px,1.3vw,25px)/1 'Source Serif 4',Georgia,serif;color:var(--accent);transition:color .2s;flex:none;min-width:22px}.exhibit-title h2{font-size:clamp(10px,.76vw,14px);font-weight:400;line-height:1.35;margin:0;color:var(--ink);transition:color .2s;text-wrap:balance}.exhibit-arrow{font-size:14px;margin-left:auto;opacity:0;transform:translate(-3px,3px);transition:opacity .2s,transform .2s;color:var(--accent)}.exhibit:hover .exhibit-number,.exhibit:focus-within .exhibit-number,.exhibit:hover h2,.exhibit:focus-within h2{color:var(--ink)}.exhibit:hover .exhibit-arrow,.exhibit:focus-within .exhibit-arrow{opacity:1;transform:translate(0,0)}.exhibit-title:hover h2{text-decoration:underline;text-decoration-color:#740d2b80;text-underline-offset:5px}.studio-footer{display:flex;align-items:center;gap:24px;justify-content:space-between;padding:0 var(--gutter);font:8px/1.4 'DM Mono',monospace;letter-spacing:.04em;color:#343434}.footer-signature>span:first-child{margin:0 8px;color:#343434}.studio-footer>a{color:var(--accent);padding:10px 0}.motion-controls{display:flex;align-items:center;gap:14px;margin-left:auto}.motion-toggle{display:flex;align-items:center;gap:8px;min-height:38px;font:9px 'DM Mono',monospace;color:#343434;padding:0 8px}.motion-icon{font:13px Archivo,sans-serif;width:12px;color:var(--accent)}.motion-status{font-size:8px;color:#343434}.noscript-note{font-size:12px;text-align:center;margin:0;padding:10px}.studio-shell{animation:studio-enter .55s both}@keyframes studio-enter{from{opacity:0}to{opacity:1}}
@media(min-width:1101px) and (min-height:650px){.studio-shell{height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden}body{overflow:hidden}}
@media(max-width:1500px){.studio-header{gap:20px}.studio-nav{gap:24px}.studio-identity{gap:12px}.studio-identity small{font-size:7px}.rail-context{min-height:100px;margin-top:24px}.eyebrow{margin-bottom:20px}.practice-rail{padding:24px 18px 20px 0}.rail-discovery{margin-top:26px}.context-title{font-size:19px}.exhibit-title{gap:7px}}
@media(min-width:1101px) and (max-height:800px){h1{font-size:44px}.practice-description{font-size:12px}.rail-discovery{margin-top:22px;padding-top:15px}.rail-context{margin-top:20px;min-height:90px}.eyebrow{margin-bottom:18px}.small-rule{margin-bottom:12px}.practice-rail{padding:16px 18px 14px 0}.rail-discovery .discovery-instruction{font-size:10px}.rail-discovery>p{font-size:11px}}
html[lang=de] h1{font-size:clamp(35px,2.9vw,57px)}
@media(max-width:1100px){:root{--gutter:24px;--header-h:80px}.studio-main{display:block;padding:20px var(--gutter)}.practice-rail:after{display:none}.practice-rail{border:0;display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:0 0 16px}.rail-intro{display:flex;align-items:center;gap:24px}.eyebrow,.practice-description,.rail-context{display:none}h1,html[lang=de] h1{font-size:40px;margin:0}h1>span,h1>em{display:inline}h1>span:after{content:' '}.rail-discovery{margin:0;padding:0;border:0;align-self:center}.rail-discovery>p:first-of-type{display:none}.discovery-index,.discovery-arrow{display:none}.rail-discovery .discovery-instruction{font-size:12px;max-width:34ch;margin:0}.exhibition{width:100%}.studio-nav{width:auto;gap:18px}.studio-nav a:before{display:none}.studio-identity small{display:none}.studio-nav .contact-nav{display:none}.studio-footer{min-height:42px}.exhibit-title h2{font-size:11px}.studio-shell{min-height:100svh}.studio-footer>a{display:none}}
@media(max-width:900px){.header-hint{display:none}}
@media(max-width:650px){:root{--gutter:18px;--header-h:76px}.studio-header{gap:12px}.identity-mark{font-size:31px}.studio-identity strong{font-size:10px}.studio-nav{width:auto;gap:14px;font-size:10px}.studio-nav .current,.studio-nav>a:last-child{display:none}.studio-language{margin-left:0}.studio-language button{min-width:28px}.studio-main{padding-top:28px}.practice-rail{display:block;padding-bottom:24px}.rail-intro{display:block}h1,html[lang=de] h1{font-size:40px}.rail-discovery{margin-top:16px}.rail-discovery .discovery-instruction{max-width:37ch}.exhibition{aspect-ratio:auto;min-height:0}.media-layer,.tier-lines{display:none}.exhibit-grid{position:relative;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:18px 8px}.exhibit{aspect-ratio:1.12}.exhibit-preview[src]{visibility:visible!important}.model-link{min-height:100px}.exhibit-title{min-height:42px;margin:0 4%;gap:6px}.exhibit-number{font-size:20px;min-width:23px}.exhibit-title h2{font-size:11px}.exhibit-arrow{display:none}.exhibit:after{content:'';position:absolute;bottom:0;left:4%;right:4%;height:1px;background:var(--line)}.studio-footer{padding:16px var(--gutter);align-items:center;gap:12px;flex-wrap:wrap}.footer-signature{font-size:7px}.motion-controls{display:none}.studio-shell{animation-duration:.4s}}
@media(max-width:650px){.discipline-list{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.studio-shell{animation:none}*,*:before,*:after{transition:none!important}}

@media(max-width:420px){.studio-nav>a[href="/about.html"]{display:none}.studio-identity{flex-shrink:0}.studio-header{gap:10px}.studio-nav{min-width:0}}

/* Framed editorial panel and clearly grouped desktop navigation. */
@media(min-width:1101px){
  .practice-rail{border:1px solid #b78d99;padding:28px 20px 24px;background:var(--background);border-radius:2px;box-shadow:0 5px 22px #35131d05;}
  .practice-rail:before,.practice-rail:after{content:"";position:absolute;width:28px;height:28px;background:none;pointer-events:none;}
  .practice-rail:before{top:-1px;left:-1px;border-top:2px solid var(--accent);border-left:2px solid var(--accent);border-radius:2px 0 0;}
  .practice-rail:after{top:auto;right:-1px;bottom:-1px;border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);border-radius:0 0 2px;}
  .rail-discovery{border-color:#e3d6da;}
  .studio-nav{display:grid;grid-template-columns:1fr 1.15fr .85fr 1.15fr;gap:0;border:1px solid #ddcdd2;padding:4px;border-radius:4px;}
  .studio-nav a{display:flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:2px;transition:color .18s,background-color .18s;}
  .studio-nav a:nth-child(2):before,.studio-nav a:nth-child(3):before{display:none;}
  .studio-nav a:hover{background:#f7f0f2;color:var(--accent);}
  .studio-nav .current,.studio-nav .current:hover{background:var(--accent);color:white;}
  .studio-nav .current:after{display:none;}
  .studio-nav .contact-nav{border:0;border-left:1px solid #e3d6da;border-radius:0;padding:10px 14px;margin-left:4px;}
  .studio-nav .contact-nav:hover{background:#f7f0f2;color:var(--accent);}
  .studio-language button[aria-pressed=true]{color:var(--accent);text-decoration:underline;text-underline-offset:6px;}
}
@media(min-width:1101px) and (max-height:800px){
  .practice-rail{padding:18px;}
  .rail-context{min-height:84px;margin-top:18px;}
}

/* Phase 5 readability and index refinement. */
:root{--ink:#111111;--muted:#333333}
body{font-size:clamp(15px,.95vw,18px);color:var(--ink)}
.studio-header{gap:clamp(20px,2.5vw,40px)}
.studio-identity{gap:clamp(14px,1.4vw,24px)}
.identity-mark{font-size:clamp(46px,3.1vw,60px);letter-spacing:-.08em}
.studio-identity strong{font-size:clamp(20px,1.35vw,24px);letter-spacing:.06em;font-weight:600}
.studio-identity small{font-size:clamp(12px,.8vw,15px);letter-spacing:.12em;color:#222;line-height:1.45}
.studio-nav{font-size:clamp(15px,1vw,18px)}
.studio-nav a{min-height:36px;padding:0 16px;border:1px solid #d7dadd;display:inline-flex;align-items:center;font-size:15px}
.header-hint{flex:0 1 auto;max-width:34ch;margin:0;text-align:center;color:#740d2b;font-size:15px;line-height:1.3}
.studio-nav a:hover,.studio-nav a:focus-visible{border-color:#740d2b}
.studio-language{font-size:12px}
.studio-language button{font-size:12px}
.practice-rail{padding:16px 20px 16px 0}
.rail-intro{display:block}
.eyebrow{font-size:12px;line-height:1.5;letter-spacing:.1em;margin:0 0 16px}
.small-rule{margin-bottom:10px}
h1,html[lang=de] h1{font-size:clamp(38px,3.1vw,62px);line-height:.98;margin:0 0 16px}
.practice-description{font-size:clamp(15px,1vw,18px);line-height:1.6;color:#111;max-width:none;margin:0;text-align:justify;text-justify:inter-word;hyphens:auto;word-spacing:normal;letter-spacing:normal}
.discipline-list{gap:0;margin-top:16px;padding-top:8px;max-height:none;overflow:visible}
.discipline-list-item{grid-template-columns:2.5ch minmax(0,1fr) auto;align-items:center;gap:10px;min-height:34px;padding:5px 6px 5px 4px;border-top:1px solid #d7dadd;font-size:clamp(15px,1vw,17px);line-height:1.25}
.discipline-list-item:last-child{border-bottom:1px solid #d7dadd}
.discipline-list-number{font:12px/1.2 'DM Mono',monospace;color:#555}
.discipline-list-item b{display:block;min-width:0;font-weight:400;text-align:left;overflow-wrap:anywhere}
.discipline-list-arrow{font-size:18px;line-height:1;color:var(--accent);opacity:0;transform:translate(-3px,2px);transition:opacity .18s,transform .18s}
.discipline-list-item:hover .discipline-list-arrow,.discipline-list-item:focus-visible .discipline-list-arrow,.discipline-list-item[aria-current=true] .discipline-list-arrow{opacity:1;transform:translate(0,0)}
.exhibit-title h2{font-size:clamp(12px,.82vw,16px)}
.exhibit-number{font-size:clamp(18px,1.35vw,26px)}
.exhibit-arrow{font-size:18px}
.studio-footer{font-size:12px}
.motion-toggle{font-size:12px}
.motion-status{font-size:12px}
.intro-replay{font:12px 'DM Mono',monospace;color:var(--accent);padding:10px 0;text-decoration:underline;text-underline-offset:4px}
.studio-footer>a{font-size:12px}
.studio-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
.studio-nav .contact-nav{margin-left:0}

@media(min-width:1101px) and (max-height:800px){
  .practice-rail{padding:12px 18px 12px 0}
  .eyebrow{margin-bottom:10px}
  h1,html[lang=de] h1{font-size:clamp(36px,2.8vw,52px);margin-bottom:12px}
  .practice-description{font-size:15px;line-height:1.5}
  .discipline-list{margin-top:12px;padding-top:4px}
  .discipline-list-item{min-height:31px;padding-top:3px;padding-bottom:3px}
}
@media(max-width:1100px){
  .studio-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .practice-description{font-size:15px}
}
@media(max-width:650px){
  .studio-identity{gap:10px}
  .identity-mark{font-size:38px}
  .studio-identity strong{font-size:16px}
  .studio-identity small{display:block;font-size:12px;letter-spacing:.1em}
  .studio-nav{font-size:15px}
  .studio-nav a{min-height:44px}
  .exhibit-title h2{font-size:15px}
  .exhibit-number{font-size:22px}
  .footer-signature,.studio-footer>a{font-size:12px}
}

/* Phase 5b: keep the framed practice index padded and fully visible. */
:root{--rail:clamp(340px,21vw,360px)}
@media(min-width:1101px){
  .practice-rail{
    align-self:stretch;
    height:100%;
    justify-content:flex-start;
    padding:clamp(24px,2vw,32px);
  }
  .eyebrow{
    max-width:none;
    margin:0 0 20px;
    font:12px/1.5 'DM Mono',monospace;
    letter-spacing:.14em;
    white-space:normal;
  }
  h1,html[lang=de] h1{
    font-size:clamp(40px,3.4vw,56px);
    line-height:1.05;
    margin:0 0 22px;
  }
  .discipline-list{
    flex:1;
    min-height:0;
    display:grid;
    grid-template-rows:repeat(12,minmax(0,1fr));
    gap:0;
    margin-top:0;
    padding-top:0;
    max-height:none;
    overflow:visible;
  }
  .discipline-list-item{
    grid-template-columns:28px minmax(0,1fr) 16px;
    gap:4px;
    min-height:30px;
    max-height:42px;
    padding:0 4px;
    align-items:center;
    font-size:clamp(15px,1.15vw,17px);
    line-height:1.2;
    white-space:nowrap;
  }
  .discipline-list-item b{
    min-width:0;
    white-space:nowrap;
    overflow:visible;
  }
}
@media(max-width:1100px){
  :root{--rail:100%}
}
@media(max-width:650px){
  .practice-rail{height:auto;padding:0 0 24px}
}

/* Phase 7b: presentation layers for the shared atlas. */
.exhibit{isolation:isolate;transition:opacity .25s ease}
.exhibit::before{
  content:"";
  position:absolute;
  z-index:0;
  left:15%;
  right:15%;
  bottom:4%;
  height:11%;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(17,17,17,.18) 0%,rgba(17,17,17,.1) 42%,rgba(17,17,17,0) 74%);
  filter:blur(14px);
  opacity:.8;
  pointer-events:none;
}
.model-link{isolation:isolate}
.model-link::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:10%;
  right:10%;
  top:7%;
  bottom:5%;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(116,13,43,.06) 0%,rgba(116,13,43,.025) 48%,rgba(116,13,43,0) 74%);
  opacity:0;
  transition:opacity .25s ease;
  pointer-events:none;
}
.exhibit:hover .model-link::before,
.exhibit:focus-within .model-link::before{opacity:1}
.model-link:focus-visible,
.exhibit-title:focus-visible{
  outline:2px solid var(--accent)!important;
  outline-offset:4px;
  border-radius:6px;
}
.exhibit-title{margin-left:2%;margin-right:2%;gap:2px}
.exhibit-number{
  font-size:clamp(22px,1.35vw,24px);
  color:var(--accent);
  min-width:18px;
}
.exhibit-title h2{
  min-width:0;
  font-size:clamp(15px,.82vw,17px);
  letter-spacing:.005em;
  line-height:1.2;
  white-space:nowrap;
  text-rendering:optimizeLegibility;
}
.exhibit-arrow{position:absolute;right:0;transform:translate(-4px,3px)}
.exhibit:nth-child(2) .exhibit-title h2{font-size:clamp(14.5px,.82vw,17px)}
.exhibit:hover .exhibit-arrow,
.exhibit:focus-within .exhibit-arrow{transform:translate(0,0)}
body:has(.popover-dim.is-open) .exhibit{opacity:.35}
body:has(.popover-dim.is-open) .exhibit.is-list-active{opacity:1}
@media(prefers-reduced-motion:reduce){
  .exhibit,.model-link::before{transition:none}
}

/* Phase 8: first-load still-to-atlas introduction. */
.intro-overlay[hidden]{display:none}
.intro-overlay{
  position:fixed;
  inset:0;
  z-index:90;
  display:grid;
  place-items:center;
  background:transparent;
  color:var(--ink);
  transition:opacity .6s ease,visibility .6s ease;
}
.intro-overlay.is-complete{opacity:0;visibility:hidden;pointer-events:none}
.intro-counter{
  position:absolute;
  right:clamp(24px,4vw,64px);
  bottom:clamp(36px,4vw,56px);
  color:var(--accent);
  font:12px 'DM Mono',monospace;
  letter-spacing:.12em;
}
.intro-progress{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:#eadde1;
  transform-origin:left;
}
.intro-progress span{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.intro-skip{
  position:absolute;
  top:clamp(24px,4vw,64px);
  right:clamp(24px,4vw,64px);
  padding:8px 0;
  color:var(--accent);
  font:12px 'DM Mono',monospace;
  text-decoration:underline;
  text-underline-offset:4px;
}
html:not([data-intro-seen]) .studio-header,
html:not([data-intro-seen]) .practice-rail{
  opacity:0;
  transform:translateY(-8px);
}
body.intro-ui-ready .studio-header,
body.intro-ui-ready .practice-rail{
  opacity:1;
  transform:none;
  transition:opacity .3s ease,transform .3s ease;
}
body.intro-active .exhibition,
body.intro-active .discipline-list{pointer-events:none}
body.intro-active .exhibit{will-change:transform,opacity}
.intro-canvas{display:none}
body.intro-active .exhibit-preview{visibility:visible!important;opacity:1;transition:opacity .2s ease}
body.intro-active .intro-canvas{display:block;position:absolute;inset:3% 4% 0;width:92%;height:97%;object-fit:contain;opacity:0;pointer-events:none}
body.intro-active .exhibit.is-intro-canvas-ready .exhibit-preview{opacity:0}
body.intro-active .exhibit.is-intro-canvas-ready .intro-canvas{opacity:1}
body.intro-active .exhibit:not(.is-intro-landed){animation:intro-fall .7s cubic-bezier(.2,.82,.25,1) both;animation-delay:calc(var(--index) * 180ms + 300ms)}
body.intro-active .exhibit:not(.is-intro-landed)::before{opacity:0}
body.intro-active .exhibit.is-intro-landed::before{animation:intro-shadow-in .36s ease-out both}
body.intro-active .exhibit-title{opacity:0;visibility:hidden;transform:translateY(14px)}
body.intro-active.intro-revealing .exhibit-title{visibility:visible;animation:intro-title-row .45s cubic-bezier(.2,.8,.25,1) both;animation-delay:calc(var(--index) * 70ms)}
body.intro-active.intro-revealing .exhibit-title h2{clip-path:inset(0 100% 0 0);animation:intro-title-wipe .45s cubic-bezier(.2,.8,.25,1) both;animation-delay:calc(var(--index) * 70ms)}
body.intro-active.intro-revealing .exhibit-title::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--line);transform:scaleX(0);transform-origin:left;animation:intro-title-rule .4s ease-out both;animation-delay:calc(var(--index) * 70ms + 50ms)}
body.intro-active .exhibit.is-intro-landed{transform:none}
body.intro-active .model-link{cursor:default}
@keyframes intro-fall{from{opacity:1;transform:translateY(calc(-120vh - 40px)) scaleY(1.02)}78%{opacity:1;transform:translateY(3px) scaleY(.975)}to{opacity:1;transform:translateY(0) scaleY(1)}}
@keyframes intro-title-row{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes intro-title-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes intro-title-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes intro-shadow-in{from{opacity:0}to{opacity:.8}}
@media(max-width:650px){
  body.intro-active .intro-canvas{display:none}
}
@media(prefers-reduced-motion:reduce){
  .intro-overlay{transition:none}
  body.intro-ui-ready .studio-header,body.intro-ui-ready .practice-rail{transition:none}
}

/* Phase 8c: isolated still drops over empty tile placeholders. */
:root{
  --intro-load-min:1000ms;
  --intro-stagger:350ms;
  --intro-fall:1200ms;
  --intro-settle:350ms;
}
html[data-intro-pending] .media-layer{
  opacity:0!important;
}
html[data-intro-pending] .exhibit-preview{
  opacity:0!important;
  visibility:hidden!important;
}
body.intro-active .media-layer{
  opacity:0!important;
  transition:opacity .4s ease;
}
body.intro-active .tier-lines{opacity:0}
body.intro-active .media-layer.intro-media-visible{
  opacity:1!important;
}
body.intro-active .exhibit{
  animation:none!important;
  transform:none!important;
}
body.intro-active .exhibit-preview{
  opacity:0!important;
  visibility:hidden!important;
}
.intro-fall-image{display:none}
.intro-placeholder{display:none}
body.intro-active .intro-placeholder{
  display:block;
  position:absolute;
  z-index:1;
  left:15%;
  right:15%;
  bottom:4%;
  height:20%;
  border:1px solid #d8d8d8;
  border-radius:50%;
  box-shadow:0 8px 12px rgba(0,0,0,.06);
  opacity:1;
  transition:opacity .25s ease;
  pointer-events:none;
}
body.intro-active .exhibit.is-intro-landed .intro-placeholder{opacity:0}
body.intro-active .exhibit::before{opacity:0!important}
body.intro-active .intro-fall-image{
  display:block;
  position:absolute;
  inset:3% 4% 0;
  z-index:3;
  width:92%;
  height:97%;
  object-fit:contain;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  animation:intro-fall var(--intro-fall) cubic-bezier(.18,.72,.3,1) both;
  animation-delay:calc(var(--index) * var(--intro-stagger));
  animation-play-state:paused;
}
body.intro-active.intro-ready .intro-fall-image{animation-play-state:running}
body.intro-active .exhibit.is-intro-landed .intro-fall-image{
  animation:intro-settle var(--intro-settle) cubic-bezier(.2,.8,.25,1) both;
}
body.intro-active .exhibit.is-intro-canvas-ready .intro-fall-image{
  opacity:0!important;
  transition:opacity .2s ease;
}
body.intro-active .intro-canvas{
  display:block;
  position:absolute;
  inset:3% 4% 0;
  z-index:3;
  width:92%;
  height:97%;
  object-fit:contain;
  opacity:0;
  pointer-events:none;
}
body.intro-active .exhibit.is-intro-canvas-ready .intro-canvas{opacity:1}
body.intro-active .model-link,
body.intro-active .model-focus,
body.intro-active .intro-fall-image{
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
@keyframes intro-fall{
  from{transform:translateY(calc(-120vh - 40px)) scaleY(1)}
  78%{transform:translateY(0) scaleY(1)}
  to{transform:translateY(0) scaleY(1)}
}
@keyframes intro-settle{
  from{transform:translateY(0) scaleY(1)}
  35%{transform:translateY(2px) scaleY(.97)}
  to{transform:translateY(0) scaleY(1)}
}
body.intro-finalizing .media-layer{
  opacity:0!important;
  z-index:4;
  transition:opacity .6s ease;
}
body.intro-finalizing .media-layer.intro-media-visible{opacity:1!important}
body.intro-finalizing .exhibit-preview{
  visibility:visible!important;
  opacity:1!important;
  transition:opacity .6s ease;
}
body.intro-finalizing .media-layer.intro-media-visible ~ .exhibit-grid .exhibit-preview{opacity:0!important}
body.intro-finalizing .intro-fall-image,
body.intro-finalizing .intro-canvas{opacity:0!important}
body.intro-finalizing .intro-placeholder{opacity:0}
html[data-intro-complete] body.intro-finished .media-layer{
  opacity:1!important;
  visibility:visible!important;
}
html[data-intro-complete] body.intro-finished .intro-fall-image{display:none!important;opacity:0!important}
html[data-intro-complete] body.intro-finished .intro-canvas,
html[data-intro-complete] body.intro-finished .intro-placeholder{
  display:none!important;
}
html[data-intro-complete] body.intro-finished .exhibit-preview{visibility:hidden!important;opacity:0!important}
@media(max-width:650px){
  body.intro-active .intro-canvas{display:none}
  body.intro-active .intro-fall-image{display:block}
  html[data-intro-pending] .exhibit-preview,
  body.intro-active .exhibit-preview{
    visibility:hidden!important;
    opacity:0!important;
  }
  body.intro-active .intro-fall-image{
    visibility:visible!important;
    opacity:1!important;
  }
  body.intro-finalizing .exhibit-preview{
    visibility:hidden!important;
    opacity:0!important;
  }
  body.intro-finalizing .intro-fall-image{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }
  html[data-intro-complete] body.intro-finished .exhibit-preview{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }
  html[data-intro-complete] body.intro-finished .intro-fall-image{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
  }
}
