.memPage{min-height:100vh;background:var(--bg);color:var(--ink)}.memChallenge{background:color-mix(in srgb,var(--gold,#cfa354) 8%,var(--bg));border-bottom:1px solid color-mix(in srgb,var(--gold,#cfa354) 30%,transparent)}.memChallengeInner{max-width:920px;margin:0 auto;padding:22px 24px;display:flex;align-items:flex-start;gap:16px;position:relative}.memChallengeBody{flex:1 1;min-width:0}.memChallengeEyebrow{font-family:var(--font-sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold,#cfa354);margin:12px 0 8px}.memChallengeTitle{font-family:var(--font-display,var(--font-serif));font-size:clamp(22px,3.4vw,30px);line-height:1.1;letter-spacing:-.01em;margin:0 0 8px}.memChallengeText{font-family:var(--font-serif);font-size:15px;line-height:1.5;color:var(--ink);margin:0 0 16px;max-width:560px}.memChallengeText em{font-style:italic}.memChallengeActions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.memChallengeCta{display:inline-block;background:var(--gold,#cfa354);color:#24211b;font-family:var(--font-sans);font-size:14px;font-weight:600;text-decoration:none;padding:10px 20px;border-radius:4px;transition:background .15s ease}.memChallengeCta:hover{background:color-mix(in srgb,var(--gold,#cfa354) 85%,#ede8de)}.memChallengeDismiss{flex:none;background:none;border:none;color:var(--muted);font-size:24px;line-height:1;cursor:pointer;padding:4px 8px;min-width:40px;min-height:40px;border-radius:4px}.memChallengeDismiss:hover{color:var(--ink)}@media (max-width:560px){.memChallengeInner{padding:18px 16px}.memChallengeActions{gap:12px}.memChallengeCta{width:100%;text-align:center}}.memHub{max-width:1020px;margin:0 auto}.memHead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}.memEyebrow{font-family:var(--font-sans);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gilt)}.memH1{font-family:var(--font-display,var(--font-serif));font-style:italic;font-weight:300;font-size:clamp(32px,5vw,40px);line-height:1.05;color:var(--ink);margin:6px 0 0}.memStreak{display:flex;align-items:center;gap:16px;background:var(--paper);border:1px solid var(--rule-warm);border-radius:999px;padding:12px 24px 12px 18px;box-shadow:var(--shadow-card)}.memStreakNum{font-family:var(--font-display,var(--font-serif));font-weight:600;font-size:34px;line-height:1;color:var(--gilt)}.memStreakLabel{font-family:var(--font-sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);line-height:1.6}.memStreakSub{font-family:var(--font-serif);font-style:italic;font-size:13.5px;color:var(--muted)}.memStats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--paper);border:1px solid var(--rule-warm);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-top:32px;overflow:hidden}.memStatCell{padding:24px 30px 22px;border-left:1px solid var(--rule-faint)}.memStatCellFirst{border-left:0}.memStatN{font-family:var(--font-display,var(--font-serif));font-weight:300;font-size:clamp(34px,4.5vw,46px);line-height:1}.memStatNHot{color:var(--red)}.memStatLabel{font-family:var(--font-sans);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:8px}@media (max-width:560px){.memStats{grid-template-columns:repeat(2,1fr)}.memStatCell{padding:18px 20px 16px}.memStatCell:nth-child(odd){border-left:0}.memStatCell:nth-child(n+3){border-top:1px solid var(--rule-faint)}}.memSectionHeader{display:flex;align-items:baseline;gap:16px;margin:56px 0 22px}.memReview .memSectionHeader{margin-top:34px}.memSectionNum{font-family:var(--font-sans);font-weight:500;font-size:11.5px;letter-spacing:.18em;color:var(--muted)}.memSectionTitle{font-family:var(--font-display,var(--font-serif));font-style:italic;font-weight:400;font-size:clamp(24px,3.5vw,30px);color:var(--blue);margin:0}.memSectionLine{flex:1 1;height:1px;background:var(--rule-warm);align-self:center}.memSectionCount{font-family:var(--font-sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.memAddRow{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 18px}.memAddTrigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--rule-warm);border-radius:999px;padding:8px 18px;min-height:38px;font-family:var(--font-sans);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);box-shadow:var(--shadow-btn);cursor:pointer;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-snap)}.memAddTrigger:hover{color:var(--gold);border-color:var(--gold-soft);transform:translateY(-1px)}.memAddTrigger span{font-size:14px;line-height:1}.memAdd{background:var(--paper);border:1px solid var(--gold-faint);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:22px 26px 24px;margin:0 0 22px;animation:memGameRise .4s var(--ease-out) both}.memAddHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.memAddEyebrow{font-family:var(--font-sans);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gilt)}.memAddClose{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--rule-warm);background:var(--white);color:var(--muted);cursor:pointer;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.memAddClose:hover{color:var(--ink);border-color:var(--tan)}.memAddPresets{margin:0 0 18px;padding:0 0 18px;border-bottom:1px solid var(--rule-warm)}.memAddPresetsLabel{display:block;font-family:var(--font-sans);font-weight:500;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.memAddPresetChips{display:flex;flex-wrap:wrap;gap:8px}.memAddPreset{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--font-serif);font-size:13.5px;line-height:1;color:var(--muted);background:var(--white);border:1px solid var(--rule-warm);border-radius:999px;padding:12px 14px;min-height:40px;cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.memAddPreset:hover{color:var(--ink);border-color:var(--tan)}.memAddPreset:focus-visible{outline:none;border-color:var(--gold)}.memAddPreset--on{color:var(--gold);border-color:var(--gold-soft);background:color-mix(in srgb,var(--gold) 7%,var(--white))}.memAddFields{display:flex;gap:14px;flex-wrap:wrap}.memAddField{display:flex;flex-direction:column;gap:6px;min-width:0}.memAddField--book{flex:1 1 200px}.memAddLabel{font-family:var(--font-sans);font-weight:500;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.memAddSelect{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--font-serif);font-size:16px;color:var(--ink);background:var(--white) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a6560' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center /13px;border:1px solid var(--rule-warm);border-radius:10px;padding:9px 34px 9px 14px;min-height:42px;cursor:pointer;transition:border-color var(--dur-fast) ease}.memAddSelect:hover:not(:disabled){border-color:var(--tan)}.memAddSelect:focus{outline:none;border-color:var(--gold)}.memAddSelect:disabled{opacity:.5;cursor:default}.memAddStatus{font-family:var(--font-sans);font-size:12.5px;letter-spacing:.04em;color:var(--muted);margin:18px 0 0}.memAddPreview{border-left:2px solid var(--gold-soft);margin:18px 0 0;padding:2px 0 2px 16px}.memAddPreviewRef{font-family:var(--font-sans);font-weight:500;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gilt)}.memAddPreviewText{font-family:var(--font-serif);font-size:15.5px;line-height:1.6;color:var(--muted);margin:6px 0 0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.memAddActions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px}.memAddSave{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:#24211b;font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--ink);border-radius:999px;padding:11px 26px;min-height:44px;box-shadow:var(--shadow-btn);cursor:pointer;white-space:nowrap;transition:transform .18s cubic-bezier(.22,1,.36,1),filter var(--dur-base) ease}.memAddSave:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.3)}.memAddSave:disabled{opacity:.55;cursor:default}.memAddError{font-size:12.5px;color:var(--red)}.memAddError,.memAddSaved{font-family:var(--font-sans)}.memAddSaved{font-size:12px;letter-spacing:.06em;color:var(--gilt)}@media (max-width:560px){.memAdd{padding:18px 16px 20px}.memAddFields{gap:10px}.memAddField{flex:1 1}.memAddField--book{flex:1 1 100%}.memAddSave,.memAddSelect{width:100%}}.memEmpty{border:1px dashed rgba(15,15,15,.18);border-radius:12px;padding:40px 24px;text-align:center;color:var(--muted);font-family:var(--font-serif);font-size:16px;line-height:1.55}.memEmpty a{color:var(--ink);text-decoration:underline}.memCleared{border:1px solid var(--gold-faint,rgba(185,132,30,.3));border-radius:12px;padding:44px 24px;text-align:center;background:var(--paper,#1e1b17);animation:memClearedIn .5s cubic-bezier(.16,1,.3,1) both}.memClearedCheck{width:56px;height:56px;margin:0 auto 16px;display:block;fill:none;stroke:var(--gold,#d9a94c)}.memClearedCheck circle{stroke-width:1.6;opacity:.45}.memClearedCheck path{stroke-width:3;stroke-linecap:round;stroke-linejoin:round}@media (prefers-reduced-motion:no-preference){.memClearedCheck circle,.memClearedCheck path{stroke-dasharray:1;stroke-dashoffset:1;animation:memClearedDraw .6s ease-out forwards}.memClearedCheck circle{animation-delay:.1s}.memClearedCheck path{animation-delay:.45s}}.memClearedTitle{font-family:var(--font-serif);font-style:italic;font-size:20px;color:var(--ink);margin:0 0 8px}.memClearedBody{color:var(--muted);font-size:15px;line-height:1.55;margin:0;max-width:40ch;margin-inline:auto}@keyframes memClearedIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes memClearedDraw{to{stroke-dashoffset:0}}.memCard{border:1px solid rgba(15,15,15,.12);border-radius:14px;padding:32px clamp(20px,4vw,40px);background:#24211b;box-shadow:0 1px 0 rgba(15,15,15,.03)}.memCardRef{font-family:var(--font-sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}.memCardPrompt{font-style:italic;font-size:18px;color:var(--muted);margin:0 0 24px;line-height:1.5}.memCardPrompt,.memCardText{font-family:var(--font-serif)}.memCardText{font-size:clamp(20px,2.6vw,26px);line-height:1.45;margin:0 0 12px}.memCardTrans{font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:24px}.memCardMeta,.memCardTrans{font-family:var(--font-sans);color:var(--muted)}.memCardMeta{margin-top:24px;font-size:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.memCardMetaDot{opacity:.5}.memCardMetaLink{color:var(--muted);text-decoration:underline;-webkit-text-decoration-color:rgba(106,101,96,.3);text-decoration-color:rgba(106,101,96,.3)}.memCardMetaLink:hover{color:var(--ink)}.memRevealRow{display:flex;justify-content:flex-start}.memGradeRow{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px}@media (max-width:560px){.memGradeRow{grid-template-columns:repeat(2,1fr)}}.memBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;border:1px solid rgba(15,15,15,.16);background:#24211b;color:var(--ink);border-radius:10px;padding:14px 18px;font-family:var(--font-sans);font-size:14px;letter-spacing:.02em;cursor:pointer;transition:transform 80ms ease,background .12s ease,border-color .12s ease;display:flex;flex-direction:column;gap:4px;align-items:center}.memBtn:hover{border-color:var(--ink)}.memBtn:active{transform:translateY(1px)}.memBtn:disabled{opacity:.5;cursor:not-allowed}.memBtnLabel{font-weight:500;font-size:15px}.memBtnHint{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.memBtnReveal{background:var(--ink);color:var(--bg);border-color:var(--ink);padding:14px 28px;font-size:14px;letter-spacing:.18em;text-transform:uppercase}.memBtnReveal:hover{background:color-mix(in srgb,var(--ink) 85%,transparent);color:var(--bg)}.memBtnAgain:hover{border-color:#b96464;color:#b96464}.memBtnHard:hover{border-color:#b98d64;color:#b98d64}.memBtnGood:hover{border-color:#7cad84;color:#7cad84}.memBtnEasy:hover{border-color:#7594b1;color:#7594b1}.memBtnKey{position:absolute;top:6px;right:8px;font-family:var(--font-sans);font-size:10px;letter-spacing:.12em;color:var(--muted);border:1px solid rgba(15,15,15,.14);border-radius:4px;padding:1px 5px;background:color-mix(in srgb,var(--ink) 4%,transparent);line-height:1.2}.memBtnReveal{flex-direction:row;gap:12px}.memBtnKeyOnDark{position:static;color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);letter-spacing:.16em}@media (max-width:560px){.memBtnKey{top:4px;right:6px;font-size:9px;padding:1px 4px}}.memModeToggle{margin-left:auto;display:inline-flex;border:1px solid rgba(15,15,15,.14);border-radius:8px;padding:2px;background:color-mix(in srgb,var(--ink) 3%,transparent)}.memModeBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;font-family:var(--font-sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:6px 14px;border-radius:6px;cursor:pointer;transition:background .12s ease,color .12s ease}.memModeBtn:hover{color:var(--ink)}.memModeBtnActive{background:#24211b;color:var(--ink);box-shadow:0 1px 0 rgba(15,15,15,.06)}.memTypeInput{width:100%;resize:vertical;min-height:140px;padding:16px 18px;border:1px solid rgba(15,15,15,.16);border-radius:10px;background:color-mix(in srgb,var(--ink) 2%,#24211b);font-family:var(--font-serif);font-size:clamp(16px,2vw,19px);line-height:1.55;color:var(--ink);margin-bottom:16px;-webkit-text-fill-color:var(--ink)}.memTypeInput:focus{outline:none;border-color:var(--ink);background:#24211b}.memTypeInput::placeholder{color:var(--muted);font-style:italic}.memTypeRow{display:flex;align-items:center;gap:16px}.memTypeSkip{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:0}.memTypeSkip:hover{color:var(--ink)}.memTypeRetry{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:16px;padding:0}.memTypeRetry:hover{color:var(--ink)}.memTypeRetry:disabled{opacity:.5;cursor:not-allowed}.memWordOk{color:var(--ink)}.memWordMiss{color:#b96464;text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted;-webkit-text-decoration-color:rgba(176,72,72,.5);text-decoration-color:rgba(176,72,72,.5);text-underline-offset:4px}.memAccuracyRow{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:4px 0 20px}.memAccuracy{font-family:var(--font-display,var(--font-serif));font-size:22px;letter-spacing:-.01em;color:var(--ink)}.memAccuracyHint{font-family:var(--font-sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.memBtnSuggested{border-color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,#24211b);box-shadow:inset 0 0 0 1px var(--ink)}@keyframes memMicPulse{0%,to{opacity:1}50%{opacity:.35}}@media (max-width:560px){.memModeToggle{margin-left:0;margin-top:8px}.memSectionHeader{flex-wrap:wrap}}.memRows{list-style:none;margin:0;padding:0}.memRow{display:grid;grid-template-columns:170px 1fr auto;grid-gap:28px;gap:28px;align-items:start;padding:22px 10px;border-bottom:1px solid var(--rule-faint);transition:background var(--dur-fast) ease}.memRow:hover{background:color-mix(in srgb,var(--paper) 70%,transparent)}.memRowRef{font-family:var(--font-sans);font-weight:500;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding-top:4px}.memRowRef:hover{text-decoration:underline;text-underline-offset:3px}.memRowSnip{font-family:var(--font-serif);font-size:16px;line-height:1.6;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.memRowMeta{display:flex;flex-direction:column;align-items:flex-end;gap:9px;min-width:110px}.memRowDots{font-size:12px;letter-spacing:5px;line-height:1}.memRowDotsOn{color:var(--gilt)}.memRowDotsOff{color:#4b4231}.memRowDue{font-family:var(--font-sans);font-weight:500;font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:4px 11px;border-radius:999px;background:var(--rule-faint);color:var(--muted);white-space:nowrap}.memRowDueNow{background:color-mix(in srgb,var(--red) 9%,transparent);color:var(--red)}.memRowRemove{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font-family:var(--font-sans);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);opacity:.65;cursor:pointer;padding:0}.memRowRemove:hover{color:#b96464;opacity:1}@media (max-width:560px){.memRow{grid-template-columns:1fr;gap:8px;padding:18px 2px}.memRowRef{padding-top:0}.memRowMeta{flex-direction:row;align-items:center;gap:14px;min-width:0}.memRowRemove{margin-left:auto}}.memGame{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(900px 480px at 78% -8%,color-mix(in srgb,var(--gold) 9%,transparent),transparent 70%),radial-gradient(800px 500px at 8% 108%,color-mix(in srgb,var(--blue) 5%,transparent),transparent 70%),var(--bg);color:var(--ink);animation:memGameIn var(--dur-slow) var(--ease-out)}@keyframes memGameIn{0%{opacity:0}to{opacity:1}}.memGameBackdrop{position:fixed;inset:0;overflow:hidden;pointer-events:none}.memGameRose{position:absolute;top:-170px;right:-170px;width:440px;height:440px;border-radius:50%;background:conic-gradient(from 20deg,var(--red),var(--gold),var(--blue),var(--green),var(--gold),var(--red));opacity:.06;filter:blur(1px)}.memGameQuote{position:absolute;top:-140px;left:-30px;font-family:var(--font-display,var(--font-serif));font-weight:600;font-size:420px;line-height:1;color:var(--gold);opacity:.05;-webkit-user-select:none;-moz-user-select:none;user-select:none}.memGameTop{position:relative;z-index:1;gap:clamp(14px,3vw,22px);padding:calc(18px + env(safe-area-inset-top)) clamp(16px,4vw,36px) 16px}.memGameClose,.memGameTop{flex:none;display:flex;align-items:center}.memGameClose{justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--rule-warm);background:var(--paper);color:var(--muted);cursor:pointer;transition:color var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap)}.memGameClose:hover{color:var(--ink);border-color:var(--tan)}.memGameProgress{flex:1 1;height:2px;border-radius:2px;background:#3c3323;overflow:hidden}.memGameProgressFill{display:block;height:100%;border-radius:2px;background:var(--gilt);transition:width .4s ease}.memGameMarks{display:flex;gap:12px}.memGameMark{font-family:var(--font-display,var(--font-serif));font-style:italic;font-size:17px;line-height:1;color:#5e5340}.memGameMarkCur{color:var(--gilt)}.memGameMarkPast{color:var(--ink)}.memGameCount{flex:none;font-family:var(--font-sans);font-size:12px;letter-spacing:.12em;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.memGameBody{position:relative;z-index:1;flex:1 1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:900px;margin:0 auto;padding:2vh clamp(20px,4vw,36px) calc(20px + env(safe-area-inset-bottom));animation:memClearedIn .4s var(--ease-out) both}.memGameScroll{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.memGameEyebrow{font-family:var(--font-sans);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gilt)}.memGameRef{font-family:var(--font-display,var(--font-serif));font-weight:400;font-size:clamp(26px,4vw,38px);line-height:1.05;color:var(--ink);margin:10px 0 0}.memGameRule{width:64px;height:1px;background:var(--gold-soft);margin:16px 0 0}.memGameVerse{font-family:var(--font-serif);font-size:clamp(17px,2.2vw,22px);line-height:1.95;margin:22px 0 0;text-wrap:pretty}.memGameVerse:first-letter{font-family:var(--font-display,var(--font-serif));font-weight:400;font-size:2.4em;line-height:1;color:var(--gilt)}.memGameWord{white-space:pre-wrap}.memGameSlot{display:inline-block;text-align:center;border-bottom:2px solid var(--tan);min-height:1em;padding:0 2px;vertical-align:bottom;transition:border-color var(--dur-base) var(--ease-snap)}.memGameSlotCurrent{animation:memGameSlotPulse 1.6s ease-in-out infinite}@keyframes memGameSlotPulse{0%,to{border-bottom-color:var(--gold)}50%{border-bottom-color:color-mix(in srgb,var(--gold) 40%,transparent)}}.memGameSlotFilled{border-bottom-color:var(--gold-soft);animation:memGameSettle .7s var(--ease-out) both}@keyframes memGameSettle{0%{opacity:0;transform:translateY(10px);color:var(--gilt)}55%{opacity:1;color:var(--gilt)}to{transform:none;color:var(--ink)}}.memGameSlotRevealed{border-bottom-color:var(--rule-warm);color:var(--muted);font-style:italic;animation:none}.memGameEncourage{font-family:var(--font-sans);font-size:12px;letter-spacing:.1em;color:var(--muted);margin-top:18px}.memGameEncourageWon{color:var(--gilt);letter-spacing:.14em;text-transform:uppercase;font-weight:500}.memGameFoot{flex:none;padding-top:20px}.memGameBank{padding-top:22px;border-top:1px solid var(--rule-faint);animation:memGameRise .5s var(--ease-out) both}@keyframes memGameRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.memGameBankLabel{font-family:var(--font-sans);font-weight:500;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);text-align:center}.memGameChips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}.memGameChip{font-family:var(--font-serif);font-size:16px;color:var(--ink);background:var(--white);border:1px solid var(--rule-warm);border-radius:999px;padding:10px 20px;min-height:44px;cursor:pointer;box-shadow:var(--shadow-btn);transition:transform var(--dur-fast) var(--ease-snap),box-shadow var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),opacity var(--dur-base) var(--ease-snap)}.memGameChip:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-card)}.memGameChipUsed{opacity:.22;box-shadow:none;cursor:default}.memGameChipShake{animation:memGameShake .38s ease;border-color:color-mix(in srgb,var(--red) 50%,var(--rule-warm));color:var(--red)}@keyframes memGameShake{0%,to{transform:translateX(0)}20%{transform:translateX(-7px)}45%{transform:translateX(6px)}70%{transform:translateX(-4px)}88%{transform:translateX(2px)}}.memGameChipYes{animation:memGamePop .4s var(--ease-spring) both;border-color:var(--gilt);color:var(--gilt);pointer-events:none}@keyframes memGamePop{0%{transform:scale(1)}45%{transform:scale(1.14);box-shadow:0 0 0 6px var(--gold-faint)}to{transform:scale(.92);opacity:.5;box-shadow:none}}.memGameRevealRow{text-align:center;margin-top:14px}.memGameHint{background:none;border:none;font-family:var(--font-sans);font-size:13px;color:var(--muted);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--muted) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--muted) 40%,transparent);text-underline-offset:3px;cursor:pointer;padding:8px}.memGameHint:hover{color:var(--ink)}.memGameHardBadge{display:inline-block;margin-left:10px;padding:3px 10px;border:1px solid var(--gold-soft);border-radius:999px;background:var(--gold-faint);color:var(--gold);font-size:10px;letter-spacing:.18em;vertical-align:middle}.memGameTypeRow{display:flex;justify-content:center;gap:10px;max-width:480px;margin:0 auto}.memGameTypeInput{flex:1 1;min-width:0;font-family:var(--font-serif);font-size:17px;color:var(--ink);background:var(--white);border:1px solid var(--gold-soft);border-radius:999px;padding:10px 20px;min-height:44px;box-shadow:var(--shadow-card);transition:border-color var(--dur-fast) var(--ease-snap)}.memGameTypeInput:focus{outline:none;border-color:var(--gold)}.memGameTypeInput::placeholder{color:var(--muted);font-size:15px}.memGameTypeGo{flex:none;padding:10px 26px}@media (max-width:560px){.memGameTypeGo{padding:10px 20px}}.memGameGrade{margin:0 auto;width:100%;max-width:620px;text-align:center;background:var(--paper);border:1px solid var(--gold-faint);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:34px 48px 38px;animation:memGameRise .4s var(--ease-out) both}.memGameGradeMark{font-size:22px;color:var(--gold);letter-spacing:.18em;margin-bottom:12px}.memGameSaveError{margin:0 auto 12px;max-width:34ch;font-size:14px;line-height:1.5;text-align:center}.memGameGradeQ{font-family:var(--font-display,var(--font-serif));font-style:italic;font-size:24px;color:var(--muted);margin:0 0 22px}.memGameGradeRow{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.memGameGradeBtn{font-family:var(--font-sans);font-size:14px;font-weight:500;padding:12px 22px;border-radius:999px;border:1px solid var(--rule-warm);background:var(--white);color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:110px;transition:transform var(--dur-fast) ease,border-color var(--dur-fast) ease}.memGameGradeBtn:hover:not(:disabled){transform:translateY(-1px);border-color:var(--ink)}.memGameGradeBtn:disabled{opacity:.6;cursor:default}.memGameGradeBtnPri{background:var(--ink);color:var(--paper)}.memGameGradeBtnPri,.memGameGradeBtnPri:hover:not(:disabled){border-color:var(--ink)}.memGameGradeSub{font-weight:400;font-size:11px;letter-spacing:.08em;opacity:.65}.memGameCta{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:#24211b;font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--ink);border-radius:999px;padding:13px 34px;min-height:48px;box-shadow:var(--shadow-btn);cursor:pointer;white-space:nowrap;transition:transform .18s cubic-bezier(.22,1,.36,1),filter var(--dur-base) ease}.memGameCta:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.3)}.memGameCta:disabled{opacity:.6;cursor:default}.memGameDone{text-align:center;overflow-y:auto}.memGameDone,.memGameDoneCrest{justify-content:center;align-items:center}.memGameDoneCrest{position:relative;width:96px;height:96px;display:flex}.memGameDoneHalo{position:absolute;inset:-44px;border-radius:50%;background:radial-gradient(circle,var(--gold-faint),transparent 68%);animation:memGameHalo 1.4s var(--ease-out) both}@keyframes memGameHalo{0%{opacity:0;transform:scale(.4)}55%{opacity:1}to{opacity:.75;transform:scale(1)}}.memGameDoneFleck{position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;background:var(--gilt);border-radius:1.5px;opacity:0;transform:rotate(calc(var(--fleck) * 30deg)) translateY(-16px) scale(.4);animation:memGameFleck 1s var(--ease-out) both;animation-delay:calc(.18s + var(--fleck) * 25ms)}.memGameDoneFleck:nth-child(2n){background:var(--gold);border-radius:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px}@keyframes memGameFleck{0%{opacity:0;transform:rotate(calc(var(--fleck) * 30deg)) translateY(-16px) scale(.4)}30%{opacity:1}to{opacity:0;transform:rotate(calc(var(--fleck) * 30deg)) translateY(-78px) scale(1)}}.memGameDoneMark{position:relative;font-size:34px;color:var(--gold);letter-spacing:.2em;animation:memGameMarkPop .7s var(--ease-spring) .1s both}@keyframes memGameMarkPop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.memGameDoneTitle{font-family:var(--font-display,var(--font-serif));font-style:italic;font-weight:300;font-size:clamp(40px,8vw,58px);color:var(--ink);margin:18px 0 0;animation:memGameRise .6s var(--ease-out) .25s both}.memGameDoneBody{font-family:var(--font-serif);font-size:18px;color:var(--muted);max-width:440px;line-height:1.7;margin:16px 0 34px;text-wrap:pretty;animation:memGameRise .6s var(--ease-out) .4s both}.memGameDone .memGameCta{animation:memGameRise .6s var(--ease-out) .55s both}@media (prefers-reduced-motion:reduce){.memGame,.memGameBank,.memGameBody,.memGameChipShake,.memGameChipYes,.memGameDone .memGameCta,.memGameDoneBody,.memGameDoneFleck,.memGameDoneHalo,.memGameDoneMark,.memGameDoneTitle,.memGameGrade,.memGameSlotCurrent,.memGameSlotFilled{animation:none}}.memHero{position:relative;overflow:hidden;background:var(--paper);border:1px solid var(--gold-faint);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:42px 52px;display:grid;grid-template-columns:1.4fr .9fr;grid-gap:44px;gap:44px;align-items:center}.memHeroQuote{position:absolute;top:-110px;right:-16px;font-family:var(--font-display,var(--font-serif));font-weight:600;font-size:300px;line-height:1;color:var(--gold);opacity:.08;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.memHeroLead{position:relative;min-width:0}.memHeroRef{font-family:var(--font-display,var(--font-serif));font-weight:400;font-size:clamp(30px,4.5vw,44px);line-height:1.1;color:var(--ink);margin:10px 0 0}.memHeroDesc{font-family:var(--font-serif);font-size:16.5px;line-height:1.65;color:var(--muted);margin:14px 0 0;max-width:420px;text-wrap:pretty}.memHeroChips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.memHeroChip{font-family:var(--font-sans);font-weight:500;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:6px 13px;border:1px solid var(--rule-warm);border-radius:999px;color:var(--muted);background:var(--white);white-space:nowrap}.memHeroChipUp{border-color:var(--gold-soft);color:var(--gold);background:color-mix(in srgb,var(--gold) 7%,var(--white))}.memHeroCta{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px}.memHeroStart{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:#24211b;font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--ink);border-radius:999px;padding:15px 40px;min-height:52px;box-shadow:var(--shadow-btn);cursor:pointer;white-space:nowrap;transition:transform .18s cubic-bezier(.22,1,.36,1),filter var(--dur-base) ease}.memHeroStart:hover{transform:translateY(-1px);filter:brightness(1.3)}.memHeroMeta{font-size:12px;letter-spacing:.08em}.memHeroMeta,.memUiSwitch{font-family:var(--font-sans);color:var(--muted)}.memUiSwitch{position:relative;display:block;margin:16px auto 0;background:none;border:none;font-size:12.5px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--muted) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--muted) 40%,transparent);text-underline-offset:3px;cursor:pointer;padding:6px}.memUiSwitch:hover{color:var(--ink)}@media (max-width:960px){.memHero{grid-template-columns:1fr;gap:28px;padding:34px 28px}.memHeroCta{align-items:flex-start}}@media (max-width:560px){.memHero{padding:28px 20px}.memHeroQuote{font-size:200px;top:-70px}.memHeroStart{width:100%}.memHeroCta{align-items:center}.memGameBody{padding-top:2vh}.memGameVerse{margin-top:24px;line-height:1.9}.memGameMarks{display:none}.memGameChip{font-size:16px;padding:9px 16px}.memGameGrade{padding:26px 18px 28px}.memGameGradeRow{gap:10px}.memGameGradeBtn{min-width:calc(50% - 5px)}}