@font-face{font-family:Patrick Hand;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/PatrickHand-vietnamese.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Patrick Hand;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/PatrickHand-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Patrick Hand;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/PatrickHand-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #fbfbf2;--rule: #aec6e8;--margin: #e0524a;--ink: #1b3a8c;--danger: #d8362a;--highlight: #fcf36b;--warm: #e0722c;--font: "Patrick Hand", "Comic Sans MS", cursive, system-ui}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--paper);font-family:var(--font);color:var(--ink);user-select:none;-webkit-user-select:none;overscroll-behavior:none}#app{position:fixed;inset:0;width:100dvw;height:100dvh;display:flex;align-items:center;justify-content:center}#stage{width:100%;height:100%;display:block;touch-action:none}#hud{position:absolute;inset:0;pointer-events:none;padding:clamp(8px,2.2vw,22px);font-family:var(--font)}#score-wrap{position:absolute;top:clamp(8px,2.2vw,22px);left:clamp(8px,2.2vw,22px)}.score-label{font-size:clamp(12px,2vw,18px);color:var(--ink);opacity:.7;text-shadow:1px 1px 0 var(--paper);line-height:1}#score{font-size:clamp(30px,6vw,56px);line-height:.95;color:var(--ink);text-shadow:2px 2px 0 var(--highlight);font-variant-numeric:tabular-nums}#score .dong{font-size:.55em;margin-left:.1em;opacity:.8}#combo{position:absolute;top:clamp(8px,2.2vw,22px);left:50%;transform:translate(-50%);font-size:clamp(24px,5vw,44px);color:var(--danger);text-shadow:2px 2px 0 var(--paper);opacity:0;transition:opacity .15s ease}#combo[data-hot="1"]{animation:comboPulse .4s ease-in-out infinite alternate}@keyframes comboPulse{0%{transform:translate(-50%) scale(1) rotate(-2deg)}to{transform:translate(-50%) scale(1.12) rotate(2deg)}}#warnings{position:absolute;top:clamp(8px,2.2vw,22px);right:clamp(8px,2.2vw,22px);display:flex;gap:4px;font-size:clamp(22px,4.4vw,36px)}.warn{color:var(--ink);opacity:.28}.warn--used{color:var(--danger);opacity:1}#toasts{position:absolute;top:clamp(60px,14vh,120px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none;z-index:5}.toast{font-size:clamp(16px,3.2vw,28px);padding:6px 16px;background:var(--danger);color:var(--paper);border-radius:8px 11px 7px 12px;box-shadow:2px 2px #00000040;transform:rotate(-1.5deg)}.toast--ping{background:var(--ink);pointer-events:auto;cursor:pointer}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px;background:color-mix(in srgb,var(--paper) 96%,transparent);overflow-y:auto;z-index:10;pointer-events:auto}.overlay[hidden]{display:none}.overlay h1{font-size:clamp(28px,7vw,64px);margin:0;line-height:.95;text-shadow:3px 3px 0 var(--highlight)}.overlay h2{font-size:clamp(20px,4vw,34px);margin:0}.overlay p{font-size:clamp(14px,2.6vw,20px);max-width:32ch;margin:0;opacity:.85}.btn{font-family:var(--font);font-size:clamp(18px,3.4vw,28px);padding:10px 26px;min-height:48px;background:var(--highlight);color:var(--ink);border:3px solid var(--ink);border-radius:12px 14px 11px 15px;cursor:pointer;box-shadow:3px 3px color-mix(in srgb,var(--ink) 40%,transparent)}.btn:active{transform:translate(3px,3px);box-shadow:none}.btn--ghost{background:var(--paper);font-size:.8em}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}.howto{font-size:clamp(13px,2.2vw,18px);opacity:.8}.review-card{width:min(440px,92vw);background:var(--paper);border:3px solid var(--ink);border-radius:14px 16px 13px 17px;padding:18px 22px;box-shadow:4px 4px color-mix(in srgb,var(--ink) 30%,transparent);display:flex;flex-direction:column;gap:10px}.review-card h2{margin:0;color:var(--danger);text-shadow:1.5px 1.5px 0 var(--paper)}.review-quote{font-style:italic;font-size:clamp(15px,2.6vw,20px);opacity:.85}.review-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;font-size:clamp(14px,2.4vw,19px)}.review-stats>div{display:flex;justify-content:space-between;border-bottom:1.5px dashed var(--rule);padding-bottom:2px}.review-stats b{color:var(--ink);font-variant-numeric:tabular-nums}.review-verdict{margin-top:4px;font-size:clamp(17px,3.2vw,26px);color:var(--ink);background:var(--highlight);border-radius:8px;padding:6px 10px;text-align:center;transform:rotate(.5deg)}.review-best{align-self:center;text-align:center;color:var(--danger);font-size:clamp(16px,3vw,22px);animation:badgePulse .5s ease-in-out infinite alternate}@keyframes badgePulse{0%{transform:scale(1) rotate(-2deg)}to{transform:scale(1.1) rotate(2deg)}}.review-card .board{width:100%;max-height:22vh;margin-top:4px}.board__me{text-align:center;font-size:clamp(13px,2.4vw,17px);color:var(--danger);padding:3px 0}.links{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:6px}.links__title{font-size:clamp(12px,2.2vw,15px);opacity:.65;color:var(--ink)}.links__row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.link-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;min-height:40px;font-family:var(--font);font-size:clamp(13px,2.4vw,16px);color:var(--ink);text-decoration:none;background:var(--paper);border:2px solid var(--ink);border-radius:9px 11px 8px 12px;box-shadow:2px 2px color-mix(in srgb,var(--ink) 35%,transparent);cursor:pointer;transition:transform 80ms ease}.link-chip:active{transform:translate(2px,2px);box-shadow:none}.link-chip__ico{display:inline-flex;width:20px;height:20px}.link-chip__ico svg{width:100%;height:100%}.link-chip--warm{color:var(--warm);border-color:var(--warm);background:color-mix(in srgb,var(--warm) 12%,var(--paper));box-shadow:2px 2px color-mix(in srgb,var(--warm) 40%,transparent)}#settings{position:absolute;top:8px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:11;pointer-events:auto}.chip{font-family:var(--font);font-size:14px;padding:4px 10px;min-height:32px;background:var(--paper);border:2px solid var(--ink);border-radius:8px;cursor:pointer}.chip[aria-pressed=true]{background:var(--highlight)}#version-chip{font-variant-numeric:tabular-nums;color:var(--ink);opacity:.85}#changelog{justify-content:flex-start;overflow-y:auto;padding:clamp(16px,4vw,32px);gap:12px;z-index:22}.changelog-head{display:flex;align-items:center;gap:10px}.changelog-head h2{color:var(--danger);text-shadow:1.5px 1.5px 0 var(--paper)}.changelog-body{width:min(560px,94vw);display:flex;flex-direction:column;gap:12px}.changelog-entry{background:var(--paper);border:2.5px solid var(--ink);border-radius:11px 13px 10px 14px;padding:12px 16px;box-shadow:3px 3px color-mix(in srgb,var(--ink) 22%,transparent);text-align:left}.changelog-entry.is-current{border-color:var(--danger);box-shadow:3px 3px color-mix(in srgb,var(--danger) 30%,transparent)}.changelog-entry__head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}.changelog-ver{font-size:clamp(17px,3vw,22px);color:var(--ink);background:var(--highlight);padding:1px 8px;border-radius:6px;font-variant-numeric:tabular-nums}.changelog-entry.is-current .changelog-ver{background:var(--danger);color:var(--paper)}.changelog-title{font-size:clamp(15px,2.6vw,19px);color:var(--ink)}.changelog-date{margin-left:auto;font-size:12px;opacity:.6}.changelog-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}.changelog-list li{font-size:clamp(13px,2.3vw,16px);line-height:1.3;opacity:.92}.board{width:min(420px,90vw);max-height:46vh;overflow-y:auto;border:2.5px solid var(--ink);border-radius:10px;background:var(--paper)}.board__row{display:grid;grid-template-columns:2.2em 1fr auto;gap:8px;padding:6px 12px;font-size:clamp(14px,2.4vw,18px);border-bottom:1.5px dashed var(--rule)}.board__row:last-child{border-bottom:none}.board__row--me{background:var(--highlight)}.board__rank{opacity:.7}.board__score{font-variant-numeric:tabular-nums}.name-input{font-family:var(--font);font-size:clamp(18px,3.4vw,26px);text-align:center;padding:8px 14px;width:min(280px,80vw);border:2.5px solid var(--ink);border-radius:9px;background:var(--paper);color:var(--ink)}.error-text{color:var(--danger);font-size:.9em;min-height:1.2em}@media (orientation: portrait){#hud{grid-template-columns:1fr 1fr;grid-template-rows:auto auto 1fr auto}.meter--slack{grid-column:1;grid-row:1}.meter--suspicion{grid-column:2;grid-row:1}#score{grid-column:1 / 3;grid-row:2}#offers{grid-column:1 / 3;grid-row:4;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start}#duck-btn{grid-column:1 / 3;grid-row:4;justify-self:center;align-self:end;position:relative;z-index:2}}@media (prefers-reduced-motion: reduce){.meter__fill{transition:none}}#achv-toasts{position:absolute;top:clamp(56px,12vh,110px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;z-index:30}.achv-toast{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 8px;background:var(--paper);border:3px solid var(--ink);border-radius:12px 14px 11px 15px;box-shadow:3px 3px #1b3a8c4d;transform:rotate(-1.5deg);max-width:min(360px,88vw)}.achv-toast--highlighter{border-color:#caa100;background:#fffdf0}.achv-toast--redink{border-color:var(--danger);background:#fff3f1}.achv-toast__badge{width:46px;height:46px;flex:0 0 46px}.achv-toast__badge svg{width:100%;height:100%}.achv-toast__kicker{font-size:12px;color:var(--danger);line-height:1}.achv-toast__name{font-size:clamp(15px,3vw,20px);color:var(--ink);line-height:1.05}.achv-toast__medal{width:26px}.achv-toast__medal svg{width:100%}.screen-tint{position:absolute;inset:0;pointer-events:none;z-index:34;mix-blend-mode:multiply}.mythic-reveal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:36}.mythic-reveal__card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 30px;background:var(--highlight);border:4px double var(--danger);border-radius:16px 20px 14px 18px;box-shadow:5px 5px #d8362a59;transform:rotate(-2deg)}.mythic-reveal__kicker{font-size:clamp(12px,2.2vw,16px);color:var(--danger);letter-spacing:1px}.mythic-reveal__name{font-size:clamp(24px,5vw,40px);color:var(--ink);text-align:center}.mythic-reveal__stamp{width:40px;height:40px}#trophy-wall{justify-content:flex-start;overflow-y:auto;padding:clamp(14px,3vw,28px);gap:12px;z-index:20}.trophy-head{display:flex;flex-direction:column;align-items:center;gap:6px}.trophy-head h2{color:var(--danger);text-shadow:1.5px 1.5px 0 var(--paper)}.trophy-meta,.trophy-life{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.trophy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px;width:min(760px,96vw);padding-bottom:12px}.trophy-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;background:var(--paper);border:2.5px solid var(--ink);border-radius:10px 12px 9px 13px;box-shadow:2px 2px #1b3a8c40}.trophy-card--redink{border-color:var(--danger)}.trophy-card.is-locked{opacity:.82;background:#f3f3ea}.trophy-card__badge{width:78px;height:78px}.trophy-card__badge svg{width:100%;height:100%}.trophy-card__name{font-size:15px;text-align:center;line-height:1.05;color:var(--ink)}.trophy-card__sub{font-size:11.5px;text-align:center;opacity:.7;line-height:1.1}.ribbon-strip{display:flex;gap:4px;margin-top:4px;align-items:flex-start;justify-content:center;flex-wrap:wrap}.ribbon-slot{display:flex;flex-direction:column;align-items:center;width:30px}.ribbon-slot svg{width:22px;height:30px}.ribbon-name{font-size:9px;max-width:40px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.ribbon-slot--you .ribbon-name{color:var(--danger)}.ribbon-you{font-size:8px;color:var(--danger)}.ribbon-empty{font-size:10px;opacity:.6;align-self:center}#trophy-close{margin-top:4px}.new-trophies{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 10px;margin-top:2px;background:#fffdf0;border:2px dashed var(--danger);border-radius:10px;cursor:pointer}.new-trophies__label{font-size:14px;color:var(--danger)}.new-trophies__badges{display:flex;gap:2px}.new-trophy__badge{width:34px;height:34px}.new-trophy__badge svg{width:100%;height:100%}
