html{height:100%}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow:hidden}#root{min-height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app{--header-height:56px;flex-direction:column;height:100dvh;min-height:100svh;display:flex;position:relative;overflow:hidden}.header{min-height:var(--header-height);padding:calc(8px + env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 8px max(10px, env(safe-area-inset-left));background-color:#f0f0f0;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.header h1{text-align:center;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:clamp(1.05rem,4.8vw,1.5rem);line-height:1.1}.header-actions{flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.header-button{cursor:pointer;white-space:nowrap;border:none;border-radius:999px;flex-shrink:0;min-height:40px;padding:9px clamp(10px,3vw,14px);font-weight:600;transition:transform .12s,box-shadow .12s,background-color .12s}.header-button:hover{transform:translateY(-1px)}.header-button:active{transform:translateY(0)}.reset-button{color:#b42318;background-color:#fee4e2;box-shadow:inset 0 0 0 1px #fecdca}.reset-button:hover{background-color:#fecdca}.new-set-button{color:#175cd3;background-color:#dbeafe;box-shadow:inset 0 0 0 1px #bfdbfe}.new-set-button:hover{background-color:#bfdbfe}.settings-button{color:#344054;background-color:#fff;box-shadow:inset 0 0 0 1px #d0d5dd}.settings-button:hover{background-color:#f9fafb}.game{flex:1;min-height:0;display:flex;overflow:hidden}.side{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;min-height:0;padding-bottom:max(4px, env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.side.red{background-color:#991b1b}.side.blue{background-color:#00f}.side h2{text-transform:uppercase;overflow-wrap:anywhere;flex-shrink:0;margin:8px 52px 0 10px;font-size:clamp(.9rem,3.4vw,1.35rem);font-weight:600;line-height:1.1}.score{flex:1;justify-content:center;align-items:center;min-height:0;margin:0;font-size:clamp(8rem,42vmin,32rem);font-weight:900;line-height:.9;display:flex;overflow:hidden}.decrement-btn{top:max(8px, env(safe-area-inset-top));color:#fff;cursor:pointer;background-color:#fff3;border:none;border-radius:50%;width:38px;height:38px;font-size:1.8em;position:absolute;right:8px}.winner-badge{white-space:nowrap;background-color:#ffffff26;border-radius:20px;padding:10px;font-weight:700;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.winner-overlay{top:var(--header-height);background-color:#00000073;justify-content:center;align-items:flex-start;padding:clamp(16px,6vh,50px) 16px 16px;display:flex;position:absolute;bottom:0;left:0;right:0}.winner-message{text-align:center;color:#fff;background-color:#101828d1;border-radius:8px;max-width:min(90vw,420px);padding:20px;box-shadow:0 24px 80px #1018286b}.winner-message h2{margin:0 0 10px;font-size:1.5em;font-weight:700}.winner-message p{opacity:.9;margin:0;font-size:.9em}.notification-toast{z-index:5;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));color:#fff;text-align:center;pointer-events:none;background:#10182894;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.notification-card{border-radius:8px;box-shadow:0 24px 80px #1018286b}.notification-copy{flex-direction:column;gap:4px;display:flex}.score-animation-toast{animation:score-toast-backdrop var(--score-animation-duration) ease forwards}.score-animation-card{color:#101828;width:min(88vw,520px);max-height:min(84vh,620px);animation:score-toast-pop var(--score-animation-duration) ease forwards;background:#fffffff5;border-radius:8px;grid-template-rows:minmax(0,1fr) auto;gap:14px;padding:clamp(12px,3vw,18px);display:grid}.score-animation-media{background:#f2f4f7;border-radius:6px;width:100%;height:min(52vh,390px);min-height:min(42vh,320px);position:relative;overflow:hidden}.score-animation-image,.score-animation-image-fallback{width:100%;height:100%;position:absolute;inset:0}.score-animation-image{object-fit:contain;transition:opacity .12s}.score-animation-image.loading{opacity:0}.score-animation-image.loaded{opacity:1}.score-animation-image-fallback{color:#101828;text-transform:uppercase;justify-content:center;align-items:center;padding:24px;font-size:clamp(2.4rem,15vw,5.5rem);font-weight:900;line-height:.9;display:flex}.score-animation-toast strong{font-size:clamp(1.35rem,5vw,2.2rem);line-height:1.1}.score-animation-toast span{font-size:clamp(1rem,3vw,1.2rem);line-height:1.2}.game-notification-toast{z-index:6;animation:score-toast-backdrop var(--game-notification-duration) ease forwards}.game-notification-card{color:#fff;text-transform:uppercase;width:min(90vw,720px);min-height:min(42vh,360px);animation:score-toast-pop var(--game-notification-duration) ease forwards;flex-direction:column;justify-content:center;gap:clamp(8px,2vw,16px);padding:clamp(24px,7vw,56px);display:flex}.game-notification-card.red{background:linear-gradient(135deg,#b42318,#f04438)}.game-notification-card.blue{background:linear-gradient(135deg,#175cd3,#2e90fa)}.game-notification-card.neutral{background:linear-gradient(135deg,#101828,#475467)}.game-notification-card strong{letter-spacing:0;font-size:clamp(3.2rem,15vw,8.5rem);font-weight:950;line-height:.9}.game-notification-card span{letter-spacing:0;font-size:clamp(1.35rem,5.6vw,3rem);font-weight:850;line-height:1.05}@keyframes score-toast-backdrop{0%{opacity:0}6%{opacity:1}86%{opacity:1}to{opacity:0}}@keyframes score-toast-pop{0%{opacity:0;transform:translateY(18px)scale(.9)rotate(-1.5deg)}6%{opacity:1;transform:translateY(0)scale(1.03)rotate(1deg)}14%{transform:translateY(0)scale(1)rotate(0)}88%{opacity:1;transform:translateY(0)scale(1)rotate(0)}to{opacity:0;transform:translateY(-14px)scale(.96)rotate(.5deg)}}.modal-overlay{padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{width:min(100%,400px);max-width:400px;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));background-color:#fff;border-radius:8px;padding:clamp(16px,4vw,20px);overflow:auto}.modal h2{margin-top:0}.modal form{flex-direction:column;display:flex}.modal label{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.modal input{width:min(56%,210px);min-width:0;margin-left:0}.modal .checkbox-setting{justify-content:flex-start;gap:10px}.modal .checkbox-setting input{flex-shrink:0;width:18px;height:18px;margin:0}.stepper-setting{justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;display:flex}.stepper-control{background-color:#f9fafb;border:1px solid #d0d5dd;border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.stepper-control button{color:#344054;background-color:#fff;border:none;width:40px;height:36px;font-size:1.25em;font-weight:700}.stepper-control button:disabled{color:#98a2b3;background-color:#f2f4f7}.stepper-control output{text-align:center;color:#101828;min-width:42px;font-weight:700}.modal-actions{justify-content:flex-end;margin-top:20px;display:flex}.modal-actions button{margin-left:10px}.install-hint{color:#475467;margin:14px 0 0;font-size:.9em;line-height:1.4}.app-version{color:#667085;text-align:center;margin:18px 0 0;font-size:.8em}@media (width<=380px){.header{gap:6px}.header-button{padding-inline:9px;font-size:.85rem}.side h2{margin-right:44px}.decrement-btn{width:34px;height:34px;font-size:1.5em}}@media (height<=430px) and (orientation:landscape){.header{--header-height:48px;padding-top:max(6px, env(safe-area-inset-top));padding-bottom:6px}.side h2{margin-top:4px;font-size:clamp(.8rem,4vh,1rem)}.score{font-size:clamp(5rem,58vh,12rem)}.winner-badge{bottom:10px}}
