@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cormorant-garamond-latin-700-normal-DajfzrDU.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-700-normal-O25Qpphb.woff)format("woff")}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/jost-cyrillic-wght-normal-CjwCQKo9.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/jost-latin-ext-wght-normal-BDUtSsKd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/jost-latin-wght-normal-ObQm3Zd1.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--felt:#0f4635;--felt-deep:#072a1f;--felt-edge:#03170f;--felt-light:#1b6a4e;--gilt:#c9a55c;--gilt-bright:#ecd398;--gilt-deep:#8f6b2e;--gilt-line:#c9a55c73;--ivory:#fbf6e9;--ink-red:#b3202b;--ink-black:#17171c;--text:#f2ead4;--text-muted:#a9bea9;--text-faint:#7f9a86;--miss:#e0685b;--miss-deep:#8e2a22;--font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-ui:"Jost Variable", "Jost", "Segoe UI", system-ui, sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--radius-s:8px;--radius-m:14px;--radius-l:22px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;min-height:100dvh;font-family:var(--font-ui);color:var(--text);background-color:var(--felt-deep);background-image:radial-gradient(ellipse 90% 55% at 50% 28%, #2e8c6461, transparent 70%), radial-gradient(ellipse 120% 70% at 50% 110%, #0000008c, transparent 65%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"), linear-gradient(180deg, #0d4231 0%, var(--felt-deep) 60%, var(--felt-edge) 100%);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background-attachment:fixed;margin:0;font-size:1rem;line-height:1.5}#root{min-height:100vh;min-height:100dvh}h1,h2,p{margin:0}button{font:inherit;color:inherit}body,.card-svg text{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}:focus-visible{outline:2px solid var(--gilt-bright);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.svg-defs{width:0;height:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.table{box-shadow:inset 0 0 0 1px var(--gilt-line), inset 0 0 0 7px #03140e99, inset 0 0 0 8px #c9a55c2e, inset 0 18px 50px #00000073, 0 24px 60px -30px #000c;transition:box-shadow .6s var(--ease-out);background:radial-gradient(70% 80% at 50% 40%,#3ca07338,#0000 70%),linear-gradient(#05201740,#03140e8c);border-radius:999px/120px;padding:clamp(18px,4vw,34px) clamp(10px,3vw,30px);position:relative}.table--victory{box-shadow:inset 0 0 0 1px var(--gilt-bright), inset 0 0 0 7px #03140e99, inset 0 0 0 8px #ecd39866, inset 0 0 70px #ecd39838, 0 0 80px -10px #ecd39859}.table--gameOver{box-shadow:inset 0 0 0 1px #e0685b73,inset 0 0 0 7px #03140e99,inset 0 0 0 8px #c9a55c1f,inset 0 18px 60px #0009,0 24px 60px -30px #000c}.table__row{direction:ltr;grid-template-columns:repeat(5,minmax(0,132px));justify-content:center;gap:clamp(6px,2vw,18px);display:grid}.slot{aspect-ratio:5/7;background:#0000001f;border:1.5px dashed #c9a55c59;border-radius:clamp(6px,1.4vw,11px);position:relative}.slot--dealt{background:#0000002e;border-color:#0000}.card{perspective:900px;animation:deal-in .6s var(--ease-out) backwards;animation-delay:calc(var(--i) * 90ms);transition:transform .4s var(--ease-out), filter .4s var(--ease-out);border-radius:clamp(6px,1.4vw,11px);position:absolute;inset:0}.card.is-flipping,.card--correct,.card--wrong,.card--winning{animation-name:none}.card__inner{width:100%;height:100%;transform-style:preserve-3d;border-radius:inherit;position:relative}.card__face{border-radius:inherit;backface-visibility:hidden;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 1px #ffffff40,0 2px 3px #00000059,0 10px 22px -8px #0009}.card__face--back{transform:rotateY(180deg)}.card-svg{width:100%;height:100%;display:block}.card.is-flipping .card__inner{animation:flip-reveal .8s var(--ease-out) both}.card.is-flipping .card__face--front:after{content:"";animation:foil-sweep .9s .45s var(--ease-out) both;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(105deg,#0000 35%,#fff4d2bf 48%,#ecd39859 54%,#0000 64%);position:absolute;inset:-20%;transform:translate(-120%)}.card--current{transform:translateY(-6px)}.card--current .card__face--down{box-shadow:0 0 0 1.5px var(--gilt-bright), 0 0 22px #ecd39859, 0 14px 26px -10px #000000b3;animation:2.4s ease-in-out infinite current-glow}.card--correct .card__face--front{box-shadow:0 0 0 2px var(--gilt-bright), 0 0 26px #ecd39873, 0 10px 22px -8px #0009}.card--wrong{animation:miss-shake .5s var(--ease-out) both}.card--wrong .card__face--front{box-shadow:0 0 0 2.5px var(--miss), 0 0 28px #e0685b73, 0 10px 22px -8px #0009}.card--winning{animation:win-wave 1.1s var(--ease-spring) both;animation-delay:calc(var(--i) * .11s)}.card--winning .card__face--front{box-shadow:0 0 0 2px var(--gilt-bright), 0 0 36px #ecd3988c, 0 18px 30px -10px #000000b3}.table--gameOver .card:not(.card--wrong):not(.card--correct){filter:brightness(.55)saturate(.7);transform:translateY(3px)}@keyframes deal-in{0%{opacity:0;transform:translateY(-60px)rotate(-8deg)scale(.9)}to{opacity:1;transform:none}}@keyframes flip-reveal{0%{transform:translateY(0)rotateY(180deg)}45%{transform:translateY(-18px)rotateY(90deg)scale(1.06)}to{transform:translateY(0)rotateY(0)}}@keyframes foil-sweep{to{transform:translate(120%)}}@keyframes current-glow{50%{box-shadow:0 0 0 1.5px var(--gilt), 0 0 10px #ecd39826, 0 14px 26px -10px #000000b3}}@keyframes miss-shake{0%,to{transform:none}20%{transform:translate(-6px)rotate(-1.5deg)}40%{transform:translate(5px)rotate(1deg)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes win-wave{0%{transform:none}40%{transform:translateY(-16px)scale(1.06)}to{transform:translateY(-4px)}}.app{width:100%;max-width:1000px;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 28px max(16px, env(safe-area-inset-left));flex-direction:column;gap:18px;margin:0 auto;display:flex}.masthead{border-bottom:1px solid var(--gilt-line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}.masthead__title{font-family:var(--font-display);letter-spacing:.01em;color:var(--gilt-bright);text-shadow:0 1px #00000080,0 0 28px #c9a55c40;font-size:clamp(1.7rem,6.4vw,2.9rem);font-weight:600;line-height:1}.sound-toggle{border:1px solid var(--gilt-line);min-height:44px;color:var(--text-muted);cursor:pointer;background:#03140e73;border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 14px 0 11px;font-size:.9rem;transition:color .2s,border-color .2s,background-color .2s;display:inline-flex}.sound-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:20px;height:20px}.sound-toggle:hover{color:var(--text);border-color:var(--gilt)}.sound-toggle[aria-pressed=true]{color:var(--gilt-bright);border-color:var(--gilt);background:#c9a55c1f}.intro{max-width:62ch;color:var(--text-muted);font-size:clamp(1rem,2.6vw,1.1rem)}.rules{border-radius:var(--radius-m);background:#03140e59;border:1px solid #c9a55c40}.rules summary{cursor:pointer;min-height:46px;color:var(--text);border-radius:inherit;align-items:center;gap:10px;padding:0 16px;font-weight:500;list-style:none;display:flex}.rules summary::-webkit-details-marker{display:none}.rules summary:after{content:"";border-right:1.6px solid var(--gilt);border-bottom:1.6px solid var(--gilt);width:8px;height:8px;transition:transform .25s var(--ease-out);margin-left:auto;transform:translateY(-2px)rotate(45deg)}.rules[open] summary:after{transform:translateY(2px)rotate(-135deg)}.rules__body{color:var(--text-muted);max-width:70ch;animation:rules-open .3s var(--ease-out);padding:0 18px 16px;font-size:.95rem}.rules__body ol{gap:4px;margin:10px 0;padding-left:1.3em;display:grid}.rules__body strong{color:var(--text);font-weight:500}@keyframes rules-open{0%{opacity:0;transform:translateY(-4px)}}.scoreboard{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.progress{flex:420px;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.progress__step{text-align:center;color:var(--text-faint);flex-direction:column;align-items:center;gap:6px;font-size:.78rem;line-height:1.2;display:flex;position:relative}.progress__step+.progress__step:before{content:"";background:#c9a55c40;width:calc(100% - 30px);height:1px;position:absolute;top:14px;right:calc(50% + 18px)}.progress__step.is-done+.progress__step:before{background:var(--gilt)}.progress__marker{width:29px;height:29px;font-family:var(--font-display);transition:background-color .35s, border-color .35s, color .35s, transform .35s var(--ease-spring);background:#03140e80;border:1px solid #c9a55c59;border-radius:50%;place-items:center;font-size:1rem;font-weight:700;display:grid}.progress__marker svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.progress__step.is-current{color:var(--text)}.progress__step.is-current .progress__marker{border-color:var(--gilt-bright);color:var(--gilt-bright);transform:scale(1.08);box-shadow:0 0 14px #ecd39859}.progress__step.is-done{color:var(--gilt)}.progress__step.is-done .progress__marker{background:linear-gradient(135deg, var(--gilt-bright), var(--gilt-deep));border-color:var(--gilt-bright);color:var(--felt-deep);animation:marker-pop .45s var(--ease-spring)}.progress__step.is-missed{color:var(--miss)}.progress__step.is-missed .progress__marker{background:var(--miss-deep);border-color:var(--miss);color:#fff3ef}@keyframes marker-pop{0%{transform:scale(.6)}}.counters{gap:10px;margin:0;display:flex}.counter{border-radius:var(--radius-s);text-align:center;background:#03140e66;border:1px solid #c9a55c40;min-width:92px;padding:7px 14px 8px}.counter dt{color:var(--text-faint);white-space:nowrap;font-size:.74rem}.counter__value{font-family:var(--font-display);color:var(--gilt-bright);animation:counter-bump .45s var(--ease-spring);margin:0;font-size:1.7rem;font-weight:700;line-height:1.05}@keyframes counter-bump{0%{transform:scale(1.35)}}.prompt{text-align:center;min-height:210px}.prompt__start,.prompt__stage{animation:stage-in .45s var(--ease-out);flex-direction:column;align-items:center;gap:8px;display:flex}.prompt__lead{color:var(--text-muted);margin-bottom:8px}.prompt__step{color:var(--gilt);letter-spacing:.02em;font-size:.85rem}.prompt__question{font-family:var(--font-display);color:var(--text);text-wrap:balance;max-width:24ch;font-size:clamp(1.75rem,6vw,2.6rem);font-weight:600;line-height:1.1}.prompt__hint{color:var(--text-muted);margin-bottom:10px;font-size:.95rem}@keyframes stage-in{0%{opacity:0;transform:translateY(10px)}}.feedback{min-height:1.6em;color:var(--text-muted);margin-top:6px}.feedback--correct{color:var(--gilt-bright);animation:stage-in .3s var(--ease-out)}.feedback--correct:after{content:"";background:linear-gradient(90deg, var(--gilt-bright), var(--gilt-bright)) left / 0 100% no-repeat, #c9a55c33;border-radius:2px;width:120px;height:2px;margin:8px auto 0;animation:1.2s linear forwards next-timer;display:block}@keyframes next-timer{to{background-size:100% 100%}}.button{border:1px solid var(--gilt);cursor:pointer;min-height:48px;transition:transform .18s var(--ease-out), box-shadow .25s, background-color .25s, opacity .2s;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0 24px;font-weight:500;display:inline-flex}.button--primary{color:#1d1406;border-color:var(--gilt-bright);background:linear-gradient(180deg, #f2dda3 0%, var(--gilt) 55%, #a9843f 100%);box-shadow:inset 0 1px #ffffff80,0 8px 20px -8px #c9a55cb3}.button--primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:inset 0 1px #ffffff80,0 12px 26px -8px #ecd398cc}.button:active:not(:disabled){transform:translateY(1px)scale(.98)}.button:disabled{opacity:.4;cursor:not-allowed}.button--large{min-height:56px;padding:0 36px;font-size:1.1rem}.choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;max-width:460px;display:grid}.choices--4{grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px}@media (min-width:640px){.choices--4{grid-template-columns:repeat(4,minmax(0,1fr))}}.choice{border-radius:var(--radius-m);cursor:pointer;min-height:88px;transition:transform .2s var(--ease-out), border-color .2s, box-shadow .25s, background-color .25s, opacity .3s;background:linear-gradient(#1b6a4e59,#03140e8c);border:1px solid #c9a55c66;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 10px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff0f,0 10px 22px -14px #000c}.choice__label{color:var(--text);font-size:1.08rem;font-weight:500}.choice svg{display:block}.choice__pair{gap:4px;display:flex}.choice__pair svg,.choice__suit{width:26px;height:26px}.choice__suit{width:32px;height:32px}.choice--red .choice__pair,.choice--red .choice__suit{color:#e2525a}.choice--black .choice__pair,.choice--black .choice__suit{color:#f0ead8}.choice__glyph{fill:none;width:30px;height:26px;stroke:var(--gilt-bright);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.choice__glyph .fill{fill:var(--gilt-bright);stroke:none}@media (hover:hover){.choice:hover:not(:disabled){border-color:var(--gilt-bright);transform:translateY(-3px);box-shadow:inset 0 0 0 1px #ecd39840,0 16px 28px -14px #000000e6,0 0 24px -6px #ecd39859}}.choice:active:not(:disabled){transform:scale(.97)}.choice:disabled{cursor:default}.choice.is-chosen{border-color:var(--gilt-bright);box-shadow:0 0 0 1px var(--gilt-bright) inset, 0 0 26px -4px #ecd39880;animation:chosen-pop .35s var(--ease-spring);background:linear-gradient(#c9a55c52,#503c1459)}.choice.is-dimmed{opacity:.35}@keyframes chosen-pop{50%{transform:scale(1.04)}}.picker{flex-direction:column;gap:12px;width:100%;display:flex}.picker__tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.picker__tab{border-radius:var(--radius-s);min-height:44px;color:var(--text-muted);cursor:pointer;background:#03140e73;border:1px solid #c9a55c4d;justify-content:center;align-items:center;gap:6px;padding:0 6px;font-size:.86rem;display:flex}.picker__tab[aria-selected=true]{border-color:var(--gilt-bright);color:var(--text);background:#c9a55c29}.picker__tab-icon{flex:none;width:16px;height:16px}.picker__tab.suit-red .picker__tab-icon,.picker__row-icon.suit-red{color:#e2525a}.picker__tab.suit-black .picker__tab-icon,.picker__row-icon.suit-black{color:#f0ead8}.picker__rows{gap:8px;display:grid}.picker__row{direction:ltr;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:none}.picker__row.is-active{display:grid}.picker__row-icon{display:none}.mini-card{aspect-ratio:5/7;cursor:pointer;min-height:56px;transition:transform .18s var(--ease-out), box-shadow .2s, opacity .2s;background:linear-gradient(#fffcf3,#f2ead4);border:none;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;display:flex;position:relative;box-shadow:inset 0 1px #ffffffb3,0 2px #00000040,0 6px 12px -6px #0009}.mini-card.suit-red{color:var(--ink-red)}.mini-card.suit-black{color:var(--ink-black)}.mini-card__rank{font-family:var(--font-display);font-size:clamp(1.1rem,4.6vw,1.45rem);font-weight:700;line-height:1}.mini-card__suit{aspect-ratio:1;width:42%;height:auto}@media (hover:hover){.mini-card:hover:not(:disabled){transform:translateY(-3px)}}.mini-card.is-selected{box-shadow:0 0 0 2.5px var(--gilt-bright), 0 0 20px #ecd3988c, 0 10px 16px -6px #000000b3;animation:chosen-pop .3s var(--ease-spring);transform:translateY(-5px)}.mini-card:disabled:not(.is-selected){cursor:not-allowed}.mini-card:disabled:not(.is-selected)[aria-label*=already]{opacity:.22;background:linear-gradient(to top right,#0000 calc(50% - 1px),currentColor 50%,#0000 calc(50% + 1px)),linear-gradient(#e7e0cc,#d6ceb7)}.picker__footer{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 18px;display:flex}.picker__choice{color:var(--text-muted)}.picker__choice strong{color:var(--gilt-bright);font-weight:500}@media (min-width:760px){.picker__tabs{display:none}.picker__row,.picker__row.is-active{grid-template-columns:26px repeat(13,minmax(0,1fr));align-items:center;display:grid}.picker__row-icon{width:20px;height:20px;display:block}.mini-card{min-height:0}.mini-card__rank{font-size:1.3rem}}.result{border-radius:var(--radius-l);border:1px solid var(--gilt-line);animation:result-in .55s var(--ease-out) .15s backwards;background:linear-gradient(#03140ebf,#03140e8c);flex-direction:column;align-items:center;gap:12px;padding:22px 18px 20px;display:flex;box-shadow:0 30px 60px -30px #000000e6}.result--loss{border-color:#e0685b73}.result--win{border-color:var(--gilt-bright);box-shadow:inset 0 0 0 1px #ecd3984d,0 0 60px -10px #ecd39873,0 30px 60px -30px #000000e6}.result__title{font-family:var(--font-display);color:var(--text);font-size:clamp(2.1rem,8vw,3.2rem);font-weight:700;line-height:1}.result--win .result__title{color:var(--gilt-bright);text-shadow:0 0 30px #ecd39880;animation:title-shine 1.2s var(--ease-spring) .2s backwards}.result--loss .result__title{color:#f1c6bd}.result__text{max-width:44ch;color:var(--text-muted)}.result__text strong{color:var(--text);font-weight:500}.result__stats{gap:10px;margin:4px 0 6px;display:flex}.result__stats>div{border-radius:var(--radius-s);border:1px solid #c9a55c40;min-width:128px;padding:8px 14px}.result__stats dt{color:var(--text-faint);font-size:.78rem}.result__stats dd{font-family:var(--font-display);color:var(--gilt-bright);margin:0;font-size:2rem;font-weight:700;line-height:1.1}.result__stats dd span{color:var(--text-faint);font-size:1rem}.result__note{color:var(--text-faint);font-size:.82rem}@keyframes result-in{0%{opacity:0;transform:translateY(16px)scale(.98)}}@keyframes title-shine{0%{opacity:0;letter-spacing:.12em;transform:scale(.85)}}.footnote{color:var(--text-faint);text-align:center;border-top:1px solid #c9a55c2e;margin-top:8px;padding-top:14px;font-size:.8rem}.confetti{pointer-events:none;z-index:50;width:100vw;height:100vh;position:fixed;inset:0}@media (max-width:420px){.app{gap:14px}.sound-toggle span{display:none}.sound-toggle{padding:0 12px}.progress__label{font-size:.68rem}.counters{width:100%}.counter{flex:1;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.counter__value{font-size:1.4rem}.choice{min-height:78px}.result__stats>div{flex:1;min-width:0;padding:8px 10px}.result__stats dt{white-space:nowrap;font-size:.72rem}.picker__tab{flex-direction:column;gap:2px;min-height:52px;padding:4px 2px;font-size:.74rem}.picker__tab-icon{width:18px;height:18px}}
