.gen-ekk{--gen-brand: #f97316;--gen-brand-strong: #ea580c;--gen-brand-deep: #c2410c;--gen-brand-soft: #fff7ed;--gen-accent-2: #ec4899}html[data-theme="dark"] .gen-ekk{--gen-brand: #fb923c;--gen-brand-strong: #f97316;--gen-brand-deep: #ea580c;--gen-brand-soft: #3a1a08;--gen-on-brand: #1c0d03}.gen-page .ekk-app{display: grid;grid-template-columns: minmax(0,1fr) minmax(260px,360px) minmax(0,1fr);gap: 16px;margin-top: 24px;align-items: stretch}.gen-page .ekk-panel{display: flex;flex-direction: column;min-width: 0;background: var(--gen-surface);border: 1px solid var(--gen-border);border-radius: 16px;overflow: hidden}.gen-page .ekk-search{display: flex;align-items: center;gap: 8px;padding: 10px 12px;border-bottom: 1px solid var(--gen-border);color: var(--gen-text-dim)}.gen-page .ekk-search svg{width: 18px;height: 18px;flex: none}.gen-page .ekk-search input{flex: 1;min-width: 0;border: 0;background: transparent;color: var(--gen-text-strong);font: inherit;font-size: 0.9375rem;padding: 6px 0;outline: none}.gen-page .ekk-dice{flex: none;border: 0;background: var(--gen-brand-soft);border-radius: 8px;width: 34px;height: 34px;font-size: 18px;cursor: pointer}.gen-page .ekk-dice:hover{transform: rotate(-12deg)}.gen-page .ekk-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(42px,1fr));gap: 2px;padding: 8px;height: 520px;overflow-y: auto;align-content: start;overscroll-behavior: contain}.gen-page .ekk-key{font-size: 26px;line-height: 1;aspect-ratio: 1;border: 0;border-radius: 10px;background: transparent;cursor: pointer;font-family: "Noto Color Emoji","Apple Color Emoji","Segoe UI Emoji",sans-serif;transition: transform .12s,background .12s}.gen-page .ekk-key:hover:not(:disabled){background: var(--gen-brand-soft);transform: scale(1.15)}.gen-page .ekk-key.is-on{background: var(--gen-brand);box-shadow: 0 0 0 2px var(--gen-brand-strong)}.gen-page .ekk-key:disabled{opacity: .22;filter: grayscale(1);cursor: default}.gen-page .ekk-key[hidden]{display: none}.gen-page .ekk-empty{grid-column: 1 / -1;text-align: center;color: var(--gen-text-dim);padding: 24px 0}.gen-page .ekk-center{display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 16px;padding: 16px;text-align: center}.gen-page .ekk-pair{display: flex;align-items: center;gap: 10px;font-size: 32px}.gen-page .ekk-plus{color: var(--gen-text-dim);font-size: 22px;font-weight: 700}.gen-page .ekk-result{width: 100%;max-width: 320px;aspect-ratio: 1;display: grid;place-items: center}.gen-page .ekk-result img{width: 100%;height: 100%;object-fit: contain;animation: ekk-pop .28s ease-out}.gen-page .ekk-result img[hidden]{display: none}.gen-page .ekk-hint{color: var(--gen-text-dim);margin: 0;padding: 0 12px}.gen-page .ekk-actions{display: flex;flex-wrap: wrap;gap: 8px;justify-content: center}.gen-page .ekk-actions .ek-btn:disabled{opacity: .5;cursor: default}.gen-page .ekk-credit{font-size: 0.8125rem;color: var(--gen-text-dim);text-align: center;margin-top: 16px}@keyframes ekk-pop{from{transform: scale(.7);opacity: 0}to{transform: scale(1);opacity: 1}}@media (prefers-reduced-motion: reduce){.gen-page .ekk-result img{animation: none}.gen-page .ekk-key,.gen-page .ekk-dice:hover{transition: none;transform: none}}@media (max-width: 900px){.gen-page .ekk-app{grid-template-columns: 1fr 1fr;gap: 10px}.gen-page .ekk-center{grid-column: 1 / -1;order: -1;padding: 4px 0}.gen-page .ekk-result{max-width: 240px}.gen-page .ekk-grid{height: 360px;grid-template-columns: repeat(auto-fill,minmax(36px,1fr))}.gen-page .ekk-key{font-size: 22px}}.gen-page .ekk-actions .ek-btn{padding: 10px 18px;border-radius: 999px;font-weight: 600;border: 1px solid var(--gen-border);background: var(--gen-surface);color: var(--gen-text-strong);cursor: pointer}.gen-page .ekk-actions .ek-btn-primary{background: var(--gen-brand);border-color: var(--gen-brand);color: var(--gen-on-brand)}.gen-page .ekk-actions .ek-btn:hover:not(:disabled){border-color: var(--gen-brand-strong)}.gen-page .ekk-key{font-family: "Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Twemoji Mozilla",sans-serif;content-visibility: auto;contain-intrinsic-size: auto 42px}