/* Circuit Atelier motion tokens. Continuous movement has deliberate rest periods. */
/* Each motion value belongs to one layer; avoid invalidating its text/SVG descendants. */
@property --rose-x {syntax:'<length>';inherits:false;initial-value:0px;}
@property --rose-y {syntax:'<length>';inherits:false;initial-value:0px;}
@property --board-x {syntax:'<length>';inherits:false;initial-value:0px;}
@property --board-y {syntax:'<length>';inherits:false;initial-value:0px;}
@property --hero-copy-y {syntax:'<length>';inherits:false;initial-value:0px;}
@property --hero-copy-opacity {syntax:'<number>';inherits:false;initial-value:1;}
@property --board-scroll-y {syntax:'<length>';inherits:false;initial-value:0px;}
@property --board-scale {syntax:'<number>';inherits:false;initial-value:1;}
@property --hero-scroll {syntax:'<number>';inherits:false;initial-value:0;}
:root {--motion-fast:180ms;--motion-card:320ms;--motion-reveal:750ms;--ease-out:cubic-bezier(.16,1,.3,1);--ease-depth:cubic-bezier(.22,1,.36,1);}
.hero-copy,.atelier-visible,.reveal.is-visible {animation:none;}
.atelier-hero h1>span,.hero-edition,.hero-kicker,.hero-subtitle,.hero-actions,.hero-baseline {animation:none;}
.hero-copy {transform:translate3d(0,var(--hero-copy-y,0px),0);opacity:var(--hero-copy-opacity,1);}
.hero-art {opacity:.8;transform:translate3d(var(--board-x,0px),var(--board-y,0px),0);transition:transform 800ms var(--ease-depth);}
.hero-art>.atelier-circuit {display:block;width:100%;height:100%;transform:translate3d(0,var(--board-scroll-y,0px),0) scale(var(--board-scale,1));transform-origin:70% 45%;}
.circuit-ink {transition:stroke 500ms;}.artwork-hovered .circuit-ink {stroke:#b6d7bb;}
.rose-sculpture {margin:0;pointer-events:none;isolation:isolate;}
.hero-rose {position:absolute;z-index:2;right:1.2%;top:1.5%;width:clamp(260px,31cqw,500px);transform:translate3d(var(--rose-x,0px),var(--rose-y,0px),0);transition:transform 850ms var(--ease-depth);}
.rose-body {display:block;position:relative;width:100%;height:100%;transform-origin:50% 78%;animation:rose-drift 12s cubic-bezier(.45,0,.55,1) infinite;animation-play-state:paused;}
.rose-body>img {display:block;width:100%;height:auto;}
.rose-light {position:absolute;inset:0;overflow:hidden;mask:url('../img/golden-rose-atelier.svg') center top/100% 100% no-repeat;}
.rose-light::before {content:'';position:absolute;inset:0;background:radial-gradient(ellipse at var(--light-x,60%) var(--light-y,28%),#fff5cc66,transparent 52%);mix-blend-mode:screen;opacity:.18;transition:opacity 700ms;}
.artwork-hovered .rose-light::before {opacity:.5;}
.rose-light::after {content:'';position:absolute;inset:-15% -50%;background:linear-gradient(112deg,transparent 40%,#fff4c059 49%,#fff9d975 50%,transparent 59%);transform:translateX(-65%);animation:rose-lustre 14s var(--ease-depth) infinite;animation-play-state:paused;}
.motion-active .rose-body,.motion-active .rose-light::after {animation-play-state:running;}
.hero-rose figcaption {position:absolute;bottom:4%;left:30%;color:#c8bea2;font-family:var(--font-body);font-size:9px;letter-spacing:.03em;line-height:2;white-space:nowrap;}
.hero-rose figcaption>span {display:block;font-family:var(--font-mono);font-size:7px;letter-spacing:.19em;color:#e3c680;}
.atelier-gate .gate-access {position:relative;}.gate-rose {position:absolute;z-index:3;top:-106px;right:-52px;width:196px;}
.hero-effects {position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;contain:strict;}
.hero-energy {position:absolute;inset:0;background:radial-gradient(ellipse at 82% 30%,#a9dcc211,transparent 43%),radial-gradient(ellipse at 70% 95%,#d4ba850b,transparent 37%);transform:translate3d(0,calc(var(--hero-scroll,0)*35px),0);}
.ambient-signals {position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#dbc58a;stroke-width:1;opacity:.28;}
.ambient-signals path,.ambient-signals circle {animation:signal-station 11s linear infinite;animation-play-state:paused;}
.ambient-signals :nth-child(2) {animation-delay:-4s;}.ambient-signals :nth-child(3) {animation-delay:-7s;}.ambient-signals :nth-child(4) {animation-delay:-2s;}.ambient-signals :nth-child(5) {animation-delay:-8s;}.ambient-signals :nth-child(6) {animation-delay:-5s;}
.hero-effects.motion-active .ambient-signals * {animation-play-state:running;}
.circuit-pulse {stroke:#dfcf99;stroke-width:2.5;stroke-dasharray:85 1000;stroke-dashoffset:95;opacity:0;}
.reactive-node {color:#d9eac6;stroke:currentColor;stroke-width:1;opacity:0;}
.is-signalling .circuit-pulse {animation:conductor-pulse 950ms linear both;}
.is-signalling .pulse-coil {animation-delay:780ms;animation-duration:900ms;}
.is-signalling .pulse-return {animation-delay:1550ms;animation-duration:900ms;}
.is-signalling .pulse-cap-top {animation-delay:560ms;animation-duration:600ms;}
.is-signalling .pulse-cap-bottom {animation-delay:1160ms;animation-duration:550ms;}
.is-signalling .reactive-node {animation:node-response 700ms var(--ease-depth) both;}
.is-signalling .node-a {animation-delay:540ms;}.is-signalling .node-b {animation-delay:820ms;}.is-signalling .node-c {animation-delay:1570ms;}.is-signalling .node-d {animation-delay:1770ms;}
.signal-wave {transition:stroke 400ms;}.is-signalling .signal-wave {stroke:#b5dfbc;}
:root[data-effects-paused='true'] :is(.rose-body,.circuit-pulse,.reactive-node,.ambient-signals *),:root[data-effects-paused='true'] .rose-light::after {animation-play-state:paused!important;}
.site-header::after {content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;pointer-events:none;background:linear-gradient(90deg,#629c79,#e1c583);transform:scaleX(var(--reading-progress,0));transform-origin:left;}
.section-heading {position:relative;}.section-heading::after {content:'';position:absolute;left:0;bottom:-14px;width:46px;height:1px;background:#8aa57c;transform:scaleX(0);transform-origin:left;transition:transform 800ms 150ms var(--ease-out);}.section-heading.effects-revealed::after {transform:scaleX(1);}
.library-card {transform:perspective(950px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform 450ms var(--ease-depth),border-color 220ms,box-shadow 220ms;}
.library-card::before {content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at var(--spot-x,50%) var(--spot-y,30%),#e8d2952b,transparent 62%);opacity:0;transition:opacity 350ms;}
.library-card.is-illuminated::before {opacity:1;}.library-card.is-illuminated {box-shadow:0 18px 36px -26px #0b211970;transition:transform 160ms linear,border-color 220ms,box-shadow 220ms;}
.chapter-preview::after {content:'';position:absolute;top:-1px;left:0;width:100%;height:1px;background:var(--emerald);transform:scaleX(0);transform-origin:left;transition:transform 500ms var(--ease-out);}
.chapter-preview:is(:hover,:focus-visible,.effects-revealed)::after {transform:scaleX(1);}
.chapter-preview>span:last-child {transition:transform 220ms var(--ease-depth);}.chapter-preview:is(:hover,:focus-visible)>span:last-child {transform:translateX(3px);}
.toc-chapter {position:relative;overflow:hidden;}
.toc-accordion {display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--motion-card) var(--ease-depth);}
.toc-accordion>.toc-sec-list {min-height:0;overflow:hidden;opacity:1;transition:opacity 220ms,visibility 0s;}
:root[data-layout='mobile'] .toc-chapter.is-collapsed .toc-accordion {grid-template-rows:0fr;}
:root[data-layout='mobile'] .toc-chapter.is-collapsed .toc-sec-list {display:flex;opacity:0;visibility:hidden;transition:opacity 160ms,visibility 0s 320ms;}
.toc-chapter-head {transition:padding-bottom var(--motion-card) var(--ease-depth);}
.chapter-toggle {transition:background var(--motion-fast),scale var(--motion-fast);}.chapter-toggle:active {scale:.94;}
.toc-chapter::after {content:'';position:absolute;inset:0 auto auto 0;height:1px;width:100%;background:linear-gradient(90deg,transparent,#9fb891,transparent);transform:translateX(-105%);pointer-events:none;}
.toc-chapter.interaction-signal::after {animation:border-signal 850ms var(--ease-depth);}.library-card.interaction-signal {border-color:#9eaf88;}.chapter-preview.interaction-signal::after {background:var(--champagne);}
.atelier-cta {position:relative;overflow:hidden;transition:transform 650ms var(--ease-depth),background var(--motion-fast),box-shadow var(--motion-fast);}
.cta-ripple {position:absolute;display:block;width:100px;height:100px;margin:-50px;top:var(--tap-y,50%);left:var(--tap-x,50%);border-radius:50%;background:#fff9d766;pointer-events:none;}
.desktop-nav button {position:relative;}.desktop-nav button::after {content:'';position:absolute;left:0;right:0;bottom:7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 230ms var(--ease-depth);}.desktop-nav button:is(:hover,:focus-visible,.is-active)::after {transform:scaleX(1);}
.study-search {transition:border-color 220ms,box-shadow 220ms;}.study-search:focus-within {box-shadow:0 0 0 3px #789a7012;}
.study-search label svg {transition:transform 220ms var(--ease-depth);}.study-search:focus-within label svg {transform:rotate(-8deg) scale(1.05);}
.tab-btn {position:relative;transition:color 180ms,background 180ms;}.tab-btn::after {content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--emerald);transform:scaleX(0);transform-origin:left;transition:transform 240ms var(--ease-depth);}.tab-btn.is-active::after {transform:scaleX(1);}
.tab-btn .i,.toc-sec-arrow,.file-card::after,.res-card .i,.hero-secondary>span {transition:transform 220ms var(--ease-depth);}
.tab-btn:is(:hover,:focus-visible) .i {transform:translateY(-2px);}.toc-sec:is(:hover,:focus-visible) .toc-sec-arrow {transform:translateX(3px);}.file-card:not([aria-disabled='true']):is(:hover,:focus-visible)::after {transform:translate(2px,-2px);}.hero-secondary:is(:hover,:focus-visible)>span {transform:translateY(3px);}
.toc-sec,.file-card,.quiz-card,.hw-card,.res-card {transition:background 180ms,border-color 180ms,box-shadow 220ms;}
.lt-res-item,.lt-secnav-btn,.lt-crumb-back,.btn-link {transition:background 180ms,border-color 180ms,color 180ms;}
.lt-res-icon,.btn-link .i {transition:transform 220ms var(--ease-depth);}
.lt-res-item:not(:disabled):is(:hover,:focus-visible) .lt-res-icon {transform:translateY(-2px);}
.btn-link:is(:hover,:focus-visible) .i {transform:translate(2px,-2px);}
.lt-res-item:not(:disabled):active,.lt-secnav-btn:not(:disabled):active {background:var(--accent-wash);}
.atelier-cta:active,.file-card:not([aria-disabled='true']):active,.toc-sec:active,.tab-btn:active,.library-card:active {filter:brightness(.97);}
.layout-picker summary {transition:background 180ms,border-color 180ms;}.layout-options {animation:menu-drop 180ms var(--ease-depth) both;transform-origin:top right;}.layout-options button:active {background:#d7e5d3;}
.atelier-menu[open] {animation:menu-arrive 300ms var(--ease-out) both;}.atelier-menu[open] nav>button {animation:menu-item 400ms var(--ease-out) both;}
.atelier-menu nav>button:nth-child(2) {animation-delay:25ms;}.atelier-menu nav>button:nth-child(3) {animation-delay:50ms;}.atelier-menu nav>button:nth-child(4) {animation-delay:75ms;}.atelier-menu nav>button:nth-child(5) {animation-delay:100ms;}.atelier-menu nav>button:nth-child(6) {animation-delay:125ms;}
.atelier-gate .gate-card::after {content:'';position:absolute;inset:-1px;padding:1px;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse at var(--spot-x,50%) var(--spot-y,0%),#d5ae54,transparent 65%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity 400ms;}.atelier-gate .gate-card.is-illuminated::after {opacity:.75;}
.atelier-gate .gate-submit {position:relative;overflow:hidden;}.atelier-gate .gate-submit::before {content:'';position:absolute;inset:-50% -20%;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#f2e1b926 50%,transparent 65%);transform:translateX(-120%);transition:transform 650ms var(--ease-depth);}.atelier-gate .gate-submit:is(:hover,:focus-visible)::before {transform:translateX(120%);}
.scroll-cue>span {animation:scroll-nudge 6s var(--ease-depth) infinite;animation-play-state:paused;}.motion-active .scroll-cue>span {animation-play-state:running;}:root[data-effects-paused='true'] .scroll-cue>span {animation-play-state:paused;}
.footer-top {display:inline-flex;align-items:center;gap:7px;transition:color 180ms;}.footer-top>span {transition:transform 220ms var(--ease-depth);}.footer-top:is(:hover,:focus-visible)>span {transform:translateY(-3px);}
@keyframes rose-drift {0%,100%{transform:translate3d(0,0,0) rotate(-.45deg);}50%{transform:translate3d(0,-5px,0) rotate(.5deg);}}
@keyframes rose-lustre {0%,25%{transform:translateX(-65%);opacity:0;}31%{opacity:.32;}47%,100%{transform:translateX(65%);opacity:0;}}
@keyframes conductor-pulse {0%{stroke-dashoffset:95;opacity:0;}9%{opacity:.9;}85%{opacity:.8;}100%{stroke-dashoffset:-1000;opacity:0;}}
@keyframes node-response {0%,100%{opacity:0;}18%{opacity:.9;}55%{opacity:.22;}}
@keyframes signal-station {0%,60%,100%{opacity:.16;transform:translateX(0);}70%{opacity:.8;}85%{opacity:.16;transform:translateX(6px);}}
@keyframes border-signal {to{transform:translateX(105%);}}
@keyframes menu-drop {from{opacity:0;transform:translateY(-5px) scale(.98);}to{opacity:1;transform:none;}}
@keyframes menu-arrive {from{opacity:.6;transform:translateX(20px);}to{opacity:1;transform:none;}}
@keyframes menu-item {from{opacity:0;transform:translateX(12px);}to{opacity:1;transform:none;}}
@keyframes scroll-nudge {0%,80%,100%{transform:none;}87%{transform:translateY(4px);}}
:root[data-layout='mobile'] .hero-rose {width:180px;right:-32px;top:105px;transform:none;}:root[data-layout='mobile'] .hero-rose figcaption {display:none;}:root[data-layout='mobile'] .hero-art {opacity:.48;}:root[data-layout='mobile'] .rose-body {animation-duration:16s;}:root[data-layout='mobile'] .gate-rose {width:112px;right:-9px;top:-30px;}:root[data-layout='mobile'] .library-card {transform:none;}
:root[data-layout='mobile'] .ambient-signals :nth-child(n+3) {display:none;}:root[data-layout='mobile'] .ambient-signals * {animation:none;}:root[data-layout='mobile'] .section-heading::after {bottom:-10px;width:28px;}
:root[data-effects-low-power='true'] :is(.rose-light,.ambient-signals,.electrical-motion) {display:none;}:root[data-effects-low-power='true'] .rose-body {animation:none;}
@container atelier (min-width:760px) and (max-width:1100px) {.hero-rose {right:-1%;top:4%;width:32cqw;}.gate-rose {width:150px;right:-27px;top:-87px;}}
@media (prefers-reduced-motion:reduce) {
 .hero-effects,.rose-light,.cta-ripple,.electrical-motion {display:none!important;}
 .rose-body,.hero-rose,.hero-art,.hero-art>.atelier-circuit,.library-card,.atelier-cta,.hero-copy {transform:none!important;animation:none!important;}.hero-copy {opacity:1!important;}
 .atelier-hero h1>span,.hero-kicker,.hero-edition,.hero-subtitle,.hero-actions,.hero-baseline,.atelier-menu[open],.atelier-menu[open] nav>button,.layout-options,.scroll-cue>span {animation:none!important;opacity:1;clip-path:none;}
 .section-heading::after {transform:none;transition:none;}.toc-accordion,.toc-accordion>.toc-sec-list,.toc-chapter-head,.desktop-nav button::after,.tab-btn::after {transition:none!important;}
}
