/* ExamPrep.World Blue Margin: shared topic library extension. */
.library-hero{border-left:4px solid var(--gold);padding:14px 24px 20px;margin:10px 0 26px;max-width:900px}.library-hero h1{font-size:42px}.library-hero>p:not(.breadcrumb){font-size:20px;margin:14px 0 0}.library-hero .summary{font-size:15px!important;color:var(--blue)}.library-filters{display:flex;gap:16px;align-items:flex-end;padding:20px;background:var(--learning);border:1px solid var(--line);border-radius:4px}.library-filters>div{flex:1;min-width:0}.library-filters label{display:block;font-weight:600;margin-bottom:6px;color:var(--ink)}.library-filters input,.library-filters select{width:100%;font:inherit;padding:12px;background:white;border:1px solid #acbdd5;border-radius:4px;min-height:48px;color:var(--ink)}.library-filters input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}#count{color:var(--muted,#566983);font-size:14px}.topic-section{margin:34px 0 42px}.topic-section h2{font:400 29px/1.3 Georgia,serif;color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:12px}.topic-section h2 span{font:400 14px "Helvetica Neue",Arial,sans-serif;color:var(--blue);margin-left:12px}.lesson-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.lesson-card{position:relative;display:flex;flex-direction:column;gap:12px;background:white;border:1px solid var(--line);border-left:4px solid var(--blue);padding:22px;text-decoration:none;color:var(--ink);min-height:180px;transition:box-shadow .15s,transform .15s}.lesson-card:hover{box-shadow:0 7px 20px #14274e12;transform:translateY(-2px)}.lesson-card .number{font-size:12px;letter-spacing:.08em;color:var(--blue)}.lesson-card h3{font:400 23px/1.28 Georgia,serif;margin:0}.lesson-card .meta{font-size:13px;color:#566983;margin-top:auto}.lesson-card .open{font-size:14px;font-weight:650;color:var(--blue)}.lesson-links{display:flex;justify-content:space-between;gap:20px;margin:18px 0;font-size:14px}.lesson-links a{text-decoration:none}.lesson-heading h1{overflow-wrap:anywhere}#stage{min-height:100px}#completed a{margin:5px}#empty{background:var(--practice);padding:24px}
@media(max-width:950px){.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-filters{flex-wrap:wrap}.library-filters>div{min-width:240px}.library-hero h1{font-size:35px}}@media(max-width:650px){.lesson-grid{grid-template-columns:1fr}.library-hero{padding:12px 14px}.library-hero h1{font-size:29px}.library-hero>p:not(.breadcrumb){font-size:18px}.library-filters{padding:14px}.library-filters>div{flex-basis:100%;min-width:0}.topic-section h2{font-size:25px}.topic-section h2 span{display:block;margin:5px 0 0}.lesson-card{min-height:150px}.lesson-links{font-size:12px;gap:12px}.controls button{max-width:43%;min-width:80px}.controls #next{white-space:normal}}
@media(prefers-reduced-motion:reduce){.lesson-card{transition:none}.lesson-card:hover{transform:none}}
/* Allow room for the library navigation as well as the slide controls. */
main:fullscreen #stage{max-width:calc((100vh - 280px)*16/9)}

/* Chemistry lesson motion: short, optional cues that sit behind the static
   rendered slide. They reinforce particle/flow ideas without distracting
   from the written lesson and are disabled for reduced-motion preferences. */
#stage{position:relative;overflow:hidden}
#slide-image.slide-enter{animation:chemistry-stage-in .28s ease-out both}
#stage.chemistry-visual::after{content:"";position:absolute;inset:7% 8%;pointer-events:none;opacity:.14;background:radial-gradient(circle at 18% 35%,#2c5697 0 4px,transparent 5px),radial-gradient(circle at 82% 62%,#b48a35 0 5px,transparent 6px);animation:chemistry-drift 5s ease-in-out infinite}
#stage.visual-sourceimage::after{opacity:.08}
#stage.motion-particles::after,#stage.motion-collision-burst::after{background:radial-gradient(circle at 18% 35%,#2c5697 0 4px,transparent 5px),radial-gradient(circle at 52% 54%,#2c5697 0 5px,transparent 6px),radial-gradient(circle at 82% 62%,#b48a35 0 5px,transparent 6px);animation:chemistry-particle-drift 2.8s ease-in-out infinite}
#stage.motion-electron-orbit::after{border:2px solid #b48a35;border-radius:50%;inset:20% 33%;opacity:.22;animation:chemistry-orbit 4s linear infinite}
#stage.motion-energy-pulse::after,#stage.motion-reaction-flow::after{background:linear-gradient(90deg,transparent,#b48a35,transparent);inset:15% 9%;opacity:.16;animation:chemistry-sweep 2.4s ease-in-out infinite}
@keyframes chemistry-stage-in{from{opacity:.35;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes chemistry-drift{0%,100%{transform:translate(0,0)}50%{transform:translate(8px,-5px)}}
@keyframes chemistry-particle-drift{0%,100%{background-position:0 0,0 0,0 0}50%{background-position:14px -10px,-10px 8px,8px 12px}}
@keyframes chemistry-orbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes chemistry-sweep{0%,100%{transform:translateX(-12%);opacity:.05}50%{transform:translateX(12%);opacity:.22}}
@media(prefers-reduced-motion:reduce){#stage.slide-enter,#stage.chemistry-visual::after{animation:none!important}}
