:root{--bg:#f5f3ed;--paper:#fffefa;--ink:#233d36;--muted:#778078;--line:#e8e9df;--red:#db5549;--blue:#5187bd;--yellow:#e5b13c;--green:#56997b;--accent:#254b3d;font-family:'Segoe UI',Arial,sans-serif;color:var(--ink);font-size:16px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #d09b32;outline-offset:5px}button{color:inherit}a{color:inherit}button,input{min-height:44px}button{touch-action:manipulation}[hidden]{display:none!important}.site-header{max-width:1320px;margin:auto;padding:30px 42px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e3e5da}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:18px;line-height:1.05;font-weight:800;letter-spacing:-.6px}.brand-bottom{display:block}.brand-mark{display:flex;align-items:center;justify-content:center;width:45px;height:45px;background:var(--red);color:#fffdf5;border-radius:13px;font-weight:900;font-size:29px;letter-spacing:-3px;padding-right:3px;transform:rotate(-7deg)}.brand-mark span{font-size:27px}.red-dot{color:var(--red)}.header-right{display:flex;align-items:center;gap:34px}.header-note{font-size:14px;color:#6a776d;display:flex;align-items:center;gap:8px}.header-note i,.board-state i,.connection i{width:6px;height:6px;background:var(--green);border-radius:100%;display:inline-block}.text-button{border:none;background:none;font-size:14px;font-weight:600;display:inline-flex;gap:8px;align-items:center;padding:6px}.text-button:hover{color:var(--red)}main{max-width:1320px;margin:auto;padding:40px 42px 0}.page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:27px;gap:20px}.eyebrow,.tiny-label{font-size:11px;letter-spacing:2px;font-weight:700;margin:0 0 12px;color:#758073}h1{font-size:38px;letter-spacing:-1.5px;line-height:1.15;margin:0;font-weight:750}h1>span{color:var(--red)}.player-count{font-size:13px;color:#7b8278;display:flex;align-items:center;gap:8px;padding-bottom:7px}.player-count>span:first-child{font-size:20px;color:var(--green)}.count-divider{margin:0 7px;color:#c8cdc0}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:28px;align-items:start}.board-card{background:var(--paper);border:1px solid #e9e9df;border-radius:24px;box-shadow:0 7px 22px #2f483507;padding:22px 26px 0;overflow:hidden}.board-topline,.board-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.board-topline .tiny-label{margin:0;font-size:10px;letter-spacing:1.8px}.board-state{display:flex;align-items:center;gap:7px;font-size:12px;color:#859080}.board{position:relative;width:100%;max-width:660px;margin:2px auto 6px;aspect-ratio:1}#board-svg{width:100%;height:100%;display:block;overflow:visible}#pawns{position:absolute;inset:0}.pawn{position:absolute;width:6.7%;height:7.5%;min-height:0;padding:0;transform:translate(-50%,-56.5%);background:none;border:0;z-index:2;transition:left .38s ease,top .38s ease,opacity .2s;isolation:isolate;filter:drop-shadow(0 3px 1px #203e3220)}.pawn::before{content:'';position:absolute;inset:13% 14% 0;background:var(--pawn-color);clip-path:polygon(33% 29%,26% 19%,28% 8%,38% 0,62% 0,72% 8%,74% 19%,67% 29%,65% 38%,84% 82%,85% 92%,74% 100%,26% 100%,15% 92%,16% 82%,35% 38%);box-shadow:inset -6px -4px 0 #00000015}.pawn span{position:absolute;left:0;right:0;bottom:13%;color:white;font-weight:800;font-size:clamp(10px,1.2vw,16px);text-shadow:0 1px 1px #0002}.pawn.yellow span{color:#624713}.pawn.ghost{opacity:.67}.pawn:disabled{opacity:1}.pawn.legal::after{content:'';position:absolute;inset:0 -3% -8%;border:2px dashed var(--pawn-color);border-radius:50%;z-index:-1;animation:halo 1.5s ease-in-out infinite}.pawn.legal{cursor:pointer;filter:drop-shadow(0 4px 3px #203e3240)}.pawn.legal:hover{transform:translate(-50%,-66%) scale(1.1)}.pawn:focus-visible{outline:3px solid var(--ink);border-radius:40%}.board-bottom{border-top:1px solid var(--line);padding:17px 0;font-size:12px;color:#869080}.board-bottom>span:first-child{display:flex;align-items:center;gap:9px}.color-dots{display:flex;gap:3px}.color-dots i{width:7px;height:7px;background:var(--red);border-radius:50%}.color-dots i:nth-child(2){background:var(--blue)}.color-dots i:nth-child(3){background:var(--yellow)}.color-dots i:nth-child(4){background:var(--green)}.panel{background:var(--paper);border-radius:21px;border:1px solid #e8e9df;padding:27px;box-shadow:0 5px 15px #2f483504}.mini-dice{color:var(--red);font-size:45px;line-height:1;transform:rotate(-12deg);width:45px;margin-bottom:24px}.entry-panel .eyebrow{font-size:10px;letter-spacing:1.8px}.panel h2{font-size:26px;letter-spacing:-.8px;margin:0 0 12px;line-height:1.2}.muted{font-size:14px;line-height:1.65;color:var(--muted);margin:0}.intro{margin-bottom:26px}label{font-size:14px;font-weight:600;display:block;margin-bottom:9px}input{width:100%;border:1px solid #dfe3d8;background:#fafaf5;border-radius:9px;padding:12px 13px;color:var(--ink);height:48px;outline:none}input:focus{border-color:var(--green);box-shadow:0 0 0 3px #56997b20}input::placeholder{color:#a0a698}.button{border:1px solid transparent;padding:13px 17px;min-height:48px;border-radius:9px;font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:center;gap:16px;transition:background .2s,transform .2s}.primary{background:var(--accent);color:#fffdf5}.primary:hover:not(:disabled){background:#35624e;transform:translateY(-1px)}#create{width:100%;margin-top:12px;justify-content:space-between}.secondary{background:#ecefe5;border-color:#dde3d7;white-space:nowrap}.secondary:hover{background:#e0e7d8}.or{display:flex;align-items:center;gap:12px;font-size:12px;color:#9bA292;margin:25px 0}.or::before,.or::after{content:'';height:1px;flex:1;background:var(--line)}.join-row{display:flex;gap:8px}.join-row input{min-width:0;letter-spacing:2px;text-transform:uppercase;font-weight:650}.join-row .button{padding:12px;font-size:13px;gap:10px}.field-note{font-size:12px;color:#90998b;line-height:1.5;margin:10px 0 0}.entry-foot{margin:25px -27px -27px;padding:17px 20px;display:flex;align-items:center;justify-content:center;gap:9px;border-top:1px solid var(--line);font-size:11px;color:#7f8b7d}.entry-foot>span{font-size:17px}.little-note{display:flex;align-items:center;gap:14px;margin:25px 8px}.note-icon{font-size:39px;color:#bd9860;line-height:1}.little-note strong{font-size:13px;font-weight:600}.little-note p{font-size:12px;color:#8d9488;line-height:1.65;margin:5px 0 0}footer{border-top:1px solid #e2e5d9;margin-top:34px;padding:22px 0 25px;display:flex;justify-content:space-between;gap:15px;color:#929b8d;font-size:11px}.footer-dot{margin:0 8px;color:#bbc2b3}.room-label{display:flex;align-items:center;justify-content:space-between}.room-label .eyebrow{margin:0}.small{font-size:12px;min-height:32px}.room-share{display:flex;align-items:center;justify-content:space-between;margin:4px 0 8px}.room-share strong{font-size:32px;letter-spacing:5px;line-height:1.4}.icon-button{width:44px;height:44px;border:1px solid var(--line);background:#f4f5ed;border-radius:10px;font-size:24px;display:grid;place-items:center}.icon-button:hover{background:#e9eedf}.players{margin:23px 0;border-top:1px solid var(--line);padding-top:10px}.player{display:flex;align-items:center;gap:12px;padding:11px 9px;border-radius:10px;margin:3px -9px}.player.active{background:#edf1e7}.avatar{background:color-mix(in srgb,var(--pawn-color) 15%,white);color:var(--pawn-color);display:grid;place-items:center;width:37px;height:37px;border-radius:50%;font-size:21px;flex-shrink:0}.player-name{font-size:14px;font-weight:650;overflow-wrap:anywhere;flex:1;min-width:0}.player-name small{font-weight:400;color:#85907c;font-size:11px;display:block;margin-top:2px}.player-status{font-size:11px;color:#86947b;white-space:nowrap}.player.active .player-status{font-weight:600;color:var(--accent)}.empty-player{font-size:13px;color:#a1a999;border:1px dashed #dfe4d6;border-radius:10px;padding:12px;text-align:center;margin-top:9px}.turn-panel{border-top:1px solid var(--line);padding-top:23px}.turn-panel .eyebrow{font-size:10px}.turn-panel h2{font-size:24px;overflow-wrap:anywhere}.turn-panel .muted{font-size:13px}.full{width:100%;margin-top:19px}.dice-zone{display:flex;align-items:center;gap:17px;margin:22px 0 8px}.dice{width:66px;height:66px;flex-shrink:0;background:#fff;border:1px solid #e0e4d9;box-shadow:0 4px 0 #e4e8dc;border-radius:14px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:5px;padding:12px;transform:rotate(-5deg)}.dice span{background:var(--accent);border-radius:50%;visibility:hidden}.dice.rolling{animation:roll .5s ease}.dice-zone strong{font-size:13px;display:block}.dice-zone>div>span{font-size:12px;display:block;line-height:1.5;margin-top:5px;color:var(--muted)}.connection{font-size:11px;color:#8d9984;display:flex;justify-content:center;align-items:center;gap:7px;margin:20px 0 0}.connection.offline{color:#ab7531}.connection.offline i{background:#bd8532}.inline-error{color:#ac3e33;background:#fcf0eb;border:1px solid #f2dcd2;padding:12px;border-radius:8px;font-size:13px;line-height:1.5;margin:15px 0 0}.activity{padding:23px 8px 0}.activity-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.activity h3{font-size:14px;margin:0}.activity-heading>span{font-size:9px;letter-spacing:1.4px;color:#a1aa98}#log{list-style:none;padding:0;margin:14px 0 0;max-height:280px;overflow:auto}#log li{font-size:12px;color:#86917e;line-height:1.65;padding:4px 0 4px 13px;position:relative}#log li::before{content:'';position:absolute;left:0;top:12px;width:4px;height:4px;background:#bdc6b4;border-radius:50%}#log li:last-child{color:var(--ink)}dialog{border:1px solid #e3e8db;border-radius:22px;background:var(--paper);color:var(--ink);width:min(620px,calc(100% - 32px));padding:30px;max-height:85dvh;box-shadow:0 20px 80px #18322230}dialog::backdrop{background:#142b2755;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top .eyebrow{margin:0}dialog h2{font-size:30px;margin:12px 0}dialog p{font-size:15px;line-height:1.6;color:var(--muted)}.rules-list{padding-left:22px;font-size:14px;line-height:1.65}.rules-list li{padding-left:6px;margin:14px 0}.rules-connection{background:#eff2e7;border-radius:12px;padding:16px;font-size:13px;line-height:1.7;color:#67785f}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 22px;background:var(--ink);color:white;border-radius:12px;box-shadow:0 5px 30px #0002;font-size:14px;z-index:10;max-width:calc(100% - 32px);text-align:center}.noscript{padding:20px;background:#fee;position:fixed;bottom:0;left:0;right:0}.winner .turn-panel{background:#f6f0dc;margin:0 -12px;padding:20px 12px;border-radius:12px}.winner .turn-panel h2{color:#8d6a1f}@keyframes halo{50%{opacity:.4;transform:scale(1.08)}}@keyframes roll{0%,100%{transform:rotate(-5deg)}25%{transform:rotate(18deg) translateY(-8px)}75%{transform:rotate(-18deg) translateY(-4px)}}
@media(min-width:1400px){main{padding-top:48px}.page-heading{margin-bottom:32px}.game-layout{gap:32px}.board-card{padding-left:33px;padding-right:33px}}
@media(max-width:1050px){.site-header{padding:24px}main{padding:30px 24px 0}.game-layout{grid-template-columns:minmax(0,1fr) 320px;gap:20px}.panel{padding:22px}.entry-foot{margin:25px -22px -22px;padding:15px 13px;font-size:10px}.board-card{padding:18px 12px 0}.board-bottom{font-size:10px}.board-state{font-size:10px}.board-topline .tiny-label{font-size:9px}.player-count{font-size:11px}.page-heading h1{font-size:34px}.panel h2{font-size:23px}.join-row{gap:6px}.join-row .button{padding:10px;font-size:12px;gap:6px}}
@media(max-width:780px){.site-header{padding:20px}.header-note{display:none}main{padding:26px 16px 0}.page-heading{margin-bottom:22px;align-items:start}.page-heading h1{font-size:30px}.page-heading .eyebrow{font-size:10px}.player-count{display:none}.game-layout{grid-template-columns:1fr;gap:20px}.board-card{max-width:600px;width:100%;margin:auto;padding:18px 15px 0}.side-panel{display:flex;flex-direction:column}.entry-panel{order:-1}.game-layout:has(#entry:not([hidden])){display:flex;flex-direction:column}.game-layout:has(#entry:not([hidden]))>.board-card{order:2}.game-layout:has(#entry:not([hidden]))>.side-panel{width:100%}.panel{padding:24px}.mini-dice{float:right;margin:0}.intro{max-width:340px;margin-bottom:20px}.entry-foot{margin:22px -24px -24px;font-size:11px}.little-note{display:none}.board-bottom{font-size:11px}.board-state{font-size:11px}.board-topline .tiny-label{font-size:10px}.pawn span{font-size:clamp(10px,2.5vw,15px)}.room-share strong{font-size:28px}.players{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:15px 0}.player{margin:0;padding:8px 5px;gap:7px}.player-name{font-size:13px}.player-status{font-size:10px}.avatar{width:28px;height:28px;font-size:17px}.turn-panel{padding-top:18px}.turn-panel h2{font-size:24px}.dice-zone{margin:15px 0}.full{margin-top:15px}.connection{margin-top:15px}.activity{padding-top:20px}#log{max-height:220px}footer{margin-top:24px;flex-direction:column;align-items:center;gap:8px;text-align:center}.board-hint{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:780px){body:has(#room-panel:not([hidden])){padding-bottom:80px}#room-panel:not([hidden]) #main-action{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));left:16px;right:16px;width:calc(100% - 32px);margin:0;z-index:8;box-shadow:0 4px 25px #233d3625;min-height:52px;font-size:15px}#room-panel:not([hidden]) #main-action:disabled{opacity:1;background:#e5eadc;color:#53654b;border-color:#d3dcc9}.pawn{width:8%;height:9%;min-width:24px;min-height:26px}.pawn span{font-size:11px}}
.game-layout:has(#entry:not([hidden])){display:block;max-width:420px;margin-inline:auto}.game-layout:has(#entry:not([hidden]))>.side-panel{width:100%}
.site-header{gap:28px;padding-block:22px}.site-header .brand{flex-shrink:0}.site-header h1{flex:1;min-width:0;font-size:22px;letter-spacing:-.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-right{gap:20px;flex-shrink:0}.site-header .player-count{padding:0}main{padding-top:24px}@media(max-width:1050px){.site-header .player-count{display:none}}@media(max-width:600px){.site-header{gap:12px;padding-block:16px}.site-header h1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.header-right{margin-left:auto}main{padding-top:20px}}
