@layer od-layout{:where(.od-stack,.od-row,.od-row-top,.od-cluster,.od-grid,.od-field,.od-stat,.od-cell,.od-tile)>:where(*){min-width:0}.od-stack{gap:var(--od-gap,8px);flex-direction:column;display:flex}.od-row{align-items:center;gap:var(--od-gap,8px);display:flex}.od-row-top{align-items:flex-start;gap:var(--od-gap,8px);display:flex}.od-cluster{align-items:center;gap:var(--od-gap,8px);flex-wrap:wrap;display:flex}.od-fill{flex:1 1 0;min-width:0}.od-fixed{flex:none}.od-grid{gap:var(--od-gap,12px);grid-template-columns:repeat(var(--od-cols,3), minmax(0, 1fr));display:grid}.od-stat,.od-field,.od-cell{gap:var(--od-gap,2px);display:grid}:where(.od-stat,.od-field,.od-cell)>:where(*){display:block}.od-tile{grid-template-rows:auto 1fr;display:grid}:where(.od-tile)>:where(*){display:block}.od-media{width:100%;height:auto;aspect-ratio:var(--od-ratio,auto);display:block}.od-media-cover{object-fit:cover}.od-truncate{white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.od-clamp-2,.od-clamp-3{overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.od-clamp-2{-webkit-line-clamp:2}.od-clamp-3{-webkit-line-clamp:3}.od-lines-2{min-height:2.8em}.od-nowrap{white-space:nowrap}.od-keep{word-break:keep-all;overflow-wrap:anywhere}.od-screen{grid-template-rows:auto minmax(0,1fr) auto;height:100%;display:grid}.od-scroll{overscroll-behavior:contain;min-height:0;overflow-y:auto}.od-rail{gap:var(--od-gap,8px);scroll-snap-type:x proximity;scrollbar-width:none;padding-inline:var(--od-rail-pad,16px);scroll-padding-inline:var(--od-rail-pad,16px);display:flex;overflow-x:auto}.od-rail::-webkit-scrollbar{display:none}:where(.od-rail)>:where(*){scroll-snap-align:start;flex:none}:where(.od-rail)>:where(:last-child){margin-inline-end:var(--od-rail-pad,16px)}.od-spacer{visibility:hidden;pointer-events:none;flex:none}.od-touch{min-width:44px;min-height:44px}}:root{--ink:#15111f;--surface:#130e1cd6;--hover:#ffffff0f;--sunk:#00000042;--gold:#d9b45a;--gold-l:#f0d58c;--gold-d:#a9852f;--gold-soft:#d9b45a26;--text:#f3ead6;--muted:#bfb3cf;--parch:#efe3c4;--parch-ink:#2a1d10;--parch-edge:#c9b27e;--rune-on-parch:#6b4a12;--danger:#ec8a8a;--amber:#c98a2b;--c-grounds:#f0b860;--c-gardens:#7fcca3;--c-walls:#ec8a8a;--c-towers:#93b3f2;--c-halls:#bba6f2;--c-bridges:#f0d58c;--f-display:"Cinzel Decorative", "Cinzel", Georgia, serif;--f-head:"Cinzel", Georgia, serif;--f-body:"EB Garamond", Georgia, serif;--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-body:17px;--fs-lg:20px;--fs-xl:22px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-pill:999px;--shadow:0 12px 32px #05030a73;--t-fast:.16s;--t-med:.24s;--t-slow:.32s;--t-exit:.16s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in:cubic-bezier(.5, 0, .75, 0);--hud-pad:24px;--book-w:320px}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--ink);color:var(--text);font-family:var(--f-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;line-height:1.55;overflow:hidden}h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}svg.i{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}:focus-visible{outline:2px solid var(--gold-l);outline-offset:2px}kbd{min-width:22px;height:22px;font-family:var(--f-head);font-size:var(--fs-xs);color:var(--gold-l);background:#ffffff14;border-radius:4px;justify-content:center;align-items:center;padding:0 6px;font-weight:700;line-height:1;display:inline-flex}.eyebrow{font-family:var(--f-head);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700}.stage{background:var(--ink);touch-action:none;position:fixed;inset:0;overflow:hidden}.stage canvas{outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.vignette{pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,#0000 58%,#0a071280 100%),linear-gradient(#0a071280,#0000 20% 80%,#0a071280);position:absolute;inset:0}.sparks{pointer-events:none;position:absolute;inset:0}.spark{width:56px;height:56px;color:var(--gold-l);animation:spark .52s var(--ease-out) forwards;margin:-28px 0 0 -28px;position:absolute}.spark svg{width:100%;height:100%}.spark--remove{color:var(--danger)}@keyframes spark{0%{opacity:0;transform:scale(.3)rotate(0)}30%{opacity:1}to{opacity:0;transform:scale(1.2)rotate(45deg)}}.plaque{z-index:2;padding:var(--s2) var(--s5);background:var(--parch);color:var(--parch-ink);opacity:0;pointer-events:none;transition:opacity var(--t-med) var(--ease-out);font-family:var(--f-head);border-radius:4px;justify-items:center;gap:2px;display:grid;position:absolute;top:44%;left:50%;transform:translate(-50%,calc(-100% - 18px));box-shadow:0 8px 20px #00000073}.plaque>*{display:block}.plaque__no{font-size:var(--fs-xs);letter-spacing:.12em;color:var(--rune-on-parch);font-weight:700}.plaque__name{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:15px;font-weight:700}body[data-mode=museum].labels-on.mus-open .plaque{opacity:1}.plaque{padding-right:calc(var(--s5) + 14px);padding-left:calc(var(--s5) + 14px)}.plaque__close{width:20px;height:20px;color:var(--parch-ink);pointer-events:none;transition:background-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);background:#2a1d101a;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:5px;right:5px}.plaque__close .i{stroke-width:2.4px;width:11px;height:11px}body[data-mode=museum].labels-on.mus-open .plaque__close{pointer-events:auto}@media (hover:hover){.plaque__close:hover{background:var(--danger);color:var(--parch)}}.rbtn.rbtn--close{display:none}body.mus-open .rbtn.rbtn--close{display:inline-flex}.plaque.is-swap{animation:plaqueIn var(--t-med) var(--ease-out)}@keyframes plaqueIn{0%{opacity:0;transform:translate(-50%,calc(-100% - 10px))}}.hud{z-index:10;grid-template-columns:var(--book-w) minmax(0, 1fr) auto;gap:var(--s4) var(--s6);padding:var(--hud-pad);pointer-events:none;transition:opacity var(--t-slow) var(--ease-out);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"book tabs top""book center center""book bottom mark";display:grid;position:fixed;inset:0}.hud>*{pointer-events:auto}.hud>.bottom{pointer-events:none}.hud>.bottom>*{pointer-events:auto}body.ui-hidden .hud{opacity:0;transition-duration:.21s;transition-timing-function:var(--ease-in)}.flight-fx{z-index:5;pointer-events:none;opacity:0;transition:opacity .42s var(--ease-out);position:fixed;inset:0;overflow:hidden}body.is-flying .flight-fx{opacity:1}.reticle{width:22px;height:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.reticle:before{content:"";border:1.5px solid #ffe4a8d9;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 6px #ffc46e8c,inset 0 0 4px #ffc46e59}.reticle:after{content:"";background:#ffe7b0;border-radius:50%;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;position:absolute;top:50%;left:50%;box-shadow:0 0 4px #ffc46e}.speedlines{opacity:calc(var(--rush,0) * .85 + var(--boost,0) * .15);-webkit-mask-image:radial-gradient(circle at 50% 50%, transparent calc(30% - var(--boost,0) * 10%), #00000080 calc(52% - var(--boost,0) * 12%), #000 calc(72% - var(--boost,0) * 10%));-webkit-mask-image:radial-gradient(circle at 50% 50%, transparent calc(30% - var(--boost,0) * 10%), #00000080 calc(52% - var(--boost,0) * 12%), #000 calc(72% - var(--boost,0) * 10%));mask-image:radial-gradient(circle at 50% 50%, transparent calc(30% - var(--boost,0) * 10%), #00000080 calc(52% - var(--boost,0) * 12%), #000 calc(72% - var(--boost,0) * 10%));background:repeating-conic-gradient(#0000 0deg 3.1deg,#fff6e280 3.3deg 3.5deg,#0000 3.7deg 9deg),repeating-conic-gradient(from 4deg,#0000 0deg 5deg,#dccdff59 5.15deg 5.3deg,#0000 5.45deg 13deg);animation:.36s steps(3,end) infinite speedlines;position:absolute;inset:-20%}@keyframes speedlines{0%{transform:rotate(0)scale(1)}to{transform:rotate(2.4deg)scale(1.04)}}@media (prefers-reduced-motion:reduce){.speedlines{animation:none}}.sticks{z-index:6;padding:0 28px calc(28px + env(safe-area-inset-bottom));pointer-events:none;justify-content:space-between;align-items:flex-end;display:none;position:fixed;bottom:0;left:0;right:0}body.is-touch.is-flying .sticks{display:flex}.stick{pointer-events:auto;touch-action:none;width:132px;height:132px;transition:border-color var(--t-fast) var(--ease-out);background:radial-gradient(circle,#16102047 0 58%,#16102070 59% 100%);border:1.5px solid #ffe4a859;border-radius:50%;position:relative;box-shadow:inset 0 0 18px #00000040}.stick.is-active{border-color:#ffe4a8b3}.stick__knob{background:radial-gradient(circle at 35% 30%, #ffe7b0, var(--gold) 70%);width:56px;height:56px;transition:transform .12s var(--ease-out);border-radius:50%;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 2px 10px #00000073,0 0 12px #ffc46e59}.stick.is-active .stick__knob{transition:none}.stick__cap{text-align:center;font-family:var(--f-head);letter-spacing:.18em;text-transform:uppercase;color:#ffeecdcc;text-shadow:0 1px 3px #000c;pointer-events:none;font-size:10px;font-weight:700;position:absolute;top:-22px;left:0;right:0}.stick-btns{flex-direction:column;align-self:flex-end;align-items:center;gap:14px;margin-bottom:40px;display:flex}.stick-boost{pointer-events:auto;width:76px;height:76px;color:var(--gold-l);font-family:var(--f-head);letter-spacing:.18em;text-transform:uppercase;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;transition:transform .12s var(--ease-out,ease-out), background .12s, border-color .12s;background:#1610208c;border:2px solid #ffe4a859;border-radius:50%;font-size:11px;font-weight:700}.stick-boost.is-active{background:#46301ebf;border-color:#ffe4a8d9;transform:scale(.94)}.stick-land{pointer-events:auto;border-radius:var(--r-pill);height:40px;color:var(--gold-l);font-family:var(--f-head);letter-spacing:.18em;text-transform:uppercase;background:#161020bf;border:0;padding:0 18px;font-size:11px;font-weight:700}body.is-flying .hud{opacity:0;pointer-events:none;transition-duration:.42s;transition-timing-function:var(--ease-in)}body.is-flying .show-ui{display:none}.logo{align-items:center;gap:14px;margin:0;display:flex}.logo__mark{flex:none;width:46px;height:46px;overflow:visible}.logo__mark .lm-stone,.logo__mark .lm-star{fill:var(--gold-l)}.logo__mark .lm-roof{fill:var(--gold)}.logo__mark .lm-states{fill:var(--muted);opacity:.75}.logo__type{justify-items:center;gap:6px;display:inline-grid}.logo__magic{font-family:var(--f-display);letter-spacing:.06em;color:var(--gold-l);padding-left:.06em;font-size:34px;font-weight:700;line-height:1;display:block}.logo__school{font-family:var(--f-head);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);white-space:nowrap;align-items:center;gap:9px;font-size:10px;font-weight:700;line-height:1;display:flex}.logo__school span{padding-left:.24em}.logo__school:before,.logo__school:after{content:"";opacity:.7;background:currentColor;flex:none;width:12px;height:1px}.logo__mark .lm-states circle{animation:lmFlicker 2.4s var(--ease-out) 1 both}.logo__mark .lm-states circle:nth-child(2){animation-delay:.12s}.logo__mark .lm-states circle:nth-child(3){animation-delay:.24s}.logo__mark .lm-states circle:nth-child(4){animation-delay:.36s}@keyframes lmFlicker{0%,to{opacity:1}20%{opacity:.2}45%{opacity:1}65%{opacity:.35}}.brand__sub{margin-top:var(--s3);font-style:italic;font-size:var(--fs-md);color:var(--muted);line-height:1.35}.tabs{border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow);grid-area:tabs;place-self:center;gap:2px;padding:4px;display:flex;position:relative}.tab{border-radius:var(--r-pill);height:40px;font-family:var(--f-head);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);transition:color var(--t-fast) var(--ease-out);background:0 0;border:0;padding:0 18px;font-size:13px;font-weight:700}.tab[aria-pressed=true]{color:var(--gold-l)}@media (hover:hover){.tab[aria-pressed=false]:hover{color:var(--text)}}.tabs__ind{background:var(--gold);transform-origin:0;pointer-events:none;width:1px;height:2px;transition:transform var(--t-med) var(--ease-out);border-radius:1px;position:absolute;bottom:7px;left:0}.top{border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow);grid-area:top;place-self:center end;align-items:center;gap:2px;padding:4px;display:flex}.top__sep{background:#ffffff24;flex:none;width:1px;height:20px;margin:0 6px}.ibtn{border-radius:var(--r-pill);width:40px;height:40px;color:var(--muted);transition:background-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.ibtn[aria-pressed=true]{background:var(--gold-soft);color:var(--gold-l)}@media (hover:hover){.ibtn:hover{background:var(--hover);color:var(--text)}.ibtn[aria-pressed=true]:hover{color:var(--gold-l)}}.book{background:var(--surface);border-radius:var(--r-lg);min-height:0;box-shadow:var(--shadow);flex-direction:column;grid-area:book;align-self:stretch;display:flex}.book__head{padding:var(--s5) var(--s5) 0}.book__chapter{padding:var(--s5) var(--s5) var(--s1)}.book__toggle{display:none}.book__toggle .i{transition:transform var(--t-med) var(--ease-out)}body.book-collapsed .book__toggle .i{transform:rotate(180deg)}.pane{min-height:0;animation:paneIn var(--t-med) var(--ease-out);flex-direction:column;flex:auto;display:flex}@keyframes paneIn{0%{opacity:0;transform:translateY(8px)}}.pane__top{padding:var(--s2) var(--s5) var(--s3);gap:var(--s3);flex-direction:column;display:flex}.pane__body{padding:0 var(--s4) var(--s2);scrollbar-width:thin;scrollbar-color:#d9b45a59 transparent;flex:auto}.pane__body--pad{padding:var(--s2) var(--s5) var(--s4)}.pane__foot{padding:var(--s4) var(--s5) var(--s5);gap:var(--s3);flex-direction:column;display:flex}.lede{font-style:italic;font-size:var(--fs-md);color:var(--muted);line-height:1.5}.small{font-size:var(--fs-sm);color:var(--muted);line-height:1.4}.section+.section{margin-top:var(--s5)}.search{align-items:center;gap:var(--s2);height:44px;padding:0 var(--s3);border-radius:var(--r-md);background:var(--sunk);display:flex}.search:focus-within{box-shadow:0 0 0 1px var(--gold-l)}.search .i{color:var(--muted)}.search input{min-width:0;height:100%;font-size:var(--fs-md);background:0 0;border:0;outline:none;flex:1 1 0}.search input::placeholder{color:#bfb3cfcc;font-style:italic}.search-label{font-size:var(--fs-sm);color:var(--muted)}.chips{--od-rail-pad:24px;--od-gap:4px;margin:0 calc(-1 * var(--s5));padding-block:2px}.chip{height:36px;padding:0 var(--s3);border-radius:var(--r-pill);color:var(--muted);font-family:var(--f-head);letter-spacing:.02em;white-space:nowrap;transition:background-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);background:0 0;border:0;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.chip .i{width:16px;height:16px;color:var(--cat-c,var(--gold))}.chip[aria-pressed=true]{background:var(--gold-soft);color:var(--gold-l)}@media (hover:hover){.chip[aria-pressed=false]:hover{background:var(--hover);color:var(--text)}}.list{flex-direction:column;gap:2px;display:flex}.list-head{padding:var(--s2) var(--s2) var(--s1)}.list-head__title{font-family:var(--f-head);font-size:var(--fs-sm);letter-spacing:.06em;color:var(--cat-c,var(--text));font-weight:700}.list-head__count{font-size:var(--fs-sm);color:var(--muted)}.row{align-items:center;gap:var(--s3);width:100%;min-height:44px;padding:6px var(--s2);text-align:left;transition:background-color var(--t-fast) var(--ease-out);background:0 0;border:0;border-radius:10px;display:flex}.row .i{width:18px;height:18px;color:var(--cat-c)}.row__no{width:22px;font-family:var(--f-head);font-size:var(--fs-xs);color:var(--muted);flex:none;font-weight:700}.row__name{min-width:0;font-family:var(--f-head);font-size:var(--fs-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;font-weight:600;line-height:1.3;overflow:hidden}.row__meta{color:var(--muted);white-space:nowrap;flex:none;font-size:13px}.row[aria-pressed=true]{background:var(--gold-soft)}.row[aria-pressed=true] .row__name,.row[aria-pressed=true] .row__meta,.row[aria-pressed=true] .row__no{color:var(--gold-l)}@media (hover:hover){.row[aria-pressed=false]:hover{background:var(--hover)}}.empty{padding:var(--s5) var(--s2);text-align:center;align-items:center}.empty__title{font-family:var(--f-head);font-size:var(--fs-md);font-weight:700}.empty__text{font-size:var(--fs-md);color:var(--muted);font-style:italic}.switch{align-items:center;gap:var(--s3);cursor:pointer;min-height:40px;font-size:var(--fs-md);display:flex}.switch input{appearance:none;cursor:pointer;width:38px;height:22px;transition:background-color var(--t-fast) var(--ease-out);background:#ffffff24;border-radius:11px;flex:none;margin:0;position:relative}.switch input:before{content:"";background:var(--muted);width:16px;height:16px;transition:transform var(--t-fast) var(--ease-out), background-color var(--t-fast) var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked{background:#d9b45a66}.switch input:checked:before{background:var(--gold-l);transform:translate(16px)}.slider{--pct:50%;isolation:isolate;align-items:center;column-gap:var(--s2);background:linear-gradient(90deg, transparent calc(var(--pct) - 2px), var(--gold) calc(var(--pct) - 2px), var(--gold) var(--pct), transparent var(--pct)), linear-gradient(90deg, #d9b45a33 var(--pct), #00000047 var(--pct));height:44px;transition:box-shadow var(--t-fast) var(--ease-out);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;padding:0 6px 0 14px;display:grid;position:relative;overflow:hidden}.slider__label{z-index:2;pointer-events:none;font-size:var(--fs-md);color:var(--text);text-overflow:ellipsis;white-space:nowrap;line-height:1.2;position:relative;overflow:hidden}.slider>input[type=range]{z-index:1;opacity:0;cursor:ew-resize;width:100%;height:100%;margin:0;position:absolute;inset:0}.slider__num{z-index:3;border-radius:var(--r-sm);text-align:right;width:52px;height:32px;font-family:var(--f-head);color:var(--gold-l);font-variant-numeric:tabular-nums;appearance:textfield;cursor:text;transition:background-color var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out);background:0 0;border:0;padding:0 8px;font-size:15px;font-weight:700;position:relative}.slider__num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.slider__num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.slider__num:focus{text-align:center;box-shadow:inset 0 0 0 1px var(--gold-l);background:#0a0712b3;outline:none}.slider:focus-within{box-shadow:0 0 0 1px var(--gold-l)}.slider:has(input:disabled){opacity:.45}.slider:has(input:disabled)>input[type=range]{cursor:not-allowed}.slider:active:not(:has(input:disabled)){background:linear-gradient(90deg, transparent calc(var(--pct) - 2px), var(--gold-l) calc(var(--pct) - 2px), var(--gold-l) var(--pct), transparent var(--pct)), linear-gradient(90deg, #d9b45a4d var(--pct), #00000052 var(--pct))}@media (hover:hover){.slider:hover:not(:has(input:disabled)){background:linear-gradient(90deg, transparent calc(var(--pct) - 2px), var(--gold-l) calc(var(--pct) - 2px), var(--gold-l) var(--pct), transparent var(--pct)), linear-gradient(90deg, #d9b45a42 var(--pct), #00000052 var(--pct))}.slider__num:not(:disabled):not(:focus):hover{background:#0a071273}}.slider-help{margin-top:var(--s2)}.slider>input[type=range]::-webkit-slider-runnable-track{background:0 0;height:100%}.slider>input[type=range]::-webkit-slider-thumb{width:2px;height:44px;box-shadow:none;border:0;margin-top:0}.slider>input[type=range]::-moz-range-thumb{width:2px;height:44px;box-shadow:none;border:0}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:28px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--gold) var(--pct,50%), #ffffff1f var(--pct,50%));border-radius:3px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--gold-l);width:18px;height:18px;box-shadow:0 0 0 1px var(--gold), 0 2px 6px #00000080;transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out);border:3px solid #1a1426;border-radius:50%;margin-top:-6px}input[type=range]::-moz-range-track{background:#ffffff1f;border-radius:3px;height:6px}input[type=range]::-moz-range-progress{background:var(--gold);border-radius:3px;height:6px}input[type=range]::-moz-range-thumb{background:var(--gold-l);width:12px;height:12px;box-shadow:0 0 0 1px var(--gold);transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out);border:3px solid #1a1426;border-radius:50%}@media (hover:hover){input[type=range]:not(:disabled):hover::-webkit-slider-thumb{transform:scale(1.12)}input[type=range]:not(:disabled):hover::-moz-range-thumb{transform:scale(1.12)}}input[type=range]:active::-webkit-slider-thumb{box-shadow:0 0 0 1px var(--gold), 0 0 0 7px #f0d58c2e}input[type=range]:active::-moz-range-thumb{box-shadow:0 0 0 1px var(--gold), 0 0 0 7px #f0d58c2e}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #f0d58c73}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px #f0d58c73}input[type=range]:disabled{opacity:.4;cursor:not-allowed}.field-input{width:100%;height:44px;padding:0 var(--s3);border-radius:var(--r-md);background:var(--sunk);font-family:var(--f-head);font-weight:600;font-size:var(--fs-md);border:0}.field-input:focus{box-shadow:0 0 0 1px var(--gold-l);outline:none}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s4);border-radius:var(--r-md);color:var(--text);font-family:var(--f-head);letter-spacing:.1em;text-transform:uppercase;transition:background-color var(--t-fast) var(--ease-out);background:#ffffff12;border:0;font-size:13px;font-weight:700;display:inline-flex}.btn .i{color:var(--gold-l);width:18px;height:18px}.btn--primary{background:var(--gold);color:#1b1307;box-shadow:inset 0 1px #fff6,0 6px 18px #d9b45a33}.btn--primary .i{color:#1b1307}.btn--big{letter-spacing:.14em;min-height:52px;font-size:14px}.btn--text{color:var(--danger);padding:0 var(--s3);background:0 0}.btn--text .i{color:var(--danger)}.btn:disabled{opacity:.55}.btn--broom{background:linear-gradient(120deg,#7c5cd647,#2b1e5280 55%,#d9b45a2e);position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #f0d58c59}.btn--broom:after{content:"";pointer-events:none;background:radial-gradient(circle at 12% 30%,#ffffff80 0 1px,#0000 1.5px),radial-gradient(circle at 78% 70%,#f0d58cb3 0 1px,#0000 1.5px),radial-gradient(circle at 58% 22%,#fff6 0 1px,#0000 1.5px);position:absolute;inset:0}.btn--broom .i{transition:transform var(--t-fast) var(--ease-out)}.btn--broom .btn__kbd{margin-left:auto}.btn--broom span{margin-right:auto}.btn--broom[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--gold-l), 0 0 22px #f0d58c40;background:linear-gradient(120deg,#f0d58c52,#7c5cd666)}.btn--broom[aria-pressed=true] .i{transform:translateY(-2px)rotate(-8deg)}@media (hover:hover){.btn:not(:disabled):hover{background:#ffffff1f}.btn--primary:not(:disabled):hover{background:var(--gold-l)}.btn--text:not(:disabled):hover{background:#a0353540}.btn--broom:not(:disabled):hover{background:linear-gradient(120deg,#7c5cd666,#2b1e528c 55%,#d9b45a42)}.btn--broom:not(:disabled):hover .i{transform:translateY(-2px)rotate(-8deg)}}.keys-pad{grid-template-rows:repeat(2,44px);grid-template-columns:repeat(3,44px);gap:4px;display:grid}.key{border-radius:var(--r-sm);font-family:var(--f-head);font-weight:700;font-size:var(--fs-md);color:var(--gold-l);transition:transform 90ms var(--ease-out), background-color 90ms var(--ease-out);background:#ffffff12;border:0;justify-content:center;align-items:center;display:inline-flex;box-shadow:inset 0 -2px #00000059}.key--w{grid-column:2}.key--a{grid-area:2/1}.key--s{grid-area:2/2}.key--d{grid-area:2/3}.key.is-down{background:var(--gold);color:#1b1307;box-shadow:none;transform:translateY(2px)}.bottom{justify-content:flex-end;align-items:center;gap:var(--s3);flex-direction:column;grid-area:bottom;min-width:0;display:flex}.bottom__part{align-items:center;gap:var(--s3);max-width:100%;animation:paneIn var(--t-med) var(--ease-out);flex-direction:column;display:flex}.ribbon{align-items:center;gap:var(--s3);background:var(--parch);max-width:100%;color:var(--parch-ink);clip-path:polygon(0 0,100% 0,calc(100% - 16px) 50%,100% 100%,0 100%,16px 50%);filter:drop-shadow(0 6px 14px #00000073);font-family:var(--f-head);padding:10px 40px;display:flex}.ribbon .i{color:var(--rune-on-parch)}.ribbon__name{font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;font-weight:700}.ribbon__meta{font-size:var(--fs-sm);white-space:nowrap;font-weight:600}.ribbon__gem{background:var(--gold-d);flex:none;width:7px;height:7px;transform:rotate(45deg)}.ribbon__key{font-size:var(--fs-sm);white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:flex}.ribbon kbd{color:var(--parch-ink);background:#2a1d101a}.ribbon.is-flash{animation:ribbonFlash .3s var(--ease-out)}@keyframes ribbonFlash{40%{transform:scale(1.04)}}.ribbon--gen{min-width:min(440px,100%);padding:12px 44px}.ribbon--mus{padding:6px 32px}.rbtn{width:44px;height:44px;color:var(--parch-ink);transition:background-color var(--t-fast) var(--ease-out);background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.rbtn .i{color:var(--parch-ink)}.rbtn:focus-visible{outline-color:var(--parch-ink);outline-offset:-2px}@media (hover:hover){.rbtn:hover{background:#2a1d101a}}.bar{background:#2a1d1029;border-radius:3px;height:6px;overflow:hidden}.bar>i{background:linear-gradient(90deg, var(--gold-d), var(--amber));transform-origin:0;height:100%;display:block;transform:scaleX(0)}.hotbar{scrollbar-width:none;border-radius:var(--r-lg);background:var(--surface);max-width:100%;box-shadow:var(--shadow);gap:4px;padding:6px;display:flex;overflow-x:auto}.hotbar::-webkit-scrollbar{display:none}.slot{width:48px;height:48px;color:var(--cat-c);transition:background-color var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out);background:0 0;border:0;border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex;position:relative}.slot .i{width:22px;height:22px}.slot__key{font-family:var(--f-head);color:var(--muted);font-size:10px;font-weight:700;line-height:1;position:absolute;top:3px;left:6px}.slot[aria-pressed=true]{background:var(--gold-soft);box-shadow:0 0 0 1px var(--gold-l), 0 0 16px #f0d58c4d;transform:translateY(-2px)}.slot[aria-pressed=true] .slot__key{color:var(--gold-l)}@media (hover:hover){.slot[aria-pressed=false]:hover{background:var(--hover)}}.statline{font-size:var(--fs-sm);color:#ece3f2;text-shadow:0 1px 2px #000000e6,0 0 12px #000c;text-align:center;font-weight:500}.mark{place-self:end;align-items:center;gap:var(--s3);height:48px;padding:0 var(--s5) 0 20px;border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow);color:var(--muted);transition:background-color var(--t-fast) var(--ease-out);grid-area:mark;text-decoration:none;display:flex}.mark__cap{font-family:var(--f-head);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:700}.mark img{width:auto;height:26px;display:block}@media (hover:hover){.mark:hover{background:#1e162aeb}.mark:hover .mark__cap{color:var(--gold-l)}}dialog{color:var(--text);background:0 0;border:0;width:100%;max-width:min(480px,100vw - 32px);padding:0}dialog::backdrop{background:#08060e99}dialog[open]{animation:dlgIn var(--t-med) var(--ease-out)}@keyframes dlgIn{0%{opacity:0;transform:translateY(10px)scale(.98)}}.dlg{padding:var(--s5);border-radius:var(--r-lg);box-shadow:var(--shadow);background:#161020f7}.dlg__title{font-family:var(--f-head);font-size:var(--fs-lg);color:var(--gold-l);font-weight:700;line-height:1.3}.dlg__text{margin-top:var(--s2)}.dlg__actions{margin-top:var(--s5);justify-content:flex-end;gap:var(--s2);flex-wrap:wrap;display:flex}.keys{margin-top:var(--s3);max-height:min(60vh,520px);overflow-y:auto}.keys__row{padding:var(--s2) 0;font-size:var(--fs-md)}.keys__combo{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.toast{z-index:30;align-items:center;gap:var(--s2);max-width:calc(100vw - 32px);padding:10px var(--s4);border-radius:var(--r-pill);box-shadow:var(--shadow);font-family:var(--f-head);font-size:var(--fs-sm);letter-spacing:.03em;opacity:0;pointer-events:none;transition:opacity var(--t-exit) var(--ease-in), transform var(--t-exit) var(--ease-in);background:#161020f2;font-weight:600;display:flex;position:fixed;top:88px;left:50%;transform:translate(-50%,-8px)}.toast .i{color:var(--gold-l);width:18px;height:18px}.toast.is-on{opacity:1;transition:opacity var(--t-med) var(--ease-out), transform var(--t-med) var(--ease-out);transform:translate(-50%)}.show-ui{z-index:30;opacity:0;pointer-events:none;transition:opacity var(--t-exit) var(--ease-in);background:#161020f2;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}body.ui-hidden .show-ui.is-on{opacity:1;pointer-events:auto;transition:opacity var(--t-med) var(--ease-out)}@media (width<=1100px){.hud{grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"book.top""book tabs tabs""book center center""book bottom mark"}}@media (width<=1023px){:root{--hud-pad:16px;--book-w:290px}.hud{gap:var(--s3) var(--s4)}.tab{letter-spacing:.08em;padding:0 12px}.mark{padding:0 var(--s4)}.mark__cap{display:none}}@media (width<=760px){:root{--hud-pad:12px}.hud{gap:var(--s2);grid-template:".top""tabs tabs""center center"minmax(0,1fr)"bottom bottom""book book"/minmax(0,1fr) auto;height:100dvh}.brand__sub,.top__extra,.top__sep,.mark{display:none}.logo__mark{width:34px;height:34px}.logo__magic{font-size:24px}.logo__school{font-size:9px}.book__chapter{padding-top:var(--s3)}.ibtn{width:44px;height:44px}.tabs{justify-content:space-between;justify-self:stretch}.tab{letter-spacing:.04em;flex:1 1 0;height:44px;padding:0 4px;font-size:12px}.book{max-height:44dvh}.book__head{padding:var(--s3) var(--s4) 0}.book__chapter{padding-left:var(--s4);padding-right:var(--s4)}.book__toggle{width:44px;height:44px;display:inline-flex}body.book-collapsed .book .pane{display:none}.pane__top,.pane__foot,.pane__body--pad{padding-left:var(--s4);padding-right:var(--s4)}.pane__body{padding-left:var(--s2);padding-right:var(--s2)}.chips{--od-rail-pad:16px;margin:0 calc(-1 * var(--s4))}.ribbon{gap:var(--s2);padding:8px 28px}.ribbon__key,.ribbon__gem{display:none}.ribbon__name{font-size:var(--fs-sm)}.ribbon--gen{width:100%;min-width:0}.slot{width:44px;height:44px}.statline{display:none}.toast{top:auto;bottom:calc(44dvh + 24px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.tags{pointer-events:none;position:absolute;inset:0}.tag{color:var(--parch-ink);font-family:var(--f-head);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;transition:opacity var(--t-fast) var(--ease-out), background-color var(--t-fast) var(--ease-out);pointer-events:auto;cursor:pointer;background:#efe3c4db;border:0;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:700;position:absolute;top:0;left:0;transform:translate(-50%,-100%);box-shadow:0 3px 8px #00000059}@media (hover:hover){.tag:hover{background:var(--gold-l);opacity:1!important}}.tag.is-current{pointer-events:none;opacity:0!important}body:not(.labels-on) .tags,body:not([data-mode=museum]) .tags{display:none}.hint{font-family:var(--f-head);font-size:var(--fs-sm);letter-spacing:.04em;color:var(--gold-l);text-shadow:0 1px 2px #000000e6,0 0 12px #000c;font-weight:600}.hint:empty{display:none}.veil{z-index:40;align-content:center;place-items:center;gap:var(--s3);background:var(--ink);color:var(--muted);font-family:var(--f-head);font-size:var(--fs-sm);letter-spacing:.12em;text-transform:uppercase;transition:opacity .6s var(--ease-out);display:grid;position:fixed;inset:0}.veil .logo__mark{width:64px;height:64px}.veil.is-off{opacity:0;pointer-events:none}.renderer-badge{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);opacity:.7;font-size:11px}
