.memory-page{--ink:#173e36;--muted:#5e6c65;--mint:#d4e1d1;--paper:#f3f1eb;color:var(--ink);background:var(--paper)}
.memory-page [hidden]{display:none!important}.memory-page button{font:inherit;cursor:pointer;touch-action:manipulation}.memory-page button:disabled{cursor:wait;opacity:.6}.memory-page button:focus-visible,.memory-page a:focus-visible{outline:3px solid #326b60;outline-offset:5px}.memory-main{max-width:1160px;margin:auto;padding:0 28px}.memory-toolbar{display:flex;justify-content:space-between;align-items:center;padding:22px 0}.quiet-button,.quiet-link{color:var(--ink);border:0;background:transparent;padding:12px 2px;font-size:14px;text-decoration:none}.quiet-button:hover,.quiet-link:hover{text-decoration:underline;text-underline-offset:5px}.memory-page .eyebrow{font-size:10px;letter-spacing:.19em;font-weight:650;color:var(--muted);margin:0 0 18px}.memory-landing{min-height:560px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px;padding:28px 0 68px}.memory-landing h1{font:clamp(70px,8vw,112px)/1.04 Georgia,serif;letter-spacing:-.065em;margin:0 0 25px}.memory-landing h1 span{color:#789784}.intro-lead{font-size:23px;letter-spacing:-.025em;margin:0 0 14px}.intro-note{font-size:15px;line-height:1.8;color:var(--muted);margin:0 0 28px}.memory-primary{display:inline-flex;align-items:center;justify-content:center;gap:30px;padding:16px 24px;border-radius:7px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-size:15px;font-weight:550;min-height:50px}.memory-primary:hover{background:#275a4d}.start-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.muted-note{font-size:12px;color:var(--muted);line-height:1.7;margin:18px 0}.intro-art{height:430px;position:relative;background:radial-gradient(ellipse at center,#e2e8dc 0,transparent 65%)}.sample-card{position:absolute;width:36%;aspect-ratio:1;box-shadow:0 15px 30px #213c2810;border-radius:12px}.sample-one{left:10%;top:6%;transform:rotate(-12deg)}.sample-two{left:49%;top:12%;transform:rotate(8deg)}.sample-three{left:17%;top:49%;transform:rotate(-6deg)}.sample-four{left:57%;top:55%;transform:rotate(12deg)}.card-face,.card-back{display:block;position:absolute;inset:0;border-radius:inherit;overflow:hidden}.card-back{background:linear-gradient(140deg,#dde7d6,#bfceb9);border:1px solid #a6bda456;display:grid;place-items:center;box-shadow:inset 0 0 0 6px #ffffff26}.card-back i{width:39%;height:39%;border:1px solid #6e917975;border-radius:22%;transform:rotate(45deg);box-shadow:0 1px 0 #eff7e5aa,inset 0 1px 0 #eff7e5aa;position:relative}.card-back i:after{content:'';position:absolute;inset:15%;border:1px solid #6e917965;border-radius:25%}.card-face{background-color:#f6ecd8;background-repeat:no-repeat}.sample-butterfly{background-image:url('/play/memory/art/still-life-a.webp');background-size:600% 300%;background-position:20% 0}.art-caption{position:absolute;bottom:-10px;text-align:center;width:100%;font-size:8px;letter-spacing:.2em;color:var(--muted)}.memory-footer{max-width:1104px;margin:12px auto 0;display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-top:1px solid #213c2814;font-size:11px;color:var(--muted);gap:15px}.memory-footer button{font-size:11px}.memory-chooser{max-width:730px;margin:20px auto 80px;text-align:center;min-height:410px}.memory-chooser>.quiet-button{display:block;margin-bottom:36px}.memory-chooser h1,.game-heading h1{font-family:Georgia,serif;font-weight:400;letter-spacing:-.045em}.memory-chooser h1{font-size:clamp(35px,5vw,55px);margin:15px 0}.memory-chooser>p:not(.eyebrow){color:var(--muted);line-height:1.6}.size-options{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:35px 0 25px}.size-option{background:#faf9f4;border:1px solid #cdd4c7;border-radius:9px;min-height:96px;color:var(--ink)}.size-option strong{font:30px Georgia,serif;display:block;margin-bottom:5px}.size-option span{font-size:11px;color:var(--muted)}.size-option:hover{background:#e2eadc;border-color:#628978}.memory-game{max-width:960px;margin:0 auto 35px}.game-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.game-heading .eyebrow{margin:0 0 8px}.game-heading h1{font-size:32px;margin:0}.round-stats{display:flex;gap:25px;align-items:center;font-size:12px;color:var(--muted);max-width:var(--board-width,760px);margin:0 auto 18px}.round-stats strong{color:var(--ink);font-weight:550;margin-right:auto}.round-stats #time{font-variant-numeric:tabular-nums;min-width:35px;text-align:right}.board-wrap{margin:auto;width:min(100%,var(--board-width,760px))}.memory-board{display:grid;grid-template-columns:repeat(var(--columns,4),minmax(0,1fr));gap:clamp(7px,1.3vw,12px);perspective:1100px}.memory-card{position:relative;display:block;padding:0;border:0;border-radius:9px;aspect-ratio:1;background:transparent;min-width:0;-webkit-tap-highlight-color:transparent}.card-inner{position:absolute;inset:0;display:block;border-radius:inherit;transform-style:preserve-3d;transition:transform .38s cubic-bezier(.2,.75,.3,1)}.memory-card .card-face,.memory-card .card-back{backface-visibility:hidden;-webkit-backface-visibility:hidden}.memory-card .card-face{transform:rotateY(180deg)}.memory-card.is-open .card-inner{transform:rotateY(180deg)}.memory-card.is-matched{box-shadow:0 0 0 2px #739a8180}.memory-card.is-matched .card-face:after{content:'✓';position:absolute;right:4px;bottom:3px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#f7fbefeb;color:#28583c;font:12px system-ui}.memory-board.is-complete .memory-card{animation:memory-found .7s ease-out}.board-note{font-size:12px;color:var(--muted);text-align:center;min-height:18px;margin:18px 0}.memory-result{text-align:center;margin:24px auto 0;padding:30px 14px 0;border-top:1px solid #aab9a950}.memory-result h2{font:clamp(30px,4vw,45px) Georgia,serif;letter-spacing:-.04em;margin:12px 0}.memory-result>p{font-size:14px;line-height:1.7}.memory-result .eyebrow{font-size:9px}.result-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:22px;margin:24px 0 10px}.share-button{background:transparent;border:1px solid #b2c3b4;color:var(--ink);padding:12px 20px;border-radius:6px;margin-top:10px}.load-status{text-align:center;font-size:14px;color:var(--muted)}#retryLoad{display:block;margin:15px auto}.memory-page dialog{background:#f8f7f1;color:var(--ink);border:1px solid #ced6c9;border-radius:14px;padding:35px;max-width:480px;width:calc(100% - 36px);box-shadow:0 20px 70px #142d2526}.memory-page dialog::backdrop{background:#173e3650;backdrop-filter:blur(8px)}.memory-page dialog h2{font:32px Georgia,serif;letter-spacing:-.04em;margin-top:0}.memory-page dialog p{font-size:14px;color:var(--muted);line-height:1.8}.dialog-actions{display:flex;flex-wrap:wrap;gap:15px}.is-paused .memory-board{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@keyframes memory-found{50%{box-shadow:0 0 0 3px #739a81b0;transform:translateY(-3px)}}
@media(max-width:700px){.memory-main{padding:0 18px}.memory-toolbar{padding:12px 0}.memory-landing{grid-template-columns:1fr;gap:0;padding:26px 0 20px;min-height:0}.intro-copy{text-align:center}.memory-landing h1{font-size:76px;margin-bottom:18px}.intro-lead{font-size:20px}.intro-note{font-size:13px;line-height:1.7;margin-bottom:24px}.start-actions{justify-content:center;gap:15px}.memory-primary{font-size:14px;padding:15px 20px;gap:20px}.intro-art{height:280px;max-width:350px;width:100%;margin:8px auto 20px}.sample-card{width:32%}.sample-one{left:15%;top:4%}.sample-two{left:52%;top:9%}.sample-three{left:23%;top:49%}.sample-four{left:59%;top:54%}.art-caption{bottom:-5px}.memory-footer{margin:0 18px;padding:12px 0;font-size:10px}.memory-footer>span:last-child{display:none}.size-options{grid-template-columns:repeat(3,1fr);gap:10px}.memory-chooser{margin-top:8px}.memory-chooser>.quiet-button{margin-bottom:22px}.game-heading{margin:8px 0 18px}.game-heading h1{font-size:26px}.game-heading .eyebrow{font-size:8px}.game-heading>.quiet-button{font-size:12px;flex-shrink:0}.round-stats{gap:12px;font-size:11px;margin-bottom:13px}.memory-card{border-radius:6px}.card-back{box-shadow:inset 0 0 0 4px #ffffff26}.memory-result{padding-top:22px}.result-actions{gap:12px 20px}.memory-page .nav{flex-wrap:wrap;gap:14px}.memory-page .nav-links{gap:15px;font-size:13px}.memory-page .brand{font-size:19px}}
@media(prefers-reduced-motion:reduce){.memory-page *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.memory-card .card-inner{transform:none}.memory-card .card-face{transform:none;display:none}.memory-card.is-open .card-face{display:block}.memory-card.is-open .card-back{display:none}}

/* The shared shell has a legacy version pseudo-element; Memory provides its own footer version. */
.memory-page::after{display:none!important}
@media(prefers-reduced-motion:reduce){.memory-card.is-open .card-inner{transform:none!important}}
