@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f4ead7;font-synthesis:none;text-rendering:optimizelegibility;--ink:#07111b;--ink-2:#0b1723;--felt:#0d3a36;--ivory:#f6eedf;--muted:#a99f8f;--gold:#cfb278;--blue:#3288ff;--blue-soft:#3288ff38;--coral:#df7b67;--line:#dac39633;--panel:#07111be8;--serif:"Libre Caslon Display", "Iowan Old Style", "Baskerville", Georgia, serif;background:#07111b;font-family:DM Sans,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100dvh;overflow-x:hidden}button{color:inherit;font:inherit;border:0}button:not(:disabled){cursor:pointer}button:focus-visible{outline-offset:3px;outline:2px solid #67a9ff}.app-shell{background:radial-gradient(circle at 50% -20%, #173048 0, var(--ink) 55%);min-height:100dvh}.topbar{z-index:50;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#050d15f5;border-bottom:1px solid #d3b77d2e;grid-template-columns:1fr auto 1fr;align-items:center;height:64px;padding:0 22px;display:grid;position:relative;box-shadow:0 12px 40px #0003}.brand{text-transform:uppercase;letter-spacing:.2em;background:0 0;justify-self:start;align-items:center;gap:14px;font-size:16px;font-weight:600;display:inline-flex}.brand-mark{grid-template-columns:1fr 1fr;gap:2px;width:28px;height:28px;display:grid;position:relative;transform:rotate(45deg)}.brand-mark i{border:1px solid var(--gold);background:#cfb2780f;display:block}.brand-mark i:first-child{border-radius:6px 1px 1px}.topbar nav{align-self:stretch;gap:34px;display:flex}.topbar nav button{color:#a89a84;background:0 0;min-width:72px;padding:4px 2px 0;font-size:15px;font-weight:600;position:relative}.topbar nav button:after{content:"";background:var(--gold);width:0;height:2px;transition:width .24s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.topbar nav button:hover,.topbar nav button.is-active{color:#f5e6c9}.topbar nav button.is-active:after{width:100%}.top-actions{justify-self:end;gap:5px;display:flex}.top-actions button{color:#c6b79d;background:0 0;border-radius:8px;place-items:center;width:40px;height:40px;transition:background .2s,color .2s;display:grid}.top-actions button:hover{color:#fff2d9;background:#ffffff0f}.top-actions svg{width:19px}.hub-shell,.collection-shell{background:#08131e;min-height:calc(100dvh - 64px)}.hub-hero{border-bottom:1px solid var(--line);background:radial-gradient(circle at 72% 44%,#134d48b3,#0000 30%),linear-gradient(120deg,#07111b 35%,#0b2029 100%);grid-template-columns:1fr .9fr;align-items:center;gap:40px;min-height:475px;padding:62px max(7vw,40px);display:grid;position:relative;overflow:hidden}.hub-hero:before{content:"♣";color:#ceb27906;font-family:Georgia;font-size:580px;line-height:1;position:absolute;top:-120px;right:4vw}.hub-copy{z-index:2;max-width:640px;position:relative}.hub-copy h1{font-family:var(--serif);letter-spacing:-.055em;margin:0 0 25px;font-size:clamp(58px,6vw,92px);font-weight:400;line-height:.93}.hub-copy h1 em{color:var(--gold);font-style:normal}.hub-copy p{color:#b9b1a3;max-width:555px;margin:0 0 30px;font-size:17px;line-height:1.65}.hub-copy>button{background:var(--blue);color:#fff;border-radius:7px;align-items:center;gap:10px;min-height:50px;padding:0 22px;font-weight:700;display:inline-flex;box-shadow:0 8px 30px #3288ff3d}.hub-copy>button:hover{background:#4292ff;transform:translateY(-1px)}.hub-copy>small{color:#7f8d95;margin-top:13px;font-size:12px;display:block}.hero-card-fan{perspective:900px;justify-self:center;width:440px;height:300px;position:relative}.hero-card-fan:after{content:"";filter:blur(35px);background:#00000073;border-radius:50%;position:absolute;inset:65px 25px 15px}.hero-card-fan>span{z-index:1;color:#171a1a;width:152px;height:224px;font-family:var(--serif);background:linear-gradient(145deg,#fff9ec,#e8dcc4);border-radius:12px;flex-direction:column;padding:18px;font-size:54px;display:flex;position:absolute;top:20px;left:150px;transform:rotate(-3deg);box-shadow:0 24px 55px #00000073,inset 0 0 0 1px #b9aa8f}.hero-card-fan>span small{align-self:center;margin-top:26px;font-family:Georgia,serif;font-size:75px}.hero-card-fan>span:first-child{transform:translate(-116px)rotate(-14deg)}.hero-card-fan>span:nth-child(2){z-index:3;color:#b5362a;transform:translateY(-14px)rotate(-1deg)}.hero-card-fan>span:nth-child(3){color:#b5362a;transform:translate(116px)rotate(12deg)}.curriculum{max-width:1500px;margin:auto;padding:56px max(7vw,40px) 70px}.section-heading{grid-template-columns:1fr 1fr;align-items:end;gap:30px;margin-bottom:28px;display:grid}.section-heading>div{color:var(--blue);align-items:center;gap:9px;font-weight:600;display:flex}.section-heading svg{width:18px}.section-heading>strong{font-family:var(--serif);font-size:28px;font-weight:400;line-height:1.15}.lesson-list{border-top:1px solid var(--line)}.lesson-list>button{text-align:left;color:#e8decc;background:0 0;border-bottom:1px solid #dac39621;grid-template-columns:60px 1fr auto 30px;align-items:center;gap:10px;width:100%;min-height:80px;transition:padding .2s,background .2s;display:grid}.lesson-list>button:hover,.lesson-list>button.is-current{background:linear-gradient(90deg,#3288ff1a,#0000);padding-left:13px}.lesson-list>button>span{color:#687782;font-family:var(--serif);font-size:21px}.lesson-list>button>span svg{width:20px;color:var(--gold)}.lesson-list strong{margin-bottom:5px;font-size:16px;display:block}.lesson-list small{text-overflow:ellipsis;white-space:nowrap;color:#7f8d95;display:block;overflow:hidden}.lesson-list em{color:#70acff;text-transform:uppercase;letter-spacing:.08em;border:1px solid #3288ff66;border-radius:5px;padding:6px 10px;font-size:11px;font-style:normal}.lesson-list>button>svg{color:#65737d;width:17px}.principles{border-top:1px solid var(--line);background:#0b1926;grid-template-columns:1fr 1fr;display:grid}.principles div{border-right:1px solid var(--line);grid-template-columns:30px 1fr;column-gap:14px;padding:45px max(7vw,40px);display:grid}.principles svg{color:var(--gold);grid-row:span 2}.principles strong{font-family:var(--serif);font-size:24px;font-weight:400}.principles p{color:#84929a;margin:8px 0 0}.game-stage{isolation:isolate;background:#050c13;height:calc(100dvh - 64px);min-height:610px;position:relative;overflow:hidden}.table-art{z-index:-2;background:#08121c url(/assets/premium-card-table.png) 50%/cover no-repeat;position:absolute;inset:0}.table-art:after{content:"";background:radial-gradient(#0000 35%,#030a1014 72%,#030a10ad 100%);position:absolute;inset:0}.lesson-rail,.context-rail{z-index:20;background:var(--panel);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid #cfb27847;width:248px;transition:transform .35s cubic-bezier(.2,.8,.2,1);position:absolute;top:12px;bottom:18px;box-shadow:0 18px 65px #0000005c}.lesson-rail{border-left:0;border-radius:0 14px 14px 0;left:0;transform:translate(calc(12px - 100%))}.lesson-rail.is-open{transform:translate(0)}.context-rail{border-right:0;border-radius:14px 0 0 14px;right:0;transform:translate(calc(100% - 12px))}.context-rail.is-open{transform:translate(0)}.rail-content{scrollbar-width:thin;flex-direction:column;height:100%;padding:25px 20px;display:flex;overflow:auto}.rail-toggle{z-index:3;background:#0b1a27;border:1px solid #cfb2784d;place-items:center;width:25px;height:57px;display:grid;position:absolute;top:48%}.rail-toggle svg{width:15px;transition:transform .25s}.rail-toggle--left{border-left:0;border-radius:0 8px 8px 0;right:-25px}.lesson-rail.is-open .rail-toggle svg{transform:rotate(180deg)}.rail-toggle--right{border-right:0;border-radius:8px 0 0 8px;left:-25px}.context-rail:not(.is-open) .rail-toggle svg{transform:rotate(180deg)}.rail-heading{border-bottom:1px solid var(--line);color:#4e9cff;align-items:center;gap:8px;padding-bottom:18px;font-size:16px;font-weight:600;display:flex}.lesson-count{padding:22px 5px 14px}.lesson-count>span,.lesson-copy>span,.context-block>span,.history>span,.context-title>span{color:#998e7b;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700;display:block}.lesson-count strong{font-family:var(--serif);margin-top:4px;font-size:48px;font-weight:400;line-height:1;display:block}.lesson-count small{color:#9a8d76;font-size:20px}.progress-track{background:#ffffff17;border-radius:8px;height:4px;margin-bottom:22px;overflow:hidden}.progress-track i{border-radius:inherit;background:linear-gradient(90deg, var(--blue), #8fbdff);height:100%;box-shadow:0 0 12px var(--blue);transition:width .5s;display:block}.lesson-copy{border-top:1px solid var(--line);padding:24px 4px 20px}.lesson-copy h2{font-family:var(--serif);margin:12px 0 14px;font-size:28px;font-weight:400;line-height:1.08}.lesson-copy p{color:#aaa69f;margin:0;font-size:13px;line-height:1.56}.text-action,.leave-action{color:#b8aa94;text-transform:uppercase;letter-spacing:.07em;background:0 0;align-items:center;gap:8px;font-size:12px;display:flex}.text-action{color:#65a6ff;margin-top:4px}.leave-action{border-top:1px solid var(--line);margin-top:auto;padding-top:19px}.table-play{position:absolute;inset:0 230px}.opponent{z-index:3;color:#d9cfbc;align-items:center;gap:9px;display:flex;position:absolute}.opponent--north{text-align:center;flex-direction:column;gap:3px;top:18px;left:50%;transform:translate(-50%)}.opponent--east{text-align:right;flex-direction:row-reverse;top:40%;right:2.5%}.avatar{background-image:url(/assets/opponent-portraits.png);background-repeat:no-repeat;background-size:300%;border:1px solid #786e5f;border-radius:50%;place-items:center;width:64px;height:64px;display:grid;position:relative;overflow:visible;box-shadow:0 6px 18px #0000004d}.opponent--west .avatar{background-position:0 42%}.opponent--north .avatar{background-position:50% 42%}.opponent--east .avatar{background-position:100% 42%}.avatar span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.avatar i{border-radius:inherit;border:2px solid #0000;transition:border .25s,box-shadow .25s;position:absolute;inset:-6px}.opponent.is-active .avatar i{border-color:var(--blue);box-shadow:0 0 15px #3288ffb3}.opponent strong{font-size:15px;display:block}.opponent small{color:#938b7d;margin-top:2px;font-size:11px;display:block}.opponent-cards{gap:0;display:flex;position:absolute}.opponent--north .opponent-cards{bottom:90px;transform:rotate(180deg)}.opponent--west .opponent-cards{right:105px;transform:rotate(90deg)}.opponent--east .opponent-cards{left:105px;transform:rotate(-90deg)}.card-back{color:#173d70;background:#faf6eb;border:1px solid #d8caad;border-radius:4px;width:38px;height:55px;margin-left:-28px;display:block;position:relative;overflow:hidden;box-shadow:0 4px 8px #00000040}.card-back:first-child{margin-left:0}.card-back-art{width:100%;height:100%;display:block}.trick-area{width:390px;height:300px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.played-slot{animation:.42s cubic-bezier(.2,.8,.2,1) both play-card;position:absolute}.played-slot--north{top:0;left:149px;transform:rotate(3deg)}.played-slot--west{top:91px;left:42px;transform:rotate(-7deg)}.played-slot--east{top:91px;right:42px;transform:rotate(8deg)}.played-slot--south{bottom:0;left:149px;transform:rotate(-2deg)}.empty-trick{color:#e0d0b138;align-content:center;place-items:center;display:grid;position:absolute;inset:50px 70px}.empty-trick span{font-family:Georgia,serif;font-size:36px}.empty-trick p{text-transform:uppercase;letter-spacing:.12em;margin:6px 0;font-size:9px}.player-zone{z-index:10;width:min(1100px,98%);position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.hand{justify-content:center;align-items:flex-end;height:210px;padding:0 26px;display:flex}.playing-card{--card-w:clamp(78px, 7.15vw, 112px);--card-rotation:calc(var(--card-offset,0) * 2.25deg);width:var(--card-w);height:calc(var(--card-w) * 1.447);flex:0 0 var(--card-w);border-radius:calc(var(--card-w) * .055);color:#15191b;transform-origin:50% 120%;transform:translateY(var(--card-lift,0)) rotate(var(--card-rotation));background:#fffdf6;border:1px solid #705b389e;margin-left:clamp(-34px,-1.9vw,-26px);padding:0;transition:transform .2s,filter .2s,box-shadow .2s,opacity .2s;position:relative;overflow:hidden;box-shadow:0 10px 22px #0000007a,0 2px 3px #00000047}.playing-card:first-child{margin-left:0}.playing-card:not(:disabled):hover{transform:translateY(-18px)rotate(0);box-shadow:0 18px 28px #00000080,0 0 0 2px #3288ff99;z-index:30!important}.playing-card.is-selected{box-shadow:0 18px 30px #0000008c, 0 0 0 3px var(--blue), 0 0 20px #3288ffa6;transform:translateY(-28px)rotate(0);z-index:31!important}.playing-card.is-highlighted{box-shadow:0 0 0 3px var(--blue), 0 0 25px 8px #3288ff8c;animation:1.2s infinite hint-pulse;z-index:32!important}.playing-card.is-disabled{opacity:.52;filter:saturate(.45)brightness(.8)}.card-art{pointer-events:none;width:100%;height:100%;display:block}.playing-card.is-compact{--card-w:92px;pointer-events:none;height:134px;margin-left:0;transform:none}.coach-note{z-index:40;pointer-events:none;background:#07111bf0;border:1px solid #cfb27866;border-radius:8px;gap:11px;width:250px;padding:13px;animation:.28s both note-in;display:flex;position:absolute;bottom:169px;left:4%;box-shadow:0 15px 35px #00000059}.coach-note svg{color:var(--gold);flex:none}.coach-note p{color:#c9beaa;margin:0;font-size:12px;line-height:1.45}.decision-bar{border:1px solid var(--blue);background:#06101af5;border-radius:10px;grid-template-columns:52px 1fr auto auto;align-items:center;gap:12px;width:min(680px,88%);min-height:78px;margin:-4px auto 0;padding:10px;display:grid;box-shadow:0 0 28px #3288ff29,0 10px 30px #0006}.turn-glyph{color:#53a0ff;background:#0c2b4b;border-radius:50%;place-items:center;width:48px;height:48px;font-family:Georgia;font-size:24px;display:grid}.decision-copy{min-width:0}.decision-copy small{color:#6f8190;letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:9px;display:block}.decision-copy strong{color:#f1e6d3;font-family:var(--serif);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(19px,1.7vw,25px);font-weight:400;display:block;overflow:hidden}.hint-button,.play-button{text-transform:uppercase;letter-spacing:.05em;border-radius:7px;align-items:center;gap:7px;min-height:48px;padding:0 16px;font-size:11px;font-weight:700;display:flex}.hint-button{color:var(--gold);background:#132333;border:1px solid #cfb27840}.play-button{background:var(--blue);color:#fff}.play-button:disabled{opacity:.35;cursor:not-allowed}.table-toolbar{color:#a99e89;background:#07111be6;border:1px solid #cfb27833;border-radius:11px;justify-content:space-between;align-items:center;width:min(840px,94%);min-height:56px;margin:10px auto 0;padding:6px 10px;display:flex}.table-toolbar button{color:#b9ab94;text-transform:uppercase;letter-spacing:.06em;background:#07111be0;border-radius:5px;align-items:center;gap:6px;padding:7px 9px;font-size:9px;display:inline-flex}.table-toolbar button:disabled{opacity:.3}.sorter{background:#07111bde;border:1px solid #cfb27833;border-radius:7px;align-items:center;gap:4px;padding:3px 4px 3px 10px;display:flex}.sorter>span{text-transform:uppercase;letter-spacing:.08em;margin-right:3px;font-size:8px}.sorter button.is-active{color:#f3dfba;box-shadow:inset 0 0 0 1px #cfb278b3}.context-title{border-bottom:1px solid var(--line);padding-bottom:17px}.context-title strong{font-family:var(--serif);margin-top:8px;font-size:29px;font-weight:400;display:block}.context-block{border-bottom:1px solid var(--line);padding:18px 0}.context-block strong{font-family:var(--serif);margin-top:7px;font-size:18px;font-weight:400;display:block}.context-block strong.accent{color:var(--blue);font-family:inherit;font-size:15px;font-weight:600}.context-block p{color:#9e998f;margin:7px 0 0;font-size:12px;line-height:1.45}.score-line{border-bottom:1px solid var(--line);text-align:center;grid-template-columns:1fr 1px 1fr;gap:12px;padding:17px 0;display:grid}.score-line i{background:var(--line)}.score-line span{color:#7f8a8d;text-transform:uppercase;font-size:9px;display:block}.score-line strong{font-family:var(--serif);font-size:25px;font-weight:400}.history{padding-top:18px}.history>div{border-bottom:1px solid #ffffff0b;grid-template-columns:12px 1fr auto;align-items:center;min-height:38px;display:grid}.history>div i{background:#5c6869;border-radius:50%;width:6px;height:6px}.history>div i.is-re{background:var(--blue)}.history>div i.is-kontra{background:var(--coral)}.history>div b{font-size:11px;font-weight:500}.history>div small{color:#7f898a;font-size:9px}.history>p{color:#707e85;font-size:11px}.legend{border-top:1px solid var(--line);color:#8d928f;gap:15px;margin-top:auto;padding-top:16px;font-size:9px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.dot{border-radius:50%;width:7px;height:7px;display:block}.dot--you{background:var(--blue)}.dot--active{background:var(--gold)}.sr-only{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.result-overlay{z-index:70;text-align:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(145deg,#0a1925fa,#050e16fa);border:1px solid #cfb2786b;border-radius:14px;width:min(430px,100% - 32px);padding:32px;animation:.35s both note-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 35px 100px #000000a8,0 0 60px #3288ff1f}.result-emblem{width:58px;height:58px;color:var(--gold);background:#cfb27814;border:1px solid #cfb27873;border-radius:50%;place-items:center;margin:0 auto 17px;display:grid}.result-emblem svg{width:25px}.result-overlay>span{color:var(--blue);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:700}.result-overlay h2{font-family:var(--serif);margin:10px 0 8px;font-size:38px;font-weight:400}.result-overlay>p{color:#8d999e;margin:0;font-size:12px}.result-score{border-block:1px solid var(--line);grid-template-columns:1fr 1px 1fr;gap:18px;margin:25px 0;padding:18px 0;display:grid}.result-score i{background:var(--line)}.result-score small{color:#7f8b91;text-transform:uppercase;font-size:9px;display:block}.result-score strong{font-family:var(--serif);margin-top:4px;font-size:29px;font-weight:400;display:block}.result-actions{justify-content:center;gap:9px;display:flex}.result-actions button{background:var(--blue);color:#fff;border-radius:6px;align-items:center;gap:7px;min-height:43px;padding:0 14px;font-size:11px;font-weight:700;display:inline-flex}.result-actions button+button{color:#c8c0b3;background:#ffffff0f}.mobile-help{display:none}.collection-shell{padding:64px max(6vw,34px) 80px;overflow:hidden}.collection-shell>header{max-width:1280px;margin:0 auto 50px}.collection-shell>header>div{color:var(--blue);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.collection-shell>header>div svg{width:17px}.collection-shell h1{font-family:var(--serif);letter-spacing:-.04em;margin:20px 0;font-size:clamp(44px,5vw,72px);font-weight:400;line-height:.98}.collection-shell header p{color:#9ca6aa;max-width:540px;line-height:1.6}.trump-gallery{border:1px solid var(--line);background:radial-gradient(circle,#1147428c,#091722);border-radius:14px;max-width:1280px;margin:auto;padding:28px}.gallery-title{border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:18px;display:flex}.gallery-title span{color:var(--gold);font-weight:600}.gallery-title small{color:#77858c}.card-row{justify-content:center;gap:clamp(4px,.7vw,12px);min-width:920px;padding:32px 0 15px;display:flex}.trump-gallery{overflow-x:auto}.knowledge-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);max-width:1280px;margin:26px auto;display:grid}.knowledge-grid article{border-right:1px solid var(--line);min-height:220px;padding:30px}.knowledge-grid article:last-child{border-right:0}.knowledge-grid article>span{color:var(--blue);font-family:var(--serif);font-size:20px}.knowledge-grid h2{font-family:var(--serif);margin:42px 0 12px;font-size:26px;font-weight:400}.knowledge-grid p{color:#8f9a9f;margin:0;font-size:13px;line-height:1.58}.rule-note{color:#9eacb2;background:#3288ff14;gap:14px;max-width:1280px;margin:auto;padding:18px 22px;display:flex}.rule-note svg{width:18px;color:var(--blue);flex:none}.rule-note p{margin:0;font-size:12px;line-height:1.5}.rule-note strong{color:#d7e0df}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#02070bad;place-items:center;padding:20px;animation:.2s fade-in;display:grid;position:fixed;inset:0}.settings-modal{background:#0b1824;border:1px solid #cfb27847;border-radius:14px;width:min(430px,100%);padding:25px;box-shadow:0 30px 80px #0000008c}.settings-modal header{border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:20px;display:flex}.settings-modal header small{color:var(--blue);text-transform:uppercase;letter-spacing:.12em}.settings-modal h2{font-family:var(--serif);margin:5px 0 0;font-size:29px;font-weight:400}.settings-modal header button{background:#ffffff0d;border-radius:7px;place-items:center;width:34px;height:34px;display:grid}.settings-modal header svg{width:17px}.settings-modal label{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;min-height:72px;display:flex}.settings-modal label strong,.settings-modal label small{display:block}.settings-modal label strong{font-size:13px}.settings-modal label small{color:#74828a;margin-top:4px;font-size:11px}.settings-modal label em{color:#78858d;font-size:11px;font-style:normal}.switch{background:#27323a;border-radius:20px;width:42px;height:24px;padding:3px}.switch i{background:#cad0cf;border-radius:50%;width:18px;height:18px;transition:transform .2s;display:block}.switch.is-on{background:var(--blue)}.switch.is-on i{background:#fff;transform:translate(18px)}.settings-note{color:#7f9099;background:#3288ff14;border-radius:7px;margin-top:18px;padding:13px;font-size:11px;line-height:1.45}@keyframes play-card{0%{opacity:0;translate:0 50px;scale:.82}to{opacity:1;translate:0;scale:1}}@keyframes hint-pulse{50%{box-shadow:0 0 0 3px var(--blue), 0 0 35px 10px #3288ffb3}}@keyframes note-in{0%{opacity:0;transform:translateY(8px)}}@keyframes fade-in{0%{opacity:0}}@media (width<=1180px){.lesson-rail,.context-rail{width:225px}.table-play{inset-inline:175px}.playing-card{--card-w:clamp(67px, 7vw, 88px)}.opponent--west{left:0}.opponent--east{right:0}}@media (width<=900px){.topbar{grid-template-columns:1fr auto}.topbar nav{z-index:70;border-top:1px solid var(--line);background:#050d15fa;order:3;justify-content:space-around;align-self:auto;gap:0;height:55px;position:fixed;inset:calc(100dvh - 55px) 0 auto}.topbar nav button{flex:1}.top-actions button:last-child{display:none}.game-stage{height:calc(100dvh - 119px);min-height:560px}.table-play{inset-inline:18px}.lesson-rail,.context-rail{width:min(310px,82vw);top:8px;bottom:8px}.opponent--west,.opponent--east{top:36%}.opponent-cards{display:none}.player-zone{width:100%;bottom:5px}.hand{height:142px}.playing-card{--card-w:clamp(54px, 9vw, 68px);margin-left:clamp(-29px,-3vw,-19px)}.decision-bar{width:min(620px,94%)}.table-toolbar{width:93%}.hub-shell,.collection-shell{padding-bottom:55px}.hub-hero{grid-template-columns:1fr;min-height:530px;padding-block:48px}.hero-card-fan{opacity:.3;position:absolute;right:-120px}.hub-copy p{max-width:480px}.section-heading{grid-template-columns:1fr}.lesson-list small{max-width:70vw}.collection-shell{min-height:calc(100dvh - 119px)}.knowledge-grid{grid-template-columns:1fr}.knowledge-grid article{border-right:0;border-bottom:1px solid var(--line);min-height:auto}.knowledge-grid h2{margin-top:20px}}@media (width<=620px){.topbar{height:58px;padding:0 13px}.brand{gap:10px;font-size:13px}.brand-mark{width:23px;height:23px}.top-actions{gap:0}.top-actions button{width:35px}.game-stage{height:calc(100dvh - 113px)}.table-art{background-position:50%}.table-play{inset-inline:0}.opponent--west{left:8px}.opponent--east{right:8px}.opponent--north{top:10px}.avatar{width:40px;height:40px}.opponent strong{font-size:11px}.opponent small{display:none}.trick-area{width:270px;top:38%;transform:translate(-50%,-50%)scale(.86)}.hand{justify-content:center;height:128px;padding:0 10px 3px;overflow:visible}.playing-card{--card-w:58px;--card-rotation:calc(var(--card-offset,0) * 1.18deg);flex-basis:58px;margin-left:-33px}.playing-card:first-child{margin-left:0}.playing-card.is-selected{transform:translateY(-16px)rotate(0)}.coach-note{width:calc(100% - 24px);bottom:190px;left:12px}.decision-bar{grid-template-columns:38px 1fr auto;gap:6px;width:calc(100% - 18px);min-height:56px}.turn-glyph{width:36px;height:36px}.hint-button{justify-content:center;width:38px;padding:0}.hint-button span{display:none}.play-button{grid-column:1/-1;justify-content:center;min-height:35px}.decision-copy strong{font-size:16px}.table-toolbar{display:none}.mobile-help{z-index:15;color:#a9b7bd;background:#07111be6;border-radius:6px;align-items:center;gap:5px;padding:8px 10px;font-size:10px;display:flex;position:absolute;bottom:190px;left:10px}.hub-hero{min-height:510px;padding:44px 24px}.hub-copy h1{font-size:54px}.hub-copy p{font-size:15px}.hero-card-fan{right:-245px}.curriculum{padding:40px 23px 55px}.section-heading>strong{font-size:24px}.lesson-list>button{grid-template-columns:42px 1fr 22px}.lesson-list>button em{display:none}.lesson-list small{max-width:62vw}.principles{grid-template-columns:1fr}.principles div{padding:30px 23px}.collection-shell{padding:44px 20px 75px}.collection-shell h1{font-size:44px}.trump-gallery{padding:18px 12px}.gallery-title{display:block}.gallery-title small{margin-top:7px;display:block}.knowledge-grid article{padding:24px 5px}.rule-note{padding:15px}}.game-stage{background:#050c13;min-height:640px}.table-art:after{background:radial-gradient(at 50% 48%,#0000 26%,#030a1014 68%,#030a10b3 100%),linear-gradient(#03080d29,#0000 18% 72%,#03080d59)}.table-play{inset:0 24px}.table-meta{z-index:16;text-align:left;background:linear-gradient(90deg,#050e1685,#0000);border-left:1px solid #d2b3708c;border-radius:0;gap:3px;min-height:54px;padding:5px 10px;display:grid;position:absolute;top:24px}.table-meta--lesson{left:32px}.table-meta--context{text-align:right;background:linear-gradient(-90deg,#050e1685,#0000);border-left:0;border-right:1px solid #d2b3708c;right:32px}.table-meta small{color:#a99f8f;letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:700}.table-meta strong{color:#f0e4ce;font-family:var(--serif);font-size:20px;font-weight:400}.lesson-track{z-index:15;align-items:center;width:min(500px,36vw);display:flex;position:absolute;top:34px;left:50%;transform:translate(-50%)}.lesson-track button{background:0 0;flex:1;height:30px;padding:0;position:relative}.lesson-track button:before{content:"";background:#d2b37047;height:1px;position:absolute;top:14px;left:0;right:0}.lesson-track button:first-child:before{left:50%}.lesson-track button:last-child:before{right:50%}.lesson-track button span{z-index:1;color:#092033;background:#07131c;border:1px solid #9d8660;border-radius:50%;place-items:center;width:8px;height:8px;margin:auto;font-size:9px;display:grid;position:relative}.lesson-track button.is-done span{background:#d2b370;box-shadow:0 0 0 3px #d2b3701a}.lesson-track button.is-current span{background:#d2b370;border-color:#e7c982;width:24px;height:24px;font-weight:800;box-shadow:0 0 18px #d2b37073}.lesson-track button:disabled{cursor:default}.detail-panel.lesson-rail,.detail-panel.context-rail{z-index:65;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#050f17f7;border:1px solid #d2b37057;border-radius:12px;width:min(330px,100vw - 28px);max-height:calc(100% - 104px);top:84px;bottom:auto;box-shadow:0 28px 80px #0000009e}.detail-panel.lesson-rail{left:22px;transform:translateY(-10px)scale(.98)}.detail-panel.context-rail{right:22px;transform:translateY(-10px)scale(.98)}.detail-panel.is-open{opacity:1;pointer-events:auto;transform:none}.detail-panel .rail-content{max-height:inherit;padding:22px}.panel-close{background:#ffffff0f;border-radius:50%;place-items:center;width:36px;height:36px;margin-left:auto;display:grid}.context-title{padding-right:46px;position:relative}.context-title .panel-close{position:absolute;top:-7px;right:0}.opponent--north{top:90px;left:70%}.opponent--west{top:39%;left:3.2%}.opponent--east{top:39%;right:3.2%}.trick-area{top:40%}.player-zone{width:min(1220px,100% - 44px);bottom:8px}.coach-note{pointer-events:none;background:#050f17f0;border-color:#d2b3706b;border-radius:9px;align-items:center;width:min(590px,72%);min-height:46px;margin:0 auto 7px;padding:10px 16px;position:relative;inset:auto;box-shadow:0 13px 32px #0000004d}.coach-note:after{content:"";background:#07121b;border-bottom:1px solid #d2b3706b;border-right:1px solid #d2b3706b;width:9px;height:9px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.coach-note.is-hint{border-color:#4a9effa6}.coach-note p{font-size:12px}.hand{height:224px;padding-inline:32px}.playing-card{--card-w:clamp(82px, 7.7vw, 122px);border-radius:calc(var(--card-w) * .06);background:#f8f1e2;border-color:#634f32c7;margin-left:clamp(-40px,-2.35vw,-29px);box-shadow:0 13px 25px #00000085,0 2px 3px #00000059,inset 0 0 0 1px #ffffffb8}.playing-card:after{content:"";z-index:2;border-radius:calc(var(--card-w) * .035);pointer-events:none;border:1px solid #7763423d;position:absolute;inset:3.2%}.card-art{width:92%;height:94%;margin:3% 4%}.playing-card.is-compact{--card-w:94px;height:136px}.command-row{grid-template-columns:minmax(150px,220px) minmax(560px,860px) minmax(150px,220px);justify-content:center;align-items:center;gap:15px;display:grid}.decision-bar{background:#050f17f7;border-color:#d2b3707a;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;gap:15px;width:100%;min-height:76px;margin:0;padding:10px 11px;box-shadow:0 14px 34px #00000075,inset 0 1px #ffffff06}.decision-copy{text-align:center}.decision-copy small{color:#8c948f}.decision-copy strong{color:#f5e9d3;font-size:clamp(18px,1.65vw,24px)}.hint-button,.play-button{border-radius:8px;min-height:52px}.hint-button{color:#d9bf82;background:#d2b37012;border-color:#d2b37047;justify-content:center;min-width:103px}.play-button{color:#101b20;background:linear-gradient(#d8bc7a,#b89250);justify-content:center;min-width:150px;box-shadow:inset 0 1px #ffffff54,0 8px 22px #00000040}.play-button:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-1px)}.side-controls{align-items:center;gap:7px;display:flex}.side-controls--left{justify-content:flex-end}.side-controls--right{flex-direction:column;justify-content:flex-start;align-items:flex-start}.side-controls>button,.sorter button{color:#b9ad97;letter-spacing:.05em;text-transform:uppercase;background:#050f17c7;border:1px solid #d2b37038;border-radius:7px;align-items:center;gap:7px;min-height:40px;padding:0 11px;font-size:9px;font-weight:700;display:inline-flex}.side-controls>button:disabled{opacity:.3}.side-controls--right>span{color:#968c7c;letter-spacing:.11em;text-transform:uppercase;font-size:8px;font-weight:700}.sorter{padding:3px}.sorter button{background:0 0;border:0;min-height:34px}.sorter button.is-active{background:#d2b37017}.mobile-more{display:none;position:relative}.mobile-more summary{list-style:none}.mobile-more summary::-webkit-details-marker{display:none}@media (width<=1180px){.table-play{inset-inline:16px}.lesson-track{width:min(390px,32vw)}.command-row{grid-template-columns:145px minmax(520px,1fr) 145px;gap:9px}.playing-card{--card-w:clamp(73px, 7.4vw, 96px);margin-left:clamp(-36px,-2.55vw,-26px)}}@media (width<=900px){.app-shell.is-game .topbar nav{display:none}.app-shell.is-game .game-stage{height:calc(100dvh - 64px);min-height:620px}.table-meta--context,.lesson-track{display:none}.table-meta--lesson{min-height:48px;padding-left:11px;top:13px;left:14px;right:14px}.table-meta strong{font-size:18px}.table-play{inset:58px 10px 0}.opponent--north{top:9px;left:50%}.opponent--west,.opponent--east{top:33%}.trick-area{top:38%}.player-zone{width:100%;bottom:5px}.coach-note{width:min(560px,100% - 24px)}.hand{height:158px}.command-row{grid-template-columns:1fr 48px;gap:6px;width:min(660px,100% - 16px);margin:auto}.decision-bar{grid-column:1}.side-controls{display:none}.mobile-more{grid-column:2;align-self:stretch;display:block}.mobile-more summary{color:#cdb886;background:#050f17f5;border:1px solid #d2b37052;border-radius:12px;place-items:center;width:48px;height:100%;min-height:76px;display:grid}.mobile-more>div{background:#07151f;border:1px solid #d2b3704d;border-radius:10px;width:210px;padding:7px;display:grid;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 20px 50px #0000008c}.mobile-more>div button{color:#c9bfad;text-align:left;background:0 0;border-radius:6px;align-items:center;gap:9px;min-height:44px;padding:0 10px;display:flex}.mobile-more>div button:hover{background:#ffffff0f}}@media (width<=620px){.app-shell.is-game .topbar{height:58px}.app-shell.is-game .brand{min-height:44px;font-size:14px}.app-shell.is-game .brand-mark{width:25px;height:25px}.app-shell.is-game .top-actions button{width:44px;height:44px}.app-shell.is-game .game-stage{height:calc(100dvh - 58px);min-height:610px}.detail-panel.lesson-rail,.detail-panel.context-rail{width:auto;max-height:calc(100% - 80px);top:68px;left:10px;right:10px}.detail-panel .panel-close{width:44px;height:44px}.detail-panel .text-action,.detail-panel .leave-action{min-height:44px}.table-play{inset-inline:0}.opponent--north{top:6px}.opponent--west,.opponent--east{top:31%}.opponent small{font-size:8px;display:block}.opponent-cards{display:flex}.card-back{width:30px;height:44px;margin-left:-23px}.opponent--north .opponent-cards{bottom:44px;transform:rotate(180deg)scale(.78)}.opponent--west .opponent-cards{right:48px;transform:rotate(90deg)scale(.7)}.opponent--east .opponent-cards{left:48px;transform:rotate(-90deg)scale(.7)}.trick-area{top:36%}.coach-note{width:calc(100% - 18px);min-height:43px;margin-bottom:4px;padding:8px 12px}.coach-note p{font-size:10.5px;line-height:1.35}.hand{height:151px;padding:0 5px 2px}.playing-card{--card-w:82px;--card-rotation:calc(var(--card-offset,0) * .9deg);flex-basis:82px;margin-left:-54px}.playing-card.is-selected{transform:translateY(-18px)rotate(0)}.card-art{width:91%;height:93%;margin:3.5% 4.5%}.command-row{grid-template-columns:1fr 46px;align-items:end;gap:5px;width:calc(100% - 10px)}.decision-bar{border-radius:24px 24px 12px 12px;grid-template-rows:auto 46px 50px;grid-template-columns:1fr;gap:7px;min-height:166px;padding:9px}.decision-copy{grid-area:1/1/auto/-1}.decision-copy strong{font-size:17px}.hint-button{grid-area:2/1;justify-self:center;width:min(220px,100%);min-width:0;min-height:46px}.hint-button span{display:inline}.play-button{grid-area:3/1;min-width:0;min-height:50px;font-size:12px}.mobile-more summary{border-radius:12px;width:46px;height:50px;min-height:50px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
