/* ============ GAMES — shared shell (loads after cinema.css) ============ */
.g-wrap{max-width:760px;margin:0 auto;padding:1rem clamp(1rem,4vw,2rem) 3rem}
.g-head{text-align:center;padding:clamp(1.6rem,5vw,3rem) 0 .6rem}
.g-head h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,6vw,3.6rem);letter-spacing:-.03em;line-height:1;margin:.4rem 0 .6rem;text-transform:none}
.g-head p{color:var(--ink-dim);line-height:1.7;max-width:56ch;margin:0 auto}
.g-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin:1rem 0 .6rem}
.g-bar b{color:var(--lime);font-size:1rem}
.g-progress{height:5px;border-radius:99px;background:rgba(238,243,233,.12);overflow:hidden;margin-bottom:1rem}
.g-progress i{display:block;height:100%;background:var(--lime);width:0;transition:width .4s var(--ease-heavy)}

/* the card in the middle */
.g-card{position:relative;background:linear-gradient(160deg,rgba(16,22,40,.96),rgba(6,8,16,.92));border:1px solid rgba(238,243,233,.14);border-radius:24px;padding:clamp(1.4rem,4vw,2.2rem);text-align:center;box-shadow:0 26px 70px rgba(0,0,0,.55);touch-action:pan-y}
.g-card h2{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,7vw,3.2rem);letter-spacing:-.03em;margin:.2rem 0 .4rem;text-transform:none;line-height:1}
.g-card .g-kind{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.g-card .g-hint{color:var(--ink-dim);font-size:.9rem;line-height:1.6;margin:.4rem auto 0;max-width:44ch}
.g-card.swipe-yes{border-color:var(--lime);transform:translateX(6%) rotate(3deg)}
.g-card.swipe-no{border-color:#FF5C1A;transform:translateX(-6%) rotate(-3deg)}
.g-card{transition:transform .25s var(--ease-heavy),border-color .25s,opacity .25s}

/* answer buttons */
.g-btns{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1.1rem}
.g-btns.one{grid-template-columns:1fr}
.g-btn{cursor:pointer;font-family:var(--font-display);font-weight:800;font-size:1.05rem;padding:1rem .8rem;border-radius:16px;border:1px solid rgba(238,243,233,.2);background:rgba(238,243,233,.05);color:var(--ink);transition:transform .2s var(--ease-heavy),border-color .2s,background .2s}
.g-btn:hover,.g-btn:focus-visible{transform:translateY(-3px);border-color:var(--lime);color:var(--lime);outline:none}
.g-btn.yes:hover,.g-btn.yes:focus-visible{border-color:var(--lime);color:var(--lime)}
.g-btn.no:hover,.g-btn.no:focus-visible{border-color:#FF5C1A;color:#FF5C1A}
.g-btn small{display:block;font-family:var(--font-mono);font-weight:400;font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin-top:.25rem}

/* the answer reveal */
.g-reveal{margin-top:1rem;border-radius:18px;border:1px solid rgba(238,243,233,.14);background:rgba(6,8,16,.6);padding:1rem 1.2rem;text-align:left}
.g-reveal .v{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.g-reveal .v.right{color:var(--lime)}
.g-reveal .v.wrong{color:#FF5C1A}
.g-reveal p{color:var(--ink);line-height:1.65;margin:.4rem 0 .2rem;font-size:.95rem}
.g-reveal a{color:var(--cyan)}
.g-pill{display:inline-block;font-family:var(--font-mono);font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tc,#8DF250);border:1px solid var(--tc,#8DF250);border-radius:99px;padding:.15rem .5rem;margin-right:.4rem}

/* end screen */
.g-end{text-align:center}
.g-score{font-family:var(--font-display);font-weight:800;font-size:clamp(3rem,14vw,5.5rem);line-height:1;color:var(--lime);letter-spacing:-.04em}
.g-rank{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:.3rem 0 .8rem}
.g-end .plate{max-width:340px;margin:1rem auto}
.g-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-top:1rem}
.g-best{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin-top:.8rem}

/* year slider */
.g-year{margin-top:1.2rem}
.g-year output{display:block;font-family:var(--font-display);font-weight:800;font-size:clamp(2.4rem,9vw,3.6rem);color:var(--cyan);line-height:1}
.g-year input[type=range]{width:100%;margin-top:.6rem}
.g-scale{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.69rem;letter-spacing:.1em;color:var(--ink-dim);margin-top:.2rem}

/* canvas games */
.g-stage{position:relative;width:min(100%,420px);border-radius:22px;overflow:hidden;border:1px solid rgba(141,242,80,.25);background:#050a08;box-shadow:0 26px 70px rgba(0,0,0,.6);aspect-ratio:4/5;max-height:min(64vh,520px);margin:0 auto}
.g-stage canvas{display:block;width:100%;height:100%;touch-action:none}
.g-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;background:rgba(5,10,8,.82);backdrop-filter:blur(6px);text-align:center;padding:1.4rem}
.g-overlay[hidden]{display:none}
.g-overlay h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.6rem,6vw,2.6rem);margin:0;text-transform:none;letter-spacing:-.02em}
.g-overlay p{color:var(--ink-dim);max-width:38ch;line-height:1.6;margin:0}

/* the 3D clearing */
.j-scene{position:relative;height:min(74vh,600px);border-radius:24px;overflow:hidden;border:1px solid rgba(141,242,80,.25);background:radial-gradient(120% 90% at 50% 110%,#0d2a1c,#08140f 55%,#040806 100%);box-shadow:0 30px 80px rgba(0,0,0,.6);perspective:900px;perspective-origin:50% 45%;touch-action:none;cursor:grab}
.j-scene:active{cursor:grabbing}
.j-world{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .12s linear}
.j-layer{position:absolute;inset:-20%;transform-style:preserve-3d;pointer-events:none}
.j-leaf{position:absolute;background:linear-gradient(150deg,#12301f,#061309 60%,#030806);border-radius:50% 50% 45% 45%/60% 60% 40% 40%;box-shadow:inset 0 2px 0 rgba(214,255,140,.10)}
.j-layer:nth-child(1) .j-leaf{filter:blur(2px);opacity:.85}
.j-layer:nth-child(2) .j-leaf{filter:blur(.5px)}
.j-layer:nth-child(3) .j-leaf{filter:blur(1.5px);opacity:1}
.j-moon{position:absolute;left:50%;top:8%;width:90px;height:90px;margin-left:-45px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#f2f7ec,#c9d6c0);box-shadow:0 0 90px 30px rgba(214,255,140,.16)}
.j-fly{position:absolute;width:7px;height:7px;border-radius:50%;background:#e6ffaa;box-shadow:0 0 14px 5px rgba(214,255,140,.55);animation:jfly 7s ease-in-out infinite alternate}
@keyframes jfly{from{transform:translate3d(0,0,0)}to{transform:translate3d(26px,-22px,0)}}
.j-find{position:absolute;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;border:none;cursor:pointer;background:radial-gradient(circle,rgba(214,255,140,.95) 0 22%,rgba(214,255,140,.25) 40%,transparent 70%);pointer-events:auto;animation:jpulse 2.6s ease-in-out infinite}
.j-find:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}
.j-find[data-found="1"]{background:radial-gradient(circle,rgba(57,230,255,.9) 0 18%,rgba(57,230,255,.18) 38%,transparent 70%);animation:none;cursor:default}
@keyframes jpulse{0%,100%{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.08)}}
.j-hud{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;padding:.8rem 1rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);text-shadow:0 2px 8px #000;pointer-events:none;z-index:5}
.j-hud b{color:var(--lime)}
.j-tip{position:absolute;left:0;right:0;bottom:0;padding:.7rem 1rem;text-align:center;font-family:var(--font-mono);font-size:.69rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);background:linear-gradient(transparent,rgba(4,8,6,.85));pointer-events:none;z-index:5}
.j-pop{position:absolute;inset:auto 1rem 3.2rem;z-index:6;background:rgba(12,17,32,.97);border:1px solid var(--gc,#8DF250);border-radius:18px;padding:1rem 1.1rem;box-shadow:0 24px 60px rgba(0,0,0,.7);text-align:left}
.j-pop[hidden]{display:none}
.j-pop h3{font-family:var(--font-display);font-weight:800;font-size:1.3rem;margin:0 0 .2rem;text-transform:none}
.j-pop p{color:var(--ink-dim);font-size:.9rem;line-height:1.6;margin:0 0 .7rem}
.j-pop .row{display:flex;gap:.5rem;flex-wrap:wrap}
.j-pop .row a,.j-pop .row button{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);text-decoration:none;border:1px solid rgba(238,243,233,.2);border-radius:99px;padding:.4rem .7rem;background:none;cursor:pointer}
.j-pop .row a:hover,.j-pop .row button:hover{border-color:var(--lime);color:var(--lime)}
@media (prefers-reduced-motion: reduce){.j-fly,.j-find{animation:none}.j-world{transition:none}}

/* games hub */
.g-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.4rem}
.g-tile{display:flex;flex-direction:column;gap:.4rem;padding:1.3rem 1.4rem;border-radius:20px;text-decoration:none;color:var(--ink);background:linear-gradient(160deg,rgba(16,22,40,.95),rgba(6,8,16,.9));border:1px solid color-mix(in srgb,var(--ac,#8DF250) 32%,rgba(238,243,233,.1));transition:transform .45s var(--ease-cine),border-color .3s}
.g-tile:hover{transform:translateY(-5px);border-color:var(--ac,var(--lime))}
.g-tile .k{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ac,var(--ink-dim))}
.g-tile h2{font-family:var(--font-display);font-weight:800;font-size:1.4rem;margin:0;text-transform:none;letter-spacing:-.02em}
.g-tile p{color:var(--ink-dim);font-size:.9rem;line-height:1.55;margin:0}

/* meme match: real card flips */
.mm-wrap{position:relative;border-radius:22px;overflow:hidden;background:linear-gradient(160deg,rgba(16,22,40,.9),rgba(6,8,16,.9));border:1px solid rgba(238,243,233,.12);padding:.8rem;min-height:340px}
.mm-board{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;perspective:1100px}
@media(max-width:520px){.mm-board{grid-template-columns:repeat(2,1fr)}}
.mm-card{aspect-ratio:3/4;background:none;border:none;padding:0;cursor:pointer;perspective:900px}
.mm-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s var(--ease-cine)}
.mm-card.open .mm-inner,.mm-card.matched .mm-inner{transform:rotateY(180deg)}
.mm-face{position:absolute;inset:0;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.6rem;text-align:center;box-shadow:0 14px 30px rgba(0,0,0,.5)}
.mm-back{background:linear-gradient(150deg,#12301f,#061309);border:1px solid rgba(141,242,80,.28)}
.mm-back i{font-style:normal;font-family:var(--font-display);font-weight:800;font-size:2rem;color:rgba(214,255,140,.5)}
.mm-front{transform:rotateY(180deg);background:linear-gradient(160deg,rgba(12,17,32,.98),rgba(6,8,16,.98));border:1px solid var(--gc,#8DF250)}
.mm-front b{font-family:var(--font-display);font-weight:800;font-size:clamp(1rem,4vw,1.5rem);color:var(--gc,#8DF250);line-height:1.05}
.mm-front small{font-size:.78rem;line-height:1.4;color:var(--ink)}
.mm-card.matched .mm-front{border-color:var(--lime);box-shadow:0 0 0 1px var(--lime),0 14px 34px rgba(141,242,80,.18)}
.mm-card:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:16px}
.mm-wrap .g-overlay{border-radius:22px}

/* yap speed input */
.g-typed{display:block;width:min(100%,420px);margin:.8rem auto 0;background:rgba(5,7,12,.9);border:1px solid rgba(57,230,255,.4);border-radius:14px;color:var(--ink);font-family:Anton,Impact,sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:1.3rem;padding:.7rem 1rem;text-align:center}
.g-typed:focus{outline:2px solid var(--cyan);outline-offset:1px}

/* ===== polish pass: pause, countdown, best score, premium frame ===== */
.g-stage{position:relative;isolation:isolate}
.g-stage::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:22px;box-shadow:inset 0 0 60px rgba(0,0,0,.55),inset 0 1px 0 rgba(238,243,233,.08);z-index:3}
.g-pause{position:absolute;top:10px;right:10px;z-index:6;font-family:var(--font-mono);font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:rgba(6,8,16,.62);backdrop-filter:blur(6px);border:1px solid rgba(238,243,233,.22);border-radius:99px;padding:.4rem .8rem;cursor:pointer;transition:border-color .2s,color .2s}
.g-pause:hover,.g-pause:focus-visible{border-color:var(--lime);color:var(--lime);outline:none}
.g-count{position:absolute;inset:0;z-index:7;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:clamp(4rem,22vw,8rem);color:var(--glow,#d6ff8c);text-shadow:0 0 40px rgba(214,255,140,.5),0 6px 20px rgba(0,0,0,.8);pointer-events:none}
.g-count[hidden]{display:none}
.g-count.tick{animation:gcount .6s var(--ease-cine)}
@keyframes gcount{0%{transform:scale(1.6);opacity:0}25%{transform:scale(1);opacity:1}100%{transform:scale(.86);opacity:.25}}
.g-pauseplate{z-index:8}
.g-bestline{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:.2rem 0 0}
.g-overlay h2{text-shadow:0 6px 24px rgba(0,0,0,.7)}
.g-overlay .btn{min-width:8.5rem}
@media (prefers-reduced-motion: reduce){.g-count.tick{animation:none}}

/* the stage sits in a soft frame with corner marks */
.g-stage{border:1px solid rgba(141,242,80,.28);box-shadow:0 30px 80px rgba(0,0,0,.65),0 0 0 1px rgba(6,8,16,.9)}
.g-frame{position:relative;padding:.5rem;border-radius:26px;background:linear-gradient(160deg,rgba(141,242,80,.10),rgba(6,8,16,0) 45%),rgba(6,8,16,.4);max-width:460px;margin:0 auto}
.g-frame::before,.g-frame::after{content:"";position:absolute;width:22px;height:22px;border:2px solid rgba(141,242,80,.45);pointer-events:none}
.g-frame::before{left:6px;top:6px;border-right:none;border-bottom:none;border-radius:12px 0 0 0}
.g-frame::after{right:6px;bottom:6px;border-left:none;border-top:none;border-radius:0 0 12px 0}
.g-keys{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);text-align:center;margin:.7rem auto 0;max-width:46ch;line-height:1.7}

/* ===== group the four ===== */
.cn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:.6rem 0}
@media(max-width:560px){.cn-grid{grid-template-columns:repeat(2,1fr)}.cn-tile{aspect-ratio:5/2;font-size:clamp(.78rem,3.4vw,1rem)}}
.cn-tile{aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;text-align:center;padding:.4rem;cursor:pointer;border-radius:14px;border:1px solid rgba(238,243,233,.16);background:rgba(238,243,233,.05);color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:clamp(.8rem,2.6vw,1.05rem);line-height:1.1;transition:transform .18s var(--ease-heavy),background .18s,border-color .18s}
.cn-tile:hover{border-color:rgba(238,243,233,.4)}
.cn-tile.on{background:var(--lime);color:var(--void);border-color:var(--lime);transform:translateY(-2px)}
.cn-tile:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.cn-solved{display:flex;flex-direction:column;gap:.15rem;padding:.7rem 1rem;border-radius:14px;margin-bottom:.5rem;background:color-mix(in srgb,var(--cc,#8DF250) 22%,rgba(6,8,16,.9));border:1px solid var(--cc,#8DF250)}
.cn-solved b{font-family:var(--font-display);font-weight:800;font-size:1rem;color:var(--cc,#8DF250)}
.cn-solved span{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.cn-msg{text-align:center;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);min-height:1.2rem;margin:.5rem 0}

/* ===== memedle ===== */
.md-clues,.md-guesses{list-style:none;padding:0;margin:.6rem 0 0;display:flex;flex-direction:column;gap:.4rem}
.md-clue{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.7rem 1rem;border-radius:12px;background:rgba(238,243,233,.04);border:1px solid rgba(238,243,233,.12)}
.md-clue span{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap}
.md-clue b{text-align:right;font-family:var(--font-body);font-weight:500;color:var(--ink);font-size:.92rem}
.md-clue.locked{opacity:.45;border-style:dashed}
.md-clue.locked b{color:var(--ink-dim);font-style:italic}
.md-form{display:flex;gap:.5rem;margin-top:.9rem}
.md-form input{flex:1;background:rgba(5,7,12,.9);border:1px solid rgba(238,243,233,.22);border-radius:12px;color:var(--ink);font-family:var(--font-body);font-size:1rem;padding:.75rem .9rem}
.md-form input:focus{outline:2px solid var(--lime);outline-offset:1px}
.md-form .g-btn{flex:none;padding:.75rem 1.2rem;font-size:.95rem}
.md-guess{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .9rem;border-radius:10px;font-family:var(--font-display);font-weight:800;border:1px solid rgba(238,243,233,.14)}
.md-guess span{font-family:var(--font-mono);font-weight:400;font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}
.md-guess.right{border-color:var(--lime);color:var(--lime)}
.md-guess.wrong{color:var(--ink-dim)}
.md-answer{margin-top:1rem;text-align:center}
.md-answer .plate{max-width:260px;margin:0 auto .6rem}
.md-answer a{color:var(--cyan)}

/* ===== higher or lower ===== */
.hl-pair{display:grid;grid-template-columns:1fr auto 1fr;gap:.8rem;align-items:center;margin-top:.6rem}
.hl-card{background:none;border:1px solid rgba(238,243,233,.14);border-radius:18px;padding:.6rem;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;gap:.4rem;transition:transform .25s var(--ease-heavy),border-color .25s}
.hl-card:hover{transform:translateY(-4px);border-color:var(--lime)}
.hl-card.right{border-color:var(--lime);box-shadow:0 0 0 1px var(--lime)}
.hl-card.wrong{border-color:#FF5C1A;box-shadow:0 0 0 1px #FF5C1A}
.hl-name{font-family:var(--font-display);font-weight:800;font-size:1.05rem}
.hl-year{font-family:var(--font-mono);font-size:1.4rem;color:var(--cyan)}
.hl-vs{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim)}
@media(max-width:560px){.hl-pair{grid-template-columns:1fr 1fr;gap:.45rem}.hl-vs{grid-area:1/1/2/3;text-align:center;margin-bottom:.2rem}.hl-card:first-child{grid-area:2/1}.hl-card:last-child{grid-area:2/2}.hl-card{padding:.4rem}.hl-name{font-size:.9rem}.hl-year{font-size:1.15rem}}

/* ===== aura farm ===== */
.farm-bar{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin:.8rem 0 .5rem}
.farm-bar b{color:var(--lime);font-size:1.1rem}
.farm-away{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);text-align:center;margin:.7rem 0 0}
.farm-shop{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem}
.farm-buy{display:flex;justify-content:space-between;align-items:center;gap:.7rem;text-align:left;cursor:pointer;border-radius:14px;border:1px solid rgba(238,243,233,.16);background:rgba(238,243,233,.05);color:var(--ink);padding:.7rem .9rem;transition:border-color .2s,transform .2s}
.farm-buy:hover{border-color:var(--lime);transform:translateY(-2px)}
.farm-buy.off{opacity:.45;cursor:default;transform:none}
.fb-n b{display:block;font-family:var(--font-display);font-weight:800;font-size:1rem}
.fb-n small{color:var(--ink-dim);font-size:.78rem}
.fb-c{font-family:var(--font-mono);font-size:.85rem;color:var(--gold);text-align:right;white-space:nowrap}
.fb-c i{display:block;font-style:normal;font-size:.69rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}

/* ---- polish for the daily puzzles, the streak game and the farm ---- */
.cn-grid.wrong{animation:cnshake .42s var(--ease-snap)}
@keyframes cnshake{10%,90%{transform:translateX(-3px)}30%,70%{transform:translateX(5px)}50%{transform:translateX(-5px)}100%{transform:none}}
.cn-solved{animation:cnpop .34s var(--ease-heavy)}
@keyframes cnpop{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}
.cn-tile[aria-pressed="true"]{box-shadow:0 6px 18px rgba(141,242,80,.22)}
.cn-grid button:disabled,.g-btn:disabled{opacity:.4;cursor:default}
.md-guess{animation:cnpop .28s var(--ease-heavy)}
.md-form[hidden]{display:none}
.hl-card:focus-visible,.farm-buy:focus-visible,.cn-tile:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.hl-card .plate{pointer-events:none}
.hl-year{animation:cnpop .3s var(--ease-heavy)}
.farm-away{border:1px dashed rgba(216,179,106,.5);border-radius:12px;padding:.6rem .8rem}
.farm-buy:disabled{cursor:default}
@media (prefers-reduced-motion: reduce){
  .cn-grid.wrong,.cn-solved,.md-guess,.hl-year{animation:none}
  .cn-tile,.hl-card,.farm-buy{transition:none}
}
.g-stage-short{aspect-ratio:1;max-height:min(44vh,400px)}
.g-copybox{display:block;width:100%;max-width:340px;margin:.8rem auto 0;background:rgba(5,7,12,.9);border:1px solid rgba(238,243,233,.22);border-radius:12px;color:var(--ink);font-family:var(--font-mono);font-size:.9rem;line-height:1.5;padding:.7rem .8rem;resize:none;text-align:center}
.g-copybox:focus{outline:2px solid var(--lime);outline-offset:1px}

/* ---- Yay or nay: the swipe deck ---- */
.ty-stack{position:relative;width:min(100%,340px);margin:.8rem auto 0;aspect-ratio:1;touch-action:pan-y}
.ty-card{position:absolute;inset:0;border-radius:20px;padding:0;background:none;border:none;transition:transform .24s var(--ease-heavy),opacity .24s}
.ty-card.dragging{transition:none;cursor:grabbing}
.ty-card.next{transform:scale(.94) translateY(10px);opacity:.55;pointer-events:none;filter:saturate(.7)}
.ty-card.top{cursor:grab;touch-action:none}
.ty-card .plate{width:100%}
.ty-name{position:absolute;left:0;right:0;bottom:-2.4rem;text-align:center;font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:var(--ink);margin:0}
.ty-name span{display:block;font-family:var(--font-mono);font-weight:400;font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}
.ty-stamp{position:absolute;top:14%;font-family:var(--font-display);font-weight:800;font-size:2.2rem;letter-spacing:.04em;padding:.1rem .7rem;border-radius:12px;border:4px solid currentColor;opacity:0;z-index:4;pointer-events:none;transition:opacity .12s}
.ty-stamp.yay{left:8%;color:#8DF250;transform:rotate(-14deg)}
.ty-stamp.nay{right:8%;color:#FF5C1A;transform:rotate(14deg)}
.ty-live{text-align:center;font-family:var(--font-mono);font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);min-height:1.1rem;margin:3rem 0 .2rem}
.ty-actions{display:flex;justify-content:center;gap:1rem;margin:.4rem 0 .2rem}
.ty-btn{min-width:120px;min-height:52px;border-radius:99px;cursor:pointer;font-family:var(--font-display);font-weight:800;font-size:1.05rem;border:2px solid;background:rgba(6,8,16,.6);transition:transform .18s var(--ease-heavy),background .18s}
.ty-btn:hover{transform:translateY(-2px)}
.ty-btn:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.ty-btn.yay{color:#8DF250;border-color:#8DF250}
.ty-btn.nay{color:#FF5C1A;border-color:#FF5C1A}
.ty-btn.yay:hover{background:rgba(141,242,80,.14)}
.ty-btn.nay:hover{background:rgba(255,92,26,.14)}
.ty-result{margin:1rem auto 0;max-width:420px}
.ty-fav-k,.ty-liked-k{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);margin:.8rem 0 .2rem}
.ty-fav{font-family:var(--font-display);font-weight:800;font-size:1.6rem;margin:0}
.ty-fav-st{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sc,#8DF250);margin:.2rem 0}
.ty-fav-cr{color:var(--ink-dim);font-size:.9rem;margin:.1rem 0 .6rem}
.ty-fav-btns{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:.6rem}
.ty-liked{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}
.ty-liked a{font-family:var(--font-mono);font-size:.69rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);text-decoration:none;border:1px solid rgba(238,243,233,.16);border-radius:99px;padding:.35rem .6rem}
.ty-liked a:hover{color:var(--lime);border-color:var(--lime)}
@media (prefers-reduced-motion: reduce){.ty-card{transition:opacity .1s}.ty-btn{transition:none}}
