/* Keepers of Memory v0.54.16-beta — protected game frame, loading and recovery. */
.game-page{min-height:100svh;background:var(--deep)}.game-header{width:min(1440px,calc(100% - 3rem));margin-inline:auto;min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;border-bottom:1px solid var(--line)}.game-header nav{display:flex;gap:1.5rem;align-items:center;font:.8125rem/1.5 var(--sans)}.game-header nav a{text-decoration:none}.game-header button,.game-toolbar button{padding:.7rem 1rem;background:transparent;color:var(--paper);font:.8125rem/1.5 var(--sans);border:1px solid var(--line);min-height:44px}.game-header button:hover,.game-toolbar button:hover{border-color:var(--gold)}
.game-shell{width:min(1280px,calc(100% - 3rem));margin:2rem auto 3rem}.game-frame{position:relative;width:100%;aspect-ratio:16/9;background:#090d0e;border:1px solid #53605a;overflow:hidden}.game-frame canvas{width:100%;height:100%;display:block;background:#090d0e;touch-action:none}.game-cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;background:radial-gradient(ellipse at 60% 20%,#253633,var(--deep) 75%);overflow:auto}.game-cover h1{font-size:clamp(2.5rem,5vw,4.7rem);margin-bottom:1.5rem}.game-cover h1 em{color:var(--gold-bright);font-weight:400}.game-cover .eyebrow{margin-bottom:1rem}.game-cover>p{max-width:48ch}.game-cover progress{display:block;appearance:none;width:min(390px,85%);height:7px;border:0;margin:.5rem 0 1.2rem;background:var(--line);color:var(--gold);accent-color:var(--gold)}.game-cover progress::-webkit-progress-bar{background:var(--line)}.game-cover progress::-webkit-progress-value{background:var(--gold)}.game-cover progress::-moz-progress-bar{background:var(--gold)}.game-cover .fine{font:.8125rem/1.6 var(--sans);color:var(--muted)}.game-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.game-toolbar{display:flex;gap:1rem;align-items:center;justify-content:space-between;border:1px solid var(--line);border-top:0;padding:.7rem 1rem;background:var(--panel)}.game-toolbar p{font:.8125rem/1.5 var(--sans);color:var(--muted);margin:0}.game-toolbar button:disabled{opacity:.45;cursor:default}.game-fine{font:.8125rem/1.6 var(--sans);color:var(--muted);margin-top:1rem}.save-note{font:.875rem/1.6 var(--sans);color:var(--muted);margin-top:1.25rem;max-width:75ch}.save-note summary{cursor:pointer;min-height:44px;padding:.65rem 0;color:var(--paper)}.save-note p{margin:.5rem 0 0}.game-session-notice{padding:1rem;border:1px solid var(--gold);font:.875rem/1.6 var(--sans);margin-top:1rem}.game-frame:fullscreen{width:100vw;height:100vh;border:0;aspect-ratio:auto}.game-frame:fullscreen canvas{width:100%;height:100%}.game-page .skip-link{transform:none;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.game-page .skip-link:focus{clip-path:none;width:auto;height:auto;overflow:visible}
@media(max-width:760px){.game-header{width:calc(100% - 2rem);align-items:flex-start;padding-block:1rem;min-height:76px}.game-header .wordmark{font-size:1.05rem}.game-header nav{font-size:.75rem;gap:.5rem;align-items:flex-end;flex-direction:column}.game-shell{width:calc(100% - 2rem);margin-top:1rem}.game-frame:has(.game-cover:not([hidden])){aspect-ratio:auto;min-height:480px}.game-cover{padding:1.4rem}.game-cover h1{font-size:2.7rem}.game-cover .eyebrow{font-size:.65rem}.game-actions{width:100%;flex-direction:column}.game-toolbar{padding:.6rem}.game-toolbar p{font-size:.75rem}.game-header button{font-size:.75rem;min-height:36px;padding:.4rem .7rem}}
@media(prefers-reduced-motion:reduce){.game-cover progress{animation:none}}

/* v0.54.18-beta — carry the approved invitation through loading and recovery. */
@font-face{font-family:Fell;src:url('/assets/fonts/fell.ttf') format('truetype');font-display:swap;font-style:normal;font-weight:400}
@font-face{font-family:Abyssinica;src:url('/assets/fonts/abyssinica.ttf') format('truetype');font-display:swap;font-style:normal;font-weight:400}
.game-page{background:#40342a;--line:#8e795f;--paper:#e9d7b2;--gold:#d1ac7b;--gold-bright:#f1dfbd;--muted:#ddc9aa;--panel:#382d24;--deep:#302820;--serif:Abyssinica,Georgia,serif}
.game-header{min-height:76px;border:0}.game-header .wordmark{font:22px/1.4 Fell,Georgia,serif;letter-spacing:0}.game-header nav{gap:24px}.game-header nav a{text-decoration:underline}
.game-shell{margin-top:12px}.game-frame{border-color:#8e795f}.game-cover{background:#e9d7b2;color:#382b20;padding:48px 32px;text-align:center;color-scheme:light}
.game-cover::before{content:'';position:absolute;top:0;left:0;bottom:0;width:10px;background:#d7c298;clip-path:polygon(0 0,100% 2%,50% 15%,100% 39%,50% 55%,100% 80%,60% 100%,0 100%);pointer-events:none}
.game-seal{width:62px;height:68px;margin-bottom:23px;transform:rotate(-7deg);flex:none}
.game-cover h1{font:38px/1.3 Fell,Georgia,serif;color:#7c3626;letter-spacing:0;max-width:25ch;margin-bottom:18px}
.game-cover #load-message,.game-cover #game-error-message{font:19px/1.65 Abyssinica,Georgia,serif;max-width:44ch;margin-bottom:16px}
.game-cover progress{width:min(300px,80%);height:5px;background:#c6ae83;color:#813e2c;accent-color:#813e2c;margin:7px 0 16px}
.game-cover progress::-webkit-progress-bar{background:#c6ae83}.game-cover progress::-webkit-progress-value{background:#813e2c}.game-cover progress::-moz-progress-bar{background:#813e2c}
.game-cover .fine{color:#66503a;font-size:12px;max-width:40ch}.game-cover .button{background:#813e2c;border-color:#6e3224;color:#fff1cf}.game-cover .button:hover{background:#6c3222}.game-cover .button-secondary{background:transparent;color:#813e2c}.game-cover .button-secondary:hover{background:#dec79e}.game-cover :focus-visible{outline-color:#813e2c}
.game-toolbar{background:#382d24;border-color:#8e795f;padding:9px 14px}.game-toolbar p{font-size:12px}.game-toolbar button{font-size:12px}.save-note{margin-top:15px;font-size:13px;max-width:75ch}.save-note summary{color:#e9d7b2}.save-note p{margin:12px 0 0}.game-session-notice{color:#e9d7b2}
@media(max-width:760px){.game-header{padding-block:14px;min-height:70px}.game-header .wordmark{font-size:20px}.game-header nav{gap:6px}.game-shell{margin-top:6px}.game-cover{padding:30px 24px}.game-cover h1{font-size:31px}.game-cover #load-message,.game-cover #game-error-message{font-size:17px}.game-seal{width:49px;height:56px;margin-bottom:20px}}

/* Website v58 — a single, equally weighted sharing choice before the game loads. */
.game-frame:has(.game-sharing:not([hidden])){aspect-ratio:auto}
.game-sharing{position:relative;min-height:clamp(480px,50vw,720px);padding:48px 32px}
.game-sharing>p{font:18px/1.65 Abyssinica,Georgia,serif;max-width:52ch;margin:0 0 18px}
.game-sharing .sharing-actions{margin:8px 0 24px;gap:16px}
.sharing-actions .button{min-width:225px;min-height:48px;justify-content:center;text-align:center}
.sharing-actions .button:disabled{opacity:.65;cursor:wait}
.game-sharing .sharing-detail,.game-sharing .sharing-privacy{font:14px/1.6 var(--sans);max-width:52ch;color:#58412f}
.game-sharing a{text-decoration:underline;text-underline-offset:3px}
.game-sharing #sharing-error{color:#7c3626;font:16px/1.5 var(--sans)}
.game-sharing #sharing-status{font:16px/1.5 var(--sans)}
@media(max-width:760px){.game-sharing{min-height:480px;padding:30px 24px}.game-sharing>p{font-size:17px}.sharing-actions .button{min-width:0;width:100%}}
