:root {
    color-scheme:light;
    font-family:Arial,Helvetica,sans-serif;
    font-synthesis:none;
    --page:#f3f5ee;
    --surface:#fff;
    --ink:#243c32;
    --muted:#52665a;
    --accent:#1a624b;
    --line:#d8e0d5;
    --felt:#195b46;
    --felt2:#104230;
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
    background:var(--page);
    color:var(--ink);
    font-size:16px;
    line-height:1.65;
}
h1,h2,h3,p {
    margin:0 0 16px;
}
h1 {
    line-height:1.13;
    letter-spacing:-1px;
}
h2 {
    font-size:23px;
    line-height:1.3;
    letter-spacing:-.35px;
}
p {
    color:var(--muted);
}
a {
    color:var(--accent);
    text-decoration:none;
}
button,input,textarea,select {
    font:inherit;
}
button {
    cursor:pointer;
}
button:disabled {
    cursor:not-allowed;
    opacity:.5;
}
button,a,input,textarea,select,summary {
    outline-offset:4px;
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible {
    outline:3px solid #d4a832;
}
svg {
    display:inline-block;
    vertical-align:middle;
    flex-shrink:0;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
img {
    max-width:100%;
    height:auto;
}
button {
    border:1px solid var(--line);
    background:var(--surface);
    color:var(--ink);
    border-radius:8px;
    padding:10px 18px;
    line-height:1.4;
}
button:hover:not(:disabled) {
    filter:brightness(.95);
}
[hidden] {
    display:none!important;
}
[data-site-frame],[data-footer-inner] {
    width:100%;
    max-width:var(--site-width,1240px);
    margin-inline:auto;
}
[data-article],[data-reading],[data-reading]>* {
    min-width:0;
}
[data-reading] {
    width:100%;
    overflow-wrap:anywhere;
}
[data-intro] {
    min-width:0;
    overflow-wrap:anywhere;
}
[data-header] {
    position:relative;
    z-index:20;
}
[class*="-brand"] {
    display:inline-flex;
    line-height:1;
    align-items:center;
    text-decoration:none;
    flex-shrink:0;
}
[class*="-brand"] img {
    width:240px;
    height:48px;
    object-fit:contain;
    object-position:left center;
}
[class*="-skip"] {
    position:fixed;
    top:-100px;
    left:16px;
    z-index:1000;
    background:var(--surface);
    padding:12px;
}
[class*="-skip"]:focus {
    top:10px;
}
[data-navigation] {
    position:relative;
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}
[data-navigation] a {
    font-size:13px;
    font-weight:600;
    text-decoration:none;
    padding:9px 12px;
    border-radius:6px;
    color:var(--muted);
    white-space:nowrap;
}
[data-navigation] a:hover,[data-navigation] a[aria-current] {
    background:color-mix(in srgb,var(--accent) 9%,transparent);
    color:var(--accent);
}
[data-menu-toggle] {
    display:none;
    padding:10px;
    min-width:44px;
    min-height:44px;
}
[data-menu-group]>summary {
    cursor:pointer;
    padding:9px 12px;
    font-size:13px;
    font-weight:600;
    color:var(--muted);
    border-radius:6px;
    white-space:nowrap;
}
[data-menu-group]>summary:hover,[data-menu-group][data-active]>summary {
    color:var(--accent);
    background:color-mix(in srgb,var(--accent) 9%,transparent);
}
[data-menu-group][open]>[data-explore-panel] {
    position:absolute;
    top:calc(100% + 6px);
    right:0;
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px 8px;
    padding:18px 10px;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:10px;
    box-shadow:0 14px 30px #0002;
    z-index:60;
}
[data-explore-panel] h2 {
    font:700 11px/1.5 Arial,Helvetica,sans-serif;
    letter-spacing:1px;
    text-transform:uppercase;
    padding:0 12px;
    margin:0 0 6px;
    color:var(--muted);
}
[data-explore-panel] a {
    display:block;
    white-space:normal;
}
@media(min-width:1001px) {
    .mt-navigation [data-menu-group][open]>[data-explore-panel] {
        position:static;
        grid-template-columns:minmax(0,1fr);
        padding:14px 0;
        margin-top:6px;
        box-shadow:none;
    }
    .mt-navigation [data-menu-group]>summary {
        padding:14px 18px;
    }
}
[data-intro]>p:last-child {
    font-size:16px;
    margin-bottom:0;
}
[data-eyebrow] {
    font-size:10px;
    font-weight:700;
    letter-spacing:2.8px;
    color:var(--accent);
    margin-bottom:14px;
}
[data-reading]>section {
    margin-bottom:26px;
}
[data-reading] p {
    line-height:1.85;
    font-size:15px;
}
[data-reading] figure {
    margin:16px 0 32px;
    min-width:0;
}
[data-reading] figure img {
    padding:20px;
    display:block;
    width:100%;
    height:auto;
    max-height:580px;
    object-fit:contain;
    border-radius:8px;
    background:var(--surface);
}
[data-reading]>details {
    border-bottom:1px solid var(--line);
    margin:0;
    padding:18px 0;
}
[data-reading] summary {
    font-size:17px;
    font-weight:600;
    cursor:pointer;
    line-height:1.5;
}
[data-reading] details p {
    margin:14px 0 0;
}
[data-footer] {
    width:100%;
    padding:38px 24px 110px;
    margin-top:35px;
    font-size:13px;
    text-align:center;
    overflow-wrap:anywhere;
}
[data-footer] nav {
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:12px 24px;
    margin:20px 0;
}
[data-footer] nav a {
    font-size:12px;
}
[data-footer-brand] {
    font-size:20px;
    font-weight:700;
}
[data-footer] p {
    margin-bottom:10px;
}
[data-share] {
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin-top:22px;
}
[data-share] a {
    display:flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border:1px solid var(--line);
    border-radius:50%;
    color:inherit;
}
[data-share] svg {
    width:18px;
    height:18px;
}
[data-jump-button] {
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    background:var(--cta,#83f099);
    color:#102318;
    padding:12px 30px;
    border-radius:30px;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    line-height:1.5;
    box-shadow:0 6px 24px #0003;
    text-align:center;
    isolation:isolate;
    overflow-wrap:anywhere;
}
[data-footer] [data-jump-button] {
    color:#102318;
}
[data-floating] {
    position:fixed;
    left:50%;
    transform:translateX(-50%);
    bottom:calc(18px + env(safe-area-inset-bottom));
    z-index:120;
    max-width:calc(100vw - 120px);
}
[data-game-jump] {
    text-align:center;
    padding:6px 24px 30px;
}
[data-game-jump] [data-jump-button] {
    max-width:100%;
}
[data-jump-button]::before {
    content:'';
    position:absolute;
    inset:0;
    border-radius:inherit;
    background:inherit;
    z-index:-1;
    animation:ripple 3s infinite;
    pointer-events:none;
}
[data-jump-button] span {
    position:relative;
    display:block;
    z-index:2;
}
[data-jump-button]::after {
    content:'';
    position:absolute;
    inset:0;
    border-radius:inherit;
    background-image:linear-gradient(110deg,transparent 35%,#ffffffb0 47%,transparent 59%);
    background-size:250% 100%;
    background-repeat:no-repeat;
    animation:shine 1.8s linear infinite;
    z-index:1;
    pointer-events:none;
}
body[data-theme="emerald-classic"] { --cta:#83f099; }
body[data-theme="midnight-table"] { --cta:#b8f1b9; }
body[data-theme="linen-cards"] { --cta:#f2c66d; }
body[data-theme="cobalt-modern"] { --cta:#83caff; }
body[data-theme="copper-lounge"] { --cta:#ffbb70; }
body[data-theme="minimal-light"] { --cta:#9ae895; }
[data-back-top] {
    position:fixed;
    right:20px;
    bottom:calc(20px + env(safe-area-inset-bottom));
    padding:11px;
    z-index:45;
    width:44px;
    height:44px;
    border-radius:50%;
    box-shadow:0 4px 12px #0001;
}
@keyframes ripple {
    0%,100% {
        transform:scale(1);
        opacity:.25;
    }
    70% {
        transform:scale(1.16,1.45);
        opacity:0;
    }
}
@keyframes shine {
    0% { background-position:200% 0; }
    100% { background-position:-150% 0; }
}
[data-contact],[data-privacy] {
    background:var(--surface);
    padding:28px;
    border:1px solid var(--line);
    border-radius:10px;
    margin:30px 0;
}
[data-contact] form {
    width:100%;
    min-width:0;
}
[data-contact] label {
    display:block;
    font-size:14px;
    margin:0 0 16px;
}
[data-contact] input,[data-contact] textarea {
    display:block;
    width:100%;
    padding:12px;
    border:1px solid var(--line);
    background:var(--page);
    color:var(--ink);
    border-radius:5px;
    margin-top:6px;
}
[data-contact] textarea {
    resize:vertical;
}
[data-contact] button {
    background:var(--accent);
    color:var(--page);
}
[data-form-status],[data-privacy-status] {
    margin-top:14px;
    font-size:14px;
}
[data-privacy] label {
    display:flex;
    gap:12px;
    align-items:center;
    margin:20px 0;
}
[data-privacy] input {
    width:20px;
    height:20px;
    accent-color:var(--accent);
}
/* The game is addressed by stable data attributes, not cosmetic class names. */
[data-statistics] {
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:14px;
    padding:28px;
    min-width:0;
    width:100%;
}
[data-stat-table] {
    overflow-x:auto;
    margin:24px 0;
}
[data-stat-table] table {
    width:100%;
    border-collapse:collapse;
    font-size:14px;
    font-variant-numeric:tabular-nums;
}
[data-stat-table] th,[data-stat-table] td {
    padding:12px;
    text-align:right;
    border-bottom:1px solid var(--line);
    white-space:nowrap;
}
[data-stat-table] th:first-child,[data-stat-table] td:first-child {
    text-align:left;
}
[data-deal-controls] {
    margin:0 24px 18px;
    padding:16px;
    border:1px solid #ffffff30;
    border-radius:8px;
    background:#00000012;
    font-size:13px;
}
[data-deal-controls] p {
    margin:0 0 12px;
}
[data-deal-form] {
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    gap:12px;
}
[data-deal-form] label {
    display:flex;
    flex-direction:column;
    gap:5px;
}
[data-deal-form] input,[data-deal-form] select {
    background:#fff;
    color:#17372b;
    padding:9px 10px;
    border:1px solid #cdd8d0;
    border-radius:6px;
    min-height:42px;
    min-width:0;
}
[data-deal-number] {
    width:180px;
}
[data-deal-link] {
    flex:1 0 100%;
    width:100%;
}
[data-retry-game] {
    display:block;
    margin:20px auto;
}
[data-game] {
    position:relative;
    background:radial-gradient(ellipse at 45% 20%,var(--felt),var(--felt2));
    color:#fff;
    border-radius:18px;
    overflow:hidden;
    isolation:isolate;
    min-width:0;
}
[data-game] p {
    color:#d4e1d9;
}
[data-game-top] {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:20px 24px;
    gap:18px;
}
[data-game-top]>div:first-child {
    display:flex;
    gap:15px;
    align-items:center;
}
[data-game-label] {
    font-size:11px;
    letter-spacing:1.5px;
    font-weight:700;
    background:#ffffff16;
    padding:6px 10px;
    border:1px solid #ffffff20;
    border-radius:4px;
}
[data-game-state] {
    font-size:12px;
    color:#d6e4dc;
}
[data-scoreboard] {
    display:flex;
    gap:25px;
    font-size:11px;
    color:#bdcdc4;
}
[data-scoreboard] strong {
    display:inline-block;
    margin-left:6px;
    color:#fff;
    font-size:16px;
    font-weight:500;
    font-variant-numeric:tabular-nums;
}
[data-game-tools] {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:8px 24px 18px;
}
[data-game-tools] button {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    color:#eef5ed;
    background:#ffffff0d;
    border:1px solid #ffffff2b;
    font-size:12px;
    padding:8px 12px;
    border-radius:5px;
    min-height:38px;
}
[data-game-tools] button:first-child {
    background:#e9eedc;
    color:#233e30;
    border-color:transparent;
    font-weight:700;
}
[data-game-tools] button[aria-pressed=true] {
    background:#ffffff25;
}
[data-game-tools] svg {
    width:16px;
    height:16px;
}
[data-table-wrap] {
    padding:10px 24px 14px;
    overflow:hidden;
}
[data-tableau] {
    display:grid;
    grid-template-columns:repeat(10,minmax(0,1fr));
    gap:6px;
    position:relative;
    min-height:260px;
    user-select:none;
    -webkit-user-select:none;
}
[data-column] {
    position:relative;
    min-width:0;
    border-radius:5px;
}
[data-column][data-hint] {
    outline:2px dashed #fce59c;
    outline-offset:3px;
}
[data-empty] {
    width:100%;
    height:130px;
    max-height:100%;
    background:#0000000e;
    color:#ffffff2a;
    border:1px solid #ffffff25;
    font-size:12px;
    padding:6px;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    border-radius:6px;
}
[data-card] {
    position:absolute;
    left:0;
    width:100%;
    border:1px solid #d8dfd5;
    border-radius:6px;
    box-shadow:0 2px 2px #0004;
    background:#fafbf4;
    padding:0;
    color:#152c29;
    text-align:left;
    user-select:none;
    touch-action:none;
    line-height:1;
}
[data-card][data-face=down] {
    border:2px solid #e0e5d6;
    background:repeating-linear-gradient(45deg,#c9dbce22 0 1px,transparent 1px 5px),repeating-linear-gradient(-45deg,#c9dbce22 0 1px,transparent 1px 5px),#316754;
    box-shadow:0 1px 3px #0004;
}
[data-card][data-suit="1"],[data-card][data-suit="3"] {
    color:#b42b39;
}
[data-card][data-selected] {
    box-shadow:0 0 0 2px #e4c777,0 4px 10px #0005;
    filter:brightness(1.04);
}
[data-card]:hover:not([data-face=down]) {
    filter:brightness(.97);
}
[data-card] [data-corner] {
    display:flex;
    align-items:center;
    gap:2px;
    position:absolute;
    top:6px;
    left:6px;
    font:600 clamp(12px,1.6vw,21px)/1 Georgia,serif;
}
[data-corner] svg {
    width:15px;
    height:17px;
    stroke:none;
    fill:currentColor;
}
[data-pip] {
    display:flex;
    position:absolute;
    inset:28% 13% 10%;
    align-items:center;
    justify-content:center;
}
[data-pip] svg {
    width:65%;
    height:65%;
    stroke:none;
    fill:currentColor;
}
[data-table-bottom] {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:28px;
}
[data-stock] {
    background:none;
    border:0;
    color:#d6e2db;
    padding:0;
    display:flex;
    align-items:center;
    gap:14px;
    text-align:left;
    font-size:11px;
}
[data-stock-art] {
    display:block;
    position:relative;
    width:52px;
    height:70px;
    margin-right:12px;
    background:repeating-linear-gradient(45deg,#c9dbce22 0 1px,transparent 1px 5px),#316754;
    border:2px solid #e0e5d6;
    border-radius:5px;
    box-shadow:4px 0 0 -1px #e0e5d6,8px 0 0 -1px #48795f,12px 0 0 -1px #d5decd;
}
[data-stock-art][data-deals="0"] {
    opacity:.25;
    box-shadow:none;
}
[data-foundations] {
    display:flex;
    gap:7px;
}
[data-foundation] {
    display:flex;
    width:34px;
    height:46px;
    border:1px solid #ffffff24;
    border-radius:4px;
    background:#0000000a;
    align-items:center;
    justify-content:center;
}
[data-foundation][data-complete=true] {
    background:#f2f3e7;
    color:#153f30;
}
[data-foundation] svg {
    width:20px;
    height:25px;
    fill:currentColor;
    stroke:none;
}
[data-message] {
    font-size:12px;
    line-height:1.5;
    min-height:34px;
    text-align:center;
    padding:0 22px;
    margin:4px 0 10px;
}
[data-device-stats] {
    font-size:10px;
    text-align:center;
    letter-spacing:.3px;
    padding:4px 15px 12px;
    margin:0;
    opacity:.75;
}
[data-win] {
    margin:24px;
    padding:26px;
    border:1px solid #e9db9c;
    background:#143f30;
    text-align:center;
    border-radius:12px;
}
[data-game]:fullscreen {
    overflow:auto;
    border-radius:0;
    padding:14px 4%;
    background:var(--felt2);
}
[data-game]:fullscreen [data-tableau] {
    min-height:50vh;
}
@media(max-width:1100px) {
    [data-navigation] {
        gap:2px;
    }
    [data-navigation] a {
        font-size:12px;
        padding:8px;
    }
    [data-menu-group]>summary {
        font-size:12px;
        padding:8px;
    }
}
@media(max-width:900px) {
    [data-menu-toggle] {
        display:inline-flex;
        align-items:center;
        justify-content:center;
    }
    [data-navigation] {
        display:none!important;
        position:absolute;
        right:14px;
        top:calc(100% - 3px);
        width:min(320px,calc(100vw - 28px));
        background:var(--surface);
        border:1px solid var(--line);
        padding:10px!important;
        border-radius:10px;
        box-shadow:0 15px 35px #0002;
        z-index:50;
        max-height:calc(100dvh - 100px);
        overflow-y:auto;
    }
    [data-navigation][data-open] {
        display:flex!important;
        flex-direction:column;
        align-items:stretch;
        gap:4px;
    }
    [data-navigation] a {
        padding:12px 16px!important;
        font-size:14px!important;
    }
    [data-menu-group]>summary {
        padding:12px 16px;
        font-size:14px;
    }
    [data-menu-group][open]>[data-explore-panel] {
        position:static;
        grid-template-columns:minmax(0,1fr);
        box-shadow:none;
        margin:4px 0;
    }
    [data-game-top] {
        padding:16px 18px;
    }
    [data-table-wrap] {
        padding:8px 14px 12px;
    }
    [data-game-tools] {
        padding:6px 16px 16px;
    }
    [data-game-state] {
        display:none;
    }
    [data-card] [data-corner] {
        left:4px;
        top:5px;
        gap:1px;
    }
    [data-corner] svg {
        width:12px;
    }
}
@media(max-width:600px) {
    body {
        font-size:15px;
    }
    [class*="-brand"] img {
        width:210px;
        height:42px;
    }
    [data-game-top] {
        padding:13px 12px;
        gap:10px;
    }
    [data-game-top]>div:first-child {
        gap:0;
    }
    [data-game-label] {
        font-size:9px;
        padding:4px 6px;
        letter-spacing:.3px;
    }
    [data-scoreboard] {
        gap:10px;
        font-size:9px;
    }
    [data-scoreboard] strong {
        font-size:12px;
        margin-left:3px;
    }
    [data-game-tools] {
        gap:5px;
        padding:4px 10px 12px;
    }
    [data-game-tools] button {
        padding:8px;
        min-height:36px;
        font-size:10px;
        gap:4px;
        flex:1 0 auto;
    }
    [data-game-tools] button span {
        display:none;
    }
    [data-game-tools] button:first-child span {
        display:block;
    }
    [data-game-tools] svg {
        width:17px;
        height:17px;
    }
    [data-table-wrap] {
        padding:7px 6px 10px;
    }
    [data-tableau] {
        gap:4px;
        min-height:215px;
    }
    [data-card] {
        border-radius:3px;
    }
    [data-card][data-face=down] {
        border-width:1px;
    }
    [data-card] [data-corner] {
        top:4px;
        left:2px;
        font:700 12px/1 Arial,sans-serif;
        gap:0;
    }
    [data-corner] svg {
        width:10px;
        height:12px;
    }
    [data-pip] {
        inset:35% 8% 6%;
    }
    [data-empty] {
        height:60px;
        padding:4px 1px;
    }
    [data-table-bottom] {
        gap:8px;
        margin-top:18px;
    }
    [data-stock] {
        gap:8px;
        flex-direction:column;
        align-items:flex-start;
        font-size:9px;
    }
    [data-stock-art] {
        width:30px;
        height:42px;
        margin-right:8px;
        box-shadow:3px 0 0 -1px #e0e5d6,6px 0 0 -1px #48795f,9px 0 0 -1px #d5decd;
    }
    [data-foundations] {
        gap:4px;
    }
    [data-foundation] {
        width:22px;
        height:32px;
    }
    [data-foundation] svg {
        width:15px;
        height:20px;
    }
    [data-message] {
        padding:0 12px;
        font-size:11px;
        min-height:34px;
    }
    [data-contact],[data-privacy] {
        padding:20px;
    }
    [data-statistics] {
        padding:18px 12px;
    }
    [data-deal-controls] {
        margin:0 10px 14px;
        padding:12px;
    }
    [data-deal-form] button {
        padding:10px;
    }
    [data-footer] {
        padding-bottom:110px;
    }
    [data-back-top] {
        right:12px;
    }
    [data-eyebrow] {
        font-size:9px;
        letter-spacing:2px;
    }
}
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        animation:none!important;
        scroll-behavior:auto!important;
        transition:none!important;
    }
}
[class*="-brand"] picture {
    display:block;
    line-height:0;
}
