@font-face{font-family:BridgeSerif;src:local('Georgia')}*{box-sizing:border-box} :root{color-scheme:dark;--bg:#110f12;--panel:#1b171c;--line:#393039;--text:#f3eee7;--muted:#b6a9b1;--red:#d94752;--accent:#ef6d73;--gold:#cbae7a;--cardW:62px;--cardH:87px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,'Segoe UI',sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{border:1px solid var(--line);background:#251e26;color:var(--text);border-radius:8px;padding:.65rem 1rem;cursor:pointer;min-height:44px;transition:background .15s,border-color .15s}button:hover{background:#3a2935;border-color:#9b626b}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}a{color:var(--text)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:BridgeSerif,Georgia,serif;font-weight:normal}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.8rem;line-height:1.2}p{margin-bottom:1rem}.masthead{max-width:1320px;margin:auto;padding:24px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-family:Georgia,serif;text-decoration:none;font-size:25px;font-weight:bold}.brand i{color:var(--accent)}.brand span{display:block;font:9px system-ui;letter-spacing:.3em;color:var(--muted)}.return{font-size:13px;color:#d2c4cd;text-decoration:none}.screen{max-width:1240px;padding:0 32px;margin:auto}[hidden]{display:none!important}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:490px;align-items:center;padding:48px 12px 54px}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:700;color:var(--gold);margin-bottom:15px}.hero h1{font-size:clamp(60px,6.3vw,88px);letter-spacing:-.05em;line-height:.98;margin-bottom:20px}.hero h1 em{font-weight:normal;color:var(--accent)}.tagline{font-size:20px;line-height:1.4;margin-bottom:14px}.intro{font-size:14px;color:var(--muted)}.primary{background:#b82f40;border-color:#d64d5d;font-weight:600;color:white}.primary:hover{background:#d13b4c}.hero .primary{min-width:225px;display:flex;justify-content:space-between;margin-top:25px}.hero-art{height:380px;position:relative;isolation:isolate}.halo{position:absolute;width:340px;height:340px;left:50%;top:45%;transform:translate(-50%,-50%);border:1px solid #49333d;border-radius:50%;box-shadow:0 0 0 32px #22181e,0 0 0 33px #30222b;background:radial-gradient(circle,#52303a,#1c161b 70%);z-index:-1}.art-card{position:absolute;left:50%;top:45%;width:155px;height:220px;background:#f6eee1;border:1px solid #eee1cc;border-radius:11px;box-shadow:0 18px 45px #0009;color:#241e25;font-size:30px;line-height:1;display:flex;flex-direction:column;padding:14px;transform-origin:50% 120%}.art-card b{font:38px Georgia}.art-card span{position:absolute;font-size:85px;left:43px;top:85px}.a1{transform:translate(-80%,-50%) rotate(-23deg)}.a2{color:#b22b3b;transform:translate(-48%,-53%) rotate(-3deg)}.a3{transform:translate(-12%,-45%) rotate(19deg)}.seal{position:absolute;right:10%;bottom:0;border:1px solid #9b7c54;background:#211b1c;border-radius:50%;width:110px;height:110px;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:7px;letter-spacing:.08em;line-height:1.4;color:#dfc18c;transform:rotate(-9deg)}.seal strong{font:40px Georgia;margin:-5px 0}.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.mode{position:relative;text-align:left;background:linear-gradient(140deg,#241c23,#19161b);padding:25px 20px;border-radius:10px}.mode-icon{font-size:25px;color:var(--accent);display:block;margin-bottom:17px}.mode strong{display:block;font:23px Georgia;margin-bottom:9px}.mode small{display:block;color:var(--muted);font-size:12px;max-width:180px}.mode-arrow{position:absolute;top:24px;right:20px;color:#aa8790}.home-tools{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin:30px 0 12px}.home-tools button,.link-btn{border:0;background:transparent;padding:0;color:#dbcbd2;font-size:12px}.footnote{color:var(--muted);font-size:11px;line-height:1.6}.screen>.footnote{text-align:center}footer{text-align:center;padding:32px 15px;color:#a18f9a;font-size:10px;letter-spacing:.1em}footer span{margin:0 12px;color:#5f4354}footer i{color:var(--accent)}.game-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 0 14px}.game-heading .eyebrow{margin:0;font-size:8px}.game-heading h1{font-size:28px;margin:3px 0 0}.board-bar{display:flex;gap:10px 20px;align-items:center;flex-wrap:wrap;padding:12px 18px;border:1px solid var(--line);border-radius:8px;background:#211a21;font-size:12px;margin-bottom:16px}.board-bar strong{font-weight:600;color:#fff}.board-bar .vulnerable{color:#ff9396}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:20px}.bridge-table{height:290px;border:1px solid #5d464b;border-radius:100px;background:radial-gradient(ellipse at center,#35423b,#1d2c27 80%);box-shadow:inset 0 0 0 10px #171e1b,inset 0 0 0 11px #485047;position:relative;overflow:hidden}.seat{position:absolute;font-size:12px;text-align:center;z-index:1;max-width:140px}.seat strong{display:block;font-weight:500}.seat small{display:block;font-size:9px;letter-spacing:.07em;color:#c0cec4}.seat-n{top:17px;left:50%;transform:translateX(-50%)}.seat-s{bottom:16px;left:50%;transform:translateX(-50%)}.seat-w{left:23px;top:50%;transform:translateY(-50%)}.seat-e{right:23px;top:50%;transform:translateY(-50%)}.seat.active strong{color:#ffe2ac}.seat.active:before{content:'●';color:#e7c482;font-size:9px}.seat .pill{font-size:8px;color:#f0bdc0}.trick-area{position:absolute;inset:60px 100px;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;justify-items:center;align-items:center}.table-card{border-radius:5px;background:#fcf7ed;color:#242127;width:42px;height:57px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;font-size:21px;box-shadow:0 3px 8px #0007;position:relative}.table-card small{font-size:7px;color:#555;position:absolute;bottom:2px;left:3px}.tc0{grid-column:2;grid-row:1}.tc1{grid-column:3;grid-row:2}.tc2{grid-column:2;grid-row:3}.tc3{grid-column:1;grid-row:2}.table-mark{grid-column:2;grid-row:2;text-align:center;font:15px Georgia;color:#b9c7bd;line-height:1.2}.table-mark small{font:9px system-ui}.red{color:#b11f36}.four-color .diamonds{color:#1c59b5}.four-color .clubs{color:#177146}.hand-area{padding:11px 0 5px;min-width:0}.hand-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding:0 2px 7px;color:#e2d6db}.hand-label small{font-size:10px;color:var(--muted)}.cards{display:flex;justify-content:center;gap:2px;flex-wrap:wrap}.suit-group{display:flex;align-items:center;padding:1px;min-width:0;max-width:100%}.playing-card{background:#faf5eb;color:#231d25;min-height:var(--cardH);height:var(--cardH);width:var(--cardW);padding:5px 6px 3px;flex:none;border:1px solid #b9b4a7;border-radius:6px;position:relative;display:flex;flex-direction:column;align-items:flex-start;line-height:1;box-shadow:0 3px 7px #0003;font-family:Georgia,serif;font-size:22px;isolation:isolate}.playing-card+.playing-card{margin-left:-20px}.playing-card .pip{font-size:18px;margin-top:3px}.playing-card .big-pip{position:absolute;font-size:31px;bottom:6px;right:6px;z-index:-1;opacity:.85}.playing-card.red{color:#b11f36}.playing-card:disabled{opacity:1;background:#d5d0c8;color:#6b6567;border-color:#aaa39a;cursor:not-allowed;filter:saturate(.5)}.playing-card:hover:not(:disabled){background:#fffdf5;border-color:var(--gold);transform:translateY(-4px);z-index:5}.playing-card.selected{outline:3px solid #eccd83;transform:translateY(-6px);z-index:5}.playing-card.hint-card{outline:3px solid var(--gold);z-index:4}.dummy-area{border-bottom:1px solid var(--line);padding:9px 0}.dummy-area .playing-card{--cardW:49px;--cardH:65px;font-size:18px}.dummy-area .playing-card .big-pip{font-size:24px}.dummy-area .playing-card+.playing-card{margin-left:-17px}.status{font-size:13px;min-height:29px;text-align:center;padding:8px 2px;color:#ead0c7}.action-area{padding:10px 0;display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.bid-selects{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:center}.bid-selects select{width:auto;min-width:62px;margin:0}.bid-selects button{padding:8px 12px}.bid-explanation{width:100%;font-size:11px;color:var(--muted);text-align:center;min-height:20px}.side-panel{background:#1c171d;border:1px solid var(--line);border-radius:9px;padding:16px}.panel-heading{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;color:var(--gold);margin-bottom:12px}.auction{width:100%;border-collapse:collapse;font-size:12px;text-align:center}.auction th{color:#b7a5b1;font-size:10px;font-weight:500;padding:5px}.auction td{border-top:1px solid #3a3039;padding:7px 3px}.auction button{min-height:28px;border:0;background:transparent;padding:0 2px;font-size:12px}.coach-card{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.coach-card .eyebrow{font-size:8px}.coach-card h2{font-size:25px}.coach-card p:not(.eyebrow){font-size:12px;color:var(--muted)}.coach-card button{width:100%;font-size:12px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:20px 0 15px}.tool-grid button{font-size:11px;padding:7px;min-height:39px}.mobile-tools{display:none}.content-screen{padding-top:40px}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:28px}.section-head h1{margin-bottom:10px}.section-head p:not(.eyebrow){color:var(--muted);font-size:14px}.filters{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:18px}.filters label{flex:1;min-width:150px}.panel{background:var(--panel);padding:24px;border:1px solid var(--line);border-radius:10px}.online-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:12px;color:#c8bac3;margin-bottom:14px}input,select{width:100%;display:block;margin-top:6px;background:#110f13;border:1px solid #5b4755;color:var(--text);border-radius:7px;padding:10px 12px;min-height:44px}input[type=checkbox]{width:19px;height:19px;min-height:0;display:inline-block;margin:0 9px 0 0;vertical-align:middle;accent-color:var(--red)}input[type=range]{padding:0} .practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.exercise{border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:20px;display:flex;flex-direction:column;align-items:flex-start}.exercise h2{font-size:23px;margin:8px 0}.exercise p{font-size:12px;color:var(--muted);flex:1}.exercise small{font-size:10px;color:var(--gold)}.exercise button{font-size:12px;min-width:120px}.practice-banner{border:1px solid #7c6048;background:#2c231e;border-radius:8px;padding:12px 16px;margin-bottom:14px;font-size:12px}.practice-banner h2{font-size:20px;margin-bottom:5px}.practice-banner p{margin:4px 0}.practice-banner button{min-height:34px;padding:5px 12px;font-size:11px;margin:6px 5px 0 0}.lesson-layout{display:grid;grid-template-columns:230px 1fr;gap:24px}.lesson-nav{display:flex;flex-direction:column;gap:8px}.lesson-nav button{text-align:left;font-size:12px}.lesson-nav button.current{border-color:var(--accent);background:#3b2430}.lesson-body{background:var(--panel);border:1px solid var(--line);padding:30px;border-radius:10px}.lesson-body p{color:#d4c8cf}.quiz-choices{display:flex;flex-direction:column;gap:8px;max-width:550px}.quiz-choices button{text-align:left}.feedback{border-left:3px solid var(--gold);padding:12px 16px;background:#272028;margin:15px 0}.inline-cards{font:26px Georgia;letter-spacing:.05em;color:#efdbb3}.privacy{position:fixed;inset:0;background:#110f12;z-index:1000;display:grid;place-items:center;text-align:center;padding:25px}.privacy h2{font-size:40px}.privacy button{display:block;margin:15px auto}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:1500;background:#3c2834;border:1px solid #c38088;padding:13px 20px;border-radius:8px;max-width:92vw;box-shadow:0 4px 20px #0008;font-size:13px}dialog{background:#1e1820;color:var(--text);border:1px solid #775363;border-radius:12px;width:min(760px,94vw);max-height:88dvh;padding:24px}dialog::backdrop{background:#000c;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;position:sticky;top:-24px;background:#1e1820;padding:6px 0 12px;z-index:10}.dialog-top h2{margin:8px 0;font-size:28px}.dialog-top button{font-size:18px}#modalBody h3{font-size:17px;color:var(--gold);margin:24px 0 9px}#modalBody p,#modalBody li{font-size:14px;color:#dacdd5}#modalBody table{width:100%;border-collapse:collapse;font-size:13px;margin:15px 0}#modalBody th,#modalBody td{text-align:left;border-bottom:1px solid #493541;padding:8px}#modalBody .auction th,#modalBody .auction td{text-align:center}.score-total{font-size:30px;font-family:Georgia;color:var(--gold);margin:16px 0}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{background:#2b202a;padding:18px;border-radius:7px}.stat strong{display:block;font:30px Georgia;color:var(--gold)}.stat small{font-size:12px}.result-cards{font-size:14px;line-height:1.9;font-family:Georgia}.check-row{display:flex;align-items:center;gap:8px}.setting-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.muted{color:var(--muted)}.high-contrast{--bg:#000;--panel:#111;--line:#ccc;--text:#fff;--muted:#ddd;--gold:#ffe299;--accent:#ff9298}.large-text{font-size:18px}.large-text button,.large-text label,.large-text .status,.large-text .hand-label{font-size:15px}.large-cards{--cardW:72px;--cardH:99px}.no-motion *{transition:none!important;animation:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media(max-width:1000px){.play-layout{grid-template-columns:minmax(0,1fr) 235px;gap:12px}.screen{padding-left:22px;padding-right:22px}.playing-card{--cardW:55px;--cardH:78px}.playing-card+.playing-card{margin-left:-23px}.mode{padding:20px 15px}.mode strong{font-size:20px}.hero-art{transform:scale(.9)}.practice-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.masthead{padding:15px 16px}.brand{font-size:21px}.return{font-size:11px}.screen{padding:0 14px}.hero{min-height:0;padding:35px 5px 25px;grid-template-columns:1fr 130px;gap:0}.hero h1{font-size:52px}.hero .eyebrow{font-size:8px;max-width:180px}.tagline{font-size:16px}.intro{font-size:12px;max-width:230px}.hero .primary{min-width:0;width:190px;font-size:13px}.hero-art{height:245px;transform:scale(.55);transform-origin:50% 45%;margin-left:-68px;margin-right:-27px}.halo{width:280px;height:280px}.art-card{width:140px;height:200px}.seal{bottom:-75px;right:-40px}.mode-grid{grid-template-columns:1fr 1fr;gap:10px}.mode{padding:17px 14px}.mode strong{font-size:20px}.mode small{font-size:10px}.mode-icon{margin-bottom:10px;font-size:22px}.mode-arrow{top:15px;right:12px}.home-tools{gap:8px 18px;margin:20px 0 5px}.home-tools button{font-size:11px;min-height:36px}.footnote{font-size:10px}footer{font-size:8px;padding:22px 10px}footer span{margin:0 5px}.game-heading{padding:12px 0 9px}.game-heading h1{font-size:23px}.game-heading .eyebrow{font-size:7px}.game-heading button{font-size:12px;min-height:36px;padding:5px 12px}.board-bar{font-size:10px;gap:5px 10px;padding:8px 10px;margin-bottom:9px}.board-bar .total-label{display:none}.play-layout{display:block}.side-panel{display:none}.bridge-table{height:235px;border-radius:65px}.seat{font-size:10px;max-width:88px}.seat small{font-size:8px}.seat-n{top:14px}.seat-s{bottom:13px}.seat-w{left:15px}.seat-e{right:15px}.trick-area{inset:52px 80px}.table-card{width:34px;height:47px;font-size:18px}.table-mark{font-size:12px}.table-mark small{font-size:7px}.playing-card{--cardW:47px;--cardH:65px;font-size:20px;padding:5px 4px}.playing-card+.playing-card{margin-left:-19px}.playing-card .pip{font-size:17px}.playing-card .big-pip{font-size:24px;right:3px}.cards{gap:3px 5px;justify-content:center}.suit-group{padding:2px 0}.hand-label{font-size:11px}.hand-label small{font-size:9px}.dummy-area .playing-card{--cardW:38px;--cardH:50px;font-size:16px;padding:4px 3px}.dummy-area .playing-card .pip{font-size:14px;margin-top:2px}.dummy-area .playing-card .big-pip{display:none}.dummy-area .playing-card+.playing-card{margin-left:-12px}.status{font-size:12px;padding:7px 0;min-height:25px}.hand-area{padding:7px 0 3px}.action-area{padding:7px 0 10px;gap:6px}.bid-selects{gap:5px}.bid-selects select{font-size:13px;min-width:50px;padding:8px;min-height:40px}.bid-selects button{font-size:12px;padding:8px;min-height:40px}.bid-explanation{font-size:10px;line-height:1.4}.mobile-tools{display:flex;justify-content:space-between;gap:6px;position:sticky;bottom:0;background:#110f12ed;backdrop-filter:blur(6px);padding:8px 0 max(8px,env(safe-area-inset-bottom));z-index:7;border-top:1px solid #42313c}.mobile-tools button{flex:1;font-size:11px;min-height:40px;padding:5px}.content-screen{padding-top:26px}.section-head h1{font-size:30px}.section-head p:not(.eyebrow){font-size:12px}.section-head>button{font-size:12px;padding:7px 12px}.practice-grid{grid-template-columns:1fr}.filters{gap:8px}.filters label{min-width:90px;font-size:10px}.filters select{padding:8px 5px;font-size:12px}.exercise{padding:17px}.exercise h2{font-size:22px}.lesson-layout{grid-template-columns:1fr;gap:15px}.lesson-nav{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lesson-nav button{font-size:11px;padding:8px}.lesson-body{padding:20px}.lesson-body h2{font-size:26px}.lesson-body p{font-size:14px}.online-grid{grid-template-columns:1fr}.panel{padding:20px}.practice-banner{font-size:11px;padding:9px 12px}.practice-banner h2{font-size:18px}.setting-row{grid-template-columns:1fr}.large-cards .playing-card{--cardW:55px;--cardH:76px}.large-cards .playing-card+.playing-card{margin-left:-23px}.large-cards .dummy-area .playing-card{--cardW:43px;--cardH:58px}.large-text .status{font-size:14px}.large-text .board-bar{font-size:12px}.desktop{display:none}dialog{padding:18px}.dialog-top{top:-18px}#modalBody p,#modalBody li{font-size:13px}}
@media(max-width:360px){.hero{grid-template-columns:1fr 95px}.hero h1{font-size:45px}.hero-art{transform:scale(.43);margin-left:-80px}.playing-card{--cardW:42px;--cardH:61px}.playing-card+.playing-card{margin-left:-19px}.bridge-table{height:215px}.seat-w{left:12px}.seat-e{right:12px}.trick-area{inset:47px 70px}}

@media(max-width:700px){.long-suit .playing-card{--cardW:42px!important}.long-suit .playing-card+.playing-card{margin-left:-19px!important}}
