:root{--bg-primary: #F5F5F7;--surface: #FFFFFF;--surface-secondary: #F2F2F7;--surface-tertiary: #E5E5EA;--text-primary: #1D1D1F;--text-secondary: #64646B;--text-tertiary: #AEAEB2;--apple-blue: #007AFF;--apple-blue-pressed: #0062CC;--apple-blue-tint: rgba(0, 122, 255, .1);--apple-blue-tint-active: rgba(0, 122, 255, .18);--apple-green: #34C759;--apple-green-tint: rgba(52, 199, 89, .12);--apple-red: #FF3B30;--apple-red-tint: rgba(255, 59, 48, .1);--separator: #E5E5EA;--separator-dark: #D1D1D6;--font-ios: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Plus Jakarta Sans", "Inter", sans-serif;--shadow-subtle: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-card: 0 4px 14px rgba(0, 0, 0, .05), 0 1px 3px rgba(0, 0, 0, .03);--shadow-floating: 0 12px 28px rgba(0, 0, 0, .08), 0 4px 10px rgba(0, 0, 0, .04);--shadow-key: 0 1px 2px rgba(0, 0, 0, .2);--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 22px;--radius-pill: 9999px;--ease-spring: cubic-bezier(.175, .885, .32, 1.15);--ease-ios: cubic-bezier(.23, 1, .32, 1);--dur-touch: .12s;--dur-nav: .22s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-ios);background-color:var(--bg-primary);color:var(--text-primary);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;touch-action:manipulation;height:100%}body{min-height:100dvh;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.45;overflow-x:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#root{min-height:100dvh;display:flex;flex-direction:column}.app-container{width:100%;max-width:440px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-primary)}.ios-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid rgba(0,0,0,.04);transition:transform var(--dur-touch) var(--ease-ios)}.ios-nav-blur{background:#ffffffd9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:.5px solid var(--separator)}.ios-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-ios);font-size:15px;font-weight:600;padding:12px 18px;border-radius:var(--radius-pill);border:none;cursor:pointer;user-select:none;-webkit-user-select:none;outline:none;text-decoration:none;touch-action:manipulation;transition:transform 90ms var(--ease-ios),background-color .14s ease}.ios-button:active{transform:scale(.96);opacity:.9}.ios-button-primary{background:var(--apple-blue);color:#fff}.ios-button-primary:active{background:var(--apple-blue-pressed)}.ios-button-secondary{background:var(--surface-secondary);color:var(--text-primary)}.ios-button-secondary:active{background:var(--surface-tertiary)}.ios-button-tint{background:var(--apple-blue-tint);color:var(--apple-blue)}.ios-button-tint:active{background:var(--apple-blue-tint-active)}@keyframes iosSlideUp{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.ios-animate-enter{animation:iosSlideUp var(--dur-nav) var(--ease-ios) forwards}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.game{padding:24px 20px 80px}.matching-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.match{display:block;width:100%;min-height:84px;margin-bottom:12px;padding:14px;border:1px solid var(--separator);border-radius:12px;background:#fff;text-align:left;font:inherit;font-size:15px;line-height:1.5;touch-action:manipulation}.match.selected{background:var(--apple-blue-tint);border-color:var(--apple-blue)}.match:disabled{color:var(--apple-blue);background:var(--apple-blue-tint);opacity:1}button:disabled{cursor:default}.ios-button:disabled{opacity:.5}button:focus-visible{outline:2px solid var(--apple-blue);outline-offset:2px}.word-preview{background:var(--apple-blue)!important;color:#fff!important}.game-progress{display:grid;gap:6px;margin-bottom:12px;color:var(--text-secondary);font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.progress-track{height:6px;overflow:hidden;background:var(--surface-tertiary);border-radius:8px}.progress-fill{height:100%;background:var(--apple-blue);transform-origin:left;transition:transform var(--dur-nav) var(--ease-ios)}.match{transition:transform var(--dur-touch) var(--ease-ios)}.match:active:not(:disabled){transform:scale(.97)}.inserted-term{display:inline-block;opacity:1;transform:translateY(0);transition:transform .14s var(--ease-ios),opacity .14s var(--ease-ios)}@starting-style{.inserted-term{opacity:0;transform:translateY(4px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.ios-animate-enter{animation:fadeIn .12s ease}.ios-button:active,.match:active:not(:disabled),.inserted-term{transform:none}.progress-fill{transition:none}}.game-heading{margin-bottom:22px}.game-heading h1{font-size:26px;line-height:1.2;letter-spacing:-.6px;font-weight:700}.game-heading p,.game-hint{margin-top:10px;font-size:16px;line-height:1.5;color:var(--text-secondary)}.game>p{font-size:15px;line-height:1.5;margin-bottom:16px}.game-details{margin:16px 0;border-radius:16px;background:#fff;border:1px solid var(--separator)}.game-details summary{padding:16px;min-height:52px;font-size:15px;font-weight:600;color:var(--apple-blue);cursor:pointer}.game-details>.ios-card{border:0;box-shadow:none}.active-word-strip{display:flex;gap:6px;overflow-x:auto;margin-bottom:18px;padding:4px 0;position:relative;scroll-padding:4px}.active-word-strip button{flex:0 0 40px;height:46px;border:1px solid var(--separator-dark);border-radius:10px;background:#fff;color:var(--text-primary);font-size:22px;font-weight:600;touch-action:manipulation}.active-word-strip button.selected{background:var(--apple-blue-tint);border:2px solid var(--apple-blue);color:var(--apple-blue)}.crossword-input:focus{outline:2px solid var(--apple-blue);outline-offset:2px}
