:root{--ink:#183c32;--paper:#f6f4ed;--green:#214c3d;--muted:#78847a;--gold:#e1b66c;--line:#dedfd5;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d59b38;outline-offset:4px}a{color:inherit;text-decoration:none}header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:23px;letter-spacing:-1px}.logo{display:grid;place-items:center;background:var(--ink);color:#f6f4ed;width:39px;height:44px;border-radius:9px;transform:rotate(-7deg);font-size:30px}nav{display:flex;gap:28px;align-items:center;font-size:14px}nav a:hover{color:#a8792c}.profile{border:1px solid var(--line);border-radius:30px;padding:9px 17px;font-size:13px}.wrap{max-width:1370px;margin:auto;padding:0 6%}.hero{margin:42px 0 38px;background:var(--ink);border-radius:20px;min-height:320px;display:flex;position:relative;overflow:hidden;color:#fff;padding:46px 48px}.hero:after{content:'';position:absolute;width:500px;height:500px;border:1px solid #ffffff12;border-radius:50%;right:-20px;top:-100px;box-shadow:0 0 0 55px #ffffff04,0 0 0 110px #ffffff03;pointer-events:none}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:2px;font-weight:700;color:var(--gold)}h1{font:500 clamp(34px,4.5vw,58px)/1.12 'Playfair Display',Georgia,serif;letter-spacing:-1.5px;margin:16px 0}h1 em{font-weight:500;color:#e7c993}.hero p{color:#c3d0c8;font-size:14px;line-height:1.8;max-width:410px}.primary{background:var(--gold);color:#183c32;border:0;border-radius:8px;padding:13px 22px;font-weight:700;display:inline-flex;align-items:center;gap:25px;margin-top:14px}.hero-art{position:absolute;right:11%;top:77px;display:flex;transform:rotate(10deg)}.hero-card{height:198px;width:140px;background:#faf8ef;border-radius:13px;box-shadow:0 12px 30px #0003;padding:16px;font:30px Georgia;color:#bd584c;position:relative;transform:rotate(-21deg);border:1px solid #ded7c8}.hero-card+div{margin-left:-30px;transform:rotate(3deg) translateY(-8px);color:#173c32}.hero-card span{display:block;font-size:70px;text-align:center;margin-top:10px}.hero-card small{position:absolute;bottom:12px;right:14px;transform:rotate(180deg);font-size:26px}.sectiontop{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:28px 0 20px}h2{font:500 29px 'Playfair Display',Georgia,serif;letter-spacing:-.5px;margin:0}.subtle{font-size:13px;color:var(--muted)}.search{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:11px 14px;width:270px}.search input{border:0;outline:0;background:none;width:100%;font-size:13px;color:var(--ink)}.filters{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.filter{border:1px solid var(--line);background:transparent;border-radius:7px;padding:10px 17px;font-size:12px;color:#607164}.filter.active{background:var(--ink);border-color:var(--ink);color:#fff}.filter span{margin-left:9px;opacity:.6}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.game-tile{position:relative;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff;transition:transform .18s,box-shadow .18s}.game-tile:hover{transform:translateY(-4px);box-shadow:0 10px 30px #1d3f3210}.tile-art{height:153px;background:#e8ece1;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.tile-art:before{content:'';position:absolute;width:155px;height:155px;border-radius:50%;background:#ffffff40}.tile-art.t1{background:#eee3d4}.tile-art.t2{background:#e0e8ec}.tile-art.t3{background:#e8e2ed}.tile-info{padding:17px 18px 19px}.tile-info h3{font-size:16px;margin:0 0 5px}.tile-info p{font-size:11px;color:var(--muted);margin:0}.tile-info .arrow{float:right;font-size:20px;margin-top:1px}.fave{position:absolute;right:10px;top:10px;border:0;background:#ffffffbc;border-radius:50%;width:29px;height:29px;z-index:2;color:#667970;font-size:17px}.fave.on{color:#b18438}.artcard{width:51px;height:74px;background:#fffdf6;border:1px solid #d7d9cf;border-radius:6px;box-shadow:1px 4px 8px #0001;position:relative;padding:6px;font:17px Georgia;color:#254d3c;transform:rotate(-12deg);z-index:1}.artcard+div{margin-left:-11px;transform:rotate(8deg) translateY(5px)}.artcard.red{color:#b7574b}.artcard b{display:block;text-align:center;font-size:30px;font-weight:400}.articon{position:relative;font-size:72px;line-height:1;color:#294d3b;text-shadow:2px 4px 0 #ffffff80}.mini-board{display:grid;grid-template-columns:repeat(4,23px);transform:rotate(-10deg);border:5px solid #fff7ea;box-shadow:0 5px 12px #0002;position:relative}.mini-board span{width:23px;height:23px;background:#6c8b71;font-size:18px;text-align:center}.mini-board span:nth-child(8n+2),.mini-board span:nth-child(8n+4),.mini-board span:nth-child(8n+5),.mini-board span:nth-child(8n+7){background:#f1e9d5}.banner{border:1px solid var(--line);border-radius:12px;padding:23px 26px;margin:35px 0;display:flex;gap:20px;align-items:center}.banner b{font-size:15px}.banner p{font-size:12px;color:var(--muted);margin:5px 0 0}.banner .symbol{font-size:28px}.banner .subtle{margin-left:auto}footer{border-top:1px solid var(--line);padding:25px 0 35px;margin-top:35px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.empty{padding:60px;text-align:center;grid-column:1/-1}.playhead{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:30px 0 20px}.playhead h1{font-size:35px;margin:0}.back{font-size:13px}.controls{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid #cdd6cc;border-radius:7px;padding:9px 15px;background:#fff;color:var(--ink);font-size:13px}.btn.accent{background:var(--gold);border-color:var(--gold)}.table{background:radial-gradient(ellipse at center,#2a6750,#173f33);border-radius:17px;padding:28px;min-height:440px;color:#edf2e8;box-shadow:inset 0 0 80px #0001;overflow:auto}.status{padding:12px 17px;background:#ffffff0c;border:1px solid #ffffff16;border-radius:8px;font-size:14px;margin-bottom:22px;min-height:44px;text-align:center;line-height:1.5}.hand{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;min-height:100px;margin:15px 0}.card{position:relative;isolation:isolate;overflow:hidden;width:62px;height:89px;border-radius:7px;background:#fffdf4;color:#193c32;border:1px solid #ddd9ca;box-shadow:0 3px 5px #0002;padding:5px;font:20px Georgia;display:inline-flex;flex-direction:column;justify-content:space-between;align-items:flex-start;flex-shrink:0}.card.red{color:#b94c43}.card .suit{font-size:31px;align-self:center}.card .rank2{align-self:flex-end;transform:rotate(180deg);font-size:14px}.card.selected{outline:3px solid #f2cc7b;transform:translateY(-8px)}.card.backside{background:repeating-linear-gradient(45deg,#294f69 0px,#294f69 4px,#365d77 4px,#365d77 6px);border:4px solid #ecebdf}.slot{width:62px;min-height:89px;border:1px dashed #ffffff50;border-radius:7px;display:inline-flex;justify-content:center;align-items:center;color:#ffffff60;background:#0000000d}.piles{display:flex;justify-content:center;gap:14px;margin:20px 0}.columns{display:flex;justify-content:center;gap:13px;min-height:230px}.column{display:flex;flex-direction:column;align-items:center;min-width:62px}.column .card+.card{margin-top:-60px}.column .card:last-child{margin-bottom:10px}.column .slot{margin-bottom:6px}.table .btn{background:#ffffff15;border-color:#ffffff35;color:#fff}.table .btn.accent{background:var(--gold);border-color:var(--gold);color:var(--ink)}.table label{font-size:13px}.center{text-align:center}.board{display:grid;max-width:480px;margin:20px auto;aspect-ratio:1;border:7px solid #e2d4b9;box-shadow:0 9px 25px #0003}.square{border:0;display:flex;align-items:center;justify-content:center;min-width:0;padding:0;font-size:clamp(23px,4vw,45px);aspect-ratio:1;background:#eee4ce;color:#182e25}.square.dark{background:#7c967a}.square.pick{box-shadow:inset 0 0 0 4px #f6c96c}.square.hint{background:#c9bc6d}.piece{border-radius:50%;width:65%;height:65%;background:#f9f1de;box-shadow:inset 0 0 0 3px #d5cbb7,0 3px 2px #0005;font-size:22px;display:grid;place-items:center;color:#6d512c}.piece.black{background:#22372d;box-shadow:inset 0 0 0 3px #415e4d,0 3px 2px #0005;color:#dfc890}.mineboard{display:grid;grid-template-columns:repeat(9,1fr);width:min(100%,370px);margin:20px auto;background:#264b3b;gap:3px;padding:4px}.mine{aspect-ratio:1;border:0;border-radius:3px;background:#c1ceac;color:#234f3f;font-weight:700;font-size:17px}.mine.open{background:#eef0df}.mine.flag{background:#e5b968}.sudoku{display:grid;grid-template-columns:repeat(9,1fr);max-width:420px;margin:20px auto;background:#123c30;border:3px solid #daceb8;gap:1px}.sudoku input{min-width:0;width:100%;aspect-ratio:1;border:0;text-align:center;font-size:22px;background:#f8f4e8;color:#306aaf;border-radius:0}.sudoku input:nth-child(3n){border-right:3px solid #aaa58e}.sudoku input:nth-child(n+19):nth-child(-n+27),.sudoku input:nth-child(n+46):nth-child(-n+54){border-bottom:3px solid #aaa58e}.sudoku input:disabled{opacity:1;color:#153d32;font-weight:700}.sudoku input.wrong{background:#f0bdb2}.dice{display:flex;gap:12px;justify-content:center;margin:25px 0}.die{width:65px;height:65px;border:0;border-radius:12px;background:#fcf5df;font-size:49px;line-height:1;color:#254e3e;box-shadow:0 4px 0 #c9c1aa}.die.held{outline:3px solid #e2b96a;transform:translateY(-6px)}.scores{max-width:440px;margin:20px auto;width:100%;border-collapse:collapse;font-size:13px}.scores td,.scores th{padding:9px;border-bottom:1px solid #ffffff25;text-align:left}.scores button{width:100%;border:0;background:#ffffff16;color:#fff;border-radius:3px;padding:5px}.rules{max-width:850px;margin:25px 0;font-size:14px;line-height:1.8;color:#617267}.rules summary{cursor:pointer;font-weight:700;color:var(--ink)}.rules .notice{background:#f1e4c8;padding:12px;border-radius:7px;color:#6b542e}.tag{font-size:10px;text-transform:uppercase;letter-spacing:1px;background:#ffffff1a;border-radius:4px;padding:4px 7px}.players{display:flex;justify-content:center;gap:30px;margin:20px 0;font-size:13px}.players span{display:block;text-align:center;color:#aec8b5;font-size:11px;margin-top:5px}.tiles{display:flex;gap:7px;max-width:650px;flex-wrap:wrap;justify-content:center;margin:20px auto}.mahjong{width:57px;height:72px;font-size:30px;background:#fff7e4;border:0;border-radius:6px;box-shadow:0 4px 0 #b5b193;color:#315443}.mahjong.pick{outline:3px solid var(--gold);transform:translateY(-5px)}.mahjong:disabled{visibility:hidden}.ships{display:grid;grid-template-columns:repeat(10,1fr);max-width:370px;gap:3px;margin:12px auto}.sea{aspect-ratio:1;min-width:0;border:1px solid #ffffff25;background:#47778a;color:#fff;padding:0}.sea.hit{background:#cb7a5c}.sea.miss{background:#759692}.sea.ship{background:#90a498}.two-boards{display:grid;grid-template-columns:1fr 1fr;gap:24px}.result{font:500 24px Georgia;color:#f2d29b;text-align:center;margin:18px 0}.small{font-size:12px;line-height:1.6}.flex{display:flex;justify-content:center;gap:12px;align-items:center;flex-wrap:wrap}.badge{background:#e6eade;color:#48634c;padding:3px 7px;border-radius:4px;font-size:10px;display:inline-block;margin-top:6px}@media(min-width:1400px){.wrap{padding:0 45px}}@media(max-width:900px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-art{right:8%;transform:scale(.8) rotate(10deg);transform-origin:right center}.hero p{max-width:300px}.hero{padding:35px}.hero h1{max-width:350px}nav{gap:15px}}@media(max-width:650px){header{height:72px;padding:0 5%}.brand{font-size:20px}nav a{display:none}.profile{padding:7px 12px}.wrap{padding:0 5%}.hero{margin-top:24px;padding:28px;min-height:370px}.hero h1{font-size:39px;max-width:270px}.hero p{max-width:230px}.hero-art{top:auto;bottom:20px;right:12px;transform:scale(.53) rotate(12deg);transform-origin:bottom right}.hero .primary{font-size:12px;padding:12px 15px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tile-art{height:125px}.tile-info{padding:13px}.tile-info h3{font-size:14px}.sectiontop{align-items:flex-start;flex-direction:column}.search{width:100%}.filters{gap:5px}.filter{padding:9px 12px}.banner{padding:17px}.banner .subtle{display:none}.playhead{flex-wrap:wrap}.playhead h1{font-size:30px}.table{padding:14px 8px;min-height:400px}.card,.slot{width:43px;height:67px;min-height:67px;font-size:15px}.card .suit{font-size:23px}.column{min-width:43px}.columns{gap:4px}.column .card+.card{margin-top:-44px}.piles{gap:6px}.hand{gap:4px}.card .rank2{font-size:10px}.two-boards{grid-template-columns:1fr}.die{width:45px;height:50px;font-size:38px}.dice{gap:7px}footer{flex-direction:column}.hero:after{right:-220px}.players{gap:15px}.mahjong{width:42px;height:57px;font-size:25px}}

.board{grid-template-rows:repeat(8,minmax(0,1fr));width:min(100%,480px)}.board .square{height:100%;width:100%;aspect-ratio:auto;line-height:1;overflow:hidden;min-height:0}.hero-art{pointer-events:none}.column .card{position:relative}.column .card.selected{z-index:2}.mahjong{width:100%}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Card artwork must remain inside its own card even if a later theme stylesheet fails. */
.card>.card-face{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;max-height:100%;fill:currentColor;pointer-events:none}
.card>.card-corner{position:absolute;left:2px;top:2px;display:flex;flex-direction:column;z-index:1;pointer-events:none;font:700 13px/1 Arial;text-align:center}.card>.card-corner i{font-style:normal}.card>.card-corner-bottom{left:auto;top:auto;right:2px;bottom:2px;transform:rotate(180deg)}
