/* One editorial vocabulary. Text and controls remain visible without animation. */
:root{--motion-instant:100ms;--motion-fast:160ms;--motion-normal:240ms;--motion-slow:380ms;--motion-page:500ms;--motion-step:40ms;--ease-micro:ease-out;--ease-spatial:cubic-bezier(.22,1,.36,1);--ease-page:cubic-bezier(.25,.8,.25,1);--motion-ochre:#a47b46;--motion-hairline:#d8cdbb}
button,a,summary{transition-property:background-color,border-color,color,box-shadow;transition-duration:var(--motion-fast);transition-timing-function:var(--ease-micro)}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--theme-border-strong,#8a6636);outline-offset:4px}
button svg,.figure-link,.continue-study img{transition:transform var(--motion-normal) var(--ease-spatial)}
button:hover>svg:last-child,.figure-link:hover{transform:translateX(3px)}
.navlinks{position:relative;isolation:isolate}.navlinks .on{view-transition-name:course-indicator}.pl-nav{isolation:isolate}.pl-nav .motion-tab-rule{position:absolute;bottom:0;height:2px;background:var(--motion-ochre);pointer-events:none;transform-origin:left;transition:transform var(--motion-normal) var(--ease-spatial),width var(--motion-normal) var(--ease-spatial)}
.pl-nav [aria-current=page]{box-shadow:none}.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--motion-ochre);transform:scaleX(0);transform-origin:left;z-index:100;pointer-events:none}
.reading-resume{position:fixed;bottom:22px;right:22px;z-index:30;max-width:calc(100vw - 44px);padding:12px 16px;background:var(--theme-surface,#fffdf8);border:1px solid var(--motion-hairline);box-shadow:0 3px 14px #35271912;font:12px var(--ui)}.reading-resume button{margin-left:10px;background:none;border:0;text-decoration:underline;min-height:36px}
.wrap-n:has(.pl-workspace){max-width:1400px}
.pl-decoder.manuscript{--margin-width:24%;--poem-width:46%;position:relative;display:block;isolation:isolate;overflow-anchor:none}
.manuscript>.pl-text{width:var(--poem-width);margin-inline:auto;position:relative;z-index:1}
.manuscript .pl-line-text{font-size:21px}.manuscript .pl-verse-row{grid-template-columns:22px minmax(0,1fr);column-gap:10px}
.manuscript .pl-line-text,.manuscript .pl-line-number{transition:opacity var(--motion-normal) var(--ease-micro)}
.manuscript:has(.selected) .pl-verse-row:not(:has(.selected)) .pl-line-text{opacity:.73}
.manuscript .pl-verse-row:hover .pl-line-text,.manuscript .pl-verse-row:focus-within .pl-line-text{opacity:1!important}
.manuscript .pl-line:after{content:"";position:absolute;bottom:1px;left:32px;width:38px;height:1px;background:var(--motion-ochre);transform:scaleX(0);transform-origin:left;transition:transform var(--motion-normal) var(--ease-spatial)}
.manuscript .pl-line.selected:after{transform:scaleX(1)}
.manuscript #pl-desktop-slot{position:static;max-height:none;overflow:visible}
.manuscript .manuscript-notes{padding:0;margin:0;border:0;background:none;position:static}
.margin-left,.margin-right{position:absolute;top:var(--notes-top,12px);width:var(--margin-width);z-index:2}.margin-left{left:0}.margin-right{right:0}
.margin-note{border-top:1px solid var(--motion-hairline);padding:13px 0 8px;margin:0 0 16px;background:var(--page,#fffdf8);animation:note-settle var(--motion-slow) var(--ease-spatial) both;animation-delay:calc(var(--note-order,0)*var(--motion-step))}
.pl-workspace .margin-note h3{font:500 10px/1.5 var(--ui);text-transform:uppercase;letter-spacing:.12em;color:var(--theme-accent,#88673d)}
.pl-workspace .margin-note p{font:400 17px/1.5 Newsreader,serif;margin:7px 0 10px}.margin-note button{font-size:11px;min-height:36px;padding:6px 10px}
.manuscript .margin-deeper{border-top:1px solid var(--motion-hairline);padding:12px 0}.pl-deep-analysis{padding:8px 0}.pl-deep-analysis>h2{font-size:20px}.pl-deep-analysis>.pl-close-analysis{display:none!important}
.manuscript:has(.insight-note[open]) .margin-note:not(.insight-note){opacity:.65}.manuscript .insight-note[open]{box-shadow:-3px 0 var(--motion-ochre);padding-left:12px}
.annotation-threads{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}.annotation-threads path{fill:none;stroke:var(--motion-ochre);stroke-width:.8;opacity:.6;stroke-dasharray:1;stroke-dashoffset:0;animation:ink-draw var(--motion-slow) var(--ease-spatial) both}
.word-popover{position:relative;margin:8px 0 12px;left:var(--word-offset,0px);width:min(280px,100%);padding:14px 16px;background:var(--theme-surface,#fffaf0);border:1px solid var(--motion-hairline);box-shadow:0 6px 20px #44331c0d;pointer-events:auto;z-index:4;animation:note-settle var(--motion-normal) var(--ease-spatial)}
.word-popover:before{content:"";position:absolute;left:15px;top:-9px;height:8px;border-left:1px solid var(--motion-ochre)}.pl-workspace .word-popover p{font-size:16px;line-height:1.45}.word-popover button{font-size:11px;min-height:36px;padding:6px}
.manuscript.pl-read-mode>.pl-text{width:100%}.pl-read-mode .annotation-threads{display:none}.pl-read-mode:has(.selected) .pl-verse-row .pl-line-text{opacity:1}
.pl-movement{position:relative;border-left:1px solid var(--motion-hairline);transition:border-color var(--motion-normal),background-color var(--motion-normal)}.pl-movement:before{content:"";position:absolute;left:-4px;top:25px;width:7px;height:7px;border-radius:50%;background:var(--motion-hairline)}.pl-movement.is-reading{border-left-color:var(--motion-ochre)}.pl-movement.is-reading:before{background:var(--motion-ochre)}
.theme-map{display:flex;gap:3px;padding:16px 0;max-width:100%;overflow-x:auto}.pl-workspace .theme-map button{padding:0;min-width:7px;min-height:44px;flex:1;border:0;border-radius:0;background:linear-gradient(transparent 16px,var(--theme-surface-subtle,#e6e1d7) 16px,var(--theme-surface-subtle,#e6e1d7) 24px,transparent 24px)}.theme-map span{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.pl-workspace .theme-map .theme-lit{background:linear-gradient(transparent 16px,var(--theme-accent-muted,#a47b46) 16px,var(--theme-accent-muted,#a47b46) 24px,transparent 24px)}.theme-poem{columns:2;column-gap:48px;border-block:1px solid var(--motion-hairline);padding:20px 0}.theme-poem p{margin:0;break-inside:avoid;opacity:.5;transition:opacity var(--motion-normal)}.theme-poem .theme-lit{opacity:1;box-shadow:inset 2px 0 var(--motion-ochre)}.pl-workspace .theme-poem button{font:18px/1.5 Newsreader,serif;border:0;background:none;padding:5px 12px}
.structure-pair{display:grid;grid-template-columns:1fr 70px 1fr;align-items:center;gap:16px}.structure-pair blockquote{font:24px/1.5 Newsreader,serif;margin:18px 0}.structure-thread{height:1px;background:var(--motion-ochre);transform-origin:left;animation:rule-draw var(--motion-page) var(--ease-spatial)}.structure-linked .pl-line-text{opacity:1!important;background:var(--theme-surface-subtle,#f3ead7)}.structure-linked{box-shadow:inset 2px 0 var(--motion-ochre)}
.petal-assembly{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}.petal-live{position:sticky;top:130px;padding:20px 0;border-top:2px solid var(--motion-ochre)}.petal-live button{margin:5px 6px 5px 0}.petal-parts details{border-left:1px solid var(--motion-hairline);padding-left:18px}.petal-live span{animation:note-settle var(--motion-normal) var(--ease-spatial)}
.arc-steps{position:relative;--arc-progress:0}.arc-steps:after{content:"";position:absolute;left:5px;top:10px;bottom:18px;width:1px;background:var(--motion-ochre);transform:scaleY(var(--arc-progress));transform-origin:top;pointer-events:none;transition:transform var(--motion-slow) var(--ease-spatial)}.arc-steps .step{transition:opacity var(--motion-normal)}.arc-steps .step.is-reading .dot{background:var(--motion-ochre);box-shadow:0 0 0 4px #a47b4618}.arc-steps .step.is-reading b{color:var(--theme-accent,#896235)}.portrait .character-art{view-transition-name:figure-portrait}
.lineup--rail .track{cursor:grab;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x pan-y}.lineup--rail .track.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}.lineup--rail .lu-fig{scroll-snap-align:center;transition:opacity var(--motion-normal),transform var(--motion-slow) var(--ease-spatial)}.lineup--rail .lu-fig:not(.rail-focus){opacity:.78;transform:scale(.965)}.lineup--rail .lu-fig:focus-visible{opacity:1;transform:none}.lineup--rail .lu-fig img{pointer-events:none;-webkit-user-drag:none}
.continue-study{position:relative}.continue-study:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--motion-ochre);transform:scaleX(.22);transform-origin:left;transition:transform var(--motion-slow) var(--ease-spatial)}.continue-study:hover:after{transform:scaleX(1)}.continue-study:hover img{transform:translateY(-4px);filter:drop-shadow(0 5px 5px #49331c15)}
.paper-side .guidebox,.guidebox{transition:opacity var(--motion-normal)}.paper-side:has(.ans:focus) .guidebox{opacity:.5}.ans{transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.ans:focus{box-shadow:0 0 0 2px #a47b4618}
.relationship-stage{border-block:1px solid var(--motion-hairline);padding:20px 0;margin:18px 0}.relationship-pair{display:grid;grid-template-columns:1fr 34px 1fr;gap:14px}.relationship-pair>section{min-width:0}.relationship-pair img{max-height:180px;width:100%;object-fit:contain}.relationship-pair h3{font:24px Newsreader,serif}.relationship-pair p{font:17px/1.6 Newsreader,serif}.relationship-thread{height:1px;background:var(--motion-ochre);margin-top:80px}
@keyframes note-settle{from{opacity:.2;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes ink-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes rule-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
::view-transition-old(root),::view-transition-new(root){animation-duration:var(--motion-normal)}::view-transition-group(figure-portrait),::view-transition-group(course-indicator){animation-duration:var(--motion-slow);animation-timing-function:var(--ease-spatial)}
@media(min-width:901px) and (max-width:1199px){.pl-decoder.manuscript{--margin-width:23%;--poem-width:48%}.manuscript .pl-line-text{font-size:19px}.pl-workspace .margin-note p{font-size:16px}}
@media(max-width:900px){.manuscript>.pl-text{width:100%;max-width:680px}.annotation-threads{display:none}.margin-left,.margin-right{position:static;width:auto}.manuscript .manuscript-notes{display:grid;grid-template-columns:1fr 1fr;gap:22px;border-left:1px solid var(--motion-ochre);padding:12px 0 0 16px;margin:12px 0 20px 24px}.pl-workspace .pl-close-analysis{display:block}.manuscript .pl-text{width:100%}.margin-note{animation-delay:0ms}.word-popover{left:0}.petal-assembly{gap:24px}}
@media(max-width:600px){.manuscript .manuscript-notes,.petal-assembly{display:block}.manuscript .pl-line-text{font-size:20px}.manuscript .manuscript-notes{margin-left:12px}.petal-live{position:static}.theme-poem{columns:1}.structure-pair{grid-template-columns:1fr;gap:0}.structure-thread{width:1px;height:28px}.relationship-pair{gap:8px;grid-template-columns:1fr 16px 1fr}.relationship-pair h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.annotation-threads path{animation:none}.lineup--rail .lu-fig{transform:none!important}.continue-study:hover img{transform:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
@media print{.annotation-threads,.reading-progress,.reading-resume,.motion-tab-rule{display:none!important}.margin-left,.margin-right{position:static;width:100%}.manuscript>.pl-text{width:100%}.petal-live{position:static}}
.manuscript-quiet .manuscript-notes,.manuscript-quiet .annotation-threads{visibility:hidden}.manuscript-quiet .pl-line-text{opacity:1!important}
.theme-gather{font:inherit;color:inherit;border:0;background:none;padding:0;text-align:left;cursor:pointer;min-height:44px}.theme-gather:after{content:' ↗';font-size:.65em;color:var(--motion-ochre)}.theme-card{transition:opacity var(--motion-normal)}.theme-card.theme-quiet{opacity:.6}.theme-card:focus-within{opacity:1}
#pl-content:has([data-change=other])>.pl-columns>section:first-child{animation:comparison-left var(--motion-slow) var(--ease-spatial)}
#pl-content:has([data-change=other])>.pl-columns>section:last-child{animation:comparison-right var(--motion-slow) var(--ease-spatial)}
@keyframes comparison-left{from{opacity:.4;transform:translateX(8px)}to{opacity:1;transform:none}}@keyframes comparison-right{from{opacity:.4;transform:translateX(-8px)}to{opacity:1;transform:none}}
.comparison-stage{margin:24px 0;padding:24px 0;border-block:1px solid var(--motion-hairline)}.comparison-evidence{display:grid;grid-template-columns:1fr 1fr;gap:30px}.comparison-evidence button{display:block;border:0;border-bottom:1px solid var(--motion-hairline);font:18px/1.5 Newsreader,serif;width:100%;margin:6px 0}.comparison-meeting{max-width:680px;margin:24px auto 0;padding:18px 24px;border-left:1px solid var(--motion-ochre);background:var(--theme-surface,#faf8f2)}.evidence-transfer{position:fixed;z-index:80;pointer-events:none;font:18px/1.5 Newsreader,serif;background:var(--theme-surface,#fffdf8);padding:8px;color:var(--theme-accent,#6e512f)}
@media(max-width:600px){.comparison-evidence{gap:14px}.comparison-evidence button{font-size:16px}.comparison-meeting{padding:12px}}
/* Scrolling is explicit: route changes and anchor compensation never inherit smooth scrolling. */
html{scroll-behavior:auto}
::view-transition{pointer-events:none}
.motion-exit{position:fixed!important;pointer-events:none!important;z-index:8;margin:0!important;animation:none!important}.motion-exit *{animation:none!important;pointer-events:none!important}
.structure-demo{border-left:1px solid var(--motion-hairline);padding:12px 24px;margin:18px 0}.pl-workspace .structure-demo p{font:22px/1.6 Newsreader,serif;margin:0}.enjambment-flow{display:block;color:var(--motion-ochre);padding-left:14px;font-size:24px;transform-origin:top}.caesura-space{display:inline-block;width:10px}.is-tracing .enjambment-flow{animation:note-settle var(--motion-slow) var(--ease-spatial)}.is-tracing .caesura-space{animation:pause-open var(--motion-page) var(--ease-spatial) forwards}.is-tracing .before-volta{opacity:.55;transition:opacity var(--motion-normal)}.is-tracing .after-volta{animation:note-settle var(--motion-slow) var(--ease-spatial);border-left:2px solid var(--motion-ochre);padding-left:12px}.rhyme-demo{margin:22px 0}.rhyme-demo span{display:inline-block;margin-right:24px;padding:4px 10px;border-bottom:1px solid var(--motion-hairline)}
@keyframes pause-open{from{width:10px}to{width:30px}}
@media(max-width:600px){.manuscript .manuscript-notes{display:flex;flex-direction:column;gap:0}.manuscript .margin-left,.manuscript .margin-right{display:contents}.manuscript .pl-close-analysis{order:-1;align-self:flex-end}.margin-left>.margin-note:first-of-type{order:0}.margin-right>.margin-note:nth-child(1){order:1}.margin-right>.margin-note:nth-child(2){order:2}.margin-left>.word-note{order:3}.margin-right>.insight-note{order:4}.margin-deeper{order:5}}
.motion-route-heading:focus{outline:none}
