:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5efe5;color:#17251d}*{box-sizing:border-box}body{margin:0;overflow-x:hidden;min-height:100vh;background:linear-gradient(180deg,rgba(20,61,43,.08),transparent 34%),#f5efe5}button,input,select{font:inherit}button{min-height:44px;font-size:16px;touch-action:manipulation;border:0;border-radius:8px;background:#143d2b;color:#fff;font-weight:750;padding:0 16px}button:not(.card):not(.pawn):not(:disabled){--button-feedback-fill: rgba(255, 250, 242, .16);cursor:pointer;background-image:linear-gradient(var(--button-feedback-fill),var(--button-feedback-fill));background-repeat:no-repeat;background-size:0% 100%;background-position:left center;transition:background-size .18s ease,transform .12s ease,box-shadow .18s ease,border-color .18s ease}button:not(.card):not(.pawn):not(:disabled):hover,button:not(.card):not(.pawn):not(:disabled):focus-visible{background-size:100% 100%;box-shadow:0 4px 12px #211b131f}button:not(.card):not(.pawn):not(:disabled):active{transform:translateY(1px) scale(.985);background-size:100% 100%}button:disabled,select:disabled{opacity:.45}button:disabled{cursor:default}input,select{width:100%;font-size:16px;min-height:44px;border:1px solid #d4c6b1;border-radius:8px;background:#fffaf2;color:#17251d;padding:0 12px}label{display:grid;gap:7px;font-size:.85rem;font-weight:700}.home,.lobby,.game,.rules-page{width:min(100%,1040px);margin:0 auto;min-height:100vh;padding:max(16px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom))}.home{display:grid;align-content:center;gap:18px}.home-intro{overflow:hidden}.brand-panel{display:grid;gap:8px;justify-items:start}.brand-panel h1{margin:0;color:#143d2b;line-height:.92}.brand-title{width:min(100%,430px);margin-left:0;transform-origin:center;animation:home-brand-settle .98s cubic-bezier(.18,.92,.22,1) 1.85s both}.brand-title-svg{display:block;width:100%;height:auto;overflow:visible}.brand-title-letter{fill:#143d2b;fill-opacity:0;stroke:#143d2b;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;paint-order:fill stroke;--stroke-length: 220;--start-offset: 220;--start-scale: .96;--start-rotate: 0deg;stroke-dasharray:var(--stroke-length);stroke-dashoffset:var(--start-offset);font:950 88px Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0;transform-box:fill-box;transform-origin:center;animation:brand-stroke-in 1.18s cubic-bezier(.18,.86,.25,1) .12s forwards,brand-fill-in .52s ease-out .76s forwards,brand-stroke-away .26s ease-out 1.22s forwards,brand-elastic-settle .76s cubic-bezier(.18,1.4,.28,1) .88s forwards}.brand-title-letter.reverse{--start-offset: -220}.brand-title-letter.l1{--stroke-length: 260;--start-offset: 260;--start-scale: .94;--start-rotate: -2deg}.brand-title-letter.l2{--stroke-length: 160;--start-offset: -160;--start-scale: 1.04;--start-rotate: 3deg}.brand-title-letter.l3{--stroke-length: 210;--start-offset: 210;--start-scale: .98;--start-rotate: -3deg}.brand-title-letter.l4{--stroke-length: 230;--start-offset: -230;--start-scale: 1.03;--start-rotate: 2deg}.brand-title-letter.l5{--stroke-length: 240;--start-offset: 240;--start-scale: .95;--start-rotate: 2deg}.brand-title-letter.l6{--stroke-length: 120;--start-offset: -120;--start-scale: 1.08;--start-rotate: -4deg}.brand-title-letter.l7{--stroke-length: 260;--start-offset: -260;--start-scale: .95;--start-rotate: 2deg}.brand-title-letter.l8{--stroke-length: 220;--start-offset: 220;--start-scale: 1.04;--start-rotate: -2deg}.brand-title-letter.l9{--stroke-length: 230;--start-offset: -230;--start-scale: .97;--start-rotate: 3deg}@keyframes brand-stroke-in{to{stroke-dashoffset:0}}@keyframes brand-fill-in{0%{fill-opacity:0}to{fill-opacity:1}}@keyframes brand-stroke-away{to{stroke-opacity:0}}@keyframes brand-elastic-settle{0%{transform:rotate(var(--start-rotate)) scale(var(--start-scale))}52%{transform:rotate(0) scale(1.045)}76%{transform:rotate(0) scale(.985)}to{transform:rotate(0) scale(1)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){.brand-title-letter{fill-opacity:1;stroke-dashoffset:0;stroke-opacity:0;animation:none}.brand-title,.home-subtitle,.home-subtitle span,.home-divider,.home-entry-panel{opacity:1!important;transform:none!important;animation:none!important}}.brand-panel p,.lobby-actions p,.fine,.muted{margin:0;color:#637065}.brand-panel .home-subtitle{width:min(100%,430px);max-width:430px;margin:14px 0 0;padding-left:0;line-height:1.38}.home-subtitle span{display:inline-block;opacity:0;transform:translateY(8px);animation:home-subtitle-in .52s ease-out both}.home-subtitle span:not(:last-child):after{content:",";margin-right:.34em}.home-subtitle span:nth-child(1){animation-delay:2.66s}.home-subtitle span:nth-child(2){animation-delay:2.82s}.home-subtitle span:nth-child(3){animation-delay:2.98s}.home-subtitle span:nth-child(4){animation-delay:3.14s}.home-divider{background:#143d2b;opacity:.75;transform-origin:top;animation:home-divider-draw-y .72s cubic-bezier(.2,.86,.24,1) 3.46s both}.home-entry-panel{opacity:0;transform:translate(16px);animation:home-entry-in .7s ease-out 4.04s both}@keyframes home-brand-settle{0%{transform:translateY(22vh) scale(1.58)}to{transform:translate(0) scale(1.12)}}@keyframes home-subtitle-in{to{opacity:1;transform:translateY(0)}}@keyframes home-divider-draw-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes home-divider-draw-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes home-entry-in{to{opacity:1;transform:translate(0)}}.rules-page{display:grid;align-content:start;gap:14px}.rules-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;margin:-14px -14px 0;padding:max(12px,env(safe-area-inset-top)) 14px 12px;background:#f5efe5f5;border-bottom:1px solid #e0d1bc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.rules-header strong{color:#143d2b;font-size:1rem}.rules-content{display:grid;gap:12px;padding:14px;border:1px solid #e0d1bc;border-radius:8px;background:#fffaf2db}.rules-content h1,.rules-content h2,.rules-content p,.rules-content ul{margin:0}.rules-content h1{color:#143d2b;font-size:1.45rem;line-height:1.1}.rules-content h2{margin-top:8px;color:#143d2b;font-size:1rem}.rules-content p,.rules-content li{color:#26352b;font-size:.92rem;line-height:1.45}.rules-content ul{display:grid;gap:6px;padding-left:20px}.entry-panel,.lobby-actions,.hand-tray,.action-tray{display:grid;gap:12px;background:#fffaf2d6;border:1px solid #e0d1bc;border-radius:8px;padding:14px}.hand-tray{gap:10px;padding:12px}.join-row{display:grid;grid-template-columns:1fr auto;gap:10px}.language-picker{display:grid;gap:8px}.language-picker>span{color:#637065;font-size:.75rem;font-weight:850;text-transform:uppercase}.language-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.language-option{min-width:0;min-height:40px;padding:0 8px;display:inline-grid;place-items:center}.language-flag{display:block;font-size:1.25rem;line-height:1}.language-option.selected{border-color:#143d2b7a;background:#143d2b14}.topbar,.game-status,.hand-header,.seat-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.sound-toggle,.auto-skip-toggle{width:42px;min-height:42px;padding:0;display:inline-grid;place-items:center}.sound-toggle[aria-pressed=true],.auto-skip-toggle[aria-pressed=true]{border-color:#143d2b7a;background:#143d2b14}.sound-icon,.sound-icon svg{width:20px;height:20px;display:block}.sound-icon svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.topbar,.game-status{position:sticky;top:0;z-index:5;margin:-14px -14px 14px;padding:max(12px,env(safe-area-inset-top)) 14px 12px;background:#f5efe5f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #e0d1bc}.eyebrow{display:block;color:#637065;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.game-code{min-height:36px;padding:0;background:transparent;color:#143d2b;font-size:1.7rem}.ghost{--button-feedback-fill: rgba(20, 61, 43, .08);background-color:transparent;color:#143d2b;border:1px solid #cdbba4}.player-button,.exit-button{min-width:64px;max-width:118px;padding:0 11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exit-button{--button-feedback-fill: rgba(179, 40, 34, .1);color:#b32822;border-color:#742d2a59}.round-note{margin:2px 0 0;color:#637065;font-size:.78rem;font-weight:750;line-height:1.25}.seat-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.seat-card{display:grid;gap:10px;min-width:0;border:1px solid #dfcfb8;border-radius:8px;background:#fffaf2;padding:12px}.seat-card.mine{position:relative;outline:3px solid rgba(20,61,43,.2);background:#143d2b12}.seat-card.occupied:not(.mine){filter:saturate(.72)}.seat-head strong{color:#143d2b;font-size:1.25rem}.seat-head span,.occupant{color:#637065}.occupant{min-height:22px;margin:0;font-weight:700}.bot-select{font-size:.75rem}.lobby-actions{margin-top:14px}.game{display:grid;grid-template-rows:auto minmax(280px,1fr) auto auto;gap:12px}.seat-pill{display:inline-grid;min-width:48px;min-height:34px;place-items:center;border-radius:999px;background:#fffaf2;border:1px solid #d4c6b1;color:#143d2b;font-weight:800}.table-area{position:relative;display:grid;place-items:center;min-height:280px}.board-shell{position:relative;width:min(94vw,560px);aspect-ratio:1}.board-octagon{position:absolute;top:4%;right:4%;bottom:4%;left:4%;clip-path:polygon(50% 0,85% 15%,100% 50%,85% 85%,50% 100%,15% 85%,0 50%,15% 15%);background:#e6c28f;border:5px solid #b98e60;box-shadow:inset 0 0 0 10px #fffaf23d,0 18px 42px #211b1329}.board-active-edges{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:visible;pointer-events:none}.board-active-edges polyline{fill:none;stroke:var(--active-seat-color);stroke-width:.4;stroke-linecap:round;stroke-linejoin:round;animation:active-edge-pulse 1.9s ease-in-out infinite}@keyframes active-edge-pulse{0%,to{opacity:.42;stroke:color-mix(in srgb,var(--active-seat-color) 68%,#e6c28f);filter:drop-shadow(0 0 1px color-mix(in srgb,var(--active-seat-color) 32%,transparent))}50%{opacity:1;stroke:var(--active-seat-color);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--active-seat-color) 62%,transparent))}}.board-center{position:absolute;left:50%;top:50%;width:28%;aspect-ratio:1;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:50%;background:#fffaf2;color:#266341;border:3px solid #dfcfb8;text-align:center;font-weight:900;line-height:1.05;overflow:hidden}.board-thinking{width:82%;display:grid;justify-items:center;gap:7px;color:#143d2b}.board-thinking strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.48rem,1.65vw,.78rem);font-weight:950;line-height:1}.board-thinking-spinner{position:relative;width:clamp(22px,6.4vw,40px);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 20deg,#143d2b 0,#143d2b 92deg,#49a06d 92deg,#49a06d 145deg,#143d2b1f 145deg,#143d2b1f 360deg);animation:board-thinking-spin .92s cubic-bezier(.55,.05,.35,.95) infinite;box-shadow:0 0 0 4px #143d2b14,0 4px 10px #211b1324}.board-thinking-spinner:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;background:#fffaf2}.board-thinking-spinner span{position:absolute;left:50%;top:2px;width:24%;aspect-ratio:1;border-radius:50%;background:#143d2b;transform:translate(-50%);box-shadow:0 0 8px #143d2b73}@keyframes board-thinking-spin{to{transform:rotate(360deg)}}.hole,.pawn{position:absolute;transform:translate(-50%,-50%);border-radius:50%}.hole{z-index:2;width:3.15%;aspect-ratio:1;background:#d8ae7f;border:2px solid #bd9368}.hole.entry,.hole.safe,.hole.base{background:#fff2df;border-color:var(--seat-color)}.hole.base{width:3.7%}.pawn{z-index:3;--pawn-transition: .42s;width:5.3%;min-height:0;padding:0;cursor:pointer;aspect-ratio:1;display:grid;place-items:center;background:var(--pawn-color);color:#fff;border:2px solid #1c241f;font-size:clamp(.55rem,2.6vw,.82rem);font-weight:900;box-shadow:0 2px 5px #211b1357;transition:left var(--pawn-transition) ease,top var(--pawn-transition) ease,transform .18s ease,box-shadow .18s ease,outline-color .18s ease}.board-shell.slow-motion .pawn{--pawn-transition: 546ms}.pawn.active-owner{outline:3px solid rgba(255,255,255,.86)}.pawn.muted-base{--pawn-color: #8d948c !important;opacity:.5;filter:grayscale(.75) saturate(.45);box-shadow:0 1px 3px #211b1333}.hole.preview{background:#fff4bfeb;border-color:#143d2b;animation:preview-path-pulse 1.8s ease-in-out infinite}.hole.preview.replay-path-step{background:#fff4bf00;border-color:#143d2b1f;animation:replay-path-step-in var(--replay-path-step-duration, .34s) ease-out both;animation-delay:var(--preview-delay, 0ms)}@keyframes preview-path-pulse{0%,to{background:#fff4bf80;border-color:#143d2b8c}50%{background:#ffe36f;border-color:#143d2b}}@keyframes replay-path-step-in{0%{background:#fff4bf00;border-color:#143d2b1f}58%{background:#ffe36f;border-color:#143d2b}to{background:#fff4bfeb;border-color:#143d2b}}@media (hover: hover) and (pointer: fine){.pawn.selectable:hover{transform:translate(-50%,-50%) scale(1.1);box-shadow:0 0 0 4px #143d2b4d,0 5px 12px #211b134d;z-index:5}}.pawn.selectable{box-shadow:0 0 0 4px #143d2b38,0 2px 5px #211b1357}.pawn.selected{outline:4px solid #fff4bf;transform:translate(-50%,-50%) scale(1.16);z-index:4}.pawn.replayed{outline:3.8px solid color-mix(in srgb,var(--pawn-color) 62%,#ffffff);transform:translate(-50%,-50%) scale(1.2);box-shadow:0 0 0 6.65px color-mix(in srgb,var(--pawn-color) 30%,transparent),0 6px 16px #211b1357;z-index:7}.board-shell.replay-settling .pawn.replayed{animation:replay-pawn-settle-out var(--replay-settle-duration, .9s) ease-in-out both}@keyframes replay-pawn-settle-out{0%{outline-color:color-mix(in srgb,var(--pawn-color) 62%,#ffffff);transform:translate(-50%,-50%) scale(1.2);box-shadow:0 0 0 6.65px color-mix(in srgb,var(--pawn-color) 30%,transparent),0 6px 16px #211b1357}to{outline-color:transparent;transform:translate(-50%,-50%) scale(1);box-shadow:0 2px 5px #211b1357}}.pawn.endpoint-hidden{opacity:0}.replay-endpoint{z-index:8;pointer-events:none;--replay-endpoint-duration: .42s;outline:3.8px solid color-mix(in srgb,var(--pawn-color) 62%,#ffffff);box-shadow:0 0 0 6.65px color-mix(in srgb,var(--pawn-color) 30%,transparent),0 6px 16px #211b1357;will-change:transform}.board-shell.slow-motion .replay-endpoint{--replay-endpoint-duration: 546ms}.replay-endpoint-source{animation:replay-source-shrink var(--replay-endpoint-duration) ease-out both}.replay-endpoint-target{animation:replay-target-grow var(--replay-endpoint-duration) ease-out both}@keyframes replay-source-shrink{0%{transform:translate(-50%,-50%) scale(1.2)}to{transform:translate(-50%,-50%) scale(.24)}}@keyframes replay-target-grow{0%{transform:translate(-50%,-50%) scale(.24)}to{transform:translate(-50%,-50%) scale(1.2)}}.pawn.preview-capture{outline:4px solid #fff4bf;box-shadow:0 0 0 5px #fff4bf75,0 2px 5px #211b1357;z-index:6}.seat-label{position:absolute;max-width:22%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:clamp(.62rem,2.2vw,.78rem);font-weight:900;color:#143d2b}.seat-label.active{color:#0d5a37;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}.seat-label.a1{left:50%;top:-2%;transform:translate(-50%)}.seat-label.b1{right:-18%;top:50%;max-width:none;width:36%;transform:translateY(-50%) rotate(90deg);transform-origin:center}.seat-label.a2{left:50%;bottom:-2%;transform:translate(-50%)}.seat-label.b2{left:-18%;top:50%;max-width:none;width:36%;transform:translateY(-50%) rotate(-90deg);transform-origin:center}.replay-banner{position:absolute;left:50%;top:-10px;z-index:8;width:min(calc(100% - 22px),430px);transform:translate(-50%);display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:10px 12px;border:1px solid #d8c4a9;border-radius:8px;background:#fffaf2f5;box-shadow:0 12px 30px #211b132e}.replay-banner.bot{border-color:#143d2b47}.replay-banner.human{border-color:#d9443f52}.replay-banner img{width:34px;height:48px;border-radius:5px;object-fit:cover;border:1px solid #d8c4a9;background:#fff}.replay-banner span{color:#637065;font-size:.72rem;font-weight:850;text-transform:uppercase}.replay-banner strong{display:block;color:#143d2b;font-size:.95rem}.replay-banner p{margin:2px 0 0;color:#26352b;font-size:.82rem;line-height:1.25}.replay-banner.turn-notice{grid-template-columns:1fr}.endgame-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;background:#000000c7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:endgame-backdrop-in .72s ease-out both}.endgame-dialog{width:min(86vw,360px);display:grid;gap:20px;justify-items:center;background:transparent}.endgame-title{display:grid;justify-items:center;gap:.02em;color:#143d2b;font-size:clamp(4.5rem,22.4vw,11.2rem);font-weight:950;line-height:.78;text-align:center;text-transform:uppercase;letter-spacing:0;-webkit-text-stroke:2px #fffaf2;text-shadow:0 0 2px #fffaf2;animation:endgame-title-in 1.04s cubic-bezier(.18,.9,.2,1.08) .36s both}.endgame-dialog.lose .endgame-title{color:#b32822}.endgame-dialog button,.endgame-button-placeholder{width:100%;min-height:44px}.endgame-dialog button{opacity:0;transform:translateY(8px);animation:endgame-button-in .84s ease-out .24s both}.endgame-overlay.prompt{animation:none;background:#000000c7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.endgame-overlay.prompt .endgame-title{animation:none;opacity:1;transform:translateY(0) scale(1)}.endgame-dialog.lose button{background:#b32822}@keyframes endgame-backdrop-in{0%{background:#0000;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{background:#000000c7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}@keyframes endgame-title-in{0%{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes endgame-button-in{to{opacity:1;transform:translateY(0)}}.focus-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:24px;background:#17251d9e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.focus-card{width:min(82vw,260px);display:grid;justify-items:center;gap:8px;padding:18px;border-radius:8px;border:1px solid rgba(255,250,242,.5);background:#fffaf2;color:#17251d;text-align:center;box-shadow:0 18px 60px #00000057}.focus-card img{width:96px;height:134px;border-radius:7px;object-fit:cover;border:1px solid #d8c4a9;background:#fff;box-shadow:0 8px 24px #211b132e}.focus-card span{color:#637065;font-size:.72rem;font-weight:850;text-transform:uppercase}.focus-card strong{color:#143d2b;font-size:1.15rem}.focus-card p{margin:0;color:#26352b;font-size:.88rem;line-height:1.35}.die{width:78px;aspect-ratio:1;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);place-items:center;padding:12px;border-radius:14px;background:#fff;border:3px solid #143d2b;color:#143d2b;font-size:2.2rem;font-weight:950;box-shadow:0 8px 24px #211b132e}.die-pip{width:12px;aspect-ratio:1;border-radius:50%;background:#143d2b;box-shadow:inset 0 1px 1px #fffaf259}.pip-1{grid-area:1 / 1}.pip-3{grid-area:1 / 3}.pip-4{grid-area:2 / 1}.pip-5{grid-area:2 / 2}.pip-6{grid-area:2 / 3}.pip-7{grid-area:3 / 1}.pip-9{grid-area:3 / 3}.die.rolling{grid-template-columns:1fr;grid-template-rows:1fr;padding:0;animation:die-roll .18s steps(2,end) infinite}@keyframes die-roll{0%{transform:rotate(-10deg) translateY(-2px)}50%{transform:rotate(12deg) translateY(2px)}to{transform:rotate(-10deg) translateY(-2px)}}.cards,.actions{display:flex;gap:9px;overflow-x:auto;padding:6px 0;scrollbar-width:thin}.card{flex:0 0 70px;min-height:0;padding:0;cursor:pointer;height:98px;display:grid;place-items:center;border-radius:8px;background:#fff;border:1px solid #cabaa2;box-shadow:0 5px 16px #211b131a;overflow:hidden;font-weight:900;color:#143d2b}.card.selectable{border-color:#143d2b}.card.selected{outline:3px solid #143d2b;transform:translateY(-3px)}.card:disabled{opacity:.42;cursor:default}.selection-panel{display:grid;gap:10px}.choice-group{display:grid;gap:8px}.choice-group>span{color:#637065;font-size:.78rem;font-weight:800;text-transform:uppercase}.choice-btn{width:100%;min-height:42px;background:#fffaf2;color:#143d2b;border:1px solid #cdbba4;text-align:left}.choice-btn.selected{background:#143d2b;color:#fff}.joker-value-picker,.joker-value-selected{display:grid;gap:8px}.joker-value-picker>span,.joker-value-selected>span{color:#637065;font-size:.78rem;font-weight:800;text-transform:uppercase}.joker-rank-grid{display:grid;grid-auto-flow:column;grid-template-rows:42px;grid-auto-columns:42px;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.joker-rank-grid.two-rows{grid-template-rows:repeat(2,42px)}.joker-rank-btn{width:42px;aspect-ratio:1;min-height:0;font-size:.86rem}.joker-value-selected{grid-template-columns:1fr auto;align-items:center;padding:10px;border:1px solid #dfcfb8;border-radius:8px;background:#fffaf2}.joker-value-selected>span{grid-column:1 / -1}.joker-value-selected strong{display:inline-grid;width:42px;aspect-ratio:1;place-items:center;border-radius:8px;background:#143d2b;color:#fff;font-size:.9rem;font-weight:900}.joker-value-selected .choice-btn{min-height:42px}.seven-builder{display:grid;gap:10px}.seven-summary,.seven-move-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.seven-summary span{color:#637065;font-size:.78rem;font-weight:800;text-transform:uppercase}.seven-summary strong{color:#143d2b;font-size:1rem}.seven-move{display:grid;gap:8px;padding:10px;border:1px solid #dfcfb8;border-radius:8px;background:#fffaf2}.order-pill{display:inline-grid;width:26px;aspect-ratio:1;place-items:center;border-radius:6px;background:#143d2b;color:#fff;font-size:.78rem;font-weight:900}.pawn-badge{display:inline-grid;width:34px;aspect-ratio:1;place-items:center;border-radius:50%;background:var(--pawn-color);color:#fff;border:2px solid #1c241f;font-size:.84rem;font-weight:900;box-shadow:0 2px 5px #211b1340}.replay-pawn-badge{width:22.8px;vertical-align:middle;color:#fff;font-size:.68rem;margin:0 2px;transform:translateY(-1px)}.replay-banner .replay-pawn-badge{color:#fff}.step-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.seven-route-options{display:grid;gap:6px}.seven-route-options>span{color:#637065;font-size:.72rem;font-weight:850;text-transform:uppercase}.seven-route-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.seven-route-buttons .choice-btn{min-height:34px;padding:0 8px;font-size:.82rem}.step-btn{min-width:0;min-height:38px;padding:0;border:1px solid #cdbba4;background:#fff;color:#143d2b}.step-btn.selected{background:#143d2b;color:#fff}.step-btn:disabled{background:#efe5d7;color:#9b8e7c}.play-bar{position:sticky;bottom:0;z-index:6;display:grid;grid-template-columns:auto 1fr;gap:10px;margin:0 -14px max(-18px,calc(-1*env(safe-area-inset-bottom)));padding:12px 14px max(12px,env(safe-area-inset-bottom));background:#f5efe5f5;border-top:1px solid #e0d1bc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.play-bar.has-fast-forward{grid-template-columns:auto auto 1fr}.fast-forward-button{min-width:48px;width:52px;padding:0 10px;font-size:1.05rem;letter-spacing:.04em}.card img{width:100%;height:100%;object-fit:cover;grid-area:1 / 1}.card span{grid-area:1 / 1;z-index:1}.action-btn{flex:0 0 min(78vw,360px);height:auto;min-height:54px;padding:10px 13px;text-align:left;line-height:1.2}.toast{position:fixed;left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));z-index:20;padding:12px 14px;border-radius:8px;background:#b32822;color:#fff;box-shadow:0 12px 34px #211b133d}@media (max-width: 759px){html,body,#app{max-width:100%;overflow-x:hidden}.home,.lobby{height:100dvh;min-height:100dvh;overflow:hidden}.home{grid-template-rows:auto 1px auto;align-content:center;gap:16px}.brand-panel{width:min(calc(100% - 32px),420px);justify-self:center;justify-items:start}.brand-title{width:min(100%,254px);margin-left:0;animation-name:home-brand-settle-mobile}.brand-title-svg{width:100%}.brand-panel .home-subtitle{width:min(100%,390px);max-width:390px;justify-self:start;text-align:left;font-size:.92rem}@keyframes home-brand-settle-mobile{0%{transform:translate(calc((100vw - min(100%,254px))/2 - 18px),calc(50dvh - 50% - 50px)) scale(1.36)}to{transform:translate(0) scale(1.14)}}.home-divider{width:min(100%,420px);height:1px;justify-self:center;transform-origin:left;animation-name:home-divider-draw-x}.home-entry-panel{width:min(100%,420px);justify-self:center;transform:translateY(14px);animation-name:home-entry-in-y}@keyframes home-entry-in-y{to{opacity:1;transform:translateY(0)}}.lobby{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px}.lobby .topbar{margin-bottom:0}.lobby .seat-grid{min-height:0;align-content:center;gap:10px}.lobby .seat-card{gap:8px;padding:10px}.lobby .lobby-actions{margin-top:0}.game{width:100vw;max-width:100vw;min-height:100dvh;margin:0;padding:0 14px max(18px,env(safe-area-inset-bottom));overflow-x:hidden;grid-template-rows:auto minmax(0,1fr) auto auto;gap:8px}.game-status,.table-area,.hand-tray,.play-bar{min-width:0;max-width:100%}.game-status{width:100vw;max-width:none;margin:0 -14px 4px;padding:max(7px,env(safe-area-inset-top)) 14px 8px}.table-area{display:grid;align-items:end;justify-items:center;min-height:0;padding-top:10%;padding-bottom:7%}.board-shell{align-self:end;justify-self:center;width:min(94vw,calc(100dvh - 332px));min-width:min(94vw,312px);max-width:560px}.replay-banner{position:absolute;left:50%;top:3%;z-index:8;width:min(calc(100% - 14px),430px);transform:translate(-50%);padding:8px 10px}.replay-banner img{width:28px;height:40px}.replay-banner strong{font-size:.88rem}.replay-banner p{font-size:.78rem}.hand-tray{padding:10px 12px}.play-bar{width:100vw;max-width:none}.cards{flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}.actions{flex-wrap:wrap;overflow-x:hidden;overflow-y:visible}.selection-panel,.choice-group,.seven-builder{min-width:0;overflow-x:hidden}.choice-group{max-height:190px;overflow-y:auto;overscroll-behavior:contain}.seven-builder{max-height:250px;overflow-y:auto;overscroll-behavior:contain}}@media (min-width: 760px){.home{grid-template-columns:minmax(0,.88fr) 1px minmax(320px,360px);align-items:center;column-gap:18px}.home-intro .brand-title{animation-name:home-brand-settle-desktop}.home-divider{width:1px;height:318px;justify-self:center}@keyframes home-brand-settle-desktop{0%{transform:translate(calc(50vw - 50% - max(14px,calc((100vw - 1040px)/2 + 14px)))) scale(1.58)}to{transform:translate(0) scale(1.12)}}.seat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.game{grid-template-columns:1fr 330px;grid-template-rows:auto 1fr auto}.game-status{grid-column:1 / -1}.table-area{grid-row:2 / 4}.hand-tray,.action-tray{align-self:start}.cards,.actions{flex-wrap:wrap;overflow:visible}.action-btn{flex-basis:100%}}.home-link-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tutorial-page{position:relative;width:min(100%,1040px);min-height:100vh;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto minmax(280px,1fr) auto auto;gap:12px;overflow-x:hidden}.tutorial-header{position:sticky;top:0;z-index:35;display:flex;align-items:center;justify-content:flex-start;margin:-14px -14px 0;padding:max(12px,env(safe-area-inset-top)) 14px 12px;background:#f5efe5f0;border-bottom:1px solid #e0d1bc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tutorial-table{position:relative;display:grid;place-items:center;min-height:280px}.tutorial-hand,.tutorial-play{position:relative}.tutorial-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none;background:#10181399;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.tutorial-spotlight{z-index:25;position:relative;border-radius:8px}.tutorial-card-panel{position:fixed;left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));z-index:36;display:grid;gap:10px;padding:14px;border:1px solid rgba(255,250,242,.46);border-radius:8px;background:#fffaf2f5;box-shadow:0 20px 60px #00000057}.tutorial-panel-top{top:max(74px,calc(env(safe-area-inset-top) + 64px));bottom:auto}.tutorial-panel-middle{top:50%;bottom:auto;transform:translateY(-50%)}.tutorial-card-panel h2,.tutorial-card-panel p{margin:0}.tutorial-card-panel h2{color:#17251d;font-size:1.08rem;line-height:1.1}.tutorial-card-panel p{color:#26352b;font-size:.92rem;line-height:1.38}.tutorial-progress{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;color:#637065;font-size:.72rem;font-weight:850}.tutorial-progress i{height:6px;border-radius:999px;background:linear-gradient(90deg,#3f5046 var(--tutorial-progress),#dfcfb8 var(--tutorial-progress))}.tutorial-panel-actions{display:grid}.tutorial-controls{max-height:250px;overflow-y:auto}.tutorial-card:not(.selectable){opacity:.5}.tutorial-pawn-focus .pawn.selectable{z-index:30;outline:3px solid #fff4bf;outline-offset:5px}.tutorial-page .board-shell,.tutorial-page .hand-tray,.tutorial-page .play-bar{transition:filter .18s ease,opacity .18s ease}@media (max-width: 759px){.tutorial-page{min-height:100dvh;overflow:hidden;padding-bottom:210px}.tutorial-page .cards{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.tutorial-card-panel{max-height:none;overflow:visible}.tutorial-panel-top{top:max(70px,calc(env(safe-area-inset-top) + 58px))}.tutorial-panel-bottom{bottom:max(14px,env(safe-area-inset-bottom))}}@media (min-width: 760px){.tutorial-page{grid-template-columns:1fr 330px;grid-template-rows:auto 1fr auto}.tutorial-header{grid-column:1 / -1}.tutorial-table{grid-row:2 / 4}.tutorial-card-panel{left:auto;right:max(18px,calc((100vw - 1040px)/2 + 18px));bottom:18px;width:330px}.tutorial-panel-top{top:calc(max(18px,env(safe-area-inset-top)) + 74px);bottom:auto}.tutorial-panel-middle{top:50%;bottom:auto}}.home-intro-complete .brand-title{animation:none;transform:scale(1.12)}.home-intro-complete .brand-title-letter{fill-opacity:1;stroke-opacity:0;stroke-dashoffset:0;animation:none;transform:rotate(0) scale(1)}.home-intro-complete .home-subtitle span,.home-intro-complete .home-entry-panel{opacity:1;transform:none;animation:none}.home-intro-complete .home-divider{animation:none;transform:scale(1)}@media (max-width: 759px){.home-intro-complete .brand-title{transform:scale(1.14)}}@media (min-width: 760px){.home-intro-complete .brand-title{transform:scale(1.12)}}
