:root{--bg: #faf8f4;--surface: #ffffff;--line: #e7e2d9;--ink: #2b2b33;--muted: #6f6a62;--primary: #2c8a55;--primary-dark: #237045;--primary-soft: #e6f6ed;--accent: #3568c4;--accent-soft: #e8f0fb;--play: #8156d6;--play-soft: #f3ecfb;--warn: #c9791b;--warn-soft: #fbf1dd;--danger: #c0392b;--danger-soft: #fdece9;--on-color: #ffffff;--shadow-card: 0 1px 2px rgba(40, 32, 16, .06), 0 6px 16px rgba(40, 32, 16, .05);--shadow-raised: 0 2px 4px rgba(40, 32, 16, .08), 0 12px 28px rgba(40, 32, 16, .08);--shadow-focus: 0 0 0 3px rgba(44, 138, 85, .35);--font-rounded: "Hiragino Maru Gothic ProN", "ヒラギノ丸ゴ ProN", "SF Pro Rounded", "Quicksand", "M PLUS Rounded 1c", system-ui, -apple-system, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark}}:root[data-theme=dark]{color-scheme:dark;--bg: #15171b;--surface: #21242c;--line: #363b45;--ink: #ecebe6;--muted: #a29e94;--primary: #2c8a55;--primary-dark: #237045;--primary-soft: #1b3327;--accent: #4d84dd;--accent-soft: #1b2942;--play: #9a72e6;--play-soft: #2a2340;--warn: #d69a3f;--warn-soft: #352a15;--danger: #d1483a;--danger-soft: #3a201d;--on-color: #ffffff;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 16px rgba(0, 0, 0, .35);--shadow-raised: 0 2px 4px rgba(0, 0, 0, .5), 0 14px 30px rgba(0, 0, 0, .45);--shadow-focus: 0 0 0 3px rgba(75, 180, 122, .4)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #15171b;--surface: #21242c;--line: #363b45;--ink: #ecebe6;--muted: #a29e94;--primary: #2c8a55;--primary-dark: #237045;--primary-soft: #1b3327;--accent: #4d84dd;--accent-soft: #1b2942;--play: #9a72e6;--play-soft: #2a2340;--warn: #d69a3f;--warn-soft: #352a15;--danger: #d1483a;--danger-soft: #3a201d;--on-color: #ffffff;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 16px rgba(0, 0, 0, .35);--shadow-raised: 0 2px 4px rgba(0, 0, 0, .5), 0 14px 30px rgba(0, 0, 0, .45);--shadow-focus: 0 0 0 3px rgba(75, 180, 122, .4)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-rounded);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}h1{font-size:1.6rem;line-height:1.3;margin:.2em 0 .6em}h2{font-size:1.2rem;margin:1.2em 0 .5em}h3{font-size:1.05rem;margin:.8em 0 .4em}p{margin:.5em 0}button,input,textarea,select{font:inherit;color:inherit}button{transition:transform .05s ease,filter .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}button:not(:disabled):active{transform:scale(.97)}button:not(:disabled):hover{filter:brightness(1.03)}button:disabled{opacity:.45;cursor:not-allowed}:focus-visible{outline:none;box-shadow:var(--shadow-focus)}img{max-width:100%}@keyframes fc-pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.fc-pop{animation:fc-pop-in .18s ease-out both}@keyframes fc-bounce-in{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.fc-celebrate{animation:fc-bounce-in .5s cubic-bezier(.2,.8,.2,1) both}.fc-tile{transition:transform .08s ease,box-shadow .15s ease,filter .15s ease}.fc-tile:not(:disabled):active{transform:translateY(1px) scale(.99)}@keyframes fc-view-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.fc-view{animation:fc-view-in .2s ease-out both}@keyframes fc-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.fc-shake{animation:fc-shake .32s ease-in-out both}.fc-matched{opacity:0;transform:scale(.85);transition:opacity .25s ease,transform .25s ease;pointer-events:none}@keyframes fc-spin{to{transform:rotate(360deg)}}.fc-spinner{width:40px;height:40px;margin:0 auto 12px;border:4px solid var(--line);border-top-color:var(--primary);border-radius:999px;animation:fc-spin .8s linear infinite}@media(prefers-reduced-motion:reduce){.fc-pop,.fc-celebrate,.fc-view,.fc-shake{animation:none}.fc-matched{transition:none}.fc-spinner{animation-duration:2s}}
