/* anatomy.css — CASE_03 / FRASER (paleta + CRT + diagrama) */
.scene.scene-anatomy{height:100vh;height:100dvh;background:#F5F0DC}
.anatomy-stage{background:#F5F0DC;color:#1A1A1A}
.anatomy-stage:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:20;opacity:.06;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:crt-flicker 3.2s steps(2,end) infinite}
.anatomy-stage:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:21;background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.1) 2px 4px)}
@keyframes crt-flicker{0%,100%{opacity:.05}50%{opacity:.09}}
.anatomy-index{position:absolute;top:90px;left:24px;font-size:9px;color:#888;font-family:'JetBrains Mono',monospace}
.anatomy-title{position:absolute;left:4vw;top:20vh;width:33vw;z-index:3}
.anatomy-title>span{font-size:9px;color:#555;font-family:'JetBrains Mono',monospace;letter-spacing:.15em}
.anatomy-title h2{font:clamp(44px,5.2vw,96px)/.8 var(--display);letter-spacing:-.075em;margin:18px 0 0;color:#1A1A1A}
.anatomy-title em{font-family:'Rubik Glitch',Impact,sans-serif;font-weight:400;font-style:normal;color:#CC2200;letter-spacing:.02em;animation:anat-glitch 1.8s steps(1,end) infinite}
.anatomy-sub{font-size:clamp(18px,1.5vw,26px);line-height:1.05;max-width:460px;margin:22px 0 0;color:#555;opacity:0;transform:translateY(20px);transition:opacity .6s ease .2s,transform .8s cubic-bezier(.16,1,.3,1) .2s}
.scene-anatomy.is-in .anatomy-sub{opacity:1;transform:none}
@keyframes anat-glitch{
  0%{text-shadow:3px 0 #CC0066,-3px 0 #0066CC;transform:translate(-1px,1px)}
  8%{text-shadow:-3px 0 #CC0066,3px 0 #0066CC;transform:translate(2px,-1px)}
  16%{text-shadow:4px 0 #CC0066,-4px 0 #0066CC;transform:translate(-2px,0)}
  24%{text-shadow:-4px 0 #0066CC,4px 0 #CC0066;transform:translate(1px,2px)}
  32%{text-shadow:2px 0 #CC0066,-2px 0 #0066CC;transform:translate(-1px,-2px)}
  40%{text-shadow:-2px 0 #0066CC,2px 0 #CC0066;transform:translate(3px,1px)}
  48%{text-shadow:3px 0 #0066CC,-3px 0 #CC0066;transform:translate(-2px,2px)}
  56%{text-shadow:-3px 0 #CC0066,3px 0 #0066CC;transform:translate(1px,-1px)}
  64%{text-shadow:4px 0 #0066CC,-4px 0 #CC0066;transform:translate(-1px,0)}
  72%{text-shadow:-2px 0 #CC0066,2px 0 #0066CC;transform:translate(2px,2px)}
  80%{text-shadow:2px 0 #0066CC,-2px 0 #CC0066;transform:translate(-3px,-1px)}
  88%{text-shadow:-4px 0 #CC0066,4px 0 #0066CC;transform:translate(0,1px)}
  100%{text-shadow:3px 0 #CC0066,-3px 0 #0066CC;transform:translate(-1px,1px)}
}
.diagram{position:absolute;right:1vw;top:8vh;width:68vw;height:84vh}
.diagram svg{width:100%;height:100%;overflow:visible}
.d-lines path{fill:none;stroke:rgba(26,26,26,.4);stroke-width:1.3;stroke-dasharray:6 8;opacity:.45;stroke-dashoffset:0;transition:stroke-dashoffset 1.2s linear}
.scene-anatomy.is-in .d-lines path{stroke-dashoffset:-150}
.d-node rect,.d-node circle{fill:#FAF5E0;stroke:#1A1A1A;stroke-width:2}
.d-node text{fill:#1A1A1A;font:18px 'JetBrains Mono',monospace;text-anchor:middle;dominant-baseline:middle}
.d-node .lbl-a{opacity:1;animation:lbl-a 18s steps(1,end) infinite}
.d-node .lbl-b{opacity:0;animation:lbl-b 18s steps(1,end) infinite}
@keyframes lbl-a{
  0%{opacity:1}
  33.33%{opacity:1}
  33.63%{opacity:0;text-shadow:-2px 0 #CC0066,2px 0 #0066CC;transform:translate(-1px,0)}
  33.93%{opacity:1}
  34.23%{opacity:0;text-shadow:2px 0 #CC0066,-2px 0 #0066CC;transform:translate(1px,0)}
  34.53%{opacity:1}
  34.83%{opacity:0;text-shadow:none;transform:none}
  72.22%{opacity:0}
  72.52%{opacity:1;text-shadow:-2px 0 #CC0066,2px 0 #0066CC;transform:translate(-1px,0)}
  72.82%{opacity:0}
  73.12%{opacity:1;text-shadow:2px 0 #CC0066,-2px 0 #0066CC;transform:translate(1px,0)}
  73.42%{opacity:1;text-shadow:none;transform:none}
  100%{opacity:1}
}
@keyframes lbl-b{
  0%{opacity:0}
  33.33%{opacity:0}
  33.63%{opacity:1;text-shadow:-2px 0 #CC0066,2px 0 #0066CC;transform:translate(-1px,0)}
  33.93%{opacity:0}
  34.23%{opacity:1;text-shadow:2px 0 #CC0066,-2px 0 #0066CC;transform:translate(1px,0)}
  34.53%{opacity:0}
  34.83%{opacity:1;text-shadow:none;transform:none}
  72.22%{opacity:1}
  72.52%{opacity:0;text-shadow:-2px 0 #CC0066,2px 0 #0066CC}
  72.82%{opacity:1}
  73.12%{opacity:0;text-shadow:2px 0 #CC0066,-2px 0 #0066CC}
  73.42%{opacity:0;text-shadow:none}
  100%{opacity:0}
}
.d-node--core .core-ring{fill:none;stroke:#CC2200;stroke-width:4;animation:ring-color 18s steps(1,end) infinite}
@keyframes ring-color{0%{stroke:#CC2200}33.33%{stroke:#CC2200}33.34%{stroke:#B300FF}72.22%{stroke:#B300FF}72.23%{stroke:#CC2200}100%{stroke:#CC2200}}
.core-img{opacity:0;animation-duration:18s;animation-timing-function:steps(1,end);animation-iteration-count:infinite}
.ci1{animation-name:core-1}
.ci2{animation-name:core-2}
.ci3{animation-name:core-3}
.ci4{animation-name:core-4}
.ci5{animation-name:core-5}
.ci6{animation-name:core-6}
@keyframes core-1{0%{opacity:1}27.78%{opacity:0}72.22%{opacity:1}100%{opacity:1}}
@keyframes core-2{0%{opacity:0}27.78%{opacity:1}29.17%{opacity:0}70.83%{opacity:1}72.22%{opacity:0}100%{opacity:0}}
@keyframes core-3{0%{opacity:0}29.17%{opacity:1}30.56%{opacity:0}69.44%{opacity:1}70.83%{opacity:0}100%{opacity:0}}
@keyframes core-4{0%{opacity:0}30.56%{opacity:1}31.94%{opacity:0}68.06%{opacity:1}69.44%{opacity:0}100%{opacity:0}}
@keyframes core-5{0%{opacity:0}31.94%{opacity:1}33.33%{opacity:0}66.67%{opacity:1}68.06%{opacity:0}100%{opacity:0}}
@keyframes core-6{0%{opacity:0}33.33%{opacity:1}66.67%{opacity:0}100%{opacity:0}}
.pulse{fill:#CC2200;opacity:0;transition:opacity .4s ease;animation:pulse-color 18s steps(1,end) infinite}
.scene-anatomy.is-in .pulse{opacity:.9}
@keyframes pulse-color{0%{fill:#CC2200}33.33%{fill:#CC2200}33.34%{fill:#B300FF}72.22%{fill:#B300FF}72.23%{fill:#CC2200}100%{fill:#CC2200}}
.d-node{transform-box:fill-box;transform-origin:center;opacity:.2;transition:opacity .6s ease,transform .9s cubic-bezier(.16,1,.3,1)}
.scene-anatomy.is-in .d-node{opacity:1;transform:none}
.d-node--1{transform:translate(260px,180px);transition-delay:.05s}
.d-node--2{transform:translate(-260px,180px);transition-delay:.12s}
.d-node--3{transform:translate(260px,-190px);transition-delay:.19s}
.d-node--4{transform:translate(-260px,-190px);transition-delay:.26s}
.d-node--5{transform:translateY(260px);transition-delay:.33s}
.d-node--6{transform:translateY(-260px);transition-delay:.4s}
.d-node--core{transition:opacity .6s ease,transform .5s cubic-bezier(.22,1,.36,1)}
.scene-anatomy .d-node--core{cursor:pointer}
.scene-anatomy.is-in .d-node--core:hover{transform:scale(1.6)}

@media(max-width:900px){
  .anatomy-index{top:70px;left:18px}
  .anatomy-title{left:5vw;top:14vh;width:90vw}
  .anatomy-title h2{font-size:12.5vw}
  .anatomy-sub{font-size:4.4vw;max-width:88vw;margin-top:14px}
  .diagram{width:112vw;right:-24vw;top:54vh;height:44vh}
}
@media (prefers-reduced-motion:reduce){
  .core-img{opacity:0}.core-img.ci1{opacity:1}
}
.scene-anatomy:not(.is-in) .anatomy-stage:before,.scene-anatomy:not(.is-in) .anatomy-title em,.scene-anatomy:not(.is-in) .core-img,.scene-anatomy:not(.is-in) .core-ring,.scene-anatomy:not(.is-in) .pulse,.scene-anatomy:not(.is-in) .d-node .lbl-a,.scene-anatomy:not(.is-in) .d-node .lbl-b{animation:none}
