@font-face{font-family:Nunito;src:url('/font.ttf');font-weight:400 900;font-display:swap}
:root{color-scheme:dark;--bg:#102c27;--ink:#f1ecdd;--muted:#a2b8aa;--gold:#dfbc75;--line:#b2c3aa26;font-family:Nunito,system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 65% 30%,#21463b80,transparent 65%),var(--bg);color:var(--ink);min-height:100dvh}body:before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.28' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button{border:0}a{color:inherit}h1,h2,p{margin:0}.app{max-width:1080px;margin:auto;padding:26px 48px 20px}.topbar{display:flex;gap:18px;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line)}.wordmark{text-decoration:none;font-weight:900;font-size:32px;letter-spacing:-2px}.wordmark>span:first-child{color:var(--gold)}.wordmark-suit{font-size:19px;vertical-align:top;margin-left:5px;letter-spacing:0}.edition{font-size:10px;letter-spacing:2px;color:var(--muted);padding-left:18px;border-left:1px solid var(--line)}.utilities{margin-left:auto;display:flex;gap:10px}.utility{min-height:38px;min-width:38px;padding:6px 10px;border:1px solid var(--line);border-radius:50px;color:var(--ink);background:transparent;font-size:12px}.utility:hover{background:#ffffff0a}.home{position:relative;min-height:670px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:16px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold);font-weight:800;line-height:1.6}.home h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(70px,9vw,114px);font-weight:400;letter-spacing:-5px;line-height:.94;margin:30px 0}.home h1>span{color:var(--gold)}.intro{color:var(--muted);font-size:17px;line-height:1.7}.home-actions{display:grid;gap:15px;margin:32px 0 25px;justify-items:start}.primary,.secondary{min-height:48px;min-width:130px;padding:13px 22px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:25px;font-weight:850;font-size:14px;transition:transform .15s,background .15s}.primary{color:#183329;background:var(--gold);box-shadow:0 4px 0 #0a1f1844}.primary:hover{background:#eed097;transform:translateY(-1px)}.primary:active,.secondary:active{transform:translateY(1px)}.secondary{color:var(--ink);border:1px solid #9eb6a957;background:#18372f}.text-button{background:transparent;color:var(--muted);font-size:12px;padding:10px 0;min-height:36px}.text-button:hover{color:var(--gold)}.home-detail{font-size:11px;color:var(--muted)}.home-detail span{padding:0 10px;color:var(--gold)}.hero-cards{position:relative;height:420px}.hero-card{width:198px;height:294px;position:absolute;top:50px;left:calc(50% - 110px);border-radius:13px;box-shadow:0 25px 50px #0004}.hero-back{transform:rotate(-16deg) translate(-48px,5px);background:#9f3e36;border:9px solid #efead8;padding:9px}.hero-back>div{height:100%;border:1px solid #d6b67c;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Georgia,serif;font-size:26px;color:#efdab5;background:repeating-linear-gradient(45deg,transparent,transparent 7px,#edca8a12 7px,#edca8a12 8px)}.hero-back span{font-size:55px;line-height:1.2}.hero-ace{transform:rotate(12deg) translate(38px,-8px);background:#f2eddf;color:#23312d;border:1px solid #d6d1bc;padding:15px;font-size:27px;line-height:.9;font-family:Georgia,serif}.hero-ace>b{position:absolute;inset:0;display:grid;place-items:center;font-size:124px;font-weight:400}.hero-ace em{position:absolute;top:204px;left:0;width:100%;text-align:center;font-style:normal;font-size:7px;letter-spacing:2px}.hero-ace .bottom{position:absolute;right:15px;bottom:15px;transform:rotate(180deg)}.hero-tag{position:absolute;right:5px;bottom:8px;color:var(--gold);font-family:Georgia,serif;font-size:21px;line-height:1.35;transform:rotate(-7deg)}.home-footer{position:absolute;bottom:8px;width:100%;display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:2px;padding-top:20px;border-top:1px solid var(--line)}.game{max-width:820px;margin:auto}.opponent{display:flex;align-items:center;gap:14px;padding:21px 0 16px}.opponent-person{display:flex;align-items:center;gap:11px}.portrait{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#304d40;border:1px solid #b0bd8b52;font-family:Georgia,serif;color:var(--gold);font-size:22px}.opponent h2{font-size:15px}.opponent h2 span{font-size:8px;font-weight:600;color:var(--muted);margin-left:5px;letter-spacing:1px}.opponent p{font-size:10px;color:var(--muted);margin-top:3px}.opponent-cards{margin-left:auto;display:flex;padding-left:20px;min-height:51px;align-items:center}.mini-back{width:32px;height:46px;border:2px solid #c7c4ac;background:repeating-linear-gradient(45deg,#934236,#934236 4px,#ac5141 4px,#ac5141 5px);border-radius:4px;margin-left:-14px;box-shadow:-2px 0 4px #0002;transform:rotate(var(--tilt))}.count{font-size:12px;font-weight:800;color:var(--gold);min-width:20px}.table-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:1.5px;padding:8px 0}.table-wrap{position:relative;min-height:270px;border:1px solid #b2c3aa20;border-radius:110px;background:radial-gradient(ellipse,#345c4326,transparent);display:flex;align-items:center;padding:24px 25px 24px 120px;margin-bottom:20px}.table-wrap:before{content:'♠';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:145px Georgia,serif;color:#d6cb9d05}.deck-area{width:92px;position:absolute;left:14px;top:65px;height:145px}.deck-area .playing-card{width:58px;height:85px;position:absolute;top:23px;left:24px;transform:rotate(90deg)}.deck-back{position:absolute;top:6px;left:4px;width:59px;height:86px;border:4px solid #d8d0b9;border-radius:6px;background:repeating-linear-gradient(45deg,#8d3b32,#8d3b32 5px,#a14b3e 5px,#a14b3e 6px);display:grid;place-items:center;color:#dbb779;box-shadow:0 3px 0 #a6a18e,0 5px 0 #d8d0b9}.deck-back span{border:1px solid #ceaa6b80;padding:12px;font:20px Georgia,serif}#deck-count{position:absolute;top:112px;left:0;width:86px;text-align:center;font-size:10px;color:var(--muted)}#trump-label{position:absolute;top:132px;left:0;width:86px;text-align:center;font-size:10px;color:var(--gold)}.table{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px;width:100%;min-height:155px;align-content:center}.table-empty{grid-column:1/-1;display:grid;place-items:center;text-align:center;font:italic 22px Georgia,serif;color:#a9bb9d60;min-height:170px;line-height:1.5}.pair{position:relative;height:129px;max-width:112px}.pair .playing-card{width:76px;height:108px;position:absolute;left:0;top:0;transform:rotate(-6deg)}.pair .defense-card{top:18px;left:24px;transform:rotate(9deg);box-shadow:0 6px 14px #0005}.pair.pending:after{content:'';position:absolute;inset:-6px 9px 16px -6px;border:1px dashed #dfbc7566;border-radius:11px;pointer-events:none}.playing-card{display:block;background:#f1eddf;color:#26332e;border:1px solid #d1ccbb;border-radius:7px;box-shadow:0 4px 8px #0003;font-family:Georgia,'Times New Roman',serif;position:relative;overflow:hidden;text-align:left;aspect-ratio: .7;user-select:none;-webkit-user-select:none}.playing-card.red{color:#ad443a}.card-corner{position:absolute;left:6px;top:6px;display:flex;flex-direction:column;align-items:center;line-height:.9;font-size:19px;letter-spacing:-1px;font-weight:700}.card-corner small{font-size:16px;line-height:1.15;letter-spacing:0}.card-corner.bottom{top:auto;left:auto;right:6px;bottom:6px;transform:rotate(180deg)}.card-center{position:absolute;inset:0;display:grid;place-items:center;font-size:43px;opacity:.95}.court-letter{font-size:37px;font-style:italic;font-weight:400}.court-border{position:absolute;inset:22% 21%;border:1px solid currentColor;opacity:.17;border-radius:50%}.trump-dot{position:absolute;width:5px;height:5px;border-radius:50%;background:#ba8b36;right:6px;top:6px}.turn-panel{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:91px;padding:0 0 15px;border-bottom:1px solid var(--line)}.turn-panel h2{font:26px Georgia,serif;line-height:1.2;margin:5px 0 6px}.turn-panel>div>p:last-child{color:var(--muted);font-size:11px;line-height:1.5;max-width:400px}.actions{display:flex;gap:8px;flex-shrink:0}.hand-header{display:flex;align-items:center;justify-content:space-between;margin:8px 0;font-size:9px;letter-spacing:1.5px;color:var(--muted)}.hand-header b{font-size:12px;color:var(--ink);margin-left:6px}.hand{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:9px;padding:7px 3px 12px;min-height:120px}.hand:has(> :nth-child(13)){max-height:300px;overflow-y:auto}.hand-card{width:100%;min-width:0;padding:0;transition:transform .18s,filter .18s,box-shadow .18s}.hand-card.playable{box-shadow:0 0 0 1px #e3bd7360,0 5px 9px #0003}.hand-card.playable:hover{transform:translateY(-9px) rotate(-2deg);box-shadow:0 0 0 2px var(--gold),0 10px 16px #0004;z-index:2}.hand-card:disabled{filter:brightness(.65) saturate(.6)}.hand-card.suggested{transform:translateY(-10px);box-shadow:0 0 0 3px var(--gold),0 6px 16px #0006}.game-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:10px;border-top:1px solid var(--line);padding-top:5px;min-height:38px}.game-footer>span{line-height:1.4}.game-footer button{white-space:nowrap}.fresh-card{animation:deal .35s cubic-bezier(.2,.8,.2,1) both}.fresh-table{animation:land .32s cubic-bezier(.2,.8,.2,1) both}dialog{color:var(--ink);background:#16362e;border:1px solid #8ea2834d;border-radius:18px;padding:28px;width:calc(100% - 32px);max-width:460px;box-shadow:0 35px 90px #0008}dialog::backdrop{background:#061d18c9;backdrop-filter:blur(5px)}dialog h2{font:34px Georgia,serif;margin:12px 0 18px}dialog p{color:var(--muted);font-size:14px;line-height:1.7}dialog .eyebrow{color:var(--gold);font-size:10px}dialog ol{padding-left:20px;font-size:13px;line-height:1.7;color:var(--muted)}dialog li{padding:0 0 12px 3px}dialog b{color:var(--ink)}dialog .primary{width:100%;margin-top:20px}.fineprint{font-size:11px!important;color:var(--muted)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialog-actions{display:flex;gap:10px;margin-top:20px}.dialog-actions .primary{margin:0}.dialog-actions button{flex:1;min-width:0}#result{text-align:center}#result h2{font-size:40px}.result-symbol{font:80px Georgia,serif;color:var(--gold);margin:15px 0}#result .text-button{margin-top:8px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);max-width:calc(100% - 32px);padding:14px 20px;border:1px solid #dfbc7577;border-radius:10px;background:#233e32;color:var(--ink);box-shadow:0 8px 25px #0005;font-size:13px;z-index:9;text-align:center;line-height:1.5}[hidden]{display:none!important}@keyframes deal{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes land{from{opacity:0;translate:0 15px;scale:.94}to{opacity:1;translate:0 0;scale:1}}
@media(min-width:700px){.hand:not(:has(> :nth-child(7))){grid-template-columns:repeat(6,minmax(0,1fr));max-width:620px;margin:auto}.home{padding-bottom:50px}}
@media(max-width:700px){.app{padding:16px 20px}.topbar{padding-bottom:13px;gap:10px}.wordmark{font-size:28px}.edition{font-size:8px;padding-left:10px;letter-spacing:1px}.utilities{gap:5px}.utility{font-size:10px;min-height:34px;min-width:34px;padding:6px 8px}.home{min-height:760px;grid-template-columns:1fr;align-content:start;padding-top:32px;overflow:hidden}.home-copy{z-index:2}.home .eyebrow{font-size:8px;letter-spacing:1.5px}.home h1{font-size:84px;margin:23px 0;letter-spacing:-4px}.intro{font-size:14px}.home-actions{margin:24px 0 18px}.home-detail{font-size:9px}.hero-cards{position:absolute;width:260px;right:-24px;top:290px;height:320px;transform:scale(.76);transform-origin:bottom right;opacity:.95}.hero-tag{right:7px;bottom:-10px;font-size:20px}.home-footer{font-size:7px;letter-spacing:1px;gap:15px;bottom:20px}.opponent{padding:15px 0 10px}.opponent-person{gap:8px}.opponent h2{font-size:13px}.portrait{width:35px;height:35px;font-size:18px}.opponent-cards{max-width:135px;overflow:hidden}.mini-back{width:28px;height:40px;flex-shrink:0}.table-wrap{min-height:245px;border-radius:35px;padding:16px 10px 16px 70px;margin-bottom:15px}.deck-area{left:4px;top:65px;scale:.72;transform-origin:top left}.table{gap:8px 3px;min-height:160px}.pair{height:104px}.pair .playing-card{width:49px;height:72px;border-radius:5px}.pair .defense-card{left:12px;top:20px}.pair .card-corner{font-size:14px;left:3px;top:4px}.pair .card-corner small{font-size:11px}.pair .card-corner.bottom{right:3px;bottom:4px;left:auto;top:auto}.pair .card-center{font-size:29px}.pair .court-letter{font-size:25px}.table-empty{font-size:19px;min-height:155px}.pair.pending:after{inset:-4px 2px 28px -4px}.turn-panel{align-items:center;min-height:107px;gap:8px}.turn-panel h2{font-size:23px}.turn-panel .eyebrow{font-size:8px;letter-spacing:1.3px}.turn-panel>div>p:last-child{font-size:10px;max-width:220px}.primary,.secondary{font-size:12px;padding:12px 14px;gap:12px;min-width:90px;min-height:44px}.hand{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;min-height:92px;padding:7px 2px 12px}.hand .card-corner{font-size:16px;left:4px;top:5px}.hand .card-corner small{font-size:13px}.hand .card-corner.bottom{right:4px;bottom:5px;left:auto;top:auto}.hand .card-center{font-size:30px}.hand .court-letter{font-size:27px}.hand .card-corner.bottom{display:none}.hand .playing-card{border-radius:5px}.game-footer{font-size:9px}.hand-card.playable:hover{transform:translateY(-5px)}dialog{padding:22px}dialog h2{font-size:29px}.home .primary{min-height:49px;padding:15px 22px;font-size:14px}}
@media(max-width:360px){.app{padding:12px 13px}.edition{display:none}.home h1{font-size:76px}.table-wrap{padding-left:63px}.turn-panel h2{font-size:21px}.hand{gap:4px}.hero-cards{right:-37px;top:300px}.game-footer{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hand-card.playable:hover,.hand-card.suggested{transform:none}}
/* Keep the illustration below the invitation on narrow screens. */
@media(max-width:700px){.home{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding-top:32px;overflow:visible;gap:0}.home h1{font-size:clamp(64px,20vw,84px)}.hero-cards{position:relative;width:100%;height:290px;right:auto;top:auto;transform:none;margin:12px 0 26px}.hero-card{width:148px;height:220px;top:32px;left:calc(50% - 74px)}.hero-back{transform:rotate(-16deg) translate(-32px,5px);border-width:7px}.hero-back>div{font-size:20px}.hero-back span{font-size:42px}.hero-ace{transform:rotate(12deg) translate(30px,-8px);font-size:21px;padding:12px}.hero-ace>b{font-size:90px}.hero-ace em{top:154px;font-size:6px}.hero-ace .bottom{right:12px;bottom:12px}.hero-tag{font-size:18px;right:5px;bottom:0}.home-footer{position:static;margin:0 0 10px;padding-top:16px;padding-bottom:10px}}
