@font-face{font-family:Galmuri11;src:url('./assets/fonts/galmuri11.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--pixel-ink:#233d3e;--pixel-shadow:#142d30;--pixel-cream:#fffbea;--pixel-green:#406b4b;--green:#406b4b;--ink:var(--pixel-ink);font-family:Galmuri11,'Malgun Gothic',monospace;background:#203b3e;color:var(--pixel-ink);font-synthesis:none}
body{background-color:#203b3e;background-image:linear-gradient(90deg,#294749 1px,transparent 1px),linear-gradient(#294749 1px,transparent 1px);background-size:16px 16px}
button,input,kbd{font-family:inherit}button{font-weight:400!important}button:hover{filter:none}button:focus-visible{outline:3px dashed #ffd65b;outline-offset:5px}svg,img{image-rendering:pixelated}svg{stroke-linecap:square;stroke-linejoin:miter;shape-rendering:crispEdges}
.game-board{border:4px solid #152e31;border-radius:0;background-color:#bcd49a;background-image:linear-gradient(45deg,#91b37924 25%,transparent 25%,transparent 75%,#91b37924 75%),linear-gradient(45deg,#91b37924 25%,transparent 25%,transparent 75%,#91b37924 75%);background-position:0 0,8px 8px;background-size:16px 16px;box-shadow:inset 4px 4px 0 #e0efbd,inset -4px -4px 0 #8eaf75,0 6px 0 #10262b;transition:none}
.game-board:before,.game-board:after{content:'';position:absolute;width:8px;height:8px;top:8px;background:#ecf6cd;box-shadow:8px 0 #92b07d,0 8px #92b07d;pointer-events:none}.game-board:before{left:8px}.game-board:after{right:16px}
.game-board[data-phase=waiting]{background-color:#c5dc98}
.game-board .icon-button,.start-button,.primary-button,.close-button{border:3px solid var(--pixel-ink);border-radius:0!important;box-shadow:3px 3px 0 var(--pixel-ink),inset 2px 2px 0 #ffffff80;transition:transform .08s steps(2),box-shadow .08s steps(2)}
.game-board .icon-button{background:#f5f3d9;color:var(--pixel-ink)}.game-board .icon-button svg{fill:currentColor;stroke:none;width:22px;height:22px}.game-board .icon-button:hover{background:#fffceb;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--pixel-ink),inset 2px 2px 0 #fff}.game-board .icon-button:active,.start-button:active,.primary-button:active{transform:translate(3px,3px);box-shadow:none}
.start-button,.primary-button{background:#416d4f;color:#fffce7;font-size:18px;text-shadow:2px 2px #244c3b;box-shadow:4px 4px 0 var(--pixel-ink),inset 3px 3px 0 #79a469,inset -3px -3px 0 #31533f}.start-button:hover,.primary-button:hover{background:#507e56}.start-button svg{width:18px;height:18px;fill:currentColor;stroke:none}.start-button:disabled{background:#7d9565;border-color:#3e5847;box-shadow:3px 3px #3e5847,inset 2px 2px #aabe85;color:#edf4d3;text-shadow:none}
.bell-button{border-radius:0;transition:transform .1s steps(2)}.bell-art{filter:none!important;object-fit:contain;image-rendering:pixelated}.bell-halo{border-radius:0;border:2px solid #87aa6c;background:#d4e5a9;box-shadow:4px 0 #a7c581,-4px 0 #a7c581,0 4px #a7c581,0 -4px #a7c581;clip-path:polygon(12px 0,calc(100% - 12px) 0,calc(100% - 12px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 12px) calc(100% - 8px),calc(100% - 12px) 100%,12px 100%,12px calc(100% - 8px),0 calc(100% - 8px),0 8px,12px 8px)}
.game-board[data-phase=waiting] .bell-halo{border-color:#b89326;background:#ffe588;animation:pixel-bell-ready 1.4s steps(2,end) infinite;box-shadow:none}
.game-board .open-slot{border-radius:0;border:3px dashed #79975f;background:#e5edc530}.game-board .open-slot.has-card{border:0;background:transparent}.game-board .players .empty-card-icon{font-family:Galmuri11,monospace;font-size:32px;color:#72905c;font-weight:400;box-shadow:none}
.game-board .players .fruit-card,.flying-card .fruit-card{border-radius:20px;border:2px solid #6f8665;background:#fffefb;box-shadow:0 4px 0 #8fa47a,0 8px 16px #31452a20;overflow:hidden}.game-board .players .fruit-card:before,.flying-card .fruit-card:before{inset:6px;border:1px solid #e2e7d9;border-radius:14px;box-shadow:none}
.game-board .players .fruit-card .corner,.flying-card .fruit-card .corner{font-family:Arial,sans-serif;font-weight:700;color:#4b6145;font-size:16px}.game-board .players .fruit-card .corner.bottom{transform:rotate(180deg)}
.game-board .players .fruit-layout img,.flying-card .fruit-layout img{image-rendering:auto;filter:none}.help-example img{image-rendering:pixelated;filter:none}
.game-board .player[data-team="1"],.team-color-1{--team:#6cb4d6;--team-dark:#295f79;--team-pattern:#a5d6e1;--pixel-card-shade:#448bad}.game-board .player[data-team="2"],.team-color-2{--team:#e98272;--team-dark:#923f40;--team-pattern:#f5baa0;--pixel-card-shade:#bf5c5a}.game-board .player[data-team="3"],.team-color-3{--team:#ab8cd8;--team-dark:#604b89;--team-pattern:#d0b4ed;--pixel-card-shade:#8065b0}.game-board .player[data-team="4"],.team-color-4{--team:#e9bd55;--team-dark:#89622a;--team-pattern:#f8df88;--pixel-card-shade:#bd8d3f}
.game-board .players .deck-wrap{border-radius:0;transition:transform .15s steps(3)}
.game-board .players .card-back,.winner-choice .card-back{border-radius:0;border:4px solid var(--pixel-ink);background-color:var(--team);background-image:repeating-conic-gradient(#ffffff19 0 25%,transparent 0 50%);background-size:12px 12px;box-shadow:inset 4px 4px 0 var(--team-pattern),inset -4px -4px 0 var(--pixel-card-shade),4px 4px 0 #405a4d,8px 8px 0 #71906738}
.game-board .players .card-back:before,.winner-choice .card-back:before{inset:10px;border:3px solid #fff7d69c;border-radius:0;box-shadow:3px 3px 0 #233d3e20}
.game-board .players .card-back:after,.winner-choice .card-back:after{content:'';display:block;width:5px;height:5px;left:24px;top:22px;background:#fff7d6;box-shadow:5px 0 #fff7d6,-5px 0 #fff7d6,0 -5px #fff7d6,0 5px #fff7d6}
.game-board .players .card-back .team-number,.winner-choice .card-back .team-number{font-family:Galmuri11,monospace;font-weight:400;color:#233d3e;line-height:1.05;text-shadow:4px 4px #fff7d690}
.flip-arrow svg{fill:#849d6e;stroke:none;transform:none;width:30px;height:34px}.is-next .flip-arrow svg{fill:var(--team-dark)}
.game-board .players .matching .fruit-card{border:3px solid #629144;box-shadow:0 0 0 4px #ffe083,0 5px 12px #52753d40;background:#fffefb}.game-board .players .matching .fruit-card:before{border-color:#efcb60}.game-board .players .is-flipping .fruit-card{animation:card-flip .48s cubic-bezier(.2,.6,.3,1) both}.game-board .players .is-winning .deck-wrap{animation:pixel-win .5s steps(3,end) 2}
.modal{font-family:Galmuri11,monospace;border:4px solid #233d3e;border-radius:0!important;background:#fffceb;box-shadow:8px 8px 0 #172e34,inset 4px 4px 0 #fff,inset -4px -4px 0 #e2dfb9;color:#233d3e}.modal::backdrop{background:#132d38bd;backdrop-filter:none}.modal[open]{animation:pixel-modal .15s steps(3,end)}.modal h2,.modal b,.modal strong,.modal legend{font-weight:400}.modal h2{letter-spacing:0;font-size:28px;line-height:1.5}.modal-eyebrow{color:#66794d}.close-button{background:#e2e7c5;color:#314b39;width:32px;height:32px;line-height:1;padding:0;font-size:24px;right:18px;top:18px}.close-button:hover{background:#f3d28d}
.segmented span{border:3px solid #a0ad81;border-radius:0;background:#edf0d7;box-shadow:3px 3px 0 #b2bf91;color:#637449;font-weight:400}.segmented input:checked+span{border-color:#344d36;background:#c9e29e;box-shadow:3px 3px 0 #344d36,inset 3px 3px 0 #e3f3ba;color:#294d32}.segmented input:focus-visible+span{outline:3px dashed #b77e22;outline-offset:5px}.team-options b{font-size:36px;font-weight:400}.form-note{color:#67734f}
.help-steps li:before{border-radius:0;border:2px solid #687e4d;background:#dfeab7;color:#2d5134;font-family:Galmuri11,monospace;font-weight:400;box-shadow:2px 2px #a7b580}.help-steps p{color:#61734d}.help-example{border:3px solid #c4cda7;border-radius:0;background:#edf1d6}.help-example strong{color:#385b3f}
.winner-modal h2{font-size:30px;line-height:1.5}.winner-modal>p{color:#61734d}.winner-choice{transition:transform .15s steps(3)}.winner-bell,.finish-medal{display:grid;place-items:center;border-radius:0;background:#ffdc73;border:3px solid #8a692d;box-shadow:4px 4px 0 #d0a44d;color:#9e6b25}.winner-bell svg{width:30px;height:30px;fill:#a76e22;stroke:none}.finish-medal svg{width:44px;height:44px;fill:#9d6528;stroke:none}.winner-pot{border-radius:0;border:3px solid #b0be8e;background:#e7edc9;color:#667449;box-shadow:3px 3px #d1d8ac}.winner-pot strong{font-weight:400;color:#344e33}
.toast{border:3px solid #122b30;border-radius:0;background:#355b49;box-shadow:4px 4px 0 #142d30;color:#fffce2;font-size:14px}.flying-card,.flying-card .fruit-card{border-radius:20px}.confetti-piece{width:8px;height:8px;border-radius:0;animation-timing-function:steps(8,end)}
@keyframes pixel-win{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pixel-bell-ready{0%,100%{opacity:1}50%{opacity:.55}}@keyframes pixel-modal{from{transform:translateY(9px);opacity:0}to{transform:none;opacity:1}}
@media(max-width:1000px){.start-button{font-size:16px}.game-board .icon-button svg{width:20px;height:20px}}
@media(max-width:620px){.main-content{padding:8px}.game-board{border-width:3px;box-shadow:inset 3px 3px #e0efbd,inset -3px -3px #8eaf75,0 4px #10262b}.game-board:before,.game-board:after{display:none}.game-board .icon-button{border-width:2px;box-shadow:2px 2px var(--pixel-ink),inset 1px 1px #fff9}.game-board .icon-button svg{width:18px;height:18px}.start-button{font-size:14px;border-width:2px;box-shadow:2px 2px var(--pixel-ink),inset 2px 2px #79a469}.start-button svg{width:12px;height:12px}.game-board .open-slot{border-width:2px}.game-board .players .fruit-card,.flying-card .fruit-card{border-width:1.5px;border-radius:13px;box-shadow:0 3px 0 #8fa47a}.game-board .players .fruit-card:before,.flying-card .fruit-card:before{inset:4px;border-width:1px;border-radius:9px}.game-board .players .fruit-card .corner{font-size:11px}.game-board .players[data-count="4"] .fruit-card .corner{font-size:9px}.game-board .players .matching .fruit-card{border-width:2px;box-shadow:0 0 0 2px #ffe083,0 3px 0 #8fa47a}.game-board .players .card-back,.winner-choice .card-back{border-width:3px;border-radius:0;box-shadow:inset 2px 2px var(--team-pattern),inset -2px -2px var(--pixel-card-shade),3px 3px #405a4d;background-size:8px 8px}.game-board .players .card-back:before,.winner-choice .card-back:before{inset:6px;border-width:2px;box-shadow:none}.game-board .players .card-back:after,.winner-choice .card-back:after{width:3px;height:3px;top:15px;left:15px;box-shadow:3px 0 #fff7d6,-3px 0 #fff7d6,0 -3px #fff7d6,0 3px #fff7d6}.game-board .players .card-back .team-number,.winner-choice .card-back .team-number{text-shadow:2px 2px #fff7d690}.game-board .players[data-count="4"] .card-back:after{display:none}.flip-arrow svg{width:22px;height:28px}.modal{border-width:3px;box-shadow:5px 5px #172e34,inset 3px 3px #fff,inset -3px -3px #e2dfb9;padding:30px 21px 24px}.modal h2{font-size:24px}.winner-modal h2{font-size:25px}.winner-modal>p{font-size:12px}.winner-options{gap:10px}.winner-pot{font-size:12px;border-width:2px}.winner-choice .card-back:after{display:none}.close-button{width:29px;height:29px;border-width:2px;right:12px;top:12px}.primary-button{font-size:15px}.help-steps b{font-size:15px}.help-steps p{font-size:13px}.toast{border-width:2px;font-size:12px}.winner-bell svg{width:25px;height:25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
