.mirror-chapter{--mirror-ink:#f8f5ef;--mirror-gold:#f1dfb3;--mirror-gold-line:#e9d4a09e;--mirror-line:#f1ecde52;--mirror-navy:#051320;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);column-gap:clamp(36px,5vw,88px);align-items:center!important;padding-top:150px!important;padding-bottom:130px!important;display:grid!important}
.mirror-chapter .mirror-copy{align-self:center;width:auto!important;max-width:420px!important}
.mirror-wrap{min-width:0;position:relative}
.mirror-stage{--pct:4%;isolation:isolate;border:1px solid var(--mirror-line);background:var(--mirror-navy);aspect-ratio:16/11.2;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:ew-resize;width:100%;min-height:470px;max-height:72vh;position:relative;overflow:hidden;box-shadow:0 40px 120px -40px #000c}
.mirror-bg{z-index:0;position:absolute;inset:0}
.mirror-bg-phys{filter:saturate(.9)brightness(.62);background:url(/art/blue-original.webp) 50%/cover no-repeat}
.mirror-bg-refl{clip-path:inset(0 calc(100% - var(--pct)) 0 0);overflow:hidden}
.mirror-bg-refl-art{filter:saturate(1.05)brightness(.66);background:url(/art/blue-mirror.webp) 50%/460px;animation:240s linear infinite mirror-idle;position:absolute;inset:-40%}
@keyframes mirror-idle{to{transform:rotate(360deg)}
}
.mirror-scrim{z-index:1;pointer-events:none;background:linear-gradient(#051320c7,#05132047 22% 70%,#051320db),radial-gradient(120% 90%,#05132000 40%,#0513208c);position:absolute;inset:0}
.mirror-sides{z-index:3;pointer-events:none;justify-content:space-between;padding:18px 22px 0;display:flex;position:absolute;inset:0 0 auto}
.mirror-side{letter-spacing:1.6px;text-transform:uppercase;color:#cfd3d1;flex-direction:column;gap:5px;font-size:9.5px;display:flex}
.mirror-side strong{letter-spacing:2.1px;color:var(--mirror-ink);font-size:10px;font-weight:700}
.mirror-side span{letter-spacing:1.2px;text-transform:none;color:#c9cdcb;font-size:11px;font-weight:500}
.mirror-side-refl strong,.mirror-side-refl span{color:var(--mirror-gold)}
.mirror-side-phys{text-align:right}
.mirror-grid{z-index:3;grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:column;align-items:center;column-gap:16px;margin:0;padding:0;list-style:none;display:grid;position:absolute;inset:72px 26px 160px}
.mirror-cell{justify-content:center;min-width:0;display:flex}
.mirror-cell:nth-child(3n+1){justify-content:flex-start}
.mirror-cell:nth-child(3n){justify-content:flex-end}
.mirror-token{all:unset;box-sizing:border-box;cursor:pointer;perspective:700px;border-radius:1px;min-width:0;max-width:100%}
.mirror-token:focus-visible{outline:2px solid var(--mirror-gold);outline-offset:4px}
.mirror-card{transform-style:preserve-3d;transition:transform .85s cubic-bezier(.2,.75,.15,1);display:grid}
.mirror-face{text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;white-space:normal;text-wrap:balance;grid-area:1/1;justify-content:center;align-items:center;min-height:40px;padding:9px 13px;line-height:1.12;display:inline-flex}
.mirror-face-phys{letter-spacing:.35px;color:var(--mirror-ink);backdrop-filter:blur(6px);background:#0513209e;border:1px solid #f1ecde57;font-size:12.5px;font-weight:600}
.mirror-face-refl{letter-spacing:.1px;color:var(--mirror-gold);border:1px solid var(--mirror-gold-line);backdrop-filter:blur(6px);background:#05132080;font-family:Cormorant Garamond,Georgia,serif;font-size:21px;font-weight:500;transform:rotateY(180deg);box-shadow:0 0 28px -8px #f1dfb373}
.mirror-token.is-flipped .mirror-card{transform:rotateY(180deg)}
.mirror-token.is-active .mirror-face-phys{border-color:var(--mirror-ink)}
.mirror-token.is-active .mirror-face-refl{border-color:var(--mirror-gold);box-shadow:0 0 34px -6px #f1dfb399}
.mirror-token:hover .mirror-face-phys{background:#051320c7}
.mirror-equation-button{all:unset;box-sizing:border-box;z-index:3;cursor:pointer;border-top:1px solid #f1ecde2e;height:70px;position:absolute;bottom:78px;left:26px;right:26px}
.mirror-equation-button:focus-visible{outline:2px solid var(--mirror-gold);outline-offset:2px}
.mirror-equation{height:100%;color:var(--mirror-ink);font-family:Cormorant Garamond,Georgia,serif;font-size:40px;font-weight:500;line-height:70px;position:relative}
.eq-measure{visibility:hidden;white-space:nowrap;position:absolute;top:0;left:0}
.eq-measure .eq-g{margin-right:.24em;display:inline-block}
.eq-measure .eq-g:last-child{margin-right:0}
.eq-measure-phys .eq-g-Rm{margin-right:.04em}
.eq-glyph{white-space:nowrap;opacity:0;transition:transform 1.25s cubic-bezier(.65,0,.2,1),opacity .7s,color .7s;position:absolute;top:0;left:0}
.eq-glyph.is-shown{opacity:1}
.eq-inner{display:inline-grid}
.eq-face{opacity:0;grid-area:1/1;transition:opacity .5s .35s}
.eq-face.on{opacity:1}
.eq-glyph-Lc,.eq-glyph-Lx,.eq-glyph-Lm,.eq-glyph-Leq{color:var(--mirror-gold)}
.mirror-equation.eq-refl .eq-glyph-E,.mirror-equation.eq-present .eq-glyph-E{color:#fff6e2;text-shadow:0 0 22px #f1dfb38c}
.eq-tag{letter-spacing:1.7px;text-transform:uppercase;opacity:0;font-family:Manrope,Arial,sans-serif;font-size:8.5px;font-weight:700;line-height:1;transition:opacity .5s;position:absolute;top:54px;left:50%;transform:translate(-50%)}
.eq-glyph-Lx .eq-tag{color:var(--mirror-gold)}
.eq-glyph-Rx .eq-tag{color:#d9dee2}
.mirror-equation.eq-present .eq-tag{opacity:1;transition-delay:.8s}
.mirror-equation.moving .eq-glyph.is-shown:nth-of-type(odd) .eq-inner{animation:1.25s cubic-bezier(.65,0,.2,1) eq-over}
.mirror-equation.moving .eq-glyph.is-shown:nth-of-type(2n) .eq-inner{animation:1.25s cubic-bezier(.65,0,.2,1) eq-under}
@keyframes eq-over{50%{transform:translateY(-16px)scaleX(-1)}
}
@keyframes eq-under{50%{transform:translateY(12px)scaleX(-1)}
}
.mirror-line{z-index:4;top:0;bottom:0;left:var(--pct);pointer-events:none;background:linear-gradient(#f8f5ef26,#f8f5eff2 30% 70%,#f8f5ef26);width:2px;margin-left:-1px;position:absolute;box-shadow:0 0 12px #f8f5ef8c,0 0 46px #f1dfb359}
.mirror-handle{z-index:5;bottom:13px;left:clamp(24px,var(--pct),calc(100% - 24px));width:46px;height:46px;color:var(--mirror-navy);background:var(--mirror-ink);cursor:grab;touch-action:none;border-radius:50%;place-items:center;margin:0 0 0 -23px;display:grid;position:absolute;box-shadow:0 0 0 6px #f8f5ef24,0 10px 30px #00000073}
.mirror-handle:active{cursor:grabbing}
.mirror-handle:focus-visible{outline:2px solid var(--mirror-gold);outline-offset:5px}
.mirror-handle-label{white-space:nowrap;letter-spacing:1.9px;text-transform:uppercase;color:var(--mirror-ink);text-shadow:0 1px 8px #051320e6;pointer-events:none;font-size:8.5px;font-weight:700;position:absolute;top:50%;left:calc(100% + 16px);transform:translateY(-50%)}
.mirror-hint{white-space:nowrap;color:var(--mirror-ink);text-shadow:0 1px 8px #051320f2;pointer-events:none;font-size:11px;font-weight:500;position:absolute;top:calc(50% + 12px);left:calc(100% + 16px)}
.mirror-stage:not(.is-touched):not(.is-reduced) .mirror-handle:after{content:"";border:1px solid #f8f5efb3;border-radius:50%;animation:2.4s ease-out infinite mirror-pulse;position:absolute;inset:-6px}
.mirror-stage.label-left .mirror-handle-label,.mirror-stage.label-left .mirror-hint{text-align:right;left:auto;right:calc(100% + 16px)}
.mirror-stage:after{content:"";z-index:3;pointer-events:none;background:#051320bd;border-top:1px solid #f1ecde2e;height:72px;position:absolute;bottom:0;left:0;right:0}
@keyframes mirror-pulse{0%{opacity:.9;transform:scale(1)}
to{opacity:0;transform:scale(1.9)}
}
.mirror-caption{grid-template-columns:1fr 1px 1fr;gap:22px;min-height:108px;margin-top:22px;display:grid}
.mirror-caption-rule{background:var(--mirror-line)}
.mirror-caption-side{opacity:.55;transition:opacity .4s}
.mirror-caption-side.is-lit{opacity:1}
.mirror-caption-side.phys{text-align:right}
.mirror-caption-kicker{letter-spacing:1.9px;text-transform:uppercase;color:#b7c1c8;margin-bottom:7px;font-size:9px;font-weight:700;display:block}
.mirror-caption-side.refl .mirror-caption-kicker{color:#cdbf98}
.mirror-caption-side strong{color:var(--mirror-ink);font-family:Cormorant Garamond,Georgia,serif;font-size:25px;font-weight:500;line-height:1.1;display:block}
.mirror-caption-side.refl strong{color:var(--mirror-gold)}
.mirror-caption-side p{color:#c9cfd3;margin:7px 0 0;font-size:12.5px;line-height:1.65}
.mirror-actions{flex-wrap:wrap;align-items:center;gap:24px;display:flex}
.mirror-actions .outline-button{margin-top:18px}
.mirror-actions .mini-note{margin-top:18px!important}
.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}
.mirror-stage.is-reduced .mirror-card,.mirror-stage.is-reduced .eq-glyph{transition:none}
.mirror-stage.is-reduced .mirror-bg-refl-art{animation:none}
.mirror-stage.is-reduced .mirror-face{backface-visibility:visible;transition:opacity .35s}
.mirror-stage.is-reduced .mirror-face-refl{opacity:0;transform:none}
.mirror-stage.is-reduced .mirror-token.is-flipped .mirror-card{transform:none}
.mirror-stage.is-reduced .mirror-token.is-flipped .mirror-face-phys{opacity:0}
.mirror-stage.is-reduced .mirror-token.is-flipped .mirror-face-refl{opacity:1}
.mirror-stage.is-reduced .eq-inner{animation:none!important}
@media (prefers-reduced-motion:reduce){.mirror-bg-refl-art{animation:none}
}
@media (width<=1180px){.mirror-chapter{grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr)}
.mirror-face-phys{padding:8px 10px;font-size:11.5px}
.mirror-face-refl{padding:8px 10px;font-size:18.5px}
}
@media (width<=900px){.mirror-chapter{grid-template-columns:1fr;row-gap:40px;padding-top:120px!important}
.mirror-chapter .mirror-copy{max-width:520px!important}
.mirror-stage{aspect-ratio:auto;height:690px;min-height:0;max-height:none}
.mirror-grid{grid-template-rows:repeat(11,minmax(0,1fr));grid-template-columns:1fr;grid-auto-flow:row;inset:62px 16px 168px}
.mirror-cell,.mirror-cell:nth-child(3n+1),.mirror-cell:nth-child(3n){padding-left:calc(var(--i) * 4%);justify-content:flex-start}
.mirror-face{white-space:nowrap;min-height:34px;padding:6px 10px}
.mirror-face-phys{font-size:11.5px}
.mirror-face-refl{font-size:16.5px}
.mirror-equation-button{height:64px;bottom:78px;left:16px;right:16px}
.mirror-equation{font-size:34px;line-height:64px}
.mirror-sides{padding:16px 16px 0}
.mirror-side span{letter-spacing:.6px;font-size:10px}
.mirror-caption{grid-template-columns:1fr;gap:14px}
.mirror-caption-rule{height:1px}
.mirror-caption-side.phys{text-align:left}
}
@media (width<=420px){.mirror-side span{display:none}
.mirror-cell,.mirror-cell:nth-child(3n+1),.mirror-cell:nth-child(3n){padding-left:calc(var(--i) * 2.6%)}
}
.mirror-flow{z-index:1;pointer-events:none;mix-blend-mode:screen;width:100%;height:100%;position:absolute;inset:0}
.mirror-stage.at-center .mirror-line{box-shadow:0 0 16px #f8f5efcc,0 0 70px #f1dfb38c}
.mirror-stage.at-center .mirror-handle{box-shadow:0 0 0 6px #f1dfb34d,0 0 36px #f1dfb38c}
.mirror-stage.at-center .mirror-handle-label,.mirror-initial{color:var(--mirror-gold)}
.mirror-face-refl .mirror-initial{color:#fff3d6;text-shadow:0 0 12px #f1dfb3cc}
.mirror-modes{border:1px solid #f1ecde57;margin-top:28px;display:inline-flex}
.mirror-modes button{all:unset;cursor:pointer;letter-spacing:.2px;color:#cfd5d8;padding:11px 18px;font-size:12px;font-weight:600;transition:background .25s,color .25s}
.mirror-modes button+button{border-left:1px solid #f1ecde57}
.mirror-modes button.is-on{background:var(--mirror-ink);color:var(--mirror-navy)}
.mirror-modes button:focus-visible{outline:2px solid var(--mirror-gold);outline-offset:2px}
.mirror-web{z-index:2;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .8s;position:absolute;inset:0}
.mode-break .mirror-web{opacity:1;transition-delay:1.1s}
.web-edge path{fill:none;stroke:#f1dfb36b;stroke-width:1px;transition:stroke .4s,stroke-width .4s,opacity .4s}
.web-edge.is-lit path{stroke:#fff3d6f2;stroke-width:1.5px}
.web-edge.is-broken>path{stroke:#e7907a;stroke-width:1.4px;stroke-dasharray:3 5}
.web-tear path{fill:none;stroke:#ffb39f;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}
.mode-break .mirror-handle,.mode-break .mirror-line{opacity:0;pointer-events:none}
.mirror-handle,.mirror-line{transition:opacity .5s}
.mode-break .mirror-stage{cursor:default}
.mirror-token{position:relative}
.swap-mark{width:18px;height:18px;color:var(--mirror-navy);background:var(--mirror-gold);border-radius:50%;place-items:center;font-size:10px;line-height:1;display:grid;position:absolute;top:-8px;right:-8px;box-shadow:0 0 0 3px #05132099}
.mirror-token.is-swapped .mirror-face-refl{color:#ffb39f;border-style:dashed;border-color:#e7907ad9;font-style:normal;box-shadow:0 0 30px -6px #e7907a8c}
.mode-break .mirror-token:not(.is-active):not(.is-swapped) .mirror-face-refl{opacity:.86}
.mirror-break{min-height:108px;margin-top:22px}
.break-lead{color:#dfe3e5;max-width:560px;margin:8px 0 14px;font-size:14px;line-height:1.7}
.break-head strong{color:var(--mirror-gold);font-family:Cormorant Garamond,Georgia,serif;font-size:26px;font-weight:500;line-height:1.15;display:block}
.break-head em{letter-spacing:.3px;color:#b7c1c8;margin:0 4px;font-family:Manrope,Arial,sans-serif;font-size:12px;font-style:normal}
.break-sub{color:#ffb39f}
.break-list{gap:7px;margin:12px 0 0;padding:0;list-style:none;display:grid}
.break-list li{color:#dfe3e5;padding-left:18px;font-size:12.5px;line-height:1.55;position:relative}
.break-list li:before{content:"";background:var(--mirror-gold);width:9px;height:1px;position:absolute;top:.62em;left:0}
.break-list li.is-broken{color:#ffc3b4}
.break-list li.is-broken:before{background:#e7907a;height:2px;transform:rotate(-35deg)}
.break-reason{max-width:620px;color:var(--mirror-ink);margin:14px 0 0;font-family:Cormorant Garamond,Georgia,serif;font-size:19px;line-height:1.45}
.break-swaps,.break-picks{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}
.break-swaps>span{letter-spacing:1.6px;text-transform:uppercase;color:#b7c1c8;margin-right:4px;font-size:10px;font-weight:700}
.break-chip{all:unset;cursor:pointer;color:var(--mirror-ink);background:#05132066;border:1px solid #f1ecde61;padding:7px 12px;font-family:Cormorant Garamond,Georgia,serif;font-size:17px;line-height:1.1;transition:background .2s,border-color .2s}
.break-chip:hover{border-color:var(--mirror-gold)}
.break-chip.is-on{color:#ffb39f;border-color:#e7907a}
.break-chip.is-restore{border-color:var(--mirror-gold-line);color:var(--mirror-gold);font-family:Manrope,Arial,sans-serif;font-size:12px;font-weight:600}
.break-chip:focus-visible{outline:2px solid var(--mirror-gold);outline-offset:2px}
.break-note{color:#b7c1c8;max-width:520px;margin-top:14px;font-size:12px;line-height:1.6}
.mirror-caption.is-present{text-align:center;grid-template-columns:1fr}
.mirror-caption-center strong{color:#fff3d6;text-shadow:0 0 24px #f1dfb359;font-family:Cormorant Garamond,Georgia,serif;font-size:28px;font-weight:500;display:block}
.mirror-caption-center .mirror-caption-kicker{color:var(--mirror-gold)}
.mirror-caption-center p{color:#d4d9dc;max-width:520px;margin:8px auto 0;font-size:12.5px;line-height:1.65}
.mirror-invite{border-top:1px solid var(--mirror-line);grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);align-items:end;gap:28px 40px;margin-top:40px;padding:26px 0 0;display:grid}
.invite-copy p{color:#c9cfd3;max-width:560px;margin:8px 0 0;font-size:13px;line-height:1.75}
.invite-copy .mirror-caption-kicker{color:var(--mirror-gold)}
.invite-copy p.invite-how{color:#aeb7bd;font-size:12px}
.invite-actions{flex-direction:column;align-items:flex-start;gap:16px;display:flex}
.invite-copy-button{cursor:pointer;background:var(--mirror-ink);color:var(--mirror-navy);border:1px solid var(--mirror-ink);width:100%;max-width:320px;font-family:inherit}
.invite-copy-button:hover{background:#fff}
.invite-copy-button:focus-visible{outline:2px solid var(--mirror-gold);outline-offset:3px}
.invite-links{flex-wrap:wrap;gap:10px 22px;display:flex}
.mirror-invite .text-link{all:unset;cursor:pointer;color:var(--mirror-ink);border-bottom:1px solid #f1ecde73;align-items:center;gap:7px;padding-bottom:5px;font-size:12px;font-weight:600;display:inline-flex}
.mirror-invite .text-link:hover{border-bottom-color:var(--mirror-gold)}
.mirror-invite .text-link:focus-visible{outline:2px solid var(--mirror-gold);outline-offset:3px}
.game-dialog{width:min(760px,100vw - 32px);max-height:min(84vh,900px);color:var(--mirror-ink,#f8f5ef);background:#071827;border:1px solid #f1ecde4d;padding:0;box-shadow:0 40px 120px #000000b3}
.game-dialog::backdrop{backdrop-filter:blur(4px);background:#030a12b8}
.game-dialog[open]{flex-direction:column;display:flex}
.game-dialog-bar{border-bottom:1px solid #f1ecde2e;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}
.game-dialog-bar strong{color:#f1dfb3;font-family:Cormorant Garamond,Georgia,serif;font-size:22px;font-weight:500}
.game-dialog-bar>div:last-child{flex-shrink:0;gap:10px;display:flex}
.game-dialog-title{flex-direction:column;gap:2px;min-width:0;display:flex}
.game-dialog-title span{color:#aeb7bd;font-size:11px}
.game-dialog-copy,.game-dialog-close{all:unset;white-space:nowrap;cursor:pointer;color:#f8f5ef;border:1px solid #f1ecde66;padding:8px 14px;font-size:12px;font-weight:600}
.game-dialog-copy{color:#051320;background:#f8f5ef}
.game-dialog-close{padding:6px 12px;font-size:18px;line-height:1}
.game-dialog-copy:focus-visible,.game-dialog-close:focus-visible{outline-offset:2px;outline:2px solid #f1dfb3}
.game-dialog-text{white-space:pre-wrap;word-break:break-word;color:#dfe3e5;margin:0;padding:20px 22px 28px;font-family:Manrope,Arial,sans-serif;font-size:13px;line-height:1.7;overflow:auto}
@media (width<=900px){.game-dialog-bar strong{font-size:19px}
.game-dialog-text{padding:16px 16px 24px;font-size:12.5px}
.mirror-equation{font-size:30px}
.eq-tag{top:50px}
.mirror-invite{grid-template-columns:1fr}
.break-reason{font-size:17px}
}
@media (prefers-reduced-motion:reduce){.mirror-equation .eq-inner{animation:none!important}
}
.mirror-face-text{display:inline}
.mirror-rail-note{z-index:4;text-align:center;height:72px;color:var(--mirror-gold);opacity:0;pointer-events:none;place-items:center;padding:0 20px;font-family:Cormorant Garamond,Georgia,serif;font-size:19px;transition:opacity .6s;display:grid;position:absolute;bottom:0;left:0;right:0}
.mode-break .mirror-rail-note{opacity:1;transition-delay:.9s}
@media (width<=900px){.mirror-stage{height:740px}
.mirror-cell,.mirror-cell:nth-child(3n+1),.mirror-cell:nth-child(3n){padding-left:calc(var(--i) * 3.8%)}
.mirror-cell .mirror-token{max-width:64%}
.mirror-face{white-space:normal}
.mirror-rail-note{font-size:16px}
}
@media (width<=420px){.mirror-cell,.mirror-cell:nth-child(3n+1),.mirror-cell:nth-child(3n){padding-left:calc(var(--i) * 3.6%)}
}
.tsr-mirror-in-view .flow-map{opacity:0!important;pointer-events:none!important}
@media (width>=701px){.flow-map:not(.hero-flow){backdrop-filter:blur(10px);background:#051320a8;padding:12px 14px!important}
.is-book .flow-map:not(.hero-flow){background:#f0e9dbd1}
}
.scene-caption,.world-note{text-shadow:0 1px 10px #051320f2,0 0 2px #051320e6}
.world-note{backdrop-filter:blur(6px);background:#0513206b;padding:8px 12px 8px 15px}
#perspectives{padding-bottom:160px!important}
#tsr-mirror-root{z-index:2;position:relative}
#tsr-mirror-root .mirror-chapter{background:linear-gradient(#05132000,#051320db 9%,#051320e6,#051320db 91%,#05132000);min-height:auto}
#tsr-book-links.tsr-book-links{letter-spacing:.2px;color:#4a5257;max-width:none;margin:16px 0 0;line-height:1.8;font-size:11px!important}
.tsr-book-links a{white-space:nowrap;color:#14222b;border-bottom:1px solid #14222b59;font-weight:600;text-decoration:none}
.tsr-book-links a:hover{border-bottom-color:#14222b}
