:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#263c3d;font-synthesis:none;-webkit-font-smoothing:antialiased;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,summary{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,summary:focus-visible{outline-offset:4px;outline:3px solid #24636b}.scene{isolation:isolate;background:linear-gradient(120deg,#acbcb9 0%,#e1e5db 43%,#a7babd 100%);place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.room{pointer-events:none;position:absolute;inset:0;overflow:hidden}.room:after{content:"";background:radial-gradient(at 50% 42%,#f4f6e947,#0000 65%);position:absolute;inset:0}.room-window{filter:blur(3px);background:repeating-linear-gradient(90deg,#0000 0 38%,#e8eee8ab 38% 42%),linear-gradient(110deg,#f9f8e0b0,#c0dcdf65);border-left:14px solid #6d8c8a42;width:24%;height:83%;position:absolute;top:-8%;right:-4%;transform:skewY(-8deg);box-shadow:-18px 4px 28px #6b858421}.room-plant{filter:blur(14px);opacity:.32;width:220px;height:320px;position:absolute;top:32%;left:-80px}.room-plant:before{content:"";background:radial-gradient(at 15% 20%,#345d40 0 15%,#0000 17%),radial-gradient(at 70% 43%,#385b3b 0 24%,#0000 26%),radial-gradient(at 28% 65%,#536e3f 0 26%,#0000 28%);position:absolute;inset:0 15% 24%}.room-plant:after{content:"";background:#b56b4e;border-radius:0 0 20% 20%;height:32%;position:absolute;bottom:0;left:27%;right:25%}.room-shelf{filter:blur(7px);background:#698d8840;width:14%;height:12px;position:absolute;top:19%;left:10%}.content{z-index:1;width:100%;padding:max(28px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));flex-direction:column;align-items:center;gap:16px;display:flex;position:relative}.game-header{z-index:10;justify-content:space-between;align-items:center;width:min(100%,550px);display:flex;position:relative}.eyebrow{color:#4b6464;letter-spacing:.26em;margin:0 0 4px;font-size:9px;font-weight:650}.title{letter-spacing:.1em;margin:0;font-size:27px;font-weight:750;line-height:1.3}.title-dot{color:#ca4236;margin-left:3px}.rules summary{cursor:pointer;background:#f9fff326;border:1px solid #44666630;border-radius:50%;place-items:center;width:36px;height:36px;font-family:Georgia,serif;font-size:18px;list-style:none;display:grid}.rules summary::-webkit-details-marker{display:none}.rules-panel{background:#fbfcf5;border:1px solid #fff;border-radius:14px;width:min(300px,100vw - 40px);padding:20px;font-size:13px;line-height:1.8;position:absolute;top:62px;right:0;box-shadow:0 12px 36px #233e4033}.rules-panel p{margin:10px 0 0}.players{justify-content:space-between;gap:14px;width:min(100%,550px);display:flex}.player{border:1px solid #0000;border-radius:40px;align-items:center;gap:10px;min-width:0;padding:10px 14px 10px 10px;transition:background .2s,border-color .2s;display:flex}.player.current,.player.victorious{background:#fbfff36e;border-color:#ffffffa3;box-shadow:0 3px 14px #536b640b}.player-name{white-space:nowrap;font-size:12px;font-weight:650;display:block}.player-token{background:radial-gradient(circle at 35% 25%,#fc7265,#c5222c 70%,#8d1621);border:1px solid #d73731;border-radius:50%;flex-shrink:0;place-items:center;width:31px;height:31px;display:grid;box-shadow:inset 0 1px 2px #ffd2b1a6,0 2px 3px #5d251730}.player-2 .player-token{background:radial-gradient(circle at 35% 25%,#ffe375,#e0ad1d 70%,#a66f09);border-color:#d2a428}.player-token span{border:1px solid #ffffff59;border-radius:3px;width:44%;height:44%;transform:rotate(-12deg);box-shadow:1px 1px 2px #00000030}.turn-indicator{background:0 0;border-radius:50%;width:5px;height:5px;margin-left:3px}.current .turn-indicator{background:#486d66}.play-stage{--cell:min(66px, calc((100vw - 46px) / 8.32));--gap:calc(var(--cell) * .14);--pad:calc(var(--cell) * .24);width:calc(var(--cell) * 8.32);position:relative}.table{z-index:-1;left:50%;top:calc(100% - var(--cell) * 1.32);background:repeating-linear-gradient(2deg,#fff3ce0b 0 1px,#0000 1px 5px),repeating-linear-gradient(91deg,#50301e1c 0 2px,#0000 2px 160px),linear-gradient(#bd925f 0%,#cda271 12%,#b98c5b 42%,#aa784e 100%);border-top:2px solid #f5d5a48c;width:100vw;height:max(65vh,540px);position:absolute;transform:translate(-50%);box-shadow:0 -3px 12px #8a673213,inset 0 7px 15px #ffe2bb45}.table:after{content:"";background:radial-gradient(at 50% 0,#ffedcd38,#0000 65%);height:48%;position:absolute;top:2px;left:0;right:0}.machine{z-index:1;padding-bottom:calc(var(--cell) * .72);position:relative}.preview-row{height:var(--cell);position:relative}.preview-coin{left:calc(var(--pad) + var(--cell) * .04);top:calc(var(--cell) * .04);transform:translateX(calc(var(--selected-column) * (var(--cell) + var(--gap))));transition:transform .13s cubic-bezier(.2,.75,.3,1);position:absolute}.preview-disc{filter:drop-shadow(0 5px 6px #5f514e30)}.markers{grid-template-columns:repeat(7, var(--cell));gap:var(--gap);padding:0 var(--pad);margin:calc(var(--cell) * .08) 0;display:grid}.marker-cell{justify-content:center;display:flex}.marker{border-left:calc(var(--cell) * .12) solid transparent;border-right:calc(var(--cell) * .12) solid transparent;border-top:calc(var(--cell) * .22) solid #cc413b;filter:drop-shadow(0 1px 2px #602c342e);width:0;height:0;transition:border-top-color .13s,opacity .13s}.marker.active{filter:drop-shadow(0 0 5px #ffffdc);border-top-color:#fffef0}.marker.inactive{opacity:.2}.board{grid-template-columns:repeat(7, var(--cell));gap:var(--gap);padding:var(--pad);display:grid;position:relative}.glass-panel{z-index:3;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hole{width:var(--cell);height:var(--cell);justify-content:center;align-items:center;display:flex;position:relative}.landing-target:before{content:"";background:#ffffff12;border:1px dashed #fffef293;border-radius:50%;position:absolute;inset:15%}.hole.winner:after{content:"";z-index:4;border:2px solid #fff6c0;border-radius:50%;animation:1s ease-out 2 winner-ring;position:absolute;inset:1%;box-shadow:0 0 13px #fff8bf91}.winning-line{fill:none;stroke:#fff8d1;stroke-width:5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;opacity:.9;animation:.5s ease-out both connect-line}.board-post{z-index:4;top:49%;bottom:calc(var(--cell) * -.55);width:calc(var(--cell) * .21);border-radius:calc(var(--cell) * .11);background:linear-gradient(90deg,#5b6668 0%,#c7d5d2 12%,#fff 27%,#c3cecc 38%,#62777c 61%,#3f5155 76%,#e8ede5 95%);border:1px solid #e9f2e68a;position:absolute;box-shadow:2px 1px 3px #1d323e40}.post-left{left:calc(var(--cell) * -.025)}.post-right{right:calc(var(--cell) * -.025)}.chrome{z-index:4;height:0;position:relative}.chrome-bar{left:calc(var(--cell) * .1);right:calc(var(--cell) * .1);top:calc(var(--cell) * -.07);height:calc(var(--cell) * .2);transform-origin:100%;background:linear-gradient(#f6fff5,#aebfbd 27%,#37494d 40%,#617578 67%,#d2dad3 83%,#768980);border-radius:2px;position:absolute;box-shadow:0 4px 5px #26332f40}.foot{top:calc(var(--cell) * .5);width:calc(var(--cell) * .72);height:calc(var(--cell) * .14);background:linear-gradient(#eff3e5,#8e9b9b 35%,#374a52 60%,#bfc7bc);border-radius:3px;position:absolute;box-shadow:3px 7px 5px #3b322d30}.foot-left{left:calc(var(--cell) * -.15);transform:skew(-24deg)}.foot-right{right:calc(var(--cell) * -.15);transform:skew(24deg)}.board-shadow{z-index:-1;left:-4%;right:-4%;bottom:calc(var(--cell) * -.17);height:calc(var(--cell) * .6);filter:blur(9px);background:#3f352847;border-radius:50%;position:absolute}.disc{z-index:2;width:calc(var(--cell) * .92);height:calc(var(--cell) * .92);box-shadow:inset 0 0 0 calc(var(--cell) * .023) #ffffff49, inset calc(var(--cell) * -.04) calc(var(--cell) * -.05) calc(var(--cell) * .05) #490a1e6b, inset calc(var(--cell) * .02) calc(var(--cell) * .025) calc(var(--cell) * .055) #fff8d578, 0 2px 2px #213e353b;border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative}.disc.red{background:radial-gradient(at 30% 20%,#ff746a85,#0000 55%),radial-gradient(at 75% 95%,#ff5a3596,#0000 43%),linear-gradient(130deg,#e31d3099,#c61829eb 52%,#ed2334d9);border:1px solid #9f253087}.disc.yellow{box-shadow:inset 0 0 0 calc(var(--cell) * .023) #fffbb652, inset calc(var(--cell) * -.04) calc(var(--cell) * -.05) calc(var(--cell) * .05) #81561c7d, inset calc(var(--cell) * .02) calc(var(--cell) * .025) calc(var(--cell) * .055) #fffce37a, 0 2px 2px #213e353b;background:radial-gradient(at 30% 20%,#fff7a991,#0000 55%),radial-gradient(at 75% 95%,#f9d143b3,#0000 43%),linear-gradient(130deg,#f2d747b3,#deae1beb 52%,#eec931cf);border:1px solid #a7831387}.disc:before{content:"";border:calc(var(--cell) * .02) solid #ffebda47;border-bottom-color:#591b2029;border-radius:50%;position:absolute;inset:7%;box-shadow:0 0 0 1px #6f281622}.disc-face{width:46%;height:46%;transform:rotate(var(--coin-angle,-10deg));background:linear-gradient(135deg,#ffffff12,#36091414);border-radius:13%;box-shadow:-1px -1px 1px #fff8c87d,1px 2px 2px #561f285e,inset 1px 1px 2px #ffc19f3b}.disc.dropping{animation:drop var(--drop-ms) both}@keyframes drop{0%{transform:translateY(calc(-1 * (var(--drop-rows) * (var(--cell) + var(--gap)) + var(--cell) * 1.38 + var(--pad))));animation-timing-function:cubic-bezier(.55,0,.85,.45)}78%{transform:translateY(calc(var(--cell) * .035));animation-timing-function:ease-out}90%{transform:translateY(calc(var(--cell) * -.055));animation-timing-function:ease-in}to{transform:translateY(0)}}@keyframes winner-ring{0%{opacity:.4;transform:scale(.92)}55%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes connect-line{0%{stroke-dashoffset:1px;opacity:0}to{stroke-dashoffset:0;opacity:.9}}.clearing-board{clip-path:inset(-18% -15% -9%)}.clearing-board .chrome-bar{animation:.7s ease-in-out both open-gate}.disc.clearing{animation:clear-disc var(--clear-ms) var(--clear-delay) cubic-bezier(.42,0,.9,.5) both}@keyframes clear-disc{0%{opacity:1;transform:translateY(0)rotate(0)}70%{opacity:1}to{transform:translateY(calc(var(--clear-rows) * (var(--cell) + var(--gap)))) rotate(35deg);opacity:0}}@keyframes open-gate{0%{opacity:1;transform:translateY(0)}18%,78%{transform:translateY(calc(var(--cell) * .28));opacity:.25}to{opacity:1;transform:translateY(0)}}.hit-layer{inset:calc(var(--cell) * -1.38) var(--pad) 0;z-index:6;touch-action:pan-y;-webkit-user-select:none;user-select:none;grid-template-columns:repeat(7,1fr);display:grid;position:absolute}.hit{cursor:pointer;touch-action:pan-y;background:0 0;border:0;min-width:0;padding:0}.hit:disabled{cursor:default}.hit:focus-visible{outline-offset:-2px;background:#fafff610;border-radius:8px;outline:2px solid #256f79}.hud{z-index:2;text-align:center;flex-direction:column;align-items:center;gap:7px;max-width:100%;min-height:105px;display:flex}.status{letter-spacing:.05em;color:#382f26;margin:0;font-size:19px;font-weight:750}.actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:7px;display:flex}.actions button{color:#354d4b;cursor:pointer;background:#fffaedcc;border:1px solid #fff6dd99;border-radius:26px;min-height:44px;padding:10px 22px;font-size:12px;font-weight:650;transition:transform .14s,background .14s;box-shadow:0 3px #734b2b15,0 4px 12px #614c2921}.actions button:hover:not(:disabled){background:#fffdf3;transform:translateY(-1px)}.actions button:active:not(:disabled){transform:translateY(1px)}.actions button:disabled{opacity:.48;cursor:default}.actions button>span{vertical-align:-1px;padding-right:4px;font-size:17px}.actions .dev-button{color:#534532;box-shadow:none;background:0 0;border-color:#68523940;padding:8px 12px;font-size:10px}.result{background:#fff8e9e8;border:1px solid #fff4d98c;border-radius:18px;width:min(100%,355px);padding:17px 30px 20px;animation:.35s cubic-bezier(.2,.75,.3,1) both result-in;box-shadow:0 8px 30px #67482e1f}.result .status{color:#b73132;font-size:25px}.yellow-result.result .status{color:#8d670c}.result-kicker{letter-spacing:.18em;color:#7c7c6b;margin:0;font-size:10px}.actions .primary-button{color:#fff9e7;background:#344f4e;border-color:#344f4e}.actions .primary-button:hover:not(:disabled){background:#426461}.error{color:#862b23;margin:0;font-size:12px}@keyframes result-in{0%{opacity:0;transform:translateY(9px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.reward{color:#485c54;border-top:1px solid #66725626;max-width:290px;margin-top:6px;padding-top:12px;font-size:11px}.reward p{margin:4px 0 10px}.reward button{color:#314d41;cursor:pointer;background:#fbfff6;border:1px solid #82998b;border-radius:12px;min-height:44px;padding:8px 12px}.night-table .table{background:repeating-linear-gradient(2deg,#fff3ce05 0 1px,#0000 1px 5px),linear-gradient(#706756,#3d3c36);border-top-color:#c2bd9c}.night-table .hud:not(.result) .status{color:#fff8df}.night-table .actions .dev-button{color:#fff8df;border-color:#fff8df70}@media (width>=700px) and (height>=521px){.play-stage{--cell:min(66px, calc((100svh - 320px) / 9.3))}}@media (width<=380px){.content{padding-top:max(18px, env(safe-area-inset-top));padding-bottom:max(16px, env(safe-area-inset-bottom));gap:12px}.title{font-size:23px}.player{gap:7px;padding:8px}.player-name{font-size:11px}.player-token{width:27px;height:27px}.turn-indicator{margin-left:0}.hud{min-height:96px}}@media (orientation:landscape) and (height<=520px){.content{padding-top:max(10px, env(safe-area-inset-top));padding-bottom:max(10px, env(safe-area-inset-bottom));gap:7px}.play-stage{--cell:min(48px, calc((100vw - 46px) / 8.32), calc((100svh - 148px) / 9.3))}.title{font-size:19px}.game-header{max-width:520px}.rules summary{width:28px;height:28px}.eyebrow,.players{display:none}.hud{gap:3px;min-height:0}.status{font-size:16px}.actions{margin-top:2px}.result{width:190px;padding:13px;position:absolute;bottom:14px;left:14px}.result .status{font-size:20px}.result .actions button{padding:8px 15px}.rules-panel{top:38px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}.disc.dropping,.disc.clearing,.clearing-board .chrome-bar{animation-duration:1ms;animation-delay:0s}.hole.winner:after,.winning-line,.result{animation:none}.preview-coin,.marker,.player,.actions button{transition:none}}@media (width<=600px) and (height<=700px) and (orientation:portrait){.content{padding-top:max(10px, env(safe-area-inset-top));padding-bottom:max(10px, env(safe-area-inset-bottom));gap:6px}.title{font-size:22px}.player{padding:6px 8px}.player-token{width:25px;height:25px}.hud{gap:5px;min-height:88px}.result{padding:12px 20px}.result .status{font-size:22px}}
