:root{--color-text-strong:#191f28;--color-text-default:#333d4b;--color-text-subtle:#4e5968;--color-text-hint:#8b95a1;--color-text-disabled:#b0b8c1;--color-text-inverse:#fff;--color-bg:#fff;--color-bg-canvas:#f2f4f6;--color-danger:#f04452;--color-success:#03b26c;--color-warning:#fe9800;--brand-primary:#c2471f;--font-size-display:28px;--font-weight-display:700;--font-size-title:20px;--font-weight-title:700;--font-size-subtitle:15px;--font-weight-subtitle:600;--font-size-body:17px;--font-weight-body:400;--font-size-body-small:15px;--font-weight-body-small:400;--font-size-caption:13px;--font-weight-caption:400;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--dim:#0006}*,:before,:after{box-sizing:border-box}body{word-break:keep-all;overflow-wrap:break-word;letter-spacing:0;color:var(--color-text-default);background:var(--color-bg);margin:0;font-family:-apple-system,system-ui,Malgun Gothic,sans-serif}.canvas{min-height:100dvh}.text-hint{color:var(--color-text-hint)}.text-inverse{color:var(--color-text-inverse)}.bg-canvas{background:var(--color-bg-canvas)}:root{color:#333d4b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;font-family:sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;height:100dvh;overflow:hidden}body{min-width:320px;margin:0}#app,#root,my-element{width:100%;min-height:100vh;padding:24px;display:block}@media (width>=481px){body{background-color:#f5f5f5;justify-content:center;align-items:flex-start;display:flex}#app,#root,my-element{background-color:#fff;max-width:480px;margin:0 auto}}.fp-root{--safe-top:0px;--safe-bottom:0px;--safe-left:0px;--safe-right:0px;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#cfe7da;width:100%;max-width:480px;font-family:-apple-system,system-ui,Malgun Gothic,sans-serif;position:fixed;top:0;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.fp-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.fp-hud{pointer-events:none;position:absolute;inset:0}.fp-sound{pointer-events:auto;top:calc(var(--safe-top) + 6px);left:calc(var(--safe-left) + 10px);width:44px;height:44px;color:var(--color-text-default);cursor:pointer;background:#ffffffc7;border:none;border-radius:22px;justify-content:center;align-items:center;display:flex;position:absolute}.fp-score{top:calc(var(--safe-top) + 64px);left:var(--space-4);right:var(--space-4);text-align:center;position:absolute}.fp-score-value{color:var(--color-text-strong);font-variant-numeric:tabular-nums;margin:0;font-size:56px;font-weight:700;line-height:1.1}.fp-score-practice{font-size:var(--font-size-display);font-weight:var(--font-weight-display);color:var(--color-text-strong);margin:0;line-height:1.3}.fp-score-best{margin:var(--space-1) 0 0;font-size:var(--font-size-body-small);font-weight:var(--font-weight-subtitle);color:var(--color-text-subtle)}.fp-guide{left:var(--space-4);right:var(--space-4);bottom:calc(var(--safe-bottom) + 34px);justify-content:center;display:flex;position:absolute}.fp-guide-pill{padding:var(--space-3) var(--space-5);color:var(--color-text-inverse);font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);text-align:center;background:#191f28cc;border-radius:999px;margin:0;animation:1.6s ease-in-out infinite fp-bob}.fp-dim{padding:calc(var(--safe-top) + 56px) var(--space-5) calc(var(--safe-bottom) + 34px);background:var(--dim);justify-content:center;align-items:center;animation:.2s ease-out fp-fade;display:flex;position:absolute;inset:0}.fp-card{width:100%;max-width:340px;padding:28px var(--space-5) var(--space-5);background:var(--color-bg);text-align:center;border-radius:24px}.fp-card-title{font-size:var(--font-size-title);font-weight:var(--font-weight-title);color:var(--color-text-strong);margin:0}.fp-card-desc{margin:var(--space-2) 0 0;font-size:var(--font-size-body-small);color:var(--color-text-subtle)}.fp-card-label{margin:var(--space-4) 0 0;font-size:var(--font-size-body-small);color:var(--color-text-subtle)}.fp-card-score{color:var(--color-text-strong);font-variant-numeric:tabular-nums;margin:0;font-size:64px;font-weight:700;line-height:1.1}.fp-card-best{margin:var(--space-1) 0 0;font-size:var(--font-size-body-small);color:var(--color-text-subtle)}.fp-card-best.is-new{color:#0a7d4b;font-weight:var(--font-weight-subtitle)}.fp-actions{margin-top:var(--space-5);gap:var(--space-2);flex-direction:column;display:flex}.fp-btn{width:100%;height:52px;font-size:var(--font-size-body);font-weight:var(--font-weight-subtitle);cursor:pointer;border:none;border-radius:14px}.fp-btn:active{transform:scale(.98)}.fp-btn:disabled{opacity:.6}.fp-btn-primary{background:var(--brand-primary);color:var(--color-text-inverse)}.fp-btn-ad{color:#a33a17;background:#fbe6dd}.fp-btn-plain{background:var(--color-bg-canvas);color:var(--color-text-default)}.fp-note{margin:0}.fp-board{flex-direction:column;max-height:100%;display:flex}.fp-board-state{margin:var(--space-5) 0}.fp-board-list{margin:var(--space-4) 0 0;touch-action:pan-y;text-align:left;padding:0;list-style:none;overflow-y:auto}.fp-board-mine{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--color-text-disabled);flex:none}.fp-board-row{align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-3);font-size:var(--font-size-body-small);color:var(--color-text-default);border-radius:12px;display:flex}.fp-board-row.is-me{color:var(--color-text-strong);font-weight:var(--font-weight-subtitle);background:#fbe6dd}.fp-board-rank{font-variant-numeric:tabular-nums;width:2.5em;color:var(--color-text-strong);flex:none;font-weight:700}.fp-board-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.fp-board-tag{margin-left:var(--space-2);padding:2px var(--space-2);background:var(--brand-primary);color:var(--color-text-inverse);font-size:var(--font-size-caption);font-weight:var(--font-weight-subtitle);border-radius:999px}.fp-board-score{font-variant-numeric:tabular-nums;flex:none}.fp-board .fp-card-title:focus{outline:none}@keyframes fp-fade{0%{opacity:0}to{opacity:1}}@keyframes fp-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}
