@import "https://fonts.googleapis.com/css2?family=Kanit:wght@400;500;600;700;800;900&display=swap";:root{color:#17172b;font-synthesis:none;background:#fff;font-family:Kanit,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{overscroll-behavior:none;width:100%;height:100%;overflow:hidden}body{-webkit-user-select:none;user-select:none}input,textarea,.vs__search{-webkit-user-select:text;user-select:text}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}html{background:#fff}body{min-width:320px;min-height:100vh;margin:0}button,select{font:inherit}button{-webkit-tap-highlight-color:transparent}.page-shell{background:#fff;width:100%;height:100svh;min-height:0;overflow:hidden}.hero{isolation:isolate;flex-direction:column;align-items:center;height:100svh;min-height:100svh;padding:26px 18px 0;display:flex;position:relative}header{text-align:center;z-index:2}header h1{color:#fff8df;letter-spacing:-.075em;-webkit-text-stroke:4px #17172b;text-shadow:6px 7px #ff5b3d,10px 11px #17172b;margin:0 0 -3px;font-size:clamp(4.1rem,15vw,7.8rem);font-weight:900;line-height:.82;transform:rotate(-2deg)}header h1 span{color:#ff7043}.thai-title{letter-spacing:.35em;margin:10px 0 0;font-size:1rem;font-weight:800}.team-pill{z-index:2;background:#fff;border:2px solid #17172b;border-radius:999px;align-items:center;gap:8px;margin-top:20px;padding:7px 11px;font-size:.86rem;font-weight:700;display:flex;box-shadow:3px 3px #17172b}.team-name{color:#17172b;font-weight:800}.rank-badge{color:#765d00;background:#fff0b8;border-radius:999px;padding:2px 7px;font-size:.72rem;font-weight:800}.text-button{color:#e44c31;cursor:pointer;background:0 0;border:0;padding:0;font-size:.76rem;text-decoration:underline}.score{z-index:2;color:#17172b;letter-spacing:.02em;text-shadow:3px 3px #fffc;margin-top:15px;font-size:clamp(5rem,20vw,9.5rem);font-weight:900;line-height:1;transition:transform 70ms}.score.bump{transform:scale(1.13)rotate(-2deg)}.tap-float-layer{z-index:4;pointer-events:none;width:1px;height:1px;position:absolute;top:53%;left:50%}.tap-float{color:#3f8f5f;white-space:nowrap;opacity:0;transform:translate(calc(-50% + var(--tap-x)), 18px) rotate(var(--tap-rotate)) scale(.88);will-change:transform, opacity;background:#ffffffd1;border-radius:999px;padding:4px 9px;font-size:clamp(.72rem,2.6vw,.95rem);font-weight:800;animation:.85s ease-out forwards province-float;position:absolute;top:0;left:0;box-shadow:0 2px 8px #17172b14}@keyframes province-float{12%{opacity:.82}65%{opacity:.55}to{opacity:0;transform:translate(calc(-50% + var(--tap-x)), -105px) rotate(var(--tap-rotate)) scale(1.03)}}.tap-target{z-index:1;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border:0;width:min(560px,94vw);height:min(57svh,630px);min-height:340px;margin:0;padding:0;transition:transform 70ms;position:absolute;bottom:0;left:50%;overflow:visible;transform:translate(-50%)}.tap-target img{object-fit:contain;object-position:center bottom;pointer-events:none;width:112%;height:112%;position:absolute;bottom:25%;left:50%;transform:translate(-50%)}.tap-placeholder{color:#555;text-shadow:0 1px 2px #ffffffe6;text-align:center;font-size:clamp(1.2rem,4vw,1.8rem);font-weight:600;position:absolute;inset:42% 0 auto}.tap-target.pressed{transform:translate(-50%)translateY(8px)scale(1.015)}.tap-target.inactive{opacity:.72;filter:grayscale(.45)}.tap-target:focus-visible{outline-offset:-16px;border-radius:44%;outline:5px solid #fff}.tap-target:disabled{cursor:default}.message{color:#9c301e;text-align:center;background:#ffe2d8;border:2px solid #17172b;border-radius:10px;width:min(680px,100% - 36px);margin:18px auto;padding:10px 14px}.leaderboard{z-index:10;background:#fff;border:0;border-radius:30px 30px 0 0;width:min(1600px,100% - 32px);margin:0;padding:0;position:fixed;bottom:0;left:50%;overflow:visible;transform:translate(-50%);box-shadow:0 -3px 18px #00000014}.leaderboard-team{z-index:2;width:230px;max-width:none;box-shadow:none;background:#f5f6f5;border:0;border-radius:12px;flex-wrap:wrap;justify-content:center;row-gap:2px;margin:0;padding:7px 12px;position:absolute;top:48px;left:28px;transform:translateY(-50%)}.leaderboard-team .text-button{flex:0 0 100%}.leaderboard:not(.expanded) .leaderboard-team{width:230px;inset:auto 0 calc(100% + 10px) auto;transform:none}.leaderboard-summary{color:#050505;width:100%;min-height:96px;font:inherit;cursor:pointer;background:#fff;border:0;grid-template-columns:78px 1fr 64px;align-items:center;padding:14px 28px;display:grid}.leaderboard.has-team .leaderboard-summary{grid-template-columns:250px 1fr 64px}.leaderboard.has-team .leaderboard-title,.leaderboard.has-team .podium-summary{grid-column:2}.leaderboard.has-team:not(.expanded) .leaderboard-summary{grid-template-columns:1fr 64px}.leaderboard.has-team:not(.expanded) .podium-summary{grid-column:1}.leaderboard-summary:focus-visible{outline-offset:-5px;outline:3px solid #888}.trophy{border-right:1px solid #e6e6e6;align-self:stretch;place-items:center;font-size:1.75rem;display:grid}.leaderboard-title{text-align:center;font-size:1.65rem;font-weight:400}.podium-summary{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;min-width:0;display:grid}.podium-item{justify-content:center;align-items:center;gap:10px;min-width:0;padding:0 16px;font-size:1.2rem;display:flex}.podium-item b{font-size:1.25rem;font-weight:500}.podium-item strong{white-space:nowrap;font-size:1.25rem;font-weight:400}.rolling-score{font-variant-numeric:tabular-nums}.podium-item strong small,.ranking-drawer li strong small{color:#3f8f5f;white-space:nowrap;margin-left:4px;font-size:.62em;font-weight:500}.podium-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.thai-flag{flex:none;font-size:1.5rem;line-height:1}.leaderboard-toggle-icon{will-change:transform;background:#f3f3f3;border-radius:50%;place-items:center;width:42px;height:42px;margin:auto;transition:transform .35s cubic-bezier(.22,1,.36,1),background-color .2s;display:grid}.leaderboard-toggle-icon svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.leaderboard-toggle-icon.open{background:#ececec;transform:rotate(180deg)}.ranking-drawer{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;border-top:0;width:100%;max-height:calc(88svh - 96px);margin:0 auto;padding:0 32px 24px;overflow-y:auto}.leaderboard-drawer-enter-active,.leaderboard-drawer-leave-active{will-change:max-height, opacity, transform;transition:max-height .42s cubic-bezier(.22,1,.36,1),opacity .24s,transform .42s cubic-bezier(.22,1,.36,1),padding-bottom .42s cubic-bezier(.22,1,.36,1);overflow:hidden}.leaderboard-drawer-enter-from,.leaderboard-drawer-leave-to{opacity:0;max-height:0;padding-bottom:0;transform:translateY(24px)}.ranking-drawer ol{margin:0;padding:0;list-style:none}.ranking-drawer li{color:#050505;border-bottom:1px solid #e5e5e5;grid-template-columns:62px 1fr auto;align-items:center;min-height:76px;padding:10px 16px;display:grid}.ranking-drawer li.mine{font-weight:700}.rank{text-align:center;font-size:1.35rem}.province{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:14px;font-size:1.45rem;display:flex;overflow:hidden}.ranking-drawer li strong{font-size:1.4rem;font-weight:400}.empty{text-align:center;color:#746e6a;padding:20px}.province-selector{z-index:3;color:#111;text-align:left;background:#fffffff0;border-radius:16px;width:min(720px,100% - 24px);margin-top:20px;padding:14px}.province-selector>span{margin-bottom:8px;font-weight:600;display:block}.recent-teams{gap:7px;margin:0 0 10px;display:flex;overflow-x:auto}.recent-teams button{color:#222;cursor:pointer;background:#fff;border:1px solid #d8d8d8;border-radius:999px;flex:none;align-items:center;gap:7px;padding:6px 10px;display:flex}.recent-teams button:hover{border-color:#3f8f5f}.recent-teams strong{color:#3f8f5f;font-size:.78rem}.province-actions{grid-template-columns:minmax(180px,1fr) auto auto;gap:8px;display:grid}.province-actions button{border:1px solid #d8d8d8;border-radius:9px;min-height:44px}.province-select{min-width:0}.province-select .vs__dropdown-toggle{background:#fff;border:1px solid #d8d8d8;border-radius:9px;min-height:44px;padding:5px 10px}.province-select .vs__search,.province-select .vs__selected{color:#111;margin:4px 0}.province-select .vs__search::placeholder{color:#777}.province-select .vs__dropdown-menu{color:#111;border:1px solid #d8d8d8;border-radius:9px}.province-actions button{color:#111;cursor:pointer;background:#fff;padding:8px 15px}.province-actions .start-button{color:#fff;background:#111;border-color:#111}.province-actions button:disabled{opacity:.45;cursor:not-allowed}.province-selector small{color:#585858;margin-top:8px;font-size:.72rem;display:block}.province-selector .location-privacy{color:#7a7a7a;font-size:.66rem;line-height:1.35}@media (width<=560px){.hero{min-height:600px;padding-top:22px}header h1{-webkit-text-stroke-width:3px;text-shadow:4px 5px #ff5b3d,7px 8px #17172b}.leaderboard-team{gap:5px;width:130px;padding:5px 7px;font-size:.7rem;top:36px;left:8px}.leaderboard-team .rank-badge{display:none}.leaderboard-team .text-button{font-size:.65rem}.province-selector{margin-top:14px;padding:10px}.province-actions{grid-template-columns:1fr 1fr}.province-select{grid-column:1/-1}.province-actions button{padding-inline:8px;font-size:.76rem}.score{margin-top:12px}.tap-target{width:min(500px,100vw);height:min(55svh,470px);min-height:310px}.leaderboard{border-radius:18px 18px 0 0;width:100%}.leaderboard-summary{grid-template-columns:42px 1fr 34px;min-height:72px;padding:8px 10px}.leaderboard.has-team .leaderboard-summary{grid-template-columns:140px 1fr 34px}.leaderboard.has-team:not(.expanded) .leaderboard-summary{grid-template-columns:1fr 34px}.leaderboard:not(.expanded) .leaderboard-team{width:210px;right:8px}.trophy{font-size:1.2rem}.leaderboard-title{font-size:1.08rem}.podium-item{flex-wrap:wrap;gap:2px 5px;padding:0 3px;font-size:.68rem;line-height:1.1}.podium-item b,.podium-item strong{font-size:.75rem}.podium-item .thai-flag{font-size:1rem}.podium-name{flex-basis:100%;order:3}.leaderboard-toggle-icon{width:32px;height:32px}.leaderboard-toggle-icon svg{width:20px;height:20px}.ranking-drawer{max-height:calc(88svh - 72px);padding:0 8px 14px}.ranking-drawer li{grid-template-columns:38px 1fr auto;min-height:52px;padding-inline:6px}.rank{font-size:.9rem}.province{gap:6px;font-size:.9rem}.province .thai-flag{font-size:1.1rem}.ranking-drawer li strong{font-size:.82rem}}@media (height<=720px) and (width>=700px){.hero{min-height:640px}.tap-target{height:390px;min-height:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
