:root{--ink:#183a35;--muted:#68766c;--paper:#f6f2e9;--cream:#fffdf7;--green:#102e2c;--gold:#d6b479;--line:#dcded0;--red:#ae3a3c;--radius:22px;font-family:Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.43}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #bc8639;outline-offset:3px}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400}h1{font-size:clamp(34px,5vw,58px);line-height:1.06;letter-spacing:-2px}h2{font-size:30px;letter-spacing:-.6px}h3{font-size:24px}a{color:inherit}.shell{max-width:1180px;margin:auto;padding:28px 36px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:28px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:Georgia,serif;font-size:23px}.brandmark{background:var(--green);color:var(--gold);width:38px;height:43px;display:grid;place-items:center;border-radius:10px;font-size:28px}.subtle{background:transparent;color:var(--ink);padding:10px 13px;border:1px solid var(--line);border-radius:30px;font-size:13px}.eyebrow{text-transform:uppercase;letter-spacing:2.5px;font-size:10px;font-weight:700;color:var(--muted)}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;align-items:center;margin:15px 0 32px}.hero p{font-size:15px;line-height:1.6;color:var(--muted);max-width:470px;margin-top:18px}.hero .eyebrow{margin-bottom:14px}.hero-art{position:relative;height:215px;display:flex;align-items:center;justify-content:center;isolation:isolate}.hero-art:before{content:'';width:215px;height:215px;background:#e9e6d8;border-radius:50%;position:absolute;z-index:-1}.bigcard{background:var(--cream);width:116px;height:157px;border-radius:14px;border:1px solid #e5decb;box-shadow:0 12px 35px #19392d17;font:64px Georgia;display:grid;place-items:center}.bigcard:first-child{transform:rotate(-16deg);color:var(--red);margin-right:-48px;margin-top:10px}.bigcard:last-child{transform:rotate(12deg);color:var(--green);margin-top:-10px}.hero-art .spark{position:absolute;right:20%;top:22px;color:#b99860;font-size:30px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 22px}.filters{display:flex;gap:5px;flex-wrap:wrap}.filter{padding:10px 16px;background:transparent;color:var(--muted);border-radius:24px;font-size:13px}.filter.active{background:var(--green);color:#fff9e8}.small{font-size:12px;color:var(--muted);line-height:1.6}.library{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.game-tile{display:flex;flex-direction:column;text-align:left;background:var(--cream);border-radius:var(--radius);border:1px solid #e1dece;overflow:hidden;color:var(--ink);transition:transform .18s}.game-tile:hover{transform:translateY(-3px)}.tile-art{height:135px;width:100%;display:grid;place-items:center;position:relative;background:var(--tile-bg);font:70px Georgia;color:var(--tile-ink)}.tile-art:after{content:'';position:absolute;inset:12px;border:1px solid currentColor;border-radius:13px;opacity:.12}.tile-icon{letter-spacing:-12px;padding-right:12px;transform:rotate(-8deg)}.tile-copy{padding:17px 18px 20px}.tile-copy h3{font-size:22px}.tile-copy p{font-size:12px;color:var(--muted);margin:7px 0 17px;line-height:1.45;min-height:34px}.tile-foot{font-size:11px;display:flex;justify-content:space-between;font-weight:600}.tile-foot span:first-child{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#8b7755}.club-note{margin-top:35px;padding:22px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted)}.continue{background:var(--green);color:#fff9ed;padding:18px 24px;border-radius:18px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 20px}.continue .small{color:#d5dccd}.continue button{background:var(--gold);color:var(--green);padding:10px 18px;border-radius:25px;white-space:nowrap}.gameheader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 20px;flex-wrap:wrap}.gameheader h1{font-size:38px;letter-spacing:-1px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{padding:12px 19px;border-radius:12px;background:var(--green);color:#fff8e8;font-weight:600;font-size:13px}.btn.secondary{background:#e9e5d8;color:var(--ink)}.btn.gold{background:var(--gold);color:var(--ink)}.btn.danger{background:#a64843;color:white}.status{border:1px solid var(--line);background:var(--cream);border-radius:15px;padding:15px 19px;margin:14px 0;line-height:1.55;font-size:14px;min-height:51px}.status strong{color:var(--red)}.chips{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}.chip{border:1px solid var(--line);background:var(--cream);padding:7px 12px;border-radius:20px;font-size:12px}.play-area{border-radius:22px;background:#174940;padding:24px;color:#fff6e5;min-height:300px}.card{display:inline-flex;flex-direction:column;justify-content:space-between;background:#fffcf2;color:#183c3b;border:1px solid #d9d7c8;border-radius:7px;width:55px;height:79px;padding:5px;vertical-align:top;font-weight:700;font-size:15px;box-shadow:0 2px 3px #0002;flex-shrink:0}.card.red{color:var(--red)}.card .suit{font:32px Georgia;text-align:center}.card.selected{outline:3px solid var(--gold);transform:translateY(-5px)}.card.hint{outline:3px solid #d6b479;box-shadow:0 0 15px #d6b479}.card.back{background:repeating-linear-gradient(45deg,#21443e,#21443e 4px,#315c50 4px,#315c50 6px);color:#e0c385;align-items:center;justify-content:center}.card.smallcard{width:40px;height:58px;font-size:12px}.card.smallcard .suit{font-size:25px}.card:disabled{opacity:1}.hand{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0;justify-content:center}.hand-label{font-size:11px;text-align:center;color:#c7d9c9;letter-spacing:1px;text-transform:uppercase;margin:12px 0}.free-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:28px}.slots{display:flex;gap:7px}.slot{width:55px;height:79px;display:grid;place-items:center;border:1px solid #93b8a254;background:#0c352b;color:#adceba;border-radius:8px;font:28px Georgia;padding:0}.slot .card{margin:-1px}.free-cols{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;min-height:410px}.free-col{position:relative;min-height:110px;padding-bottom:80px}.free-col>.card{position:absolute;top:calc(var(--i)*26px);width:100%;max-width:75px;height:91px}.free-col>.card .suit{font-size:35px}.free-col .empty-col{position:absolute;width:100%;height:90px;border:1px dashed #8fb59c66;background:transparent;border-radius:7px;color:#a2c5b0;font-size:24px}.coach{padding:22px;background:#eee9dd;border:1px solid #ddd6c4;border-radius:18px;margin:18px 0;color:var(--ink)}.coach h3{font-size:23px;margin-bottom:12px}.coach p{font-size:14px;line-height:1.65}.metrics{display:flex;gap:12px;margin:15px 0}.metric{flex:1;min-width:0;padding:14px;background:var(--cream);border-radius:12px}.metric b{display:block;font:28px Georgia;margin-bottom:6px}.metric small{font-size:11px;color:var(--muted)}.lesson{margin:12px 0;padding:22px;border-radius:18px;background:#fffdf6;border:1px solid var(--line);font-size:14px;line-height:1.75}.lesson h3{margin-bottom:12px}.lesson a{font-size:12px}.lesson ul{padding-left:20px}.number-board{display:grid;grid-template-columns:repeat(9,1fr);max-width:530px;margin:auto;gap:3px}.number{aspect-ratio:1;border-radius:6px;background:#fff8ea;font-size:23px;color:var(--ink)}.number.empty{background:#d5d9cb33;color:transparent}.number.selected{background:var(--gold)}.tubes{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;padding:28px 8px}.tube{height:155px;width:47px;padding:4px;background:#fff1;border:2px solid #dfe4d199;border-top:0;border-radius:0 0 22px 22px;display:flex;flex-direction:column-reverse;overflow:hidden}.tube span{width:100%;height:25%;flex-shrink:0}.tube.selected{outline:3px solid var(--gold);transform:translateY(-10px)}.table-players{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center;margin-bottom:15px}.seat{padding:11px;border:1px solid #e2edda26;border-radius:15px;font-size:12px}.seat.turn{background:#e6d09f22;border-color:var(--gold)}.seat strong{display:block;margin-bottom:6px}.seat small{color:#b6cdbc}.trick{display:flex;gap:13px;justify-content:center;align-items:center;min-height:130px;flex-wrap:wrap}.trickitem{text-align:center;font-size:11px}.trickitem>span{display:block;margin-bottom:8px}.bid-input{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;margin:18px 0}input,select{border:1px solid #cfd3c3;border-radius:9px;padding:11px;background:#fffdf7;color:var(--ink);min-width:0}input[type=number]{width:90px}.domino{width:41px;height:82px;display:inline-flex;flex-direction:column;background:#fff8df;color:#21372e;border:1px solid #d9d1ba;border-radius:7px;margin:3px;padding:4px;box-shadow:1px 2px 2px #0003;vertical-align:middle}.domino span{display:grid;place-items:center;flex:1;font-size:22px;font-weight:600}.domino span:first-child{border-bottom:1px solid #b9b29a}.domino.selected{outline:3px solid var(--gold);transform:translateY(-5px)}.chain{display:flex;flex-wrap:wrap;justify-content:center;min-height:125px;align-items:center}.chain .domino{transform:rotate(90deg);margin:23px}.connect-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;max-width:490px;margin:auto;background:#d0ac69;border-radius:15px;padding:15px}.disc{aspect-ratio:1;border-radius:50%;background:#153f34;box-shadow:inset 0 3px 5px #0003}.disc.p1{background:#fbf3df}.disc.p2{background:#a13d41}.column-controls{max-width:490px;margin:0 auto 9px;display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.column-controls button{background:#d6b479;color:#163b31;border-radius:10px;padding:10px}.chess-board{display:grid;grid-template-columns:repeat(8,1fr);max-width:570px;aspect-ratio:1;margin:auto;border:8px solid #d2bb90;border-radius:8px}.square{aspect-ratio:1;background:#efdfbd;color:#14382f;position:relative;font:clamp(24px,5vw,48px) Georgia;padding:0;display:grid;place-items:center;line-height:1}.square.dark{background:#698b71}.square.selected{background:#d9b765}.square.legal:after{content:'';width:17%;height:17%;background:#143a2e88;border-radius:50%;position:absolute}.square.last{box-shadow:inset 0 0 0 3px #ccb564}.square .coord{position:absolute;bottom:2px;left:3px;font:9px Segoe UI}.word-board{display:grid;grid-template-columns:repeat(15,1fr);max-width:650px;margin:auto;border:4px solid #abbb9f;gap:2px;background:#abbb9f}.word-square{aspect-ratio:1;min-width:0;background:#e8ead8;color:#647861;font-size:8px;padding:0;border-radius:2px;position:relative}.word-square.DW{background:#e3b5aa}.word-square.TW{background:#b66d60;color:#fff}.word-square.DL{background:#c1d9d6}.word-square.TL{background:#759b99;color:#fff}.word-square.tile{font-size:clamp(12px,2vw,22px);background:#fff1c5;color:#143a2e;font-weight:700}.word-square.tile small{position:absolute;bottom:1px;right:2px;font-size:8px}.word-square.chosen{outline:3px solid #342a15;z-index:1}.rack{display:flex;justify-content:center;gap:6px;margin:18px 0}.letter-tile{width:40px;height:43px;background:#ffeabd;color:var(--ink);border-radius:5px;box-shadow:0 3px 0 #c4aa77;display:grid;place-items:center;font-weight:700;font-size:22px}.letter-tile.selected{outline:3px solid var(--gold);transform:translateY(-5px)}.property-board{display:grid;grid-template-columns:repeat(11,1fr);grid-template-rows:repeat(11,1fr);aspect-ratio:1;max-width:740px;margin:auto;background:#d8ddc6;border:3px solid #c3c9ae;gap:2px}.property-tile{background:#f9f5e7;color:#213d2d;text-align:center;position:relative;font-size:9px;padding:3px 1px;line-height:1.25;overflow:hidden}.property-tile .strip{height:6px;margin:-3px -1px 4px;background:var(--group-color,#b6c5a5)}.property-tile .tokens{font-size:16px;line-height:1.1}.property-center{grid-area:2/2/11/11;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink);padding:15px;text-align:center}.property-center h2{font-size:clamp(24px,4vw,42px)}.property-center p{margin:10px 0;max-width:260px;line-height:1.5;font-size:13px}.property-center .dice{font-size:36px;letter-spacing:12px}.property-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.deed{padding:13px;background:#fff9e9;color:var(--ink);border-radius:10px;font-size:12px;flex:1;min-width:160px}.deed strong{display:block;margin:6px 0}.deed button{font-size:11px;padding:8px;margin:3px 1px}.pool-canvas{width:100%;display:block;touch-action:none;border-radius:15px}.log{padding:15px;background:#0c3029;border-radius:12px;line-height:1.6;font-size:12px;color:#c6d7c3;max-height:140px;overflow:auto;margin-top:16px}.modal-backdrop{position:fixed;inset:0;background:#102e2c99;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--paper);padding:28px;max-width:480px;border-radius:22px;max-height:85vh;overflow:auto}.modal p{line-height:1.7;margin:15px 0;font-size:14px}.modal .actions{margin-top:22px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 20px;border-radius:14px;background:#112d28;color:#fff7e6;box-shadow:0 4px 20px #0002;max-width:90vw;font-size:13px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}.loading{padding:30px;text-align:center}.game-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:18px 0;color:var(--muted);font-size:12px}.toggle{display:flex;align-items:center;gap:8px;font-size:13px}.toggle input{accent-color:var(--green)}.review-hand{background:#eee9da;border-radius:12px;padding:14px;color:var(--ink);margin-top:15px}.won{color:#dcce9b;font:25px Georgia;text-align:center;padding:15px}.textwhite{color:#fff6e5}.mb{margin-bottom:15px} .empty-state{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:900px){.library{grid-template-columns:repeat(3,1fr)}.shell{padding:22px 24px 40px}.hero-art{height:190px}.hero-art:before{height:190px;width:190px}}
@media(max-width:600px){.shell{padding:20px 16px calc(32px + env(safe-area-inset-bottom))}.topbar{padding-bottom:15px}.brand{font-size:20px}.subtle{padding:9px 11px;font-size:11px}.hero{grid-template-columns:1fr;margin:15px 0 20px;gap:0}.hero h1{font-size:43px}.hero p{font-size:13px;max-width:280px;margin-top:13px}.hero-art{display:none}.eyebrow{font-size:9px}.toolbar{margin:23px 0 17px;display:block}.toolbar>.small{margin-top:10px}.filter{padding:9px 13px;font-size:12px}.library{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tile-art{height:118px;font-size:58px}.tile-copy{padding:13px 13px 16px}.tile-copy h3{font-size:20px}.tile-copy p{font-size:11px;min-height:32px;margin-bottom:14px}.tile-foot{font-size:10px}.tile-foot span:first-child{font-size:8px}.club-note{font-size:11px;display:block;line-height:1.8}.continue{padding:16px;font-size:14px}.continue button{padding:9px 13px;font-size:12px}.gameheader h1{font-size:32px}.gameheader .actions{gap:5px}.btn{padding:11px 13px;font-size:12px}.play-area{padding:16px 10px;border-radius:17px}.card{width:45px;height:65px;font-size:13px;padding:4px}.card .suit{font-size:27px}.slot{width:36px;height:56px;font-size:23px}.slot .card{width:36px;height:56px;font-size:11px}.free-top{gap:8px;margin-bottom:20px}.slots{gap:4px}.free-col>.card{height:66px;font-size:10px;padding:3px;top:calc(var(--i)*22px)}.free-col>.card .suit{font-size:24px}.free-cols{gap:4px;min-height:290px}.hand{gap:4px}.hand .card{width:43px;height:65px}.metrics{gap:6px}.metric{padding:10px}.metric b{font-size:24px}.metric small{font-size:10px}.coach{padding:17px}.coach p,.lesson{font-size:13px}.table-players{gap:6px}.seat{padding:8px 4px;font-size:11px}.tube{height:133px;width:38px}.tubes{gap:16px;padding:22px 3px}.number{font-size:20px}.property-tile{font-size:6px;padding:2px 0}.property-tile .strip{height:4px;margin:-2px 0 2px}.property-tile .tokens{font-size:10px}.property-center p{font-size:11px}.property-center h2{font-size:27px}.property-center .dice{font-size:25px}.property-board{gap:1px}.word-board{gap:1px;border-width:2px}.word-square{font-size:5px}.word-square.tile small{font-size:5px}.chess-board{border-width:5px}.square{font-size:35px}.trick{gap:10px}.status{font-size:13px;padding:12px 14px}.letter-tile{width:36px;height:39px}.game-footer{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.square.piece-white{color:#fff7df;text-shadow:1px 0 #173a30,-1px 0 #173a30,0 1px #173a30,0 -1px #173a30}.square.piece-white .coord{color:#173a30;text-shadow:none}

.domino .pipface{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:3px;padding:4px}.domino .pip{width:6px;height:6px;border-radius:50%;background:transparent;display:block}.domino .pip.filled{background:#21372e}.property-center .dice{letter-spacing:4px;font-family:Georgia,serif}
