@import url('https://use.typekit.net/cvb2iwq.css');
:root{--heading-font:'cooper-black-std';--body-font:'museo-sans';--button-font:'museo-sans';--heading-weight:400;--page:#ffe8cd;--surface:#fff9ee;--soft:#f4d9bd;--ink:#472b34;--muted:#806357;--line:#dfbfa4;--accent:#97394e;--on-accent:#fff8ef;--radius:16px;--card-radius:26px;--stage:#e6ccb1;--stage-ink:#634b38;--piece-w:#d74951;--piece-b:#7460bd}

*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--body-font),serif;font-size:20px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{color:var(--ink);border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);font-family:var(--button-font),sans-serif;font-size:17px;font-weight:700;min-height:48px;padding:11px 17px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.42;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--heading-font),serif;line-height:1.06}h2{font-size:38px}h3{font-size:27px}header,footer{display:flex;align-items:center;justify-content:space-between;gap:20px}header{padding:30px 0;border-bottom:1px solid var(--line)}nav{display:flex;align-items:center;gap:24px;font:700 17px var(--button-font),sans-serif}.site{max-width:1440px;margin:auto;padding:0 44px}.brand{font-family:var(--heading-font),serif;font-size:40px;line-height:1}.brand small{display:block;font-family:var(--button-font),sans-serif;font-size:11px;letter-spacing:.16em;margin-top:10px}.game-menu{position:relative;font-size:17px}.game-menu summary{cursor:pointer}.game-menu>div{position:absolute;right:0;top:35px;background:var(--surface);padding:14px;min-width:210px;box-shadow:0 8px 30px #0002;z-index:20;border:1px solid var(--line);border-radius:var(--radius)}.game-menu a{display:block;padding:9px}.edition{font-size:12px}.eyebrow{font-family:var(--button-font),sans-serif;font-size:12px;font-weight:800;letter-spacing:.15em;line-height:1.5;color:var(--accent)}.headline{padding:48px 0 34px}.headline h1{font-size:76px;margin:14px 0 22px}.intro{color:var(--muted);max-width:610px;font-size:22px;line-height:1.5}.availability{display:inline-flex;padding:10px 14px;background:var(--soft);border-radius:var(--radius);font-family:var(--button-font),sans-serif;font-size:15px;font-weight:700;margin-top:20px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:30px;align-items:start}.game-column,aside{min-width:0}.game-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--card-radius);overflow:hidden}.game-toolbar{padding:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.mode-tabs,.view-tools{display:flex;flex-wrap:wrap;gap:8px}.mode-tabs .active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.view-tools button{font-size:16px;padding:10px 12px}.player-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;font-family:var(--button-font),sans-serif;font-size:15px}.player-id{display:flex;align-items:center;gap:12px}.player-id b{font-size:18px}.avatar{width:25px;height:25px;border-radius:50%;box-shadow:inset -3px -4px 7px #0004;flex-shrink:0}.avatar.w{background:var(--piece-w)}.avatar.b{background:var(--piece-b)}.board-frame{height:640px;position:relative;background:var(--stage)}#canvas-container{width:100%;height:100%}canvas{display:block;width:100%;height:100%}.board-caption{position:absolute;bottom:9px;left:0;right:0;text-align:center;color:var(--stage-ink);font:600 14px var(--button-font),sans-serif;pointer-events:none}.game-bottom{padding:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.game-bottom strong{font:700 20px var(--button-font),sans-serif}.game-bottom p{font-size:17px;line-height:1.5;color:var(--muted);margin-top:8px}.game-controls{display:flex;gap:8px;flex-shrink:0}.side-card{border:1px solid var(--line);padding:22px;background:var(--surface);border-radius:var(--card-radius);margin-bottom:20px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font:700 13px var(--button-font),sans-serif;letter-spacing:.06em}.card-heading small{font-size:12px;letter-spacing:0}.card-heading>b{font-family:var(--heading-font),serif;font-size:32px}.score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:24px}.score-grid span{font:700 14px var(--button-font),sans-serif;display:block}.score-grid strong{font-family:var(--heading-font),serif;font-weight:var(--heading-weight);font-size:40px;display:block;margin-top:8px;color:var(--accent)}.score-note{font-family:var(--button-font),sans-serif;font-size:14px;color:var(--muted);line-height:1.6;margin-top:18px}.status-pill{display:inline-block;padding:8px 12px;background:var(--soft);font:600 14px var(--button-font),sans-serif;margin-top:16px;border-radius:var(--radius)}.position-stat{display:grid;grid-template-columns:1fr auto;gap:5px;border-top:1px solid var(--line);padding:18px 0 0;margin-top:18px;font-family:var(--button-font),sans-serif}.position-stat>span{font-size:14px;font-weight:700}.position-stat strong{font-size:26px}.position-stat small{grid-column:1/-1;font-size:13px;color:var(--muted)}#move-list{max-height:260px;overflow-y:auto;margin-top:18px}.history-row{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:13px 0;border-top:1px solid var(--line);font-family:var(--button-font),sans-serif;font-size:14px}.history-row>span{color:var(--muted)}.history-row b{font-weight:700}.history-row p{font-size:15px;margin-top:5px}.empty-history{color:var(--muted);font-size:17px;padding:25px 0}.online-teaser{width:100%;text-align:left;display:flex;flex-direction:column;gap:12px;padding:24px;background:var(--soft);margin-bottom:20px}.online-teaser b{font-family:var(--heading-font),serif;font-weight:var(--heading-weight);font-size:27px;line-height:1.2}.online-teaser>span:last-child{font-size:15px;font-weight:400}.rules-card{display:grid;grid-template-columns:250px 1fr;gap:38px;padding:48px 0;border-top:1px solid var(--line);margin-top:38px}.rules-card h2{margin-top:14px}.rule-copy p{display:flex;align-items:baseline;gap:18px;color:var(--muted);line-height:1.65;margin-bottom:18px;font-size:19px}.rule-copy p b{font-family:var(--button-font),sans-serif;color:var(--accent);font-size:14px;flex-shrink:0}.rule-copy>span{font:500 14px var(--button-font),sans-serif;color:var(--muted);display:block;margin-top:24px}.rule-copy>a{display:inline-block;margin-top:18px;font:700 15px var(--button-font),sans-serif}.ad-slot{border:1px dashed var(--line);background:var(--soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:var(--muted);font-family:var(--button-font),sans-serif}.ad-slot>span{font-size:11px;letter-spacing:.15em}.ad-slot small{font-size:13px}.rectangle-slot{min-height:250px;margin-top:160px}.banner-slot{min-height:110px;margin-top:160px}footer{font:500 15px var(--button-font),sans-serif;border-top:1px solid var(--line);margin-top:64px;padding:28px 0 38px}dialog{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--card-radius);width:540px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:34px;overflow-y:auto}dialog::backdrop{background:#151018a8}dialog h2{font-size:34px;margin:16px 0 20px}.dialog-close{position:absolute;right:14px;top:12px;background:transparent;border:0;font-size:28px;padding:0;width:40px;min-height:40px}.dialog-copy{font-size:18px;color:var(--muted);margin-bottom:22px;line-height:1.65}dialog label{display:block;font:700 17px var(--button-font),sans-serif;margin:20px 0 10px}input,select{width:100%;min-height:50px;padding:12px;background:var(--page);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);font:500 17px var(--button-font),sans-serif}.primary-button{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.primary-button:hover:not(:disabled){background:var(--ink);color:var(--surface)}.full-button{width:100%;margin-top:26px}.match-options{display:flex;flex-direction:column;gap:10px}.notice{background:var(--soft);padding:14px;font:500 15px/1.65 var(--button-font),sans-serif;margin-top:18px}.invitation-card{padding:24px;border:1px solid var(--line);background:var(--page);margin-top:26px;border-radius:var(--radius)}.invitation-card h3{margin:14px 0}.invitation-card p{font-size:18px;line-height:1.6}.invitation-card label{font-size:15px}.invitation-card input{font-size:16px}.invitation-actions,.dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.invitation-actions button,.dialog-actions button{flex:1;min-width:140px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#render-note{font:500 14px var(--button-font),sans-serif;color:var(--accent)}#fallback-board{position:relative;width:100%;height:100%;min-height:350px}#fallback-board svg{position:absolute;width:100%;height:100%;stroke:var(--ink);stroke-width:.7;fill:var(--soft)}.fallback-cell{position:absolute;transform:translate(-50%,-50%);min-height:36px;width:36px;padding:0;border-radius:50%;font-size:16px;z-index:2}.fallback-cell.w{color:var(--piece-w)}.fallback-cell.b{color:var(--piece-b)}.fallback-cell.legal{outline:3px solid var(--accent)}.fallback-cell.selected{background:var(--accent);color:var(--on-accent)}.game-mancala .fallback-cell{width:52px;height:46px}.dice-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:20px 22px;background:var(--soft)}#die-value{font-size:52px;line-height:1;color:var(--accent)}#die-caption{font:500 15px var(--button-font),sans-serif}#token-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%}#token-actions button{font-size:16px;padding:10px 5px}#token-actions small{display:block;font-size:12px;margin-top:5px}.asset-page{max-width:1200px;margin:0 auto;padding:44px 30px}.asset-page h1{font-size:60px;margin:26px 0}.asset-page p{max-width:800px;font-size:20px;line-height:1.6;color:var(--muted);margin:20px 0}.asset-sheet{width:100%;display:block;border:1px solid var(--line);margin:30px 0}.asset-download{display:inline-block;padding:12px 20px;background:var(--accent);color:var(--on-accent);font-family:var(--button-font),sans-serif;font-weight:700;margin:14px 0}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px}.gallery>section{background:var(--surface);border:1px solid var(--line);padding:20px}.asset-stage{height:420px;width:100%}.gallery h2{font-size:27px}.gallery p{font-size:16px}.gallery canvas{border-radius:var(--radius)}
@media(max-width:1120px){.site{padding:0 26px}.layout{grid-template-columns:minmax(0,1fr) 250px;gap:20px}.headline h1{font-size:64px}.board-frame{height:570px}.side-card{padding:18px}.game-bottom{flex-wrap:wrap}.rules-card{grid-template-columns:200px 1fr}.view-tools button{font-size:15px;padding:10px}.game-toolbar{padding:12px}}
@media(max-width:850px){.site{padding:0 20px}header{padding:24px 0;flex-wrap:wrap}nav{gap:18px;flex-wrap:wrap;font-size:16px}.headline{padding:32px 0}.headline h1{font-size:58px}.intro{font-size:20px}.layout{display:flex;flex-direction:column}.game-column,aside{width:100%}.board-frame{height:580px}.rules-card{grid-template-columns:1fr;gap:24px}.game-controls{width:100%}.game-controls button{flex:1}.rectangle-slot{margin-top:160px}.gallery{grid-template-columns:1fr}.asset-stage{height:380px}}
@media(max-width:500px){.site{padding:0 14px}.brand{font-size:34px}.brand small{font-size:10px}.headline h1{font-size:49px}nav{gap:14px;font-size:15px}.board-frame{height:410px}.game-toolbar{display:block}.mode-tabs{margin-bottom:10px}.view-tools{justify-content:space-between}.view-tools button{font-size:15px;min-height:46px;padding:10px 9px}.player-bar{padding:14px;font-size:13px}.player-id b{font-size:16px}.game-bottom{padding:18px}.game-bottom strong{font-size:18px}.game-bottom p{font-size:16px}.rules-card h2{font-size:32px}.rule-copy p{font-size:18px;gap:12px}.side-card{padding:22px}.score-grid strong{font-size:42px}dialog{padding:30px 22px}dialog h2{font-size:29px}.invitation-card{padding:20px}footer{flex-direction:column;align-items:flex-start;font-size:14px}#token-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.dice-controls{padding:18px}.game-mancala .fallback-cell{width:34px;height:34px;font-size:15px}.asset-page{padding:30px 18px}.asset-page h1{font-size:44px}}

.game-ludo{font-family:var(--body-font),sans-serif;font-weight:500}.game-ludo h1,.game-ludo h2,.game-ludo h3{font-weight:400}.game-ludo .headline{text-align:center;padding:52px 0 40px}.game-ludo .headline h1{font-size:94px;color:var(--accent);transform:rotate(-2deg)}.game-ludo .headline .intro{margin:auto}.game-ludo .brand{color:var(--accent)}.game-ludo .game-card{box-shadow:0 8px 0 #d9b895}.game-ludo .score-grid{text-align:center}.game-ludo .ai-scoreboard{border:2px solid var(--accent)}.game-ludo .rules-card{background:var(--surface);padding:34px;border-radius:26px;border:0}.game-ludo .rule-copy{font-family:var(--body-font),sans-serif}@media(max-width:500px){.game-ludo .headline h1{font-size:67px}.game-ludo .rules-card{padding:24px}}
