:root {
    --gr-night: #090807;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--gr-night); }
body {
    min-height: 100vh;
    margin: 0;
    overflow-x: hidden;
    background: var(--gr-night);
    color: #efe3c2;
    font-family: Georgia, 'Times New Roman', serif;
}

.gr-home {
    min-height: 100svh;
    display: grid;
    place-items: center;
    background: #000;
}

.gr-chamber-shell {
    width: 100%;
    min-height: 100svh;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #000;
}

.gr-chamber-stage {
    position: relative;
    width: min(100vw, calc(100svh * (16 / 9)));
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #000;
    isolation: isolate;
}

.gr-chamber-base {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
    user-select: none;
    -webkit-user-drag: none;
}

.gr-hotspot-layer {
    position: absolute;
    inset: 0;
    z-index: 10;
    pointer-events: none;
}

.gr-hotspot {
    position: absolute;
    z-index: 20;
    margin: 0;
    padding: 0;
    border: 0;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    pointer-events: auto;
}

/* Lexicon interactive area. Coordinates follow the same 2048 × 1152 master stage. */
.gr-hotspot-lexicon {
    left: 69.82%;
    top: 37.15%;
    width: 21.83%;
    height: 38.5%;
}

/* Hover illumination is rendered from the exact homepage master itself.
   This prevents any geometry shift when the hover state appears. */
.gr-hover-overlay {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    opacity: 0;
    transition: opacity 130ms ease;
}

.gr-hover-overlay-lexicon {
    z-index: 15;
    filter: brightness(1.075);
    /* Tight silhouette around the lectern/book assembly; coordinates are
       percentages of the 2048 × 1152 authoritative homepage master. */
    clip-path: polygon(
        72.1% 38.0%,
        84.6% 37.0%,
        88.6% 41.2%,
        90.6% 49.0%,
        89.0% 58.2%,
        84.0% 60.2%,
        83.1% 72.0%,
        86.4% 82.8%,
        86.0% 94.3%,
        80.7% 97.0%,
        75.5% 95.5%,
        74.6% 82.5%,
        75.1% 70.5%,
        71.1% 61.0%,
        68.4% 58.0%,
        68.3% 48.0%
    );
}

.gr-hotspot-lexicon:hover + .gr-hover-overlay-lexicon,
.gr-hotspot-lexicon:focus-visible + .gr-hover-overlay-lexicon {
    opacity: 1;
}

.gr-hotspot:focus-visible {
    outline: 2px solid rgba(221, 190, 112, 0.92);
    outline-offset: 4px;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.admin-bar .gr-home { min-height: calc(100svh - 32px); }
.admin-bar .gr-chamber-shell { min-height: calc(100svh - 32px); }
.admin-bar .gr-chamber-stage {
    width: min(100vw, calc((100svh - 32px) * (16 / 9)));
}

@media (max-width: 782px) {
    .admin-bar .gr-home { min-height: calc(100svh - 46px); }
    .admin-bar .gr-chamber-shell { min-height: calc(100svh - 46px); }
    .admin-bar .gr-chamber-stage {
        width: min(100vw, calc((100svh - 46px) * (16 / 9)));
    }
}

.gr-content {
    width: min(900px, calc(100% - 3rem));
    margin: 5rem auto;
}

/* v0.8.0 — Lexicon menu opening interaction. */
.gr-lexicon-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 420ms ease, visibility 0s linear 420ms;
}

.gr-lexicon-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.gr-lexicon-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    appearance: none;
    -webkit-appearance: none;
    background: rgba(0, 0, 0, 0.74);
    cursor: default;
}

.gr-lexicon-panel {
    position: relative;
    z-index: 1;
    width: min(92vw, calc(88svh * (10 / 7)));
    aspect-ratio: 10 / 7;
    transform: scale(0.78) translateY(1.2%);
    transform-origin: center center;
    opacity: 0;
    filter: brightness(0.88);
    transition:
        transform 680ms cubic-bezier(0.2, 0.78, 0.2, 1),
        opacity 360ms ease,
        filter 680ms ease;
    pointer-events: auto;
}

.gr-lexicon-menu-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}

.gr-lexicon-modal.is-open {
    opacity: 1;
}

.gr-lexicon-modal.is-open .gr-lexicon-panel {
    transform: scale(1) translateY(0);
    opacity: 1;
    filter: brightness(1);
}

body.gr-lexicon-open {
    overflow: hidden;
}


/* v0.8.1 — first Lexicon-menu hotspot: TRIALS hover only. */
.gr-menu-hotspot {
    position: absolute;
    z-index: 4;
    margin: 0;
    padding: 0;
    border: 0;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    pointer-events: auto;
}

.gr-menu-hotspot-trials {
    left: 22.8%;
    top: 18.3%;
    width: 24.0%;
    height: 10.2%;
}

.gr-menu-hover-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    opacity: 0;
    transition: opacity 130ms ease;
}

.gr-menu-hover-overlay-trials {
    filter: brightness(1.075);
    clip-path: polygon(
        24.0% 19.3%,
        45.5% 19.3%,
        45.5% 27.4%,
        24.0% 27.4%
    );
}

.gr-menu-hotspot-trials:hover + .gr-menu-hover-overlay-trials,
.gr-menu-hotspot-trials:focus-visible + .gr-menu-hover-overlay-trials {
    opacity: 1;
}

.gr-menu-hotspot:focus-visible {
    outline: 2px solid rgba(98, 66, 30, 0.75);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .gr-lexicon-modal,
    .gr-lexicon-panel {
        transition-duration: 1ms !important;
    }
}

/* v0.8.2 — complete Lexicon menu hover map and Founding Trials entrance shell. */
.gr-menu-hotspot-heritage {
    left: 23.4%;
    top: 9.2%;
    width: 23.8%;
    height: 8.6%;
}
.gr-menu-hotspot-great-library {
    left: 18.0%;
    top: 28.8%;
    width: 31.5%;
    height: 10.0%;
}
.gr-menu-hotspot-chronicle {
    left: 56.6%;
    top: 9.2%;
    width: 26.8%;
    height: 8.6%;
}
.gr-menu-hotspot-great-hall {
    left: 57.8%;
    top: 18.2%;
    width: 24.7%;
    height: 10.2%;
}
.gr-menu-hotspot-enquiries {
    left: 58.8%;
    top: 28.8%;
    width: 23.5%;
    height: 10.0%;
}

.gr-menu-hover-overlay-heritage,
.gr-menu-hover-overlay-trials,
.gr-menu-hover-overlay-great-library,
.gr-menu-hover-overlay-chronicle,
.gr-menu-hover-overlay-great-hall,
.gr-menu-hover-overlay-enquiries {
    filter: brightness(1.075);
}
.gr-menu-hover-overlay-heritage {
    clip-path: polygon(23.7% 10.0%, 46.6% 10.0%, 46.6% 17.0%, 23.7% 17.0%);
}
.gr-menu-hover-overlay-great-library {
    clip-path: polygon(18.8% 29.5%, 48.6% 29.5%, 48.6% 37.5%, 18.8% 37.5%);
}
.gr-menu-hover-overlay-chronicle {
    clip-path: polygon(57.1% 10.0%, 82.5% 10.0%, 82.5% 17.0%, 57.1% 17.0%);
}
.gr-menu-hover-overlay-great-hall {
    clip-path: polygon(58.2% 19.2%, 81.8% 19.2%, 81.8% 27.3%, 58.2% 27.3%);
}
.gr-menu-hover-overlay-enquiries {
    clip-path: polygon(59.2% 29.6%, 81.4% 29.6%, 81.4% 37.6%, 59.2% 37.6%);
}

.gr-menu-hotspot-heritage:hover + .gr-menu-hover-overlay-heritage,
.gr-menu-hotspot-heritage:focus-visible + .gr-menu-hover-overlay-heritage,
.gr-menu-hotspot-great-library:hover + .gr-menu-hover-overlay-great-library,
.gr-menu-hotspot-great-library:focus-visible + .gr-menu-hover-overlay-great-library,
.gr-menu-hotspot-chronicle:hover + .gr-menu-hover-overlay-chronicle,
.gr-menu-hotspot-chronicle:focus-visible + .gr-menu-hover-overlay-chronicle,
.gr-menu-hotspot-great-hall:hover + .gr-menu-hover-overlay-great-hall,
.gr-menu-hotspot-great-hall:focus-visible + .gr-menu-hover-overlay-great-hall,
.gr-menu-hotspot-enquiries:hover + .gr-menu-hover-overlay-enquiries,
.gr-menu-hotspot-enquiries:focus-visible + .gr-menu-hover-overlay-enquiries {
    opacity: 1;
}


/* v0.8.5 — Trials book typography/layout aligned to established Raven book assets. */
.gr-trials-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 360ms ease, visibility 0s linear 360ms;
}
.gr-trials-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-trials-modal.is-open { opacity: 1; }
.gr-trials-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.82);
}
.gr-trials-book {
    position: relative;
    z-index: 1;
    width: min(94vw, calc(90svh * (10 / 7)));
    aspect-ratio: 10 / 7;
    color: #1d120b;
    transform: scale(.96) translateY(12px);
    opacity: 0;
    transition: transform 520ms cubic-bezier(.2,.78,.2,1), opacity 320ms ease;
}
.gr-trials-modal.is-open .gr-trials-book {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-trials-book-image {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
}
.gr-trials-book-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    pointer-events: none;
}
.gr-trials-page {
    position: relative;
    min-width: 0;
    pointer-events: auto;
}
.gr-trials-page-left { padding: 8.0% 7.4% 8.2% 10.2%; }
.gr-trials-page-right { padding: 8.0% 10.2% 8.2% 7.4%; }
.gr-trials-page-header {
    height: 12.5%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    text-align: center;
}
.gr-trials-page h1 {
    margin: 0;
    font-family: 'Cinzel', Georgia, serif;
    font-size: clamp(2.05rem, 3.45vw, 3.5rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: .035em;
    transform: translateY(.58em);
}
.gr-trials-list {
    display: grid;
    grid-template-rows: repeat(5, minmax(0, 1fr));
    gap: 0;
    height: 67%;
    margin-top: 0;
}
.gr-trials-page-right .gr-trials-list {
    margin-top: 12.5%;
}
.gr-trial-entry {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 0;
    padding: .15em 4%;
    text-align: center;
    cursor: default;
}
.gr-trial-label {
    margin: 0 0 .22em;
    font-family: 'Cinzel', Georgia, serif;
    font-size: clamp(.52rem, .73vw, .73rem);
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #120b06;
    opacity: 1;
}
.gr-trial-entry h2 {
    margin: 0;
    font-family: 'Cormorant Garamond', Garamond, Georgia, serif;
    font-size: clamp(1.08rem, 1.72vw, 1.70rem);
    line-height: 1.02;
    font-weight: 600;
    letter-spacing: .005em;
}
.gr-trial-difficulty {
    margin: .30em 0 0;
    font-family: 'Cormorant Garamond', Garamond, Georgia, serif;
    font-size: clamp(.69rem, .90vw, .90rem);
    line-height: 1;
    font-weight: 600;
    letter-spacing: .055em;
    font-variant: small-caps;
    color: #24160d;
    opacity: 1;
}
.gr-return-lexicon {
    position: absolute;
    left: 50%;
    bottom: 14.0%;
    transform: translateX(-50%);
    z-index: 5;
    margin: 0;
    padding: .50em .82em;
    border: 0;
    background: transparent;
    color: #120b06;
    font-family: 'Cinzel', Georgia, serif;
    font-size: clamp(.64rem, .88vw, .90rem);
    font-weight: 600;
    letter-spacing: .12em;
    white-space: nowrap;
    cursor: pointer;
    opacity: 1;
    transition: opacity 130ms ease, text-shadow 130ms ease, filter 130ms ease;
}
.gr-return-lexicon:hover,
.gr-return-lexicon:focus-visible {
    opacity: 1;
    filter: brightness(1.16);
    text-shadow: 0 0 10px rgba(113,72,28,.35);
}
.gr-return-lexicon:focus-visible {
    outline: 1px solid rgba(76,45,20,.55);
    outline-offset: 4px;
}

/* v0.8.15 — NEXT PAGE now matches RETURN TO LEXICON visual strength; inactive behaviour retained.
   v0.8.14 — NEXT PAGE contrast correction only; inactive state retained.
   v0.8.13 — secondary text contrast correction: stronger Trial labels and navigation text.
   v0.8.12 — strengthened secondary text contrast while preserving hierarchy.
   NEXT PAGE remains visibly inactive.

   v0.8.11 — use the same proven text-control approach as Return to Lexicon.
   The next-spread control is deliberately visible but inactive until Trial 11 exists. */
.gr-trials-next-spread {
    position: absolute;
    left: 50%;
    bottom: 14.0%;
    transform: translateX(-50%);
    z-index: 7;
    margin: 0;
    padding: .50em .82em;
    border: 0;
    background: transparent;
    color: #120b06;
    font-family: 'Cinzel', Georgia, serif;
    font-size: clamp(.64rem, .88vw, .90rem);
    font-weight: 600;
    letter-spacing: .12em;
    white-space: nowrap;
    cursor: pointer;
    opacity: 1 !important;
    pointer-events: auto;
}
.gr-trials-next-spread:disabled {
    color: #120b06;
    -webkit-text-fill-color: #120b06;
    opacity: 1 !important;
    cursor: default;
    pointer-events: none;
}

body.gr-trials-open { overflow: hidden; }

@media (max-width: 760px) {
    .gr-trials-book { width: min(98vw, calc(82svh * (10 / 7))); }
    .gr-trials-page-left { padding-left: 9.8%; padding-right: 6.8%; }
    .gr-trials-page-right { padding-right: 9.8%; padding-left: 6.8%; }
    .gr-trial-entry h2 { font-size: clamp(.76rem, 2.45vw, 1.05rem); }
    .gr-trial-label { font-size: clamp(.38rem, 1.10vw, .54rem); }
    .gr-trial-difficulty { font-size: clamp(.44rem, 1.15vw, .58rem); }
}

@media (prefers-reduced-motion: reduce) {
    .gr-lexicon-modal,
    .gr-lexicon-panel,
    .gr-trials-modal,
    .gr-trials-panel { transition-duration: 1ms !important; }
}

/* v0.9.0 — Trial 01 Face Value complete Question/Reveal prototype. */
.gr-trial-entry-active { cursor: pointer; border-radius: 3px; transition: filter 130ms ease, text-shadow 130ms ease; }
.gr-trial-entry-active:hover, .gr-trial-entry-active:focus-visible { filter: brightness(.78); text-shadow: 0 0 10px rgba(113,72,28,.20); outline: none; }
.gr-trial-modal { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity 320ms ease, visibility 0s linear 320ms; }
.gr-trial-modal[aria-hidden="false"] { visibility: visible; pointer-events: auto; transition-delay: 0s; }
.gr-trial-modal.is-open { opacity: 1; }
.gr-trial-backdrop { position: absolute; inset: 0; z-index: 0; border: 0; padding: 0; background: rgba(0,0,0,.86); cursor: default; }
.gr-trial-stage { position: relative; z-index: 1; width: min(94vw, calc(90svh * (10 / 7))); aspect-ratio: 10 / 7; transform: scale(.97) translateY(10px); opacity: 0; transition: transform 460ms cubic-bezier(.2,.78,.2,1), opacity 280ms ease; }
.gr-trial-modal.is-open .gr-trial-stage { transform: scale(1) translateY(0); opacity: 1; }
.gr-trial-art { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.gr-trial-reveal-art { opacity: 0; pointer-events: none; transition: opacity 260ms ease; }
.gr-trial-stage.is-revealed .gr-trial-question-art { opacity: 0; pointer-events: none; }
.gr-trial-stage.is-revealed .gr-trial-reveal-art { opacity: 1; }
.gr-trial-hotspot { position: absolute; z-index: 5; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
/* REVEAL inscription on the lower left page of the supplied Question master. */
.gr-trial-reveal-hotspot { left: 19.0%; top: 79.0%; width: 20.0%; height: 9.0%; }
/* RETURN TO TRIAL inscription on the lower left page of the supplied Reveal master. */
.gr-trial-return-hotspot { left: 14.0%; top: 79.0%; width: 29.0%; height: 9.0%; }
.gr-trial-hotspot:focus-visible { outline: 2px solid rgba(92,54,24,.72); outline-offset: 3px; }
body.gr-trial-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .gr-trial-modal, .gr-trial-stage, .gr-trial-reveal-art { transition-duration: 1ms !important; } }

/* v0.9.7 — approved responsive Trial artwork viewer with reliable close controls for Trials 01–10. */
.gr-trial-artwork-hotspot {
    left: 53.75%;
    top: 13.9%;
    width: 35.5%;
    height: 72.0%;
    cursor: zoom-in;
}
.gr-trial-artwork-zoom {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
    transition: opacity 260ms ease, visibility 0s linear 260ms;
}
.gr-trial-artwork-zoom[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-trial-artwork-zoom.is-open { opacity: 1; }
.gr-trial-artwork-zoom-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    padding: 0;
    background: rgba(0,0,0,.94);
    cursor: zoom-out;
}
.gr-trial-artwork-zoom-panel {
    position: relative;
    z-index: 1;
    margin: 0;
    width: min(98vw, 1400px);
    height: 98svh;
    display: grid;
    place-items: center;
    overflow: hidden;
    transform: scale(.975);
    opacity: 0;
    touch-action: none;
    transition: transform 340ms cubic-bezier(.2,.78,.2,1), opacity 220ms ease;
}
.gr-trial-artwork-zoom.is-open .gr-trial-artwork-zoom-panel {
    transform: scale(1);
    opacity: 1;
}

.gr-trial-artwork-zoom-close {
    position: fixed;
    top: max(14px, env(safe-area-inset-top));
    right: max(16px, env(safe-area-inset-right));
    z-index: 3;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(238,224,190,.72);
    border-radius: 50%;
    background: rgba(18,14,10,.72);
    color: #eee0be;
    font-family: Georgia, serif;
    font-size: 34px;
    line-height: 40px;
    text-align: center;
    cursor: pointer;
    box-shadow: 0 4px 20px rgba(0,0,0,.35);
}
.gr-trial-artwork-zoom-close:hover,
.gr-trial-artwork-zoom-close:focus-visible {
    background: rgba(42,31,20,.92);
    outline: 2px solid rgba(238,224,190,.75);
    outline-offset: 2px;
}
.gr-trial-artwork-zoom-image {
    display: block;
    width: auto;
    height: auto;
    max-width: 98vw;
    max-height: 98svh;
    object-fit: contain;
    box-shadow: 0 18px 70px rgba(0,0,0,.55);
    user-select: none;
    -webkit-user-drag: none;
    touch-action: none;
    transform-origin: center center;
    will-change: transform;
}
.gr-trial-artwork-zoom-image.is-zoomed { cursor: grab; }
.gr-trial-artwork-zoom-image.is-dragging { cursor: grabbing; }
body.gr-trial-artwork-zoom-open { overflow: hidden; overscroll-behavior: none; }
@media (max-width: 700px) {
    .gr-trial-artwork-zoom-panel { width: 100vw; height: 100svh; }
    .gr-trial-artwork-zoom-image { max-width: 100vw; max-height: 100svh; }
}
@media (prefers-reduced-motion: reduce) {
    .gr-trial-artwork-zoom,
    .gr-trial-artwork-zoom-panel { transition-duration: 1ms !important; }
}

/* v0.10.0 — Trial Manager integration and dynamic archive pagination. */
.gr-trials-next-spread:not(:disabled) {
    cursor: pointer;
    pointer-events: auto;
}
.gr-trials-next-spread:not(:disabled):hover,
.gr-trials-next-spread:not(:disabled):focus-visible {
    filter: brightness(1.16);
    text-shadow: 0 0 10px rgba(113,72,28,.35);
    outline: none;
}
.gr-trials-next-spread:not(:disabled):focus-visible {
    outline: 1px solid rgba(76,45,20,.55);
    outline-offset: 4px;
}
.gr-trials-prev-spread {
    position: absolute;
    left: 34%;
    bottom: 14.0%;
    transform: translateX(-50%);
    z-index: 7;
    margin: 0;
    padding: .50em .82em;
    border: 0;
    background: transparent;
    color: #120b06;
    font-family: 'Cinzel', Georgia, serif;
    font-size: clamp(.64rem, .88vw, .90rem);
    font-weight: 600;
    letter-spacing: .12em;
    white-space: nowrap;
    cursor: pointer;
    opacity: 1;
}
.gr-trials-prev-spread:hover,
.gr-trials-prev-spread:focus-visible {
    filter: brightness(1.16);
    text-shadow: 0 0 10px rgba(113,72,28,.35);
}
.gr-trials-prev-spread:focus-visible {
    outline: 1px solid rgba(76,45,20,.55);
    outline-offset: 4px;
}
.gr-trials-prev-spread[hidden] { display: none !important; }
.gr-trial-reveal-hotspot:disabled {
    cursor: default;
    pointer-events: none;
}


/* v0.10.1 — dynamic page-turn activation correction.
   Explicit class/ARIA state wins over the legacy launch-state styling. */
.gr-trials-next-spread.is-active {
    cursor: pointer !important;
    pointer-events: auto !important;
}
.gr-trials-next-spread[aria-disabled="true"] {
    cursor: default !important;
    pointer-events: none !important;
}


/* v0.10.2 — secondary spread navigation correction.
   On later spreads PREVIOUS PAGE and RETURN TO LEXICON share the lower-left parchment
   at the same vertical level, with deliberate horizontal separation. */
.gr-trials-book-content.has-previous-spread .gr-return-lexicon {
    left: 66%;
    bottom: 14.0%;
}
.gr-trials-book-content.has-previous-spread .gr-trials-prev-spread {
    left: 34%;
    bottom: 14.0%;
}

/* v0.11.0 — Great Library modal and first controlled resource hotspots. */
.gr-great-library-modal {
    position: fixed;
    inset: 0;
    z-index: 1120;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 360ms ease, visibility 0s linear 360ms;
}
.gr-great-library-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-great-library-modal.is-open { opacity: 1; }
.gr-great-library-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.82);
    cursor: default;
}
.gr-great-library-book {
    position: relative;
    z-index: 1;
    width: min(94vw, calc(90svh * (1458 / 1020)));
    aspect-ratio: 1458 / 1020;
    transform: scale(.96) translateY(12px);
    opacity: 0;
    transition: transform 520ms cubic-bezier(.2,.78,.2,1), opacity 320ms ease;
}
.gr-great-library-modal.is-open .gr-great-library-book {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-great-library-book-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
}
body.gr-great-library-open { overflow: hidden; }
.gr-library-link {
    position: absolute;
    z-index: 3;
    display: block;
    border-radius: 4px;
    background: rgba(255,244,200,0);
    cursor: pointer;
    transition: background 130ms ease, box-shadow 130ms ease, filter 130ms ease;
}
.gr-library-link:hover,
.gr-library-link:focus-visible {
    background: rgba(255,244,200,.19);
    box-shadow: 0 0 18px rgba(232,198,111,.20);
    outline: none;
}
.gr-library-link:focus-visible {
    outline: 1px solid rgba(85,51,20,.65);
    outline-offset: 2px;
}
/* Coordinates follow the 1458 × 1020 Great Library master. */
.gr-library-link-wikipedia { left: 21.0%; top: 19.0%; width: 26.0%; height: 8.0%; }
.gr-library-link-nasa { left: 25.0%; top: 29.5%; width: 18.0%; height: 8.0%; }
.gr-library-link-on-this-day { left: 18.5%; top: 39.0%; width: 29.0%; height: 8.0%; }
.gr-library-link-youtube { left: 22.0%; top: 49.0%; width: 23.0%; height: 8.0%; }
.gr-library-link-google { left: 23.5%; top: 59.0%; width: 21.0%; height: 8.0%; }
.gr-library-link-gutenberg { left: 19.8%; top: 68.5%; width: 29.0%; height: 8.5%; }
.gr-library-link-archive-org { left: 18.0%; top: 79.0%; width: 31.0%; height: 8.0%; }
.gr-library-link-calculator { left: 58.0%; top: 19.0%; width: 26.0%; height: 8.0%; }
.gr-library-link-solvecipher { left: 59.0%; top: 49.0%; width: 25.0%; height: 8.0%; }
.gr-library-link-collins { left: 60.0%; top: 58.5%; width: 22.5%; height: 8.0%; }
.gr-library-link-word-finder { left: 56.0%; top: 69.0%; width: 30.0%; height: 8.0%; }
.gr-library-link-chatgpt { left: 60.0%; top: 79.0%; width: 22.0%; height: 8.0%; }

@media (prefers-reduced-motion: reduce) {
    .gr-great-library-modal,
    .gr-great-library-book { transition-duration: 1ms !important; }
}

/* v0.11.2 — integrated Great Library Unit Converter and Translator shells. */
.gr-library-link-unit-converter { left: 57.0%; top: 29.3%; width: 29.0%; height: 8.2%; border: 0; padding: 0; }
.gr-library-link-translator { left: 59.0%; top: 39.2%; width: 25.0%; height: 8.0%; border: 0; padding: 0; }
.gr-library-tool-modal {
    position: fixed;
    inset: 0;
    z-index: 1180;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 260ms ease, visibility 0s linear 260ms;
}
.gr-library-tool-modal[aria-hidden="false"] { visibility: visible; pointer-events: auto; transition-delay: 0s; }
.gr-library-tool-modal.is-open { opacity: 1; }
.gr-library-tool-backdrop { position: absolute; inset: 0; border: 0; background: rgba(0,0,0,.72); }
.gr-library-tool-panel {
    position: relative;
    z-index: 1;
    width: min(720px, 90vw);
    max-height: 88svh;
    overflow: auto;
    padding: clamp(32px, 5vw, 58px);
    border: 1px solid rgba(88,52,22,.48);
    border-radius: 10px 18px 12px 16px;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,225,.32), transparent 36%),
        linear-gradient(104deg, #d7bd83 0%, #ead9a9 46%, #cfb273 100%);
    color: #1d1209;
    box-shadow: 0 24px 80px rgba(0,0,0,.62), inset 0 0 42px rgba(91,52,17,.16);
    transform: scale(.975) translateY(8px);
    transition: transform 300ms cubic-bezier(.2,.78,.2,1);
}
.gr-library-tool-modal.is-open .gr-library-tool-panel { transform: scale(1) translateY(0); }
.gr-library-tool-panel::before {
    content: '';
    position: absolute;
    inset: 8px;
    pointer-events: none;
    border: 1px solid rgba(102,60,22,.20);
    border-radius: inherit;
}
.gr-library-tool-close {
    position: absolute;
    top: 12px;
    right: 16px;
    z-index: 3;
    border: 0;
    background: transparent;
    color: #2a180b;
    font: 34px/1 Georgia, serif;
    cursor: pointer;
}
.gr-library-tool-view h2 {
    margin: 0 0 .3em;
    font-family: 'Cinzel', Georgia, serif;
    font-size: clamp(1.55rem, 4vw, 2.4rem);
    font-weight: 400;
    letter-spacing: .08em;
    text-align: center;
}
.gr-library-tool-intro, .gr-library-tool-note {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.05rem, 2.4vw, 1.28rem);
    line-height: 1.35;
    text-align: center;
}
.gr-library-tool-view label {
    display: grid;
    gap: 6px;
    margin: 16px 0;
    font-family: 'Cinzel', Georgia, serif;
    font-size: .78rem;
    letter-spacing: .08em;
}
.gr-library-tool-view input,
.gr-library-tool-view select,
.gr-library-tool-view textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid rgba(72,42,16,.5);
    border-radius: 4px;
    background: rgba(255,248,220,.56);
    color: #1b1008;
    padding: 10px 12px;
    font: 600 1.08rem/1.25 'Cormorant Garamond', Georgia, serif;
}
.gr-library-tool-view textarea { resize: vertical; min-height: 130px; }
.gr-converter-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.gr-library-tool-result {
    display: block;
    min-height: 1.4em;
    margin: 22px 0 4px;
    text-align: center;
    font: 600 clamp(1.35rem, 3vw, 1.85rem)/1.2 'Cormorant Garamond', Georgia, serif;
}
.gr-library-tool-action {
    display: block;
    margin: 24px auto 6px;
    border: 1px solid rgba(65,39,17,.58);
    background: rgba(73,45,20,.10);
    color: #1e1209;
    padding: 10px 18px;
    font: 400 .86rem/1.2 'Cinzel', Georgia, serif;
    letter-spacing: .10em;
    cursor: pointer;
}
.gr-library-tool-action:hover,
.gr-library-tool-action:focus-visible { background: rgba(73,45,20,.20); outline: 1px solid rgba(65,39,17,.65); outline-offset: 3px; }
body.gr-library-tool-open { overflow: hidden; }
@media (max-width: 620px) {
    .gr-library-tool-panel { width: 92vw; max-height: 92svh; padding: 42px 24px 30px; }
    .gr-converter-grid { grid-template-columns: 1fr; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .gr-library-tool-modal, .gr-library-tool-panel { transition-duration: 1ms !important; }
}


/* v0.12.0 — Heritage book shell and first-level navigation hotspots. */
.gr-heritage-modal {
    position: fixed;
    inset: 0;
    z-index: 1120;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 360ms ease, visibility 0s linear 360ms;
}
.gr-heritage-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-heritage-modal.is-open { opacity: 1; }
.gr-heritage-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.82);
    cursor: default;
}
.gr-heritage-book {
    position: relative;
    z-index: 1;
    width: min(94vw, calc(90svh * (1458 / 1020)));
    aspect-ratio: 1458 / 1020;
    transform: scale(.96) translateY(12px);
    opacity: 0;
    transition: transform 520ms cubic-bezier(.2,.78,.2,1), opacity 320ms ease;
}
.gr-heritage-modal.is-open .gr-heritage-book {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-heritage-book-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
}
body.gr-heritage-open { overflow: hidden; }
.gr-heritage-entry {
    position: absolute;
    z-index: 3;
    border: 0;
    border-radius: 4px;
    padding: 0;
    background: rgba(255,244,200,0);
    cursor: default;
    transition: background 130ms ease, box-shadow 130ms ease;
}
.gr-heritage-entry:hover,
.gr-heritage-entry:focus-visible {
    background: rgba(255,244,200,.19);
    box-shadow: 0 0 18px rgba(232,198,111,.20);
    outline: none;
}
/* Coordinates follow the 1458 × 1020 Heritage master. */
.gr-heritage-entry-lineage { left: 20.5%; top: 8.0%; width: 25.0%; height: 9.0%; }
.gr-heritage-entry-khartes { left: 20.0%; top: 18.5%; width: 26.0%; height: 9.0%; }
.gr-heritage-entry-conventions { left: 16.0%; top: 29.0%; width: 34.0%; height: 10.0%; }
@media (prefers-reduced-motion: reduce) {
    .gr-heritage-modal,
    .gr-heritage-book { transition-duration: 1ms !important; }
}

/* v0.12.1 — Heritage Lineage parchment sequence. */
.gr-lineage-modal {
    position: fixed;
    inset: 0;
    z-index: 1130;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-lineage-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-lineage-modal.is-open { opacity: 1; }
.gr-lineage-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.84);
    cursor: default;
}
.gr-lineage-stage {
    position: relative;
    z-index: 1;
    width: min(95vw, calc(91svh * (1458 / 1020)));
    aspect-ratio: 1458 / 1020;
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 480ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-lineage-modal.is-open .gr-lineage-stage {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-lineage-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}
.gr-lineage-nav {
    position: absolute;
    z-index: 3;
    bottom: 3.6%;
    border: 0;
    padding: .36em .58em;
    background: rgba(247,229,184,.36);
    color: #3e2918;
    font-family: "Cinzel", Georgia, serif;
    font-size: clamp(11px, 1.15vw, 18px);
    letter-spacing: .08em;
    line-height: 1.1;
    cursor: pointer;
    text-shadow: 0 1px rgba(255,255,255,.34);
    transition: background 130ms ease, box-shadow 130ms ease;
}
.gr-lineage-prev { left: 7.6%; }
.gr-lineage-next { right: 7.6%; }
.gr-lineage-nav:hover,
.gr-lineage-nav:focus-visible {
    background: rgba(247,229,184,.68);
    box-shadow: 0 0 16px rgba(232,198,111,.22);
    outline: 1px solid rgba(88,56,26,.46);
    outline-offset: 2px;
}
body.gr-lineage-open { overflow: hidden; }
@media (max-width: 620px) {
    .gr-lineage-stage { width: 98vw; }
    .gr-lineage-nav { bottom: 2.5%; font-size: 10px; }
    .gr-lineage-prev { left: 5%; }
    .gr-lineage-next { right: 5%; }
}
@media (prefers-reduced-motion: reduce) {
    .gr-lineage-modal,
    .gr-lineage-stage { transition-duration: 1ms !important; }
}

/* v0.12.2 — Heritage Khartes parchment. */
.gr-khartes-modal {
    position: fixed;
    inset: 0;
    z-index: 1130;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-khartes-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-khartes-modal.is-open { opacity: 1; }
.gr-khartes-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.84);
    cursor: default;
}
.gr-khartes-stage {
    position: relative;
    z-index: 1;
    width: min(95vw, calc(91svh * (1458 / 1020)));
    aspect-ratio: 1458 / 1020;
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 480ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-khartes-modal.is-open .gr-khartes-stage {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-khartes-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}
body.gr-khartes-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
    .gr-khartes-modal,
    .gr-khartes-stage { transition-duration: 1ms !important; }
}


/* v0.12.3 — Heritage Conventions parchment. */
.gr-conventions-modal {
    position: fixed;
    inset: 0;
    z-index: 1130;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-conventions-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-conventions-modal.is-open { opacity: 1; }
.gr-conventions-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.84);
    cursor: default;
}
.gr-conventions-stage {
    position: relative;
    z-index: 1;
    width: min(95vw, calc(91svh * (1458 / 1020)));
    aspect-ratio: 1458 / 1020;
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 480ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-conventions-modal.is-open .gr-conventions-stage {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-conventions-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}
body.gr-conventions-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
    .gr-conventions-modal,
    .gr-conventions-stage { transition-duration: 1ms !important; }
}


/* v0.13.0 — Homepage Khartes charter interaction. */
.gr-hotspot-charter {
    left: 56.3%;
    top: 49.4%;
    width: 10.7%;
    height: 8.8%;
}
.gr-hover-overlay-charter {
    z-index: 15;
    filter: brightness(1.10);
    clip-path: polygon(
        56.4% 51.0%,
        57.5% 49.6%,
        63.5% 49.0%,
        65.8% 50.4%,
        66.2% 53.3%,
        65.3% 56.1%,
        60.0% 57.2%,
        57.4% 56.1%,
        56.6% 54.1%
    );
}
.gr-hotspot-charter:hover + .gr-hover-overlay-charter,
.gr-hotspot-charter:focus-visible + .gr-hover-overlay-charter {
    opacity: 1;
}

.gr-charter-modal {
    position: fixed;
    inset: 0;
    z-index: 1160;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-charter-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-charter-modal.is-open { opacity: 1; }
.gr-charter-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.84);
    cursor: default;
}
.gr-charter-stage {
    position: relative;
    z-index: 1;
    height: min(92svh, 1100px);
    aspect-ratio: 1600 / 2000;
    max-width: 94vw;
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 480ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-charter-modal.is-open .gr-charter-stage {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-charter-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}
body.gr-charter-open { overflow: hidden; }

@media (max-width: 620px) {
    .gr-charter-stage {
        height: min(94svh, 1200px);
        max-width: 96vw;
    }
}
@media (prefers-reduced-motion: reduce) {
    .gr-charter-modal,
    .gr-charter-stage { transition-duration: 1ms !important; }
}


/* v0.13.1 — Homepage telescope interaction. */
.gr-hotspot-telescope {
    left: 51.4%;
    top: 34.0%;
    width: 15.0%;
    height: 17.5%;
}
.gr-hover-overlay-telescope {
    z-index: 15;
    filter: brightness(1.085);
    clip-path: polygon(
        51.0% 39.0%,
        55.0% 34.0%,
        64.2% 34.0%,
        66.7% 37.5%,
        64.7% 42.2%,
        60.8% 44.8%,
        59.2% 51.5%,
        55.7% 51.5%,
        56.2% 44.8%,
        52.8% 43.5%
    );
}
.gr-hotspot-telescope:hover + .gr-hover-overlay-telescope,
.gr-hotspot-telescope:focus-visible + .gr-hover-overlay-telescope {
    opacity: 1;
}

.gr-telescope-modal {
    position: fixed;
    inset: 0;
    z-index: 1165;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-telescope-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-telescope-modal.is-open { opacity: 1; }
.gr-telescope-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.88);
    cursor: default;
}
.gr-telescope-stage {
    position: relative;
    z-index: 1;
    width: min(90vw, 89svh);
    aspect-ratio: 1 / 1;
    transform: scale(.94);
    opacity: 0;
    transition: transform 520ms cubic-bezier(.2,.78,.2,1), opacity 320ms ease;
}
.gr-telescope-modal.is-open .gr-telescope-stage {
    transform: scale(1);
    opacity: 1;
}
.gr-telescope-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}
body.gr-telescope-open { overflow: hidden; }

@media (max-width: 620px) {
    .gr-telescope-stage {
        width: min(96vw, 88svh);
    }
}
@media (prefers-reduced-motion: reduce) {
    .gr-telescope-modal,
    .gr-telescope-stage { transition-duration: 1ms !important; }
}


/* v0.13.2 — Homepage Apollo's Lyre interaction. */
.gr-hotspot-lyre {
    left: 31.0%;
    top: 69.0%;
    width: 8.7%;
    height: 22.0%;
}
.gr-hover-overlay-lyre {
    z-index: 15;
    filter: brightness(1.11) sepia(.08) saturate(1.08);
    clip-path: polygon(
        31.8% 69.0%,
        36.7% 68.4%,
        39.3% 71.2%,
        39.0% 89.0%,
        35.7% 92.0%,
        32.0% 89.0%
    );
}
.gr-hotspot-lyre:hover + .gr-hover-overlay-lyre,
.gr-hotspot-lyre:focus-visible + .gr-hover-overlay-lyre,
.gr-hotspot-lyre.is-playing + .gr-hover-overlay-lyre {
    opacity: 1;
}
.gr-hotspot-lyre.is-playing + .gr-hover-overlay-lyre {
    filter: brightness(1.16) sepia(.14) saturate(1.14);
    animation: gr-lyre-glow 2.6s ease-in-out infinite;
}
@keyframes gr-lyre-glow {
    0%,100% { opacity: .66; }
    50% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .gr-hotspot-lyre.is-playing + .gr-hover-overlay-lyre { animation: none; }
}


/* v0.13.3 — Homepage Quill & Ink / Honorary Raven Register. */
.gr-hotspot-quill {
    left: 39.4%;
    top: 46.2%;
    width: 5.2%;
    height: 14.2%;
}
.gr-hover-overlay-quill {
    z-index: 15;
    filter: brightness(1.12) sepia(.08) saturate(1.05);
    clip-path: polygon(
        42.7% 45.9%,
        44.3% 46.6%,
        43.4% 51.8%,
        42.5% 57.3%,
        43.4% 58.7%,
        42.8% 60.2%,
        40.7% 59.8%,
        40.3% 57.8%,
        41.1% 55.2%,
        41.4% 50.0%
    );
}
.gr-hotspot-quill:hover + .gr-hover-overlay-quill,
.gr-hotspot-quill:focus-visible + .gr-hover-overlay-quill {
    opacity: 1;
}

.gr-register-modal {
    position: fixed;
    inset: 0;
    z-index: 1170;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-register-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-register-modal.is-open { opacity: 1; }
.gr-register-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    background: rgba(0,0,0,.86);
    margin: 0;
    padding: 0;
}
.gr-register-parchment {
    position: relative;
    z-index: 1;
    width: min(92vw, 900px);
    max-height: 91svh;
    overflow: auto;
    box-sizing: border-box;
    padding: clamp(28px, 4.5vw, 62px) clamp(28px, 5vw, 70px);
    color: #2f2118;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.35), transparent 30%),
        radial-gradient(circle at 80% 72%, rgba(167,112,48,.08), transparent 32%),
        linear-gradient(100deg, rgba(120,72,28,.08), transparent 11%, transparent 90%, rgba(120,72,28,.09)),
        #ead6a5;
    border: 1px solid rgba(85,51,22,.55);
    box-shadow:
        0 24px 70px rgba(0,0,0,.62),
        inset 0 0 38px rgba(119,70,26,.18);
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 460ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-register-modal.is-open .gr-register-parchment {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-register-parchment::before {
    content: "";
    position: absolute;
    inset: 10px;
    pointer-events: none;
    border: 1px solid rgba(92,55,25,.22);
}
.gr-register-close {
    position: absolute;
    top: 12px;
    right: 16px;
    border: 0;
    background: transparent;
    color: #49301d;
    font: 30px/1 Georgia, serif;
    cursor: pointer;
}
.gr-register-header {
    text-align: center;
    margin-bottom: 28px;
}
.gr-register-kicker,
.gr-register-header h2,
.gr-register-list-section h3 {
    font-family: "Cinzel", Georgia, serif;
    letter-spacing: .08em;
}
.gr-register-kicker {
    margin: 0 0 8px;
    font-size: 12px;
}
.gr-register-header h2 {
    margin: 0 0 14px;
    font-weight: 400;
    font-size: clamp(24px, 4vw, 40px);
}
.gr-register-header p:last-child {
    margin: 0 auto;
    max-width: 610px;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(19px, 2.2vw, 25px);
}
.gr-register-form label {
    display: block;
    margin-bottom: 8px;
    font-family: "Cinzel", Georgia, serif;
    font-size: 13px;
    letter-spacing: .05em;
}
.gr-register-input-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
}
.gr-register-input-row input {
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid rgba(76,47,23,.52);
    background: rgba(255,250,230,.48);
    color: #2c1c13;
    font: 600 22px/1.15 "Cormorant Garamond", Georgia, serif;
}
.gr-register-input-row button {
    padding: 10px 16px;
    border: 1px solid rgba(73,45,22,.66);
    background: rgba(84,50,22,.11);
    color: #342116;
    font: 12px/1.2 "Cinzel", Georgia, serif;
    letter-spacing: .04em;
    cursor: pointer;
}
.gr-register-input-row button:hover,
.gr-register-input-row button:focus-visible {
    background: rgba(84,50,22,.20);
}
.gr-register-input-row button:disabled {
    opacity: .5;
    cursor: wait;
}
.gr-register-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
}
.gr-register-note,
.gr-register-message,
.gr-register-count,
.gr-register-empty {
    font-family: "Cormorant Garamond", Georgia, serif;
}
.gr-register-note {
    margin: 10px 0 0;
    font-size: 16px;
}
.gr-register-message {
    min-height: 1.4em;
    margin: 10px 0 0;
    font-size: 18px;
    font-weight: 600;
}
.gr-register-divider {
    height: 1px;
    margin: 28px auto 22px;
    width: 70%;
    background: rgba(82,49,24,.32);
}
.gr-register-list-section h3 {
    text-align: center;
    margin: 0 0 5px;
    font-weight: 400;
    font-size: 22px;
}
.gr-register-count {
    text-align: center;
    margin: 0 0 13px;
    font-size: 15px;
}
.gr-register-list {
    max-height: 230px;
    overflow: auto;
    padding: 10px 16px;
    border-top: 1px solid rgba(82,49,24,.20);
    border-bottom: 1px solid rgba(82,49,24,.20);
}
.gr-register-list ul {
    margin: 0;
    padding: 0;
    list-style: none;
    columns: 2;
    column-gap: 28px;
}
.gr-register-list li {
    break-inside: avoid;
    padding: 4px 0;
    font: 600 19px/1.25 "Cormorant Garamond", Georgia, serif;
}
.gr-register-empty {
    margin: 0;
    text-align: center;
    font-size: 18px;
}
body.gr-register-open { overflow: hidden; }

@media (max-width: 680px) {
    .gr-register-parchment {
        width: 96vw;
        max-height: 94svh;
        padding: 38px 24px 30px;
    }
    .gr-register-input-row {
        grid-template-columns: 1fr;
    }
    .gr-register-list ul {
        columns: 1;
    }
}
@media (prefers-reduced-motion: reduce) {
    .gr-register-modal,
    .gr-register-parchment { transition-duration: 1ms !important; }
}


/* v0.13.4 — Separate Quill submission from table Register. */
.gr-hotspot-register-parchment {
    left: 42.4%;
    top: 51.1%;
    width: 13.3%;
    height: 8.2%;
}
.gr-hover-overlay-register-parchment {
    z-index: 15;
    filter: brightness(1.09) sepia(.04);
    clip-path: polygon(
        42.1% 51.0%,
        51.7% 49.8%,
        55.8% 52.0%,
        54.2% 57.8%,
        45.4% 59.2%,
        42.0% 56.8%
    );
}
.gr-hotspot-register-parchment:hover + .gr-hover-overlay-register-parchment,
.gr-hotspot-register-parchment:focus-visible + .gr-hover-overlay-register-parchment {
    opacity: 1;
}

.gr-register-submit-parchment {
    max-width: 780px;
}
.gr-register-submit-parchment .gr-register-header {
    margin-bottom: 34px;
}
.gr-register-submit-parchment .gr-register-message {
    min-height: 2.8em;
}

.gr-public-register-modal {
    position: fixed;
    inset: 0;
    z-index: 1171;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-public-register-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-public-register-modal.is-open { opacity: 1; }
.gr-public-register-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    background: rgba(0,0,0,.86);
    margin: 0;
    padding: 0;
}
.gr-public-register-parchment {
    position: relative;
    z-index: 1;
    width: min(92vw, 920px);
    max-height: 91svh;
    overflow: auto;
    box-sizing: border-box;
    padding: clamp(32px, 4.8vw, 66px) clamp(28px, 5vw, 72px);
    color: #2f2118;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.35), transparent 30%),
        radial-gradient(circle at 80% 72%, rgba(167,112,48,.08), transparent 32%),
        linear-gradient(100deg, rgba(120,72,28,.08), transparent 11%, transparent 90%, rgba(120,72,28,.09)),
        #ead6a5;
    border: 1px solid rgba(85,51,22,.55);
    box-shadow:
        0 24px 70px rgba(0,0,0,.62),
        inset 0 0 38px rgba(119,70,26,.18);
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 460ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-public-register-modal.is-open .gr-public-register-parchment {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-public-register-parchment::before {
    content: "";
    position: absolute;
    inset: 10px;
    pointer-events: none;
    border: 1px solid rgba(92,55,25,.22);
}
.gr-public-register-close {
    position: absolute;
    top: 12px;
    right: 16px;
    border: 0;
    background: transparent;
    color: #49301d;
    font: 30px/1 Georgia, serif;
    cursor: pointer;
}
.gr-public-register-parchment .gr-register-list {
    max-height: min(52svh, 500px);
}
.gr-public-register-parchment .gr-register-list ul {
    columns: 3;
    column-gap: 30px;
}
body.gr-public-register-open { overflow: hidden; }

@media (max-width: 760px) {
    .gr-public-register-parchment {
        width: 96vw;
        max-height: 94svh;
        padding: 40px 24px 30px;
    }
    .gr-public-register-parchment .gr-register-list ul {
        columns: 2;
    }
}
@media (max-width: 480px) {
    .gr-public-register-parchment .gr-register-list ul {
        columns: 1;
    }
}
@media (prefers-reduced-motion: reduce) {
    .gr-public-register-modal,
    .gr-public-register-parchment { transition-duration: 1ms !important; }
}


/* v0.14.0 — Great Hall integration. */
.gr-great-hall-modal,
.gr-community-modal,
.gr-feedback-modal {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-great-hall-modal { z-index: 1125; }
.gr-community-modal,
.gr-feedback-modal { z-index: 1145; }

.gr-great-hall-modal[aria-hidden="false"],
.gr-community-modal[aria-hidden="false"],
.gr-feedback-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-great-hall-modal.is-open,
.gr-community-modal.is-open,
.gr-feedback-modal.is-open { opacity: 1; }

.gr-great-hall-backdrop,
.gr-community-backdrop,
.gr-feedback-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.84);
}

.gr-great-hall-book {
    position: relative;
    z-index: 1;
    width: min(94vw, calc(90svh * (10 / 7)));
    aspect-ratio: 10 / 7;
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 480ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-great-hall-modal.is-open .gr-great-hall-book {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-great-hall-book-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    display: block;
    user-select: none;
    -webkit-user-drag: none;
}

.gr-great-hall-entry {
    position: absolute;
    z-index: 4;
    border: 0;
    margin: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
}
.gr-great-hall-entry-community {
    left: 18.2%;
    top: 24.6%;
    width: 27.0%;
    height: 8.5%;
}
.gr-great-hall-entry-feedback {
    left: 21.4%;
    top: 35.5%;
    width: 22.0%;
    height: 8.0%;
}
.gr-great-hall-entry:hover,
.gr-great-hall-entry:focus-visible {
    background: rgba(255,238,184,.10);
    box-shadow: 0 0 22px rgba(232,199,122,.16);
    outline: 1px solid rgba(113,77,36,.20);
}

.gr-hall-parchment {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: min(94vw, 1040px);
    max-height: 92svh;
    overflow: auto;
    padding: clamp(34px, 4.5vw, 62px) clamp(28px, 5vw, 72px);
    color: #2f2118;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.35), transparent 30%),
        radial-gradient(circle at 80% 72%, rgba(167,112,48,.08), transparent 32%),
        linear-gradient(100deg, rgba(120,72,28,.08), transparent 11%, transparent 90%, rgba(120,72,28,.09)),
        #ead6a5;
    border: 1px solid rgba(85,51,22,.55);
    box-shadow:
        0 24px 70px rgba(0,0,0,.62),
        inset 0 0 38px rgba(119,70,26,.18);
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 460ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-community-modal.is-open .gr-hall-parchment,
.gr-feedback-modal.is-open .gr-hall-parchment {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.gr-hall-parchment::before {
    content: "";
    position: absolute;
    inset: 10px;
    pointer-events: none;
    border: 1px solid rgba(92,55,25,.22);
}
.gr-hall-close {
    position: absolute;
    z-index: 5;
    top: 12px;
    right: 16px;
    border: 0;
    background: transparent;
    color: #49301d;
    font: 30px/1 Georgia, serif;
    cursor: pointer;
}
.gr-hall-header {
    text-align: center;
    margin-bottom: 25px;
}
.gr-hall-header h2 {
    margin: 0 0 10px;
    font-family: "Cinzel", Georgia, serif;
    font-weight: 400;
    letter-spacing: .08em;
    font-size: clamp(26px, 4vw, 42px);
}
.gr-hall-header p:last-child {
    max-width: 760px;
    margin: 0 auto;
    font: 20px/1.3 "Cormorant Garamond", Georgia, serif;
}
.gr-hall-identity,
.gr-hall-compose,
.gr-hall-discussions {
    position: relative;
    z-index: 1;
}
.gr-hall-identity h3,
.gr-hall-compose h3,
.gr-hall-discussions h3 {
    margin: 0 0 9px;
    font: 400 16px/1.2 "Cinzel", Georgia, serif;
    letter-spacing: .06em;
}
.gr-hall-identity-row {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 9px;
}
.gr-hall-identity-row input,
.gr-hall-compose input,
.gr-hall-compose textarea,
.gr-hall-reply-box textarea,
.gr-feedback-parchment textarea {
    box-sizing: border-box;
    width: 100%;
    border: 1px solid rgba(76,47,23,.50);
    background: rgba(255,250,230,.50);
    color: #2c1c13;
    padding: 10px 12px;
    font: 18px/1.25 "Cormorant Garamond", Georgia, serif;
}
.gr-hall-identity-row button,
.gr-hall-compose button,
.gr-hall-reply-box button,
.gr-feedback-parchment > button:not(.gr-hall-close) {
    border: 1px solid rgba(73,45,22,.66);
    background: rgba(84,50,22,.11);
    color: #342116;
    padding: 10px 14px;
    font: 12px/1.2 "Cinzel", Georgia, serif;
    letter-spacing: .04em;
    cursor: pointer;
}
.gr-hall-identity-row button:hover,
.gr-hall-compose button:hover,
.gr-hall-reply-box button:hover,
.gr-feedback-parchment > button:not(.gr-hall-close):hover {
    background: rgba(84,50,22,.20);
}
.gr-hall-identity-status,
.gr-hall-status {
    min-height: 1.35em;
    margin: 8px 0 0;
    font: 600 17px/1.25 "Cormorant Garamond", Georgia, serif;
}
.gr-hall-compose {
    margin-top: 22px;
}
.gr-hall-compose input,
.gr-hall-compose textarea {
    display: block;
    margin-bottom: 8px;
}
.gr-hall-divider {
    height: 1px;
    width: 72%;
    margin: 27px auto 22px;
    background: rgba(82,49,24,.30);
}
.gr-hall-topic-list {
    display: grid;
    gap: 16px;
}
.gr-hall-topic {
    padding: 15px 16px;
    border: 1px solid rgba(78,47,23,.25);
    background: rgba(255,249,226,.22);
}
.gr-hall-topic h4 {
    margin: 0 0 3px;
    font: 600 22px/1.2 "Cormorant Garamond", Georgia, serif;
}
.gr-hall-topic-meta {
    margin: 0 0 8px;
    opacity: .72;
    font: 14px/1.2 "Cormorant Garamond", Georgia, serif;
}
.gr-hall-topic-body,
.gr-hall-reply p:last-child {
    white-space: pre-wrap;
    margin: 0;
    font: 18px/1.35 "Cormorant Garamond", Georgia, serif;
}
.gr-hall-replies {
    margin: 14px 0 0 22px;
    padding-left: 14px;
    border-left: 2px solid rgba(91,57,27,.20);
}
.gr-hall-reply {
    margin: 0 0 12px;
}
.gr-hall-reply-box {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: start;
    margin-top: 14px;
}
.gr-hall-reply-box .gr-hall-status {
    grid-column: 1 / -1;
}
.gr-feedback-parchment {
    width: min(92vw, 820px);
}
.gr-feedback-parchment .gr-hall-identity-row {
    grid-template-columns: 1fr 1fr;
    margin-bottom: 12px;
}
.gr-feedback-parchment textarea {
    display: block;
    margin: 0 0 10px;
    resize: vertical;
}

.gr-raven-key-result {
    margin-top: 18px;
    padding: 16px 18px;
    border: 1px solid rgba(110,67,30,.34);
    background: rgba(255,244,204,.32);
    text-align: center;
}
.gr-raven-key-result p {
    margin: 5px 0;
    font: 17px/1.3 "Cormorant Garamond", Georgia, serif;
}
.gr-raven-key-value {
    font: 600 23px/1.2 "Cinzel", Georgia, serif !important;
    letter-spacing: .08em;
    user-select: all;
}
.gr-raven-key-result button {
    margin-top: 8px;
    padding: 9px 14px;
    border: 1px solid rgba(73,45,22,.66);
    background: rgba(84,50,22,.11);
    color: #342116;
    font: 12px/1.2 "Cinzel", Georgia, serif;
    cursor: pointer;
}

body.gr-great-hall-open,
body.gr-community-open,
body.gr-feedback-open { overflow: hidden; }

@media (max-width: 760px) {
    .gr-great-hall-book {
        width: min(98vw, calc(86svh * (10 / 7)));
    }
    .gr-hall-parchment {
        width: 96vw;
        max-height: 94svh;
        padding: 40px 22px 28px;
    }
    .gr-hall-identity-row {
        grid-template-columns: 1fr;
    }
    .gr-feedback-parchment .gr-hall-identity-row {
        grid-template-columns: 1fr;
    }
    .gr-hall-reply-box {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .gr-great-hall-modal,
    .gr-community-modal,
    .gr-feedback-modal,
    .gr-great-hall-book,
    .gr-hall-parchment {
        transition-duration: 1ms !important;
    }
}


/* v0.15.0 — Chronicle Integration. */
.gr-chronicle-modal {
    position: fixed;
    inset: 0;
    z-index: 1128;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-chronicle-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-chronicle-modal.is-open { opacity: 1; }

.gr-chronicle-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.84);
}

.gr-chronicle-book {
    position: relative;
    z-index: 1;
    width: min(94vw, calc(90svh * (10 / 7)));
    aspect-ratio: 10 / 7;
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 480ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-chronicle-modal.is-open .gr-chronicle-book {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.gr-chronicle-book-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
    user-select: none;
    -webkit-user-drag: none;
}

.gr-chronicle-left-page,
.gr-chronicle-right-page {
    position: absolute;
    z-index: 2;
    top: 9.5%;
    bottom: 13.5%;
    box-sizing: border-box;
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(90,55,25,.28) transparent;
}
.gr-chronicle-left-page {
    left: 11.7%;
    width: 35.0%;
    padding: 0 2.2% 0 1.0%;
}
.gr-chronicle-right-page {
    left: 53.2%;
    width: 34.6%;
    padding: 0 1.0% 0 2.2%;
}

.gr-chronicle-section-title {
    margin: 0 0 8px;
    text-align: center;
    font: 400 clamp(20px, 2.4vw, 38px)/1.1 "Cinzel", Georgia, serif;
    letter-spacing: .08em;
}
.gr-chronicle-date {
    margin: 0 0 10px;
    text-align: center;
    font: 14px/1.2 "Cinzel", Georgia, serif;
    letter-spacing: .05em;
}
.gr-chronicle-title {
    margin: 0 0 16px;
    text-align: center;
    font: 500 clamp(20px, 2vw, 31px)/1.15 "Cormorant Garamond", Georgia, serif;
}
.gr-chronicle-text {
    color: #2f2118;
    font: 500 clamp(15px, 1.28vw, 20px)/1.32 "Cormorant Garamond", Georgia, serif;
}
.gr-chronicle-text p {
    margin: 0 0 .78em;
}
.gr-chronicle-text h2,
.gr-chronicle-text h3,
.gr-chronicle-text h4 {
    margin: .6em 0 .3em;
    font-family: "Cormorant Garamond", Georgia, serif;
}
.gr-chronicle-text ul,
.gr-chronicle-text ol {
    margin: .4em 0 .8em 1.2em;
    padding: 0;
}
.gr-chronicle-text a {
    color: #5d351c;
    text-decoration-thickness: 1px;
}

.gr-chronicle-figure {
    margin: 0 0 12px;
    text-align: center;
}
.gr-chronicle-figure img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 28svh;
    margin: 0 auto;
    object-fit: contain;
    border: 1px solid rgba(83,49,21,.28);
    box-shadow: 0 4px 15px rgba(78,45,20,.12);
}

.gr-chronicle-return,
.gr-chronicle-newer,
.gr-chronicle-older {
    position: absolute;
    z-index: 4;
    bottom: 8.0%;
    border: 0;
    background: transparent;
    color: #332116;
    font: 12px/1.2 "Cinzel", Georgia, serif;
    letter-spacing: .055em;
    cursor: pointer;
}
.gr-chronicle-return { left: 15.2%; }
.gr-chronicle-newer { left: 55.0%; }
.gr-chronicle-older { right: 15.0%; }

.gr-chronicle-return:hover,
.gr-chronicle-return:focus-visible,
.gr-chronicle-newer:hover:not(:disabled),
.gr-chronicle-newer:focus-visible:not(:disabled),
.gr-chronicle-older:hover:not(:disabled),
.gr-chronicle-older:focus-visible:not(:disabled) {
    text-shadow: 0 0 10px rgba(114,74,30,.30);
}
.gr-chronicle-newer:disabled,
.gr-chronicle-older:disabled {
    opacity: .28;
    cursor: default;
}

body.gr-chronicle-open { overflow: hidden; }

@media (max-width: 760px) {
    .gr-chronicle-book {
        width: min(98vw, calc(86svh * (10 / 7)));
    }
    .gr-chronicle-left-page,
    .gr-chronicle-right-page {
        top: 8.8%;
        bottom: 15%;
    }
    .gr-chronicle-text {
        font-size: clamp(12px, 2.0vw, 16px);
        line-height: 1.24;
    }
    .gr-chronicle-section-title {
        font-size: clamp(17px, 3vw, 24px);
    }
    .gr-chronicle-title {
        font-size: clamp(15px, 2.5vw, 21px);
    }
    .gr-chronicle-return,
    .gr-chronicle-newer,
    .gr-chronicle-older {
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gr-chronicle-modal,
    .gr-chronicle-book {
        transition-duration: 1ms !important;
    }
}


/* v0.15.1 — Chronicle page geometry and ink correction. */
.gr-chronicle-left-page,
.gr-chronicle-right-page {
    top: 12.2%;
    bottom: 15.2%;
    color: #2f2118 !important;
    overflow: auto;
}

.gr-chronicle-left-page {
    left: 16.8%;
    width: 29.2%;
    padding: 0 1.0% 0 0;
}

.gr-chronicle-right-page {
    left: 54.0%;
    width: 29.2%;
    padding: 0 0 0 1.0%;
}

.gr-chronicle-section-title,
.gr-chronicle-date,
.gr-chronicle-title,
.gr-chronicle-text,
.gr-chronicle-text p,
.gr-chronicle-text h2,
.gr-chronicle-text h3,
.gr-chronicle-text h4,
.gr-chronicle-return,
.gr-chronicle-newer,
.gr-chronicle-older {
    color: #2f2118 !important;
    text-shadow: none !important;
}

.gr-chronicle-section-title {
    margin-top: 0;
    margin-bottom: 7px;
}

.gr-chronicle-date {
    margin-bottom: 9px;
}

.gr-chronicle-title {
    margin-bottom: 15px;
}

.gr-chronicle-text {
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: auto;
}

.gr-chronicle-text > *:first-child {
    margin-top: 0 !important;
}

.gr-chronicle-return {
    left: 17.0%;
    bottom: 8.5%;
}
.gr-chronicle-newer {
    left: 55.5%;
    bottom: 8.5%;
}
.gr-chronicle-older {
    right: 17.0%;
    bottom: 8.5%;
}

@media (max-width: 760px) {
    .gr-chronicle-left-page,
    .gr-chronicle-right-page {
        top: 11.5%;
        bottom: 16.0%;
    }

    .gr-chronicle-left-page {
        left: 16.5%;
        width: 29.4%;
    }

    .gr-chronicle-right-page {
        left: 54.0%;
        width: 29.4%;
    }
}


/* v0.16.0 — Enquiries Integration. */
.gr-enquiries-modal {
    position: fixed;
    inset: 0;
    z-index: 1130;
    display: grid;
    place-items: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 340ms;
}
.gr-enquiries-modal[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}
.gr-enquiries-modal.is-open { opacity: 1; }

.gr-enquiries-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0,0,0,.86);
}

.gr-enquiries-sheet {
    position: relative;
    z-index: 1;
    width: min(92vw, calc(88svh * (10 / 7)));
    aspect-ratio: 10 / 7;
    transform: scale(.965) translateY(10px);
    opacity: 0;
    transition: transform 460ms cubic-bezier(.2,.78,.2,1), opacity 300ms ease;
}
.gr-enquiries-modal.is-open .gr-enquiries-sheet {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.gr-enquiries-sheet-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: fill;
    user-select: none;
    -webkit-user-drag: none;
}

.gr-enquiries-content {
    position: absolute;
    z-index: 2;
    left: 13.5%;
    right: 13.5%;
    top: 10.5%;
    bottom: 13.5%;
    box-sizing: border-box;
    overflow: auto;
    padding: 0 2%;
    color: #2f2118;
}

.gr-enquiries-header {
    text-align: center;
    margin-bottom: 16px;
}
.gr-enquiries-header h2 {
    margin: 0 0 5px;
    color: #2f2118;
    font: 400 clamp(25px, 3vw, 43px)/1.1 "Cinzel", Georgia, serif;
    letter-spacing: .08em;
}
.gr-enquiries-header p {
    margin: 0;
    color: #2f2118;
    font: 500 clamp(17px, 1.8vw, 24px)/1.2 "Cormorant Garamond", Georgia, serif;
}

.gr-enquiries-form label {
    display: block;
    margin-bottom: 5px;
    color: #2f2118;
    font: 400 13px/1.2 "Cinzel", Georgia, serif;
    letter-spacing: .045em;
}

.gr-enquiries-row,
.gr-enquiries-field {
    margin-bottom: 12px;
}

.gr-enquiries-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.gr-enquiries-form input,
.gr-enquiries-form select,
.gr-enquiries-form textarea {
    box-sizing: border-box;
    width: 100%;
    border: 1px solid rgba(77,47,23,.45);
    background: rgba(255,250,232,.42);
    color: #2f2118;
    padding: 9px 11px;
    font: 600 17px/1.2 "Cormorant Garamond", Georgia, serif;
    outline: none;
}
.gr-enquiries-form input:focus,
.gr-enquiries-form select:focus,
.gr-enquiries-form textarea:focus {
    border-color: rgba(70,42,20,.72);
    box-shadow: 0 0 0 2px rgba(94,57,27,.09);
}
.gr-enquiries-form textarea {
    resize: vertical;
    min-height: 128px;
    max-height: 240px;
}

.gr-enquiries-prize-note {
    margin: 0 0 12px;
    padding: 8px 10px;
    border: 1px solid rgba(118,42,30,.34);
    background: rgba(145,47,31,.05);
    color: #6d231b;
    font: 600 16px/1.25 "Cormorant Garamond", Georgia, serif;
    text-align: center;
}

.gr-enquiries-submit,
.gr-enquiries-success button {
    display: block;
    margin: 4px auto 0;
    padding: 10px 18px;
    border: 1px solid rgba(73,45,22,.64);
    background: rgba(84,50,22,.10);
    color: #342116;
    font: 12px/1.2 "Cinzel", Georgia, serif;
    letter-spacing: .045em;
    cursor: pointer;
}
.gr-enquiries-submit:hover,
.gr-enquiries-submit:focus-visible,
.gr-enquiries-success button:hover,
.gr-enquiries-success button:focus-visible {
    background: rgba(84,50,22,.20);
}
.gr-enquiries-submit:disabled {
    opacity: .5;
    cursor: wait;
}

.gr-enquiries-privacy {
    margin: 10px auto 0;
    max-width: 680px;
    text-align: center;
    color: rgba(47,33,24,.78);
    font: 14px/1.25 "Cormorant Garamond", Georgia, serif;
}

.gr-enquiries-status {
    min-height: 1.3em;
    margin: 8px 0 0;
    text-align: center;
    color: #2f2118;
    font: 600 16px/1.25 "Cormorant Garamond", Georgia, serif;
}

.gr-enquiries-success {
    position: absolute;
    inset: 24% 12%;
    z-index: 3;
    text-align: center;
    color: #2f2118;
}
.gr-enquiries-success h3 {
    margin: 0 0 16px;
    font: 400 clamp(24px, 3vw, 38px)/1.15 "Cinzel", Georgia, serif;
    letter-spacing: .06em;
}
.gr-enquiries-success p {
    margin: 0 0 18px;
    font: 500 clamp(18px, 2vw, 25px)/1.3 "Cormorant Garamond", Georgia, serif;
}

.gr-enquiries-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
}

.gr-enquiries-return {
    position: absolute;
    z-index: 4;
    left: 15.0%;
    bottom: 8.2%;
    border: 0;
    background: transparent;
    color: #332116;
    font: 12px/1.2 "Cinzel", Georgia, serif;
    letter-spacing: .055em;
    cursor: pointer;
}
.gr-enquiries-return:hover,
.gr-enquiries-return:focus-visible {
    text-shadow: 0 0 10px rgba(114,74,30,.30);
}

body.gr-enquiries-open { overflow: hidden; }

@media (max-width: 760px) {
    .gr-enquiries-sheet {
        width: min(98vw, calc(84svh * (10 / 7)));
    }
    .gr-enquiries-content {
        left: 12.5%;
        right: 12.5%;
        top: 9.5%;
        bottom: 14.5%;
    }
    .gr-enquiries-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .gr-enquiries-form textarea {
        min-height: 92px;
    }
    .gr-enquiries-return {
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gr-enquiries-modal,
    .gr-enquiries-sheet {
        transition-duration: 1ms !important;
    }
}


/* v0.16.6 — Mobile Trials Index typography correction. */
@media (max-width: 760px) {
    .gr-trials-page-left {
        padding: 8.0% 8.2% 8.2% 11.2%;
    }

    .gr-trials-page-right {
        padding: 8.0% 11.2% 8.2% 8.2%;
    }

    .gr-trials-page h1 {
        font-size: clamp(1.05rem, 4.1vw, 1.55rem);
        line-height: 1;
        transform: translateY(.42em);
    }

    .gr-trials-list {
        height: 66%;
    }

    .gr-trials-page-right .gr-trials-list {
        margin-top: 11.5%;
    }

    .gr-trial-entry {
        padding: .08em 6%;
    }

    .gr-trial-label {
        margin-bottom: .12em;
        font-size: clamp(.34rem, 1.8vw, .54rem);
        line-height: 1;
        letter-spacing: .10em;
    }

    .gr-trial-entry h2 {
        max-width: 100%;
        margin: 0 auto;
        font-size: clamp(.57rem, 2.65vw, .88rem);
        line-height: .98;
        letter-spacing: 0;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .gr-trial-difficulty {
        margin-top: .14em;
        font-size: clamp(.39rem, 1.85vw, .58rem);
        line-height: .95;
        letter-spacing: .035em;
    }

    .gr-return-lexicon {
        bottom: 13.4%;
        font-size: clamp(.38rem, 1.9vw, .58rem);
        letter-spacing: .08em;
    }
}

@media (max-width: 430px) {
    .gr-trial-entry h2 {
        font-size: clamp(.50rem, 2.9vw, .76rem);
        line-height: .96;
    }

    .gr-trial-label {
        font-size: clamp(.31rem, 1.9vw, .48rem);
    }

    .gr-trial-difficulty {
        font-size: clamp(.35rem, 1.8vw, .50rem);
    }
}


/* v0.16.7 — Trials Index book-relative mobile typography.
   The Trials book itself is the sizing container, so text follows the displayed
   book rather than relying on viewport width alone. */
.gr-trials-book {
    container-type: inline-size;
    container-name: gr-trials-index;
}

@container gr-trials-index (max-width: 700px) {
    .gr-trials-page-left {
        padding: 7.8% 8.8% 8.4% 11.8%;
    }

    .gr-trials-page-right {
        padding: 7.8% 11.8% 8.4% 8.8%;
    }

    .gr-trials-page-header {
        height: 11.8%;
    }

    .gr-trials-page h1 {
        font-size: 5.1cqw;
        line-height: .96;
        transform: translateY(.30em);
    }

    .gr-trials-list {
        height: 65.5%;
    }

    .gr-trials-page-right .gr-trials-list {
        margin-top: 10.7%;
    }

    .gr-trial-entry {
        padding: 0 7%;
        justify-content: center;
    }

    .gr-trial-label {
        margin-bottom: .06em;
        font-size: 1.55cqw;
        line-height: .95;
        letter-spacing: .08em;
    }

    .gr-trial-entry h2 {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        font-size: 2.75cqw;
        line-height: .92;
        letter-spacing: 0;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .gr-trial-difficulty {
        margin-top: .06em;
        font-size: 1.65cqw;
        line-height: .92;
        letter-spacing: .025em;
    }

    .gr-return-lexicon,
    .gr-trials-next-spread,
    .gr-trials-prev-spread {
        font-size: 1.55cqw;
        line-height: 1;
        letter-spacing: .06em;
    }
}

/* Fallback for browsers without container queries. */
@supports not (container-type: inline-size) {
    @media (max-width: 760px) {
        .gr-trials-page h1 { font-size: 1.15rem !important; }
        .gr-trial-label { font-size: .38rem !important; }
        .gr-trial-entry h2 { font-size: .60rem !important; line-height: .92 !important; }
        .gr-trial-difficulty { font-size: .39rem !important; margin-top: .05em !important; }
        .gr-trial-entry { padding-top: 0 !important; padding-bottom: 0 !important; }
    }
}


/* v0.16.8 — Mobile Trials edge-clearance refinement. */
@container gr-trials-index (max-width: 700px) {
    .gr-trial-entry h2 {
        font-size: 2.65cqw;
        max-width: 96%;
    }

    .gr-trials-page-right .gr-trial-entry {
        padding-left: 8%;
        padding-right: 8%;
    }
}

@supports not (container-type: inline-size) {
    @media (max-width: 760px) {
        .gr-trial-entry h2 {
            font-size: .58rem !important;
            max-width: 96% !important;
        }

        .gr-trials-page-right .gr-trial-entry {
            padding-left: 8% !important;
            padding-right: 8% !important;
        }
    }
}


/* v0.16.9 — Chronicle navigation contrast refinement. */
.gr-chronicle-return,
.gr-chronicle-newer,
.gr-chronicle-older {
    color: #24160d !important;
    font-weight: 600 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

.gr-chronicle-return:hover,
.gr-chronicle-return:focus-visible,
.gr-chronicle-newer:hover:not(:disabled),
.gr-chronicle-newer:focus-visible:not(:disabled),
.gr-chronicle-older:hover:not(:disabled),
.gr-chronicle-older:focus-visible:not(:disabled) {
    color: #160d07 !important;
    filter: brightness(.92);
    text-shadow: 0 0 8px rgba(83,49,21,.20) !important;
}

.gr-chronicle-newer:disabled,
.gr-chronicle-older:disabled {
    color: #6f5b49 !important;
    font-weight: 500 !important;
    opacity: .34 !important;
    filter: none !important;
    text-shadow: none !important;
}
