@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&display=swap";.theme-switcher{display:flex;align-items:center;gap:var(--spacing-sm)}.theme-button,.text-size-button{display:flex;align-items:center;justify-content:center;padding:10px;background:var(--md-sys-color-surface-container-highest);color:var(--md-sys-color-on-surface);border-radius:var(--md-sys-shape-corner-pill);transition:all var(--md-sys-motion-duration-short-3) var(--md-sys-motion-easing-standard);cursor:pointer}.theme-button:hover:not(:disabled),.text-size-button:hover:not(:disabled){background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container);transform:scale(1.05)}.theme-button:active:not(:disabled),.text-size-button:active:not(:disabled){transform:scale(.95)}.text-size-controls{display:flex;gap:4px}.text-size-button:disabled{opacity:.38;cursor:not-allowed}.theme-button--auto{position:relative;background:linear-gradient(135deg,var(--md-sys-color-surface-container-highest) 0%,var(--md-sys-color-primary-container) 100%)}.theme-button--auto:before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:var(--gradient-ocean);opacity:.5;z-index:-1;animation:autoPulse 3s ease-in-out infinite}@keyframes autoPulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}@media(prefers-reduced-motion:reduce){.theme-button:hover:not(:disabled),.text-size-button:hover:not(:disabled){transform:none}.theme-button--auto:before{animation:none;opacity:.4}}.api-key-modal{max-width:650px}.form-input{width:100%;padding:var(--spacing-md);font-family:inherit;font-size:var(--md-sys-typescale-body-medium-size);color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface-container-highest);border:2px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-medium);transition:all var(--md-sys-motion-duration-short-4) var(--md-sys-motion-easing-standard)}.form-input:focus{border-color:var(--md-sys-color-primary);outline:none;box-shadow:0 0 0 3px #0f83d71a}.instructions-toggle{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:transparent;color:var(--md-sys-color-primary);font-size:var(--md-sys-typescale-label-large-size);font-weight:var(--md-sys-typescale-label-large-weight);border-radius:var(--md-sys-shape-corner-medium);margin-top:var(--spacing-md);transition:all var(--md-sys-motion-duration-short-2) var(--md-sys-motion-easing-standard)}.instructions-toggle:hover{background:var(--md-sys-color-primary-container)}.instructions-panel{background:var(--md-sys-color-surface-container);padding:var(--spacing-lg);border-radius:var(--md-sys-shape-corner-medium);margin-top:var(--spacing-md);border-left:4px solid var(--md-sys-color-primary);animation:slideDown var(--md-sys-motion-duration-medium-2) var(--md-sys-motion-easing-emphasized)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.instructions-title{font-size:var(--md-sys-typescale-title-medium-size);font-weight:var(--md-sys-typescale-title-medium-weight);color:var(--md-sys-color-on-surface);margin-bottom:var(--spacing-md)}.instructions-list{list-style:decimal;padding-left:var(--spacing-xl);margin-bottom:var(--spacing-md)}.instructions-list li{font-size:var(--md-sys-typescale-body-medium-size);color:var(--md-sys-color-on-surface);margin-bottom:var(--spacing-sm);line-height:1.6}.external-link{color:var(--md-sys-color-primary);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:4px;transition:all var(--md-sys-motion-duration-short-2) var(--md-sys-motion-easing-standard)}.external-link:hover{text-decoration:underline}.instructions-note{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);padding:var(--spacing-md);border-radius:var(--md-sys-shape-corner-small);font-size:var(--md-sys-typescale-body-small-size);line-height:1.5}.button-danger{padding:14px 24px;background:var(--md-sys-color-error);color:var(--md-sys-color-on-error);font-size:var(--md-sys-typescale-label-large-size);font-weight:var(--md-sys-typescale-label-large-weight);border-radius:var(--md-sys-shape-corner-large);border:none;cursor:pointer;transition:all var(--md-sys-motion-duration-short-4) var(--md-sys-motion-easing-emphasized)}.button-danger:hover{box-shadow:var(--md-sys-elevation-2);transform:translateY(-2px)}.button-danger:active{transform:translateY(0)}@media(prefers-reduced-motion:reduce){.instructions-panel{animation:none}}.general-feedback-modal{max-width:700px}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.category-card{padding:var(--spacing-lg);background:var(--md-sys-color-surface-container-highest);border:2px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-large);text-align:left;cursor:pointer;transition:all var(--md-sys-motion-duration-short-3) var(--md-sys-motion-easing-emphasized)}.category-card:hover{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary);transform:translateY(-2px);box-shadow:var(--md-sys-elevation-2)}.category-card.selected{background:linear-gradient(135deg,var(--md-sys-color-primary-container) 0%,var(--md-sys-color-secondary-container) 100%);border-color:var(--md-sys-color-primary);box-shadow:var(--md-sys-elevation-3)}.category-label{font-size:var(--md-sys-typescale-title-medium-size);font-weight:var(--md-sys-typescale-title-medium-weight);color:var(--md-sys-color-on-surface);margin-bottom:4px}.category-description{font-size:var(--md-sys-typescale-body-small-size);color:var(--md-sys-color-on-surface-variant)}.form-textarea{width:100%;padding:var(--spacing-md);font-family:inherit;font-size:var(--md-sys-typescale-body-medium-size);line-height:1.6;color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface-container-highest);border:2px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-medium);resize:vertical;transition:all var(--md-sys-motion-duration-short-4) var(--md-sys-motion-easing-standard)}.char-counter{font-size:var(--md-sys-typescale-body-small-size);color:var(--md-sys-color-on-surface-variant);text-align:right;margin-top:4px}.char-counter.invalid{color:var(--md-sys-color-error)}.char-hint{font-size:var(--md-sys-typescale-body-small-size);color:var(--md-sys-color-on-surface-variant)}.form-hint{font-size:var(--md-sys-typescale-body-small-size);color:var(--md-sys-color-on-surface-variant);margin-top:4px}@media(max-width:640px){.category-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.category-card:hover{transform:none}}.layout{min-height:100vh;display:flex;flex-direction:column;background:var(--gradient-surface);background-attachment:fixed;padding-bottom:68px}.layout__topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--md-sys-color-surface);border-bottom:1px solid var(--md-sys-color-outline-variant);position:sticky;top:0;z-index:100}.layout__topbar-left{display:flex;align-items:center}.layout__logo{font-family:var(--md-sys-typescale-font-family-display);font-size:1.35rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;letter-spacing:-.02em}.layout__topbar-right{display:flex;align-items:center;gap:6px}.layout__icon-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--md-sys-shape-corner-medium);color:var(--md-sys-color-on-surface-variant);position:relative;background:none;border:none;cursor:pointer;transition:all var(--duration-quick) var(--spring-smooth)}.layout__icon-btn:hover{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);transform:translateY(-1px)}.layout__key-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--md-sys-color-accent-gold);border-radius:50%;border:2px solid var(--md-sys-color-surface);box-shadow:0 0 6px #f6c12380}.layout__main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:28px 20px}.layout__nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:0;background:var(--md-sys-color-surface);border-top:1px solid var(--md-sys-color-outline-variant);z-index:100;padding:0 16px;padding-bottom:env(safe-area-inset-bottom,0)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 28px;color:var(--md-sys-color-on-surface-variant);text-decoration:none;font-size:.75rem;font-weight:600;position:relative;min-width:80px;transition:color var(--duration-quick) ease}.nav-item:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:0;height:3px;background:var(--gradient-primary);border-radius:0 0 4px 4px;transition:width var(--duration-quick) var(--spring-bounce)}.nav-item--active{color:var(--md-sys-color-primary)}.nav-item--active:before{width:40px}.nav-item:hover:not(.nav-item--active){color:var(--md-sys-color-on-surface)}.nav-item--active svg{background:var(--md-sys-color-primary-container);border-radius:var(--md-sys-shape-corner-pill);padding:3px 10px;margin:-3px -10px}.page-loader{display:flex;align-items:center;justify-content:center;min-height:40vh}.page-loader__spinner{width:36px;height:36px;border:3px solid var(--md-sys-color-outline-variant);border-top-color:var(--md-sys-color-primary);border-radius:50%;animation:spin .8s linear infinite}@media(min-width:769px){.layout{padding-bottom:0}.layout__topbar{padding:0 28px;height:56px}.layout__nav{position:fixed;bottom:auto;top:0;left:50%;transform:translate(-50%);padding:0;border:none;background:none;z-index:101;height:56px}.nav-item{flex-direction:row;gap:6px;padding:16px 20px;font-size:.875rem}.nav-item:before{top:auto;bottom:0;border-radius:4px 4px 0 0}.nav-item--active svg{background:none;padding:0;margin:0}.layout__main{padding:36px 28px}}@media(prefers-reduced-motion:reduce){.page-loader__spinner{animation:none;opacity:.7}}.search-bar{width:100%;max-width:680px;margin:0 auto;display:flex;gap:10px;align-items:stretch}.search-bar__container{flex:1;position:relative;display:flex;align-items:center;background:var(--md-sys-color-surface);border:2px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-extra-large);height:54px;transition:border-color var(--duration-quick) ease,box-shadow var(--duration-quick) ease}.search-bar__container--focused{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 3px #0c8de91f}.search-bar__icon{position:absolute;left:18px;color:var(--md-sys-color-on-surface-variant);pointer-events:none;flex-shrink:0;transition:color var(--duration-quick) ease}.search-bar__container--focused .search-bar__icon{color:var(--md-sys-color-primary)}.search-bar__input{width:100%;height:100%;padding:0 44px 0 48px;font-size:1rem;font-weight:500;color:var(--md-sys-color-on-surface);background:transparent;border:none;outline:none}.search-bar__input::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:.55;font-weight:400}.search-bar__clear,.search-bar__spinner{position:absolute;right:14px;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.search-bar__clear{background:var(--md-sys-color-surface-container-high);color:var(--md-sys-color-on-surface-variant);border-radius:50%;cursor:pointer;border:none;padding:0;transition:all var(--duration-quick) ease}.search-bar__clear:hover{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.search-bar__spinner{color:var(--md-sys-color-primary)}.search-bar__submit{height:54px;padding:0 28px;background:var(--gradient-primary);color:#fff;font-size:.9375rem;font-weight:700;border-radius:var(--md-sys-shape-corner-extra-large);border:none;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-primary);transition:all var(--duration-quick) var(--spring-smooth)}.search-bar__submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--md-sys-elevation-4),var(--shadow-primary)}.search-bar__submit:active:not(:disabled){transform:translateY(0) scale(.97)}.search-bar__submit:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.search-bar__suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-large);box-shadow:var(--md-sys-elevation-4);list-style:none;margin:0;padding:6px;z-index:200;max-height:260px;overflow-y:auto;animation:fadeSlideIn var(--duration-quick) ease}.search-bar__suggestion{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;font-size:.9375rem;font-weight:500;color:var(--md-sys-color-on-surface);cursor:pointer;border-radius:var(--md-sys-shape-corner-medium);transition:background var(--duration-instant) ease}.search-bar__suggestion:hover,.search-bar__suggestion--selected{background:var(--md-sys-color-primary-container)}.search-bar__suggestion-hint{font-size:.6875rem;font-weight:600;color:var(--md-sys-color-primary);opacity:.7;background:var(--md-sys-color-surface-container);padding:2px 8px;border-radius:var(--md-sys-shape-corner-pill)}@media(max-width:480px){.search-bar{flex-direction:column}.search-bar__container{height:50px}.search-bar__submit{height:48px}}@media(prefers-reduced-motion:reduce){.search-bar__spinner svg{animation:none}}.sign-animator{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm, 8px)}.sign-animator__canvas{border-radius:var(--radius-lg, 16px);box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .15));background:var(--surface-container, #f5f5f5)}[data-theme=dark] .sign-animator__canvas{background:var(--surface-container, #1a1a2e)}.sign-animator__placeholder{display:flex;align-items:center;justify-content:center;background:var(--surface-container, #f5f5f5);color:var(--on-surface-variant, #666);border-radius:var(--radius-lg, 16px);font-size:.875rem}[data-theme=dark] .sign-animator__placeholder{background:var(--surface-container, #1a1a2e);color:var(--on-surface-variant, #aaa)}.sign-animator__main{position:relative;display:inline-block}.sign-animator__hand-zoom{position:absolute;bottom:8px;right:8px;border-radius:var(--radius-md, 12px);overflow:hidden;box-shadow:0 2px 8px #0003;border:2px solid var(--outline-variant, #ccc);background:var(--surface-container, #f5f5f5)}[data-theme=dark] .sign-animator__hand-zoom{border-color:var(--outline-variant, #444);background:var(--surface-container, #1a1a2e)}.sign-animator__hand-canvas{display:block}.sign-animator__info{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm, 8px)}.sign-animator__frame{font-size:.75rem;color:var(--on-surface-variant, #666);font-variant-numeric:tabular-nums}.sign-animator--small .sign-animator__canvas,.sign-animator--small .sign-animator__placeholder{width:200px;height:200px}.sign-animator--medium .sign-animator__canvas,.sign-animator--medium .sign-animator__placeholder{width:300px;height:300px}.sign-animator--large .sign-animator__canvas,.sign-animator--large .sign-animator__placeholder{width:400px;height:400px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sign-animator--loading .sign-animator__canvas{animation:pulse 1.5s ease-in-out infinite}@media(max-width:768px){.sign-animator__hand-zoom{bottom:4px;right:4px;border-width:1px}}@media(max-width:480px){.sign-animator--large .sign-animator__canvas,.sign-animator--large .sign-animator__placeholder{width:300px;height:300px}.sign-animator--medium .sign-animator__canvas,.sign-animator--medium .sign-animator__placeholder{width:250px;height:250px}.sign-animator--small .sign-animator__canvas,.sign-animator--small .sign-animator__placeholder{width:160px;height:160px}.sign-animator__hand-zoom{transform:scale(.8);transform-origin:bottom right}}@media(max-width:360px){.sign-animator--medium .sign-animator__canvas,.sign-animator--medium .sign-animator__placeholder{width:200px;height:200px}.sign-animator--small .sign-animator__canvas,.sign-animator--small .sign-animator__placeholder{width:140px;height:140px}.sign-animator__hand-zoom{display:none}}.sign-card{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-extra-large);overflow:hidden;transition:transform var(--duration-quick) var(--spring-smooth),box-shadow var(--duration-quick) ease}.sign-card__header{display:flex;align-items:center;gap:10px;padding:16px 20px;background:var(--md-sys-color-surface-container);border-bottom:1px solid var(--md-sys-color-outline-variant);position:relative}.sign-card__header:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-primary);border-radius:4px 4px 0 0}.sign-card__word{font-family:var(--md-sys-typescale-font-family-display);font-size:1.2rem;font-weight:800;color:var(--md-sys-color-primary);letter-spacing:.03em;margin:0}.sign-card__badge{font-size:.6875rem;font-weight:700;padding:3px 10px;background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);border-radius:var(--md-sys-shape-corner-pill)}.sign-card__body{padding:18px 20px;display:flex;flex-direction:column;gap:18px}.sign-card__anim{display:flex;align-items:flex-start;gap:14px;padding:14px;background:var(--md-sys-color-surface-container);border-radius:var(--md-sys-shape-corner-large);border:1px solid var(--md-sys-color-outline-variant)}.sign-card__play-btn{display:inline-flex;align-items:center;gap:5px;padding:8px 16px;background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--md-sys-shape-corner-pill);font-size:.8125rem;font-weight:700;cursor:pointer;white-space:nowrap;margin-top:6px;box-shadow:var(--shadow-primary);transition:all var(--duration-quick) var(--spring-smooth)}.sign-card__play-btn:hover{transform:translateY(-1px);box-shadow:var(--md-sys-elevation-3),var(--shadow-primary)}.sign-card__play-btn:active{transform:scale(.96)}.sign-card__fingerspell{padding:14px 16px;background:var(--md-sys-color-primary-container);border-radius:var(--md-sys-shape-corner-large)}.sign-card__fs-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.sign-card__fs-label{font-size:.6875rem;font-weight:700;color:var(--md-sys-color-on-primary-container);text-transform:uppercase;letter-spacing:.06em}.sign-card__fs-chips{display:flex;flex-wrap:wrap;gap:4px}.sign-card__fs-chip{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--md-sys-shape-corner-small);background:var(--md-sys-color-surface);color:var(--md-sys-color-primary);font-size:.9rem;font-weight:800;box-shadow:var(--md-sys-elevation-1)}.sign-card__fs-toggle{background:none;border:none;padding:2px 0;font-size:.75rem;font-weight:600;color:var(--md-sys-color-primary);cursor:pointer}.sign-card__fs-toggle:hover{text-decoration:underline}.sign-card__fs-guide{margin-top:12px;display:flex;flex-direction:column;gap:8px}.sign-card__fs-row{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:baseline}.sign-card__fs-row dt{font-size:1rem;font-weight:800;color:var(--md-sys-color-primary);text-align:center}.sign-card__fs-row dd{font-size:.875rem;color:var(--md-sys-color-on-surface);line-height:1.55;margin:0}.sign-card__details{display:flex;flex-direction:column;gap:12px;margin:0}.sign-card__detail{display:flex;gap:0;flex-direction:column}.sign-card__detail dt{font-size:.6875rem;font-weight:700;color:var(--md-sys-color-primary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.sign-card__detail dd{font-size:.9375rem;color:var(--md-sys-color-on-surface);line-height:1.55;margin:0}.sign-card__links{display:flex;gap:6px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--md-sys-color-outline-variant)}.sign-card__links a{display:inline-block;padding:6px 14px;background:var(--md-sys-color-surface-container);color:var(--md-sys-color-primary);text-decoration:none;border-radius:var(--md-sys-shape-corner-pill);font-size:.75rem;font-weight:700;border:1px solid var(--md-sys-color-outline-variant);transition:all var(--duration-quick) var(--spring-smooth)}.sign-card__links a:hover{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary);transform:translateY(-2px);box-shadow:var(--md-sys-elevation-2)}@media(min-width:600px){.sign-card__detail{flex-direction:row;gap:12px;align-items:baseline}.sign-card__detail dt{flex-shrink:0;width:85px;text-align:right;margin-bottom:0}}.sign-card__simple-desc{margin:0 0 .75rem;font-size:.925rem;line-height:1.55;color:var(--md-sys-color-on-surface)}.sign-card__expand-btn{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:8px;background:var(--md-sys-color-surface-container);color:var(--md-sys-color-primary);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-medium);font-size:.8125rem;font-weight:700;cursor:pointer;transition:all var(--duration-quick) ease}.sign-card__expand-btn:hover{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary)}.sign-card__chevron{transition:transform var(--duration-quick) var(--spring-smooth)}.sign-card__chevron--open{transform:rotate(180deg)}.sign-card__expanded{display:flex;flex-direction:column;gap:18px;animation:fadeSlideIn var(--duration-quick) ease}.sign-card__practice{display:flex;gap:8px;flex-wrap:wrap}.sign-card__practice-link{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--md-sys-shape-corner-pill);font-size:.8125rem;font-weight:700;text-decoration:none;transition:all var(--duration-quick) var(--spring-smooth)}.sign-card__practice-link--learn{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.sign-card__practice-link--learn:hover{transform:translateY(-2px);box-shadow:var(--shadow-secondary)}.sign-card__practice-link--camera{background:var(--md-sys-color-accent-violet-container);color:var(--md-sys-color-accent-violet)}.sign-card__practice-link--camera:hover{transform:translateY(-2px);box-shadow:var(--md-sys-elevation-2)}@media(max-width:480px){.sign-card__anim{flex-direction:column;align-items:center}}@media(prefers-reduced-motion:reduce){.sign-card{animation:none}.sign-card:hover{transform:none}.sign-card__expanded{animation:none}}.feedback-widget{margin-top:var(--spacing-2xl);padding:var(--spacing-xl);background:var(--md-sys-color-surface-container-high);border-radius:var(--md-sys-shape-corner-extra-large);text-align:center}.feedback-prompt{font-size:var(--md-sys-typescale-title-medium-size);font-weight:var(--md-sys-typescale-title-medium-weight);color:var(--md-sys-color-on-surface);margin-bottom:var(--spacing-lg)}.feedback-buttons{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}.feedback-button{padding:16px 32px;background:var(--md-sys-color-surface-container-highest);color:var(--md-sys-color-on-surface);border:2px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-large);font-size:var(--md-sys-typescale-label-large-size);font-weight:var(--md-sys-typescale-label-large-weight);display:flex;align-items:center;gap:var(--spacing-sm);transition:all var(--md-sys-motion-duration-short-4) var(--md-sys-motion-easing-emphasized);cursor:pointer;min-width:140px;justify-content:center}.feedback-button:hover:not(:disabled){transform:translateY(-2px) scale(1.02);box-shadow:var(--md-sys-elevation-2)}.feedback-button:active:not(:disabled){transform:translateY(0) scale(.98)}.feedback-button.thumbs-up:hover:not(:disabled){border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.feedback-button.thumbs-down:hover:not(:disabled){border-color:var(--md-sys-color-error);background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.feedback-button.selected.thumbs-up{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-color:var(--md-sys-color-primary);animation:bounce var(--md-sys-motion-duration-medium-2) var(--md-sys-motion-easing-emphasized)}.feedback-button.selected.thumbs-down{background:var(--md-sys-color-error);color:var(--md-sys-color-on-error);border-color:var(--md-sys-color-error);animation:bounce var(--md-sys-motion-duration-medium-2) var(--md-sys-motion-easing-emphasized)}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.feedback-button svg{transition:transform var(--md-sys-motion-duration-short-3) var(--md-sys-motion-easing-standard)}.feedback-button:hover:not(:disabled) svg{transform:scale(1.2)}.feedback-button.selected svg{animation:wiggle var(--md-sys-motion-duration-medium-3) var(--md-sys-motion-easing-emphasized)}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@media(max-width:480px){.feedback-buttons{flex-direction:column}.feedback-button{width:100%}}@media(prefers-reduced-motion:reduce){.feedback-button,.feedback-button svg{transition:none}.feedback-button.selected,.feedback-button.selected svg{animation:none}.feedback-button:hover:not(:disabled){transform:none}}.modal-backdrop{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg);animation:fadeIn var(--md-sys-motion-duration-medium-2) var(--md-sys-motion-easing-standard)}.modal-container{background:var(--md-sys-color-surface);border-radius:var(--md-sys-shape-corner-extra-large);box-shadow:var(--md-sys-elevation-5);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;animation:scaleIn var(--md-sys-motion-duration-medium-3) var(--md-sys-motion-easing-emphasized)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1px solid var(--md-sys-color-outline-variant)}.modal-title{font-size:var(--md-sys-typescale-headline-small-size);font-weight:var(--md-sys-typescale-headline-small-weight);color:var(--md-sys-color-on-surface);margin:0}.modal-close{background:transparent;color:var(--md-sys-color-on-surface-variant);padding:8px;border-radius:var(--md-sys-shape-corner-pill);display:flex;align-items:center;justify-content:center;transition:all var(--md-sys-motion-duration-short-2) var(--md-sys-motion-easing-standard)}.modal-close:hover:not(:disabled){background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface);transform:scale(1.1)}.modal-close:active:not(:disabled){transform:scale(.95)}.modal-body{padding:var(--spacing-xl)}.modal-description{font-size:var(--md-sys-typescale-body-large-size);color:var(--md-sys-color-on-surface-variant);margin-bottom:var(--spacing-lg);line-height:1.6}.query-display{background:var(--md-sys-color-surface-container);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--md-sys-shape-corner-medium);margin-bottom:var(--spacing-xl);border-left:4px solid var(--md-sys-color-primary)}.query-label{display:block;font-size:var(--md-sys-typescale-label-small-size);font-weight:var(--md-sys-typescale-label-small-weight);color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.query-text{display:block;font-size:var(--md-sys-typescale-body-medium-size);color:var(--md-sys-color-on-surface);font-style:italic}.form-group{margin-bottom:var(--spacing-xl)}.form-label{display:block;font-size:var(--md-sys-typescale-label-large-size);font-weight:var(--md-sys-typescale-label-large-weight);color:var(--md-sys-color-on-surface);margin-bottom:var(--spacing-sm)}.form-textarea{width:100%;padding:var(--spacing-md);font-family:inherit;font-size:var(--md-sys-typescale-body-medium-size);color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface-container-highest);border:2px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-medium);resize:vertical;transition:all var(--md-sys-motion-duration-short-4) var(--md-sys-motion-easing-standard)}.form-textarea:focus{border-color:var(--md-sys-color-primary);outline:none;box-shadow:0 0 0 3px #0f83d71a}.form-textarea::placeholder{color:var(--md-sys-color-on-surface-variant);opacity:.6}.char-count{display:block;text-align:right;font-size:var(--md-sys-typescale-label-small-size);color:var(--md-sys-color-on-surface-variant);margin-top:4px}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end}.button-primary,.button-secondary{padding:14px 24px;font-size:var(--md-sys-typescale-label-large-size);font-weight:var(--md-sys-typescale-label-large-weight);border-radius:var(--md-sys-shape-corner-large);transition:all var(--md-sys-motion-duration-short-4) var(--md-sys-motion-easing-emphasized);cursor:pointer}.button-primary{background:var(--gradient-ocean);color:var(--md-sys-color-on-primary);border:none;box-shadow:var(--shadow-ocean)}.button-primary:hover:not(:disabled){box-shadow:var(--md-sys-elevation-3);transform:translateY(-2px)}.button-primary:active:not(:disabled){transform:translateY(0)}.button-primary:disabled{opacity:.38;cursor:not-allowed;box-shadow:none}.button-secondary{background:transparent;color:var(--md-sys-color-primary);border:2px solid var(--md-sys-color-outline)}.button-secondary:hover:not(:disabled){background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary);transform:translateY(-2px)}.button-secondary:active:not(:disabled){transform:translateY(0)}@media(max-width:768px){.modal-container{max-height:95vh}.modal-header,.modal-body{padding:var(--spacing-lg)}.modal-actions{flex-direction:column-reverse}.button-primary,.button-secondary{width:100%}}@media(prefers-reduced-motion:reduce){.modal-backdrop,.modal-container{animation:none}.button-primary:hover:not(:disabled),.button-secondary:hover:not(:disabled),.modal-close:hover:not(:disabled){transform:none}}.loading-state{text-align:center;padding:var(--spacing-4xl) var(--spacing-lg)}.loading-animation{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:var(--spacing-xl)}.wave{width:16px;height:60px;border-radius:var(--md-sys-shape-corner-pill);animation:wave 1.2s ease-in-out infinite}.wave-1{background:var(--md-sys-color-primary);animation-delay:0s}.wave-2{background:var(--md-sys-color-secondary);animation-delay:.2s}.wave-3{background:var(--md-sys-color-tertiary);animation-delay:.4s}@keyframes wave{0%,to{transform:scaleY(.5);opacity:.5}50%{transform:scaleY(1);opacity:1}}.loading-text{font-size:var(--md-sys-typescale-title-large-size);font-weight:var(--md-sys-typescale-title-large-weight);color:var(--md-sys-color-on-surface);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.loading-steps{display:flex;justify-content:center;gap:8px;margin-top:var(--spacing-md)}.loading-step-dot{width:8px;height:8px;border-radius:50%;background:var(--md-sys-color-outline-variant);transition:background .4s ease,transform .4s ease}.loading-step-dot--active{background:var(--md-sys-color-primary);transform:scale(1.25)}@media(prefers-reduced-motion:reduce){.wave,.loading-text{animation:none}.wave{opacity:1;transform:scaleY(1)}.loading-text{opacity:1}}.search-history{max-width:840px;margin:var(--spacing-xl) auto var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-lg)}.history-section{background:transparent;border-radius:var(--md-sys-shape-corner-extra-large);padding:0;box-shadow:none}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.section-title{font-size:var(--md-sys-typescale-title-medium-size);font-weight:600;color:var(--md-sys-color-on-surface-variant);display:flex;align-items:center;gap:var(--spacing-sm)}.clear-history{font-size:var(--md-sys-typescale-label-medium-size);color:var(--md-sys-color-error);padding:8px 16px;border-radius:var(--md-sys-shape-corner-full);transition:all var(--md-sys-motion-duration-short-2) var(--md-sys-motion-easing-standard);font-weight:500}.clear-history:hover{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.history-items{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.history-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:12px 20px;background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-large);font-size:var(--md-sys-typescale-body-large-size);transition:all var(--md-sys-motion-duration-short-3) var(--md-sys-motion-easing-emphasized);cursor:pointer}.history-item:hover{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary);transform:translateY(-2px);box-shadow:var(--md-sys-elevation-1)}.history-item:active{transform:translateY(0)}.favorite-item{background:var(--md-sys-color-secondary-container);border-color:var(--md-sys-color-secondary)}.favorite-item:hover{background:var(--md-sys-color-secondary);color:var(--md-sys-color-on-secondary)}.item-text{flex:1}.favorite-toggle,.remove-favorite{display:flex;align-items:center;justify-content:center;padding:4px;border-radius:var(--md-sys-shape-corner-pill);color:var(--md-sys-color-on-surface-variant);transition:all var(--md-sys-motion-duration-short-2) var(--md-sys-motion-easing-standard)}.favorite-toggle:hover,.remove-favorite:hover{background:#0000001a;transform:scale(1.1)}.favorite-toggle.is-favorite{color:var(--md-sys-color-secondary)}@media(max-width:768px){.history-items{flex-direction:column}.history-item{width:100%}}@media(prefers-reduced-motion:reduce){.history-item:hover,.favorite-toggle:hover,.remove-favorite:hover{transform:none}}.action-buttons{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap;margin-bottom:var(--spacing-xl);position:relative}.action-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:12px 20px;background:var(--md-sys-color-surface-container-highest);color:var(--md-sys-color-on-surface);border:2px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-large);font-size:var(--md-sys-typescale-label-large-size);font-weight:var(--md-sys-typescale-label-large-weight);transition:all var(--md-sys-motion-duration-short-3) var(--md-sys-motion-easing-emphasized);cursor:pointer}.action-button:hover{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary);transform:translateY(-2px);box-shadow:var(--md-sys-elevation-2)}.action-button:active{transform:translateY(0)}.action-button.is-favorite{background:var(--md-sys-color-secondary-container);border-color:var(--md-sys-color-secondary);color:var(--md-sys-color-on-secondary-container)}.action-button.is-favorite:hover{background:var(--md-sys-color-secondary);color:var(--md-sys-color-on-secondary)}.copy-success{position:absolute;bottom:-40px;left:50%;transform:translate(-50%);background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);padding:8px 16px;border-radius:var(--md-sys-shape-corner-pill);font-size:var(--md-sys-typescale-label-medium-size);box-shadow:var(--md-sys-elevation-3);animation:fadeInOut 3s ease-in-out;white-space:nowrap}@keyframes fadeInOut{0%,to{opacity:0;transform:translate(-50%) translateY(-10px)}10%,90%{opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:480px){.action-buttons{flex-direction:column}.action-button{width:100%;justify-content:center}}@media print{.action-buttons{display:none}}@media(prefers-reduced-motion:reduce){.action-button:hover{transform:none}.copy-success{animation:none;opacity:1}}.rate-limit-banner{position:sticky;top:0;z-index:100;padding:var(--spacing-md, 12px) var(--spacing-lg, 20px);border-bottom:2px solid var(--md-sys-color-outline-variant);animation:slideDown var(--duration-smooth) var(--spring-bounce);box-shadow:var(--md-sys-elevation-1)}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.rate-limit-banner.status-good{background:linear-gradient(135deg,var(--md-sys-color-success-container) 0%,hsl(174,62%,85%) 100%);color:var(--md-sys-color-on-success-container);border-bottom-color:var(--md-sys-color-success)}[data-theme=dark] .rate-limit-banner.status-good{background:linear-gradient(135deg,var(--md-sys-color-success-container) 0%,hsl(174,70%,15%) 100%)}.rate-limit-banner.status-warning{background:linear-gradient(135deg,var(--md-sys-color-warning-container) 0%,hsl(40,90%,85%) 100%);color:var(--md-sys-color-on-warning-container);border-bottom-color:var(--md-sys-color-warning)}[data-theme=dark] .rate-limit-banner.status-warning{background:linear-gradient(135deg,var(--md-sys-color-warning-container) 0%,hsl(40,90%,15%) 100%)}.rate-limit-banner.status-critical{background:linear-gradient(135deg,var(--md-sys-color-error-container) 0%,hsl(0,72%,85%) 100%);color:var(--md-sys-color-on-error-container);border-bottom-color:var(--md-sys-color-error)}[data-theme=dark] .rate-limit-banner.status-critical{background:linear-gradient(135deg,var(--md-sys-color-error-container) 0%,hsl(0,80%,15%) 100%)}.banner-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:var(--spacing-md, 12px);flex-wrap:wrap}.banner-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.banner-text{flex:1;min-width:250px;font-size:var(--md-sys-typescale-body-medium-size, 14px);line-height:var(--md-sys-typescale-body-medium-line-height, 1.5)}.banner-text strong{font-weight:var(--md-sys-typescale-label-large-weight, 600)}.banner-action{padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border-radius:var(--md-sys-shape-corner-large, 8px);border:none;font-size:var(--md-sys-typescale-label-medium-size, 13px);font-weight:var(--md-sys-typescale-label-large-weight, 600);cursor:pointer;white-space:nowrap;transition:transform var(--duration-smooth) var(--spring-bounce),box-shadow var(--duration-quick) ease}.status-good .banner-action{background:var(--md-sys-color-success);color:var(--md-sys-color-on-success)}.status-warning .banner-action{background:var(--md-sys-color-warning);color:var(--md-sys-color-on-warning)}.status-critical .banner-action{background:var(--md-sys-color-error);color:var(--md-sys-color-on-error)}.banner-action:hover{transform:translateY(-2px) scale(1.02);box-shadow:var(--md-sys-elevation-2)}.banner-action:active{transform:translateY(0) scale(.98);transition:all var(--duration-instant) var(--spring-gentle)}@media(max-width:640px){.rate-limit-banner{padding:var(--spacing-sm, 10px) var(--spacing-md, 16px)}.banner-content{gap:var(--spacing-sm, 8px)}.banner-text{font-size:var(--md-sys-typescale-body-small-size, 13px);min-width:200px}.banner-action{width:100%;padding:var(--spacing-sm, 10px) var(--spacing-md, 16px)}}@media(prefers-reduced-motion:reduce){.rate-limit-banner{animation:none}.banner-action{transition:none}.banner-action:hover,.banner-action:active{transform:none}}.sentence-animator{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;background:var(--md-sys-color-surface-container);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-extra-large)}.sentence-animator__header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.sentence-animator__title{font-size:.6875rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--md-sys-color-primary);margin:0}.sentence-animator__status{font-size:.75rem;font-weight:600;color:var(--md-sys-color-on-surface-variant);font-variant-numeric:tabular-nums}.sentence-animator__words{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:100%}.sentence-animator__word-chip{padding:5px 14px;border-radius:var(--md-sys-shape-corner-pill);font-size:.8125rem;font-weight:600;border:1.5px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface-variant);transition:all var(--duration-quick) var(--spring-smooth);cursor:default}.sentence-animator__word-chip--active{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-color:var(--md-sys-color-primary);transform:scale(1.08);box-shadow:var(--shadow-primary)}.sentence-animator__word-chip--done{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container);border-color:var(--md-sys-color-primary-container)}.sentence-animator__word-chip--skipped{opacity:.45;text-decoration:line-through}.sentence-animator__canvas-area{position:relative;display:flex;align-items:center;justify-content:center;min-height:200px}.sentence-animator__no-data{display:flex;align-items:center;justify-content:center;width:300px;height:300px;background:var(--md-sys-color-surface);border-radius:var(--md-sys-shape-corner-large);color:var(--md-sys-color-on-surface-variant);font-size:.875rem;font-weight:600}.sentence-animator__progress{width:100%;display:flex;flex-direction:column;gap:4px}.sentence-animator__progress-bar{width:100%;height:6px;background:var(--md-sys-color-surface-container-high);border-radius:var(--md-sys-shape-corner-pill);overflow:hidden}.sentence-animator__progress-fill{height:100%;background:var(--gradient-primary);border-radius:var(--md-sys-shape-corner-pill);transition:width var(--duration-quick) var(--spring-smooth)}.sentence-animator__controls{display:flex;align-items:center;gap:10px}.sentence-animator__btn{display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--md-sys-shape-corner-pill);cursor:pointer;font-weight:700;font-size:.8125rem;transition:all var(--duration-quick) var(--spring-smooth)}.sentence-animator__btn:active{transform:scale(.94)}.sentence-animator__btn--play{width:48px;height:48px;background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-primary)}.sentence-animator__btn--play:hover{transform:translateY(-2px);box-shadow:var(--md-sys-elevation-3),var(--shadow-primary)}.sentence-animator__btn--play:active{transform:scale(.94)}.sentence-animator__btn--secondary{width:36px;height:36px;background:var(--md-sys-color-surface);color:var(--md-sys-color-primary);border:1.5px solid var(--md-sys-color-outline-variant)}.sentence-animator__btn--secondary:hover{border-color:var(--md-sys-color-primary);transform:translateY(-1px);box-shadow:var(--md-sys-elevation-1)}.sentence-animator__loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;color:var(--md-sys-color-on-surface-variant);font-size:.8125rem;font-weight:600}@keyframes sentenceAnimatorSpin{to{transform:rotate(360deg)}}.sentence-animator__spinner{width:18px;height:18px;border:2px solid var(--md-sys-color-outline-variant);border-top-color:var(--md-sys-color-primary);border-radius:50%;animation:sentenceAnimatorSpin .8s linear infinite}@media(max-width:768px){.sentence-animator{padding:18px;gap:12px}.sentence-animator__word-chip{padding:4px 10px;font-size:.75rem}}@media(max-width:480px){.sentence-animator{padding:14px}.sentence-animator__btn--play{width:42px;height:42px}.sentence-animator__btn--secondary{width:32px;height:32px}}.dictionary-page{display:flex;flex-direction:column;gap:28px}.dictionary-page__search{text-align:center;padding:12px 0 8px}.dictionary-page__title{font-family:var(--md-sys-typescale-font-family-display);font-size:2rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 6px;letter-spacing:-.02em}.dictionary-page__subtitle{font-size:.95rem;color:var(--md-sys-color-on-surface-variant);margin:0 0 24px}.error-card{padding:28px;background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container);border-radius:var(--md-sys-shape-corner-large);animation:fadeSlideUp var(--duration-smooth) var(--spring-smooth)}.error-card__title{font-size:1.15rem;font-weight:700;margin:0 0 8px}.error-card__text{margin:0 0 8px;font-size:.95rem}.error-card__hint{font-size:.875rem;opacity:.85;margin:0 0 18px}.error-card__retry{padding:10px 24px;background:var(--md-sys-color-error);color:var(--md-sys-color-on-error);border:none;border-radius:var(--md-sys-shape-corner-medium);font-weight:700;cursor:pointer;font-size:.875rem}.results-header{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.results-header__title{font-size:1.35rem;font-weight:700;color:var(--md-sys-color-on-surface);margin:0}.results-header__count{font-size:.8125rem;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-primary-container);padding:3px 10px;border-radius:var(--md-sys-shape-corner-pill);font-weight:600;margin:0}.gloss-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;background:var(--md-sys-color-primary-container);border-radius:var(--md-sys-shape-corner-large)}.gloss-bar__label{font-size:.6875rem;font-weight:700;color:var(--md-sys-color-on-primary-container);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0}.gloss-bar__sequence{display:flex;flex-wrap:wrap;gap:5px;flex:1}.gloss-token{display:inline-block;padding:4px 10px;background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);border-radius:var(--md-sys-shape-corner-small);font-size:.8rem;font-weight:700;font-family:Roboto Mono,Courier New,monospace}.gloss-token--fs{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.gloss-bar__copy{flex-shrink:0;padding:5px 14px;border:1px solid var(--md-sys-color-outline);background:var(--md-sys-color-surface);color:var(--md-sys-color-primary);border-radius:var(--md-sys-shape-corner-pill);font-size:.75rem;font-weight:700;cursor:pointer;transition:all var(--duration-quick) ease}.gloss-bar__copy:hover{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-primary);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.signs-list{display:flex;flex-direction:column;gap:16px}.grammar-note{padding:18px 22px;background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);border-radius:var(--md-sys-shape-corner-large);border-left:4px solid var(--md-sys-color-secondary);animation:fadeSlideIn var(--duration-smooth) ease backwards;animation-delay:.2s}.grammar-note__title{font-size:.75rem;font-weight:700;margin:0 0 8px;text-transform:uppercase;letter-spacing:.06em}.grammar-note__text{font-size:.95rem;margin:0;line-height:1.65}.quick-tries{text-align:center;animation:fadeSlideIn var(--duration-smooth) ease backwards;animation-delay:.1s}.quick-tries__label{font-size:.8125rem;font-weight:700;color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px}.quick-tries__chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.quick-tries__chip{padding:8px 18px;background:var(--md-sys-color-surface);color:var(--md-sys-color-primary);border:1.5px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-pill);font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--duration-quick) var(--spring-smooth)}.quick-tries__chip:hover{background:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary);transform:translateY(-2px);box-shadow:var(--shadow-primary)}.quick-tries__chip:active{transform:scale(.96)}.feature-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;animation:fadeSlideUp var(--duration-smooth) ease backwards;animation-delay:.2s}.feature-card{display:flex;align-items:center;gap:14px;padding:20px;border-radius:var(--md-sys-shape-corner-extra-large);text-decoration:none;border:1px solid var(--md-sys-color-outline-variant);transition:all var(--duration-quick) var(--spring-smooth);position:relative;overflow:hidden}.feature-card--learn{background:linear-gradient(135deg,#e8f4fc,#e2f8f6);color:var(--md-sys-color-on-surface)}.feature-card--camera{background:linear-gradient(135deg,#f2ebf9,#e1effa);color:var(--md-sys-color-on-surface)}[data-theme=dark] .feature-card--learn{background:linear-gradient(135deg,#0f2a3d,#15322f)}[data-theme=dark] .feature-card--camera{background:linear-gradient(135deg,#291839,#132939)}.feature-card:hover{transform:translateY(-4px);box-shadow:var(--md-sys-elevation-3);border-color:transparent}.feature-card__icon{flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:var(--md-sys-shape-corner-large);color:var(--md-sys-color-primary)}.feature-card--learn .feature-card__icon{background:var(--md-sys-color-primary-container)}.feature-card--camera .feature-card__icon{background:var(--md-sys-color-accent-violet-container);color:var(--md-sys-color-accent-violet)}.feature-card__content{flex:1;min-width:0}.feature-card__title{font-family:var(--md-sys-typescale-font-family-display);font-size:1.05rem;font-weight:800;margin:0 0 4px;color:var(--md-sys-color-on-surface)}.feature-card__desc{font-size:.8125rem;color:var(--md-sys-color-on-surface-variant);margin:0;line-height:1.45}.feature-card__arrow{font-size:1.25rem;color:var(--md-sys-color-primary);flex-shrink:0;transition:transform var(--duration-quick) var(--spring-bounce)}.feature-card:hover .feature-card__arrow{transform:translate(4px)}.sign-categories{animation:fadeSlideUp var(--duration-smooth) ease backwards;animation-delay:.3s}.sign-categories__title{font-family:var(--md-sys-typescale-font-family-display);font-size:1.2rem;font-weight:800;color:var(--md-sys-color-on-surface);margin:0 0 14px}.sign-categories__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.category-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-large);cursor:pointer;transition:all var(--duration-quick) var(--spring-smooth)}.category-card:hover{transform:translateY(-3px);box-shadow:var(--md-sys-elevation-2);border-color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container)}.category-card__emoji{font-size:1.75rem}.category-card__name{font-size:.875rem;font-weight:700;color:var(--md-sys-color-on-surface)}.category-card__count{font-size:.6875rem;color:var(--md-sys-color-on-surface-variant);font-weight:600}.onboarding-callout{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);border-radius:var(--md-sys-shape-corner-large);border-left:4px solid var(--md-sys-color-secondary);animation:fadeSlideIn var(--duration-smooth) ease}.onboarding-callout__content{flex:1}.onboarding-callout__title{font-family:var(--md-sys-typescale-font-family-display);font-size:1rem;font-weight:800;margin:0 0 4px}.onboarding-callout__text{font-size:.875rem;line-height:1.55;margin:0}.onboarding-callout__text a{color:var(--md-sys-color-primary);font-weight:700;text-decoration:underline;text-underline-offset:2px}.onboarding-callout__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;color:var(--md-sys-color-on-secondary-container);border-radius:50%;cursor:pointer;opacity:.6;transition:opacity var(--duration-quick) ease}.onboarding-callout__close:hover{opacity:1}.sign-of-day{padding:20px;background:linear-gradient(135deg,#e8f4fc,#e3f7f5);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-extra-large);animation:fadeSlideUp var(--duration-smooth) ease backwards;animation-delay:50ms}[data-theme=dark] .sign-of-day{background:linear-gradient(135deg,#102737,#162d2a)}.sign-of-day__header{margin-bottom:14px}.sign-of-day__badge{font-size:.6875rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container);padding:4px 12px;border-radius:var(--md-sys-shape-corner-pill)}.sign-of-day__content{display:flex;align-items:center;gap:18px}.sign-of-day__anim{flex-shrink:0;width:120px;height:120px;border-radius:var(--md-sys-shape-corner-large);overflow:hidden;background:var(--md-sys-color-surface);display:flex;align-items:center;justify-content:center}.sign-of-day__info{flex:1;display:flex;flex-direction:column;gap:10px}.sign-of-day__name{font-family:var(--md-sys-typescale-font-family-display);font-size:1.5rem;font-weight:800;color:var(--md-sys-color-on-surface);margin:0}.sign-of-day__actions{display:flex;gap:8px}.sign-of-day__play,.sign-of-day__search{padding:8px 18px;border:none;border-radius:var(--md-sys-shape-corner-pill);font-size:.8125rem;font-weight:700;cursor:pointer;transition:all var(--duration-quick) var(--spring-smooth)}.sign-of-day__play{background:var(--md-sys-color-surface);color:var(--md-sys-color-primary);border:1.5px solid var(--md-sys-color-outline-variant)}.sign-of-day__play:hover{border-color:var(--md-sys-color-primary);transform:translateY(-1px)}.sign-of-day__search{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-primary)}.sign-of-day__search:hover{transform:translateY(-1px);box-shadow:var(--md-sys-elevation-3),var(--shadow-primary)}.learn-progress{display:flex;align-items:center;gap:16px;padding:18px 22px;background:var(--md-sys-color-surface);border:1.5px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-extra-large);text-decoration:none;transition:all var(--duration-quick) var(--spring-smooth);animation:fadeSlideUp var(--duration-smooth) ease backwards;animation-delay:.15s}.learn-progress:hover{transform:translateY(-3px);box-shadow:var(--md-sys-elevation-3);border-color:var(--md-sys-color-primary)}.learn-progress__stats{display:flex;gap:20px;flex:1}.learn-progress__stat{display:flex;flex-direction:column;align-items:center;gap:2px}.learn-progress__value{font-family:var(--md-sys-typescale-font-family-display);font-size:1.35rem;font-weight:800;color:var(--md-sys-color-primary)}.learn-progress__label{font-size:.6875rem;font-weight:700;color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:.04em}.learn-progress__cta{font-size:.875rem;font-weight:700;color:var(--md-sys-color-primary);white-space:nowrap}.follow-up{text-align:center;padding-top:12px;border-top:1px solid var(--md-sys-color-outline-variant);animation:fadeSlideIn var(--duration-smooth) ease backwards;animation-delay:.3s}.follow-up__label{font-size:.8125rem;font-weight:700;color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px}.follow-up__chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}@media(max-width:768px){.dictionary-page__title{font-size:1.65rem}.feature-cards{grid-template-columns:1fr}.sign-categories__grid{grid-template-columns:repeat(2,1fr)}.sign-of-day__content{flex-direction:column;align-items:flex-start}.sign-of-day__anim{width:100px;height:100px}}@media(max-width:480px){.feature-card{padding:16px}.feature-card__icon{width:44px;height:44px}.learn-progress__stats{gap:14px}.learn-progress{flex-direction:column;text-align:center}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl, 32px);background:var(--blob-primary),var(--blob-secondary),linear-gradient(135deg,hsla(0,70%,95%,.9) 0%,var(--md-sys-color-surface) 50%,hsla(205,80%,95%,.9) 100%)}[data-theme=dark] .error-boundary{background:var(--blob-primary),var(--blob-secondary),linear-gradient(135deg,hsla(0,40%,15%,1) 0%,var(--md-sys-color-surface) 50%,hsla(215,35%,14%,1) 100%)}.error-boundary__content{background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur-light);-webkit-backdrop-filter:var(--glass-blur-light);border:2px solid var(--glass-border);border-radius:var(--shape-asymmetric-2);padding:var(--spacing-2xl, 48px);max-width:500px;width:100%;text-align:center;box-shadow:var(--shadow-primary);position:relative;overflow:hidden}.error-boundary__content:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--md-sys-color-error),hsl(0,70%,60%),var(--md-sys-color-error));opacity:.8}.error-boundary__icon{font-size:4rem;margin-bottom:var(--spacing-lg, 24px);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.error-boundary__title{font-size:var(--md-sys-typescale-headline-medium-size, 2rem);font-weight:var(--md-sys-typescale-headline-medium-weight, 600);color:var(--md-sys-color-error);margin:0 0 var(--spacing-md, 16px) 0}.error-boundary__message{font-size:var(--md-sys-typescale-body-large-size, 1rem);color:var(--md-sys-color-on-surface-variant);margin:0 0 var(--spacing-xl, 32px) 0;line-height:1.6}.error-boundary__details{margin-bottom:var(--spacing-xl, 32px);text-align:left}.error-boundary__details summary{cursor:pointer;color:var(--md-sys-color-on-surface-variant);font-size:var(--md-sys-typescale-body-small-size, .875rem);padding:var(--spacing-sm, 8px);border-radius:var(--md-sys-shape-corner-small);transition:background-color var(--duration-quick) ease}.error-boundary__details summary:hover{background:var(--md-sys-color-surface-container-highest)}.error-boundary__stack{background:var(--md-sys-color-surface-container);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-sys-shape-corner-small);padding:var(--spacing-md, 16px);font-size:var(--md-sys-typescale-body-small-size, .75rem);font-family:monospace;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:var(--md-sys-color-error);max-height:200px;margin-top:var(--spacing-sm, 8px)}.error-boundary__actions{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.error-boundary__btn{padding:var(--spacing-md, 12px) var(--spacing-lg, 24px);border-radius:var(--md-sys-shape-corner-pill);font-size:var(--md-sys-typescale-label-large-size, 1rem);font-weight:var(--md-sys-typescale-label-large-weight, 600);cursor:pointer;transition:transform var(--duration-smooth) var(--spring-bounce),box-shadow var(--duration-smooth) ease}.error-boundary__btn:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.error-boundary__btn--primary{background:var(--gradient-ocean);color:var(--md-sys-color-on-primary);border:none;box-shadow:var(--shadow-primary)}.error-boundary__btn--primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:var(--shadow-ocean)}.error-boundary__btn--secondary{background:var(--glass-bg);color:var(--md-sys-color-primary);border:1px solid var(--glass-border)}.error-boundary__btn--secondary:hover{background:var(--md-sys-color-primary-container);border-color:#259df480;transform:translateY(-1px)}.error-boundary__btn--tertiary{background:transparent;color:var(--md-sys-color-on-surface-variant);border:none}.error-boundary__btn--tertiary:hover{color:var(--md-sys-color-on-surface);background:var(--glass-bg)}@media(max-width:480px){.error-boundary{padding:var(--spacing-md, 16px)}.error-boundary__content{padding:var(--spacing-xl, 32px) var(--spacing-lg, 24px)}.error-boundary__icon{font-size:3rem}.error-boundary__title{font-size:var(--md-sys-typescale-headline-small-size, 1.5rem)}}@media(prefers-reduced-motion:reduce){.error-boundary__icon{animation:none}.error-boundary__btn{transition:none}.error-boundary__btn:hover{transform:none}}:root{--md-sys-color-primary: hsl(205, 87%, 45%);--md-sys-color-primary-container: hsl(205, 80%, 90%);--md-sys-color-on-primary: hsl(0, 0%, 100%);--md-sys-color-on-primary-container: hsl(205, 87%, 15%);--md-sys-color-secondary: hsl(174, 62%, 47%);--md-sys-color-secondary-container: hsl(174, 55%, 90%);--md-sys-color-on-secondary: hsl(0, 0%, 100%);--md-sys-color-on-secondary-container: hsl(174, 62%, 15%);--md-sys-color-tertiary: hsl(220, 70%, 38%);--md-sys-color-tertiary-container: hsl(220, 60%, 88%);--md-sys-color-on-tertiary: hsl(0, 0%, 100%);--md-sys-color-on-tertiary-container: hsl(220, 70%, 12%);--md-sys-color-surface: hsl(210, 30%, 99%);--md-sys-color-surface-variant: hsl(205, 25%, 95%);--md-sys-color-surface-container: hsl(205, 30%, 96%);--md-sys-color-surface-container-high: hsl(205, 28%, 93%);--md-sys-color-surface-container-highest: hsl(205, 25%, 90%);--md-sys-color-on-surface: hsl(210, 20%, 12%);--md-sys-color-on-surface-variant: hsl(210, 12%, 38%);--md-sys-color-background: hsl(205, 35%, 97%);--md-sys-color-on-background: hsl(210, 15%, 10%);--md-sys-color-error: hsl(0, 72%, 51%);--md-sys-color-error-container: hsl(0, 60%, 92%);--md-sys-color-on-error: hsl(0, 0%, 100%);--md-sys-color-on-error-container: hsl(0, 72%, 15%);--md-sys-color-outline: hsl(210, 10%, 65%);--md-sys-color-outline-variant: hsl(205, 18%, 85%);--md-sys-color-inverse-surface: hsl(210, 18%, 18%);--md-sys-color-inverse-on-surface: hsl(210, 18%, 95%);--md-sys-color-inverse-primary: hsl(205, 80%, 75%);--md-sys-color-warning: hsl(40, 90%, 50%);--md-sys-color-warning-container: hsl(40, 75%, 90%);--md-sys-color-on-warning: hsl(40, 90%, 10%);--md-sys-color-on-warning-container: hsl(40, 90%, 20%);--md-sys-color-success: var(--md-sys-color-secondary);--md-sys-color-success-container: var(--md-sys-color-secondary-container);--md-sys-color-on-success: var(--md-sys-color-on-secondary);--md-sys-color-on-success-container: var(--md-sys-color-on-secondary-container);--md-sys-color-accent-coral: hsl(12, 85%, 60%);--md-sys-color-accent-coral-container: hsl(12, 80%, 92%);--md-sys-color-accent-gold: hsl(45, 92%, 55%);--md-sys-color-accent-gold-container: hsl(45, 85%, 90%);--md-sys-color-accent-violet: hsl(270, 65%, 58%);--md-sys-color-accent-violet-container: hsl(270, 55%, 92%);--gradient-primary: linear-gradient(135deg, hsl(205, 90%, 48%) 0%, hsl(174, 65%, 44%) 100%);--gradient-warm: linear-gradient(135deg, hsl(205, 85%, 50%) 0%, hsl(220, 72%, 42%) 100%);--md-sys-typescale-font-family: "Nunito", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--md-sys-typescale-font-family-display: "Nunito", -apple-system, BlinkMacSystemFont, sans-serif;--md-sys-typescale-display-large-size: 3.5rem;--md-sys-typescale-display-large-weight: 800;--md-sys-typescale-display-large-line-height: 1.1;--md-sys-typescale-display-large-letter-spacing: -.03em;--md-sys-typescale-display-medium-size: 2.75rem;--md-sys-typescale-display-medium-weight: 800;--md-sys-typescale-display-medium-line-height: 1.15;--md-sys-typescale-display-medium-letter-spacing: -.02em;--md-sys-typescale-display-small-size: 2.25rem;--md-sys-typescale-display-small-weight: 700;--md-sys-typescale-display-small-line-height: 1.2;--md-sys-typescale-display-small-letter-spacing: -.02em;--md-sys-typescale-headline-large-size: 1.75rem;--md-sys-typescale-headline-large-weight: 700;--md-sys-typescale-headline-large-line-height: 1.25;--md-sys-typescale-headline-large-letter-spacing: -.01em;--md-sys-typescale-headline-medium-size: 1.5rem;--md-sys-typescale-headline-medium-weight: 700;--md-sys-typescale-headline-medium-line-height: 1.3;--md-sys-typescale-headline-small-size: 1.25rem;--md-sys-typescale-headline-small-weight: 700;--md-sys-typescale-headline-small-line-height: 1.35;--md-sys-typescale-title-large-size: 1.25rem;--md-sys-typescale-title-large-weight: 700;--md-sys-typescale-title-large-line-height: 1.4;--md-sys-typescale-title-medium-size: 1.0625rem;--md-sys-typescale-title-medium-weight: 600;--md-sys-typescale-title-medium-line-height: 1.45;--md-sys-typescale-title-small-size: .9375rem;--md-sys-typescale-title-small-weight: 600;--md-sys-typescale-title-small-line-height: 1.5;--md-sys-typescale-body-large-size: 1.0625rem;--md-sys-typescale-body-large-weight: 400;--md-sys-typescale-body-large-line-height: 1.6;--md-sys-typescale-body-medium-size: .9375rem;--md-sys-typescale-body-medium-weight: 400;--md-sys-typescale-body-medium-line-height: 1.6;--md-sys-typescale-body-small-size: .8125rem;--md-sys-typescale-body-small-weight: 400;--md-sys-typescale-body-small-line-height: 1.5;--md-sys-typescale-label-large-size: .9375rem;--md-sys-typescale-label-large-weight: 600;--md-sys-typescale-label-large-line-height: 1.4;--md-sys-typescale-label-medium-size: .8125rem;--md-sys-typescale-label-medium-weight: 600;--md-sys-typescale-label-medium-line-height: 1.4;--md-sys-typescale-label-small-size: .6875rem;--md-sys-typescale-label-small-weight: 600;--md-sys-typescale-label-small-line-height: 1.4;--md-sys-shape-corner-none: 0px;--md-sys-shape-corner-extra-small: 6px;--md-sys-shape-corner-small: 10px;--md-sys-shape-corner-medium: 16px;--md-sys-shape-corner-large: 24px;--md-sys-shape-corner-extra-large: 32px;--md-sys-shape-corner-pill: 999px;--md-sys-elevation-0: none;--md-sys-elevation-1: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .08);--md-sys-elevation-2: 0 3px 8px rgba(0, 0, 0, .08), 0 1px 3px rgba(0, 0, 0, .1);--md-sys-elevation-3: 0 6px 16px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .12);--md-sys-elevation-4: 0 10px 28px rgba(0, 0, 0, .12), 0 4px 10px rgba(0, 0, 0, .14);--md-sys-elevation-5: 0 18px 48px rgba(0, 0, 0, .14), 0 8px 18px rgba(0, 0, 0, .16);--shadow-primary: 0 4px 14px hsla(205, 90%, 48%, .25), 0 2px 6px hsla(205, 90%, 48%, .12);--shadow-secondary: 0 4px 14px hsla(174, 65%, 44%, .2), 0 2px 6px hsla(174, 65%, 44%, .1);--md-sys-motion-duration-short-1: 50ms;--md-sys-motion-duration-short-2: .1s;--md-sys-motion-duration-short-3: .15s;--md-sys-motion-duration-short-4: .2s;--md-sys-motion-duration-medium-1: .25s;--md-sys-motion-duration-medium-2: .3s;--md-sys-motion-duration-medium-3: .35s;--md-sys-motion-duration-medium-4: .4s;--md-sys-motion-easing-standard: cubic-bezier(.4, 0, .2, 1);--md-sys-motion-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--spacing-4xl: 6rem;--glass-bg-light: var(--md-sys-color-surface);--glass-bg-medium: var(--md-sys-color-surface);--glass-bg-strong: var(--md-sys-color-surface);--glass-border: var(--md-sys-color-outline-variant);--glass-border-strong: var(--md-sys-color-outline-variant);--glass-blur-light: none;--glass-blur-medium: none;--glass-blur-heavy: none;--gradient-ocean: var(--gradient-primary);--gradient-surface: linear-gradient(180deg, hsl(205, 40%, 97%) 0%, hsl(210, 30%, 95%) 100%);--gradient-hero: var(--gradient-warm);--shadow-ocean: var(--shadow-primary);--shadow-teal: var(--shadow-secondary);--shadow-coral: var(--md-sys-elevation-2);--shadow-gold: var(--md-sys-elevation-2);--shadow-violet: var(--md-sys-elevation-2);--glow-primary: var(--shadow-primary);--glow-secondary: var(--shadow-secondary);--glow-success: var(--md-sys-elevation-2);--glow-celebration: var(--md-sys-elevation-3);--blob-primary: none;--blob-secondary: none;--blob-accent: none;--gradient-glow: none;--gradient-glow-teal: none;--gradient-shimmer: none;--gradient-celebration: var(--gradient-primary);--shape-asymmetric-1: var(--md-sys-shape-corner-extra-large);--shape-asymmetric-2: var(--md-sys-shape-corner-extra-large);--shape-asymmetric-3: var(--md-sys-shape-corner-extra-large);--shape-card: var(--md-sys-shape-corner-large)}[data-theme=dark]{--md-sys-color-primary: hsl(205, 88%, 72%);--md-sys-color-primary-container: hsl(205, 80%, 18%);--md-sys-color-on-primary: hsl(205, 88%, 10%);--md-sys-color-on-primary-container: hsl(205, 80%, 92%);--md-sys-color-secondary: hsl(174, 60%, 64%);--md-sys-color-secondary-container: hsl(174, 55%, 18%);--md-sys-color-on-secondary: hsl(174, 60%, 10%);--md-sys-color-on-secondary-container: hsl(174, 55%, 92%);--md-sys-color-tertiary: hsl(220, 75%, 72%);--md-sys-color-tertiary-container: hsl(220, 65%, 18%);--md-sys-color-on-tertiary: hsl(220, 75%, 10%);--md-sys-color-on-tertiary-container: hsl(220, 65%, 92%);--md-sys-color-surface: hsl(215, 22%, 11%);--md-sys-color-surface-variant: hsl(215, 18%, 16%);--md-sys-color-surface-container: hsl(215, 22%, 13%);--md-sys-color-surface-container-high: hsl(215, 20%, 17%);--md-sys-color-surface-container-highest: hsl(215, 18%, 21%);--md-sys-color-on-surface: hsl(215, 18%, 92%);--md-sys-color-on-surface-variant: hsl(215, 12%, 68%);--md-sys-color-background: hsl(215, 25%, 9%);--md-sys-color-on-background: hsl(215, 18%, 92%);--md-sys-color-error: hsl(0, 78%, 68%);--md-sys-color-error-container: hsl(0, 65%, 18%);--md-sys-color-on-error: hsl(0, 78%, 10%);--md-sys-color-on-error-container: hsl(0, 65%, 92%);--md-sys-color-warning: hsl(40, 82%, 62%);--md-sys-color-warning-container: hsl(40, 65%, 18%);--md-sys-color-on-warning: hsl(40, 82%, 10%);--md-sys-color-on-warning-container: hsl(40, 65%, 92%);--md-sys-color-outline: hsl(215, 12%, 42%);--md-sys-color-outline-variant: hsl(215, 12%, 26%);--gradient-primary: linear-gradient(135deg, hsl(205, 85%, 60%) 0%, hsl(174, 60%, 50%) 100%);--gradient-warm: linear-gradient(135deg, hsl(205, 80%, 58%) 0%, hsl(220, 68%, 50%) 100%);--gradient-surface: linear-gradient(180deg, hsl(215, 25%, 11%) 0%, hsl(215, 22%, 14%) 100%);--md-sys-elevation-1: 0 1px 3px rgba(0, 0, 0, .25);--md-sys-elevation-2: 0 3px 8px rgba(0, 0, 0, .28);--md-sys-elevation-3: 0 6px 16px rgba(0, 0, 0, .32);--md-sys-elevation-4: 0 10px 28px rgba(0, 0, 0, .36);--md-sys-elevation-5: 0 18px 48px rgba(0, 0, 0, .4);--shadow-primary: 0 4px 18px hsla(205, 85%, 60%, .3), 0 2px 8px hsla(205, 85%, 60%, .15);--shadow-secondary: 0 4px 18px hsla(174, 60%, 50%, .25), 0 2px 8px hsla(174, 60%, 50%, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--md-sys-typescale-font-family);font-size:var(--md-sys-typescale-body-medium-size);font-weight:var(--md-sys-typescale-body-medium-weight);line-height:var(--md-sys-typescale-body-medium-line-height);color:var(--md-sys-color-on-background);background-color:var(--md-sys-color-background);min-height:100vh;overflow-x:hidden}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus{outline:none}:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px;border-radius:var(--md-sys-shape-corner-extra-small)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px;box-shadow:0 0 0 4px #259df433}[data-theme=dark] :focus-visible{outline-color:var(--md-sys-color-primary);box-shadow:0 0 0 4px #6ebef733}@media(prefers-contrast:more){:focus-visible{outline:3px solid currentColor;outline-offset:3px}}.display-large{font-size:var(--md-sys-typescale-display-large-size);font-weight:var(--md-sys-typescale-display-large-weight);line-height:var(--md-sys-typescale-display-large-line-height);letter-spacing:var(--md-sys-typescale-display-large-letter-spacing)}.display-medium{font-size:var(--md-sys-typescale-display-medium-size);font-weight:var(--md-sys-typescale-display-medium-weight);line-height:var(--md-sys-typescale-display-medium-line-height);letter-spacing:var(--md-sys-typescale-display-medium-letter-spacing)}.display-small{font-size:var(--md-sys-typescale-display-small-size);font-weight:var(--md-sys-typescale-display-small-weight);line-height:var(--md-sys-typescale-display-small-line-height);letter-spacing:var(--md-sys-typescale-display-small-letter-spacing)}.headline-large{font-size:var(--md-sys-typescale-headline-large-size);font-weight:var(--md-sys-typescale-headline-large-weight);line-height:var(--md-sys-typescale-headline-large-line-height)}.headline-medium{font-size:var(--md-sys-typescale-headline-medium-size);font-weight:var(--md-sys-typescale-headline-medium-weight);line-height:var(--md-sys-typescale-headline-medium-line-height)}.title-large{font-size:var(--md-sys-typescale-title-large-size);font-weight:var(--md-sys-typescale-title-large-weight);line-height:var(--md-sys-typescale-title-large-line-height)}.body-large{font-size:var(--md-sys-typescale-body-large-size);font-weight:var(--md-sys-typescale-body-large-weight);line-height:var(--md-sys-typescale-body-large-line-height)}.label-large{font-size:var(--md-sys-typescale-label-large-size);font-weight:var(--md-sys-typescale-label-large-weight);line-height:var(--md-sys-typescale-label-large-line-height)}:focus-visible{outline:3px solid var(--md-sys-color-primary);outline-offset:2px;border-radius:var(--md-sys-shape-corner-small)}@media(prefers-contrast:high){:focus-visible{outline-width:4px;outline-offset:3px}}::selection{background-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-link{position:fixed;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:9999}.skip-link:focus{left:var(--spacing-md);top:var(--spacing-md);width:auto;height:auto;overflow:visible;background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);padding:var(--spacing-md) var(--spacing-lg);text-decoration:none;border-radius:var(--md-sys-shape-corner-medium)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.fade-in{animation:fadeIn var(--md-sys-motion-duration-medium-2) var(--md-sys-motion-easing-standard)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slide-up{animation:slideUp var(--md-sys-motion-duration-medium-3) var(--md-sys-motion-easing-emphasized)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.scale-in{animation:scaleIn var(--md-sys-motion-duration-medium-2) var(--md-sys-motion-easing-emphasized)}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.display-large{font-size:2.5rem}.display-medium{font-size:2rem}.container{padding:0 var(--spacing-md)}}@media(max-width:480px){.display-large{font-size:2rem}.display-medium{font-size:1.75rem}}button{font-family:inherit;cursor:pointer;border:none;background:none;transition:all var(--md-sys-motion-duration-short-4) var(--md-sys-motion-easing-standard)}button:disabled{cursor:not-allowed;opacity:.38}input,textarea{font-family:inherit;font-size:inherit;border:none;outline:none}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--md-sys-color-surface-variant)}::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-pill)}::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-primary)}[data-theme=high-contrast]{--md-sys-color-primary: hsl(205, 100%, 50%);--md-sys-color-primary-container: hsl(0, 0%, 100%);--md-sys-color-on-primary: hsl(0, 0%, 0%);--md-sys-color-on-primary-container: hsl(0, 0%, 0%);--md-sys-color-secondary: hsl(174, 100%, 40%);--md-sys-color-secondary-container: hsl(0, 0%, 100%);--md-sys-color-on-secondary: hsl(0, 0%, 0%);--md-sys-color-on-secondary-container: hsl(0, 0%, 0%);--md-sys-color-surface: hsl(0, 0%, 0%);--md-sys-color-surface-variant: hsl(0, 0%, 10%);--md-sys-color-surface-container: hsl(0, 0%, 5%);--md-sys-color-surface-container-high: hsl(0, 0%, 8%);--md-sys-color-surface-container-highest: hsl(0, 0%, 12%);--md-sys-color-on-surface: hsl(0, 0%, 100%);--md-sys-color-on-surface-variant: hsl(0, 0%, 100%);--md-sys-color-background: hsl(0, 0%, 0%);--md-sys-color-on-background: hsl(0, 0%, 100%);--md-sys-color-error: hsl(0, 100%, 60%);--md-sys-color-error-container: hsl(0, 0%, 100%);--md-sys-color-on-error: hsl(0, 0%, 0%);--md-sys-color-on-error-container: hsl(0, 0%, 0%);--md-sys-color-outline: hsl(0, 0%, 100%);--md-sys-color-outline-variant: hsl(0, 0%, 80%);--md-sys-elevation-1: 0 2px 4px rgba(255, 255, 255, .2);--md-sys-elevation-2: 0 4px 8px rgba(255, 255, 255, .25);--md-sys-elevation-3: 0 6px 12px rgba(255, 255, 255, .3);--md-sys-elevation-4: 0 8px 16px rgba(255, 255, 255, .35);--md-sys-elevation-5: 0 12px 24px rgba(255, 255, 255, .4)}[data-text-size=large]{font-size:112.5%}[data-text-size=x-large]{font-size:125%}[data-text-size=large] button,[data-text-size=x-large] button{min-height:48px;min-width:48px}@media print{.app-header,.search-section,.feedback-widget,.app-footer,.action-buttons,.theme-switcher,.session-warning,.skip-link{display:none!important}body{background:#fff!important;color:#000!important}.app{background:#fff!important}.app-main{padding:0!important}.container{max-width:100%!important;padding:0!important}.results-section:before{content:"ASL Dictionary - Printed on " attr(data-print-date);display:block;font-size:12pt;color:#666;margin-bottom:20pt;padding-bottom:10pt;border-bottom:1pt solid #ccc}.signs-grid{display:block!important}.sign-card{page-break-inside:avoid;break-inside:avoid;margin-bottom:20pt;border:1pt solid #ccc!important;box-shadow:none!important;background:#fff!important;color:#000!important}.sign-word{color:#000!important;font-size:18pt}.sign-number{background:#000!important;color:#fff!important}.detail-icon{background:#f0f0f0!important;color:#000!important}.detail-label{color:#666!important;font-size:10pt}.detail-value{color:#000!important;font-size:11pt}.asl-note{page-break-inside:avoid;background:#f9f9f9!important;color:#000!important;border:1pt solid #ccc!important}.note-title{color:#000!important}.note-text{color:#333!important}*{animation:none!important;transition:none!important}a{text-decoration:underline;color:#000!important}a[href]:after{content:" (" attr(href) ")";font-size:9pt;color:#666}}:root{--spring-bounce: cubic-bezier(.34, 1.56, .64, 1);--spring-smooth: cubic-bezier(.25, .46, .45, .94);--spring-gentle: cubic-bezier(.25, .46, .45, .94);--spring-energetic: cubic-bezier(.68, -.4, .32, 1.4);--duration-instant: .1s;--duration-quick: .2s;--duration-smooth: .35s;--duration-slow: .5s}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.9)}60%{transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.search-bar__submit,.error-card__retry,.sign-card__play-btn{transition:all var(--duration-quick) var(--spring-smooth)}.search-bar__submit:hover:not(:disabled),.error-card__retry:hover{transform:translateY(-2px);box-shadow:var(--shadow-primary)}.search-bar__submit:active:not(:disabled),.error-card__retry:active{transform:translateY(0) scale(.97);transition-duration:var(--duration-instant)}.sign-card{animation:fadeSlideIn var(--duration-smooth) var(--spring-smooth) backwards}.sign-card:nth-child(1){animation-delay:0ms}.sign-card:nth-child(2){animation-delay:80ms}.sign-card:nth-child(3){animation-delay:.16s}.sign-card:nth-child(4){animation-delay:.24s}.sign-card:nth-child(5){animation-delay:.32s}.sign-card:nth-child(6){animation-delay:.4s}.sign-card{transition:transform var(--duration-quick) var(--spring-smooth),box-shadow var(--duration-quick) ease}.sign-card:hover{transform:translateY(-4px);box-shadow:var(--md-sys-elevation-3)}.nav-item svg{transition:transform var(--duration-quick) var(--spring-bounce)}.nav-item:active svg{transform:scale(.85)}.nav-item--active svg{transform:scale(1.15)}.dictionary-page__results{animation:fadeSlideUp var(--duration-smooth) var(--spring-smooth)}.gloss-bar{animation:fadeSlideIn var(--duration-quick) ease backwards;animation-delay:50ms}.search-bar__container{transition:border-color var(--duration-quick) ease,box-shadow var(--duration-quick) ease,transform var(--duration-quick) var(--spring-smooth)}.search-bar__container--focused{transform:scale(1.01);box-shadow:0 0 0 3px #0c8de91f}.learn-page .level-card,.learn-page .exercise-card{transition:transform var(--duration-quick) var(--spring-smooth),box-shadow var(--duration-quick) ease}.learn-page .level-card:hover{transform:translateY(-3px);box-shadow:var(--md-sys-elevation-3)}.page-loader__spinner,.search-bar__spinner svg{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
