:root[data-theme=nomi]{--color-navy: #0a295b;--color-caramel: #c06502;--color-cyan: #47cbd5;--color-chocolate: #33190a;--color-cream: #fff8ee;--color-pink: #ef6f84;--color-primary: var(--color-navy);--color-on-primary: #fff8ee;--color-accent: var(--color-caramel);--color-accent-hover: #a6560a;--color-background: var(--color-cream);--color-surface: #ffffff;--color-surface-secondary: #fff1de;--color-highlight: var(--color-cyan);--color-text-primary: #0a295b;--color-text-secondary: #33190a;--color-text-muted: #6b5b4a;--color-text-on-accent: #fff8ee;--color-border: #e9d7bf;--color-border-light: rgba(192, 101, 2, .2);--color-error: #d83a57;--color-error-bg: rgba(216, 58, 87, .1)}.login{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;padding:32px 24px;text-align:center;background:var(--color-background)}.login__mascot{width:96px;height:auto;margin-bottom:8px}.login__title{margin:0;color:var(--color-primary);font-size:2rem}.login__tagline{margin:6px 0 20px;color:var(--color-accent);font-family:Caveat,cursive;font-size:1.5rem;font-weight:700}.login__intro{margin:0 0 12px;max-width:340px;color:var(--color-text-secondary);line-height:1.4}.login__benefits{list-style:none;margin:0 0 28px;padding:0;max-width:340px;text-align:left;display:flex;flex-direction:column;gap:10px}.login__benefits li{color:var(--color-text-primary);font-weight:600;line-height:1.35}.login__actions{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px}.login__btn{padding:14px 18px;border:none;border-radius:12px;font-size:1rem;font-weight:600;color:var(--color-on-primary);background:var(--color-primary)}.login__btn--facebook{background:var(--color-accent)}.login__btn:disabled{opacity:.6}.login__meta-note{margin-top:20px;max-width:320px;color:var(--color-text-muted);font-size:.85rem}.login__error{margin-top:16px;max-width:320px;padding:12px;border-radius:10px;color:var(--color-error);background:var(--color-error-bg)}.login__pending{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:320px;margin-top:8px}.login__spinner{width:44px;height:44px;border-radius:50%;border:4px solid var(--color-border);border-top-color:var(--color-accent);animation:login-spin .8s linear infinite}.login__pending-text{margin:0;color:var(--color-text-secondary)}@keyframes login-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.login__spinner{animation-duration:2s}}.profile-form{display:flex;flex-direction:column;gap:18px;width:100%;max-width:360px}.profile-form__field{display:flex;flex-direction:column;gap:6px;color:var(--color-text-primary);font-weight:600}.profile-form__field select,.profile-form__field input{padding:12px;border:1px solid var(--color-border);border-radius:10px;font-size:1rem;background:var(--color-surface);color:var(--color-text-primary)}.profile-form__field input[readonly]{background:var(--color-surface-secondary);color:var(--color-text-muted)}.profile-form__error{color:var(--color-error);font-size:.8rem;font-weight:400}.profile-form__note{color:var(--color-text-muted);font-size:.8rem;font-weight:400}.profile-form__terms{display:flex;flex-direction:column;gap:6px}.profile-form__terms-label{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;font-weight:400;color:var(--color-text-primary);line-height:1.4}.profile-form__terms-label input{margin-top:2px;flex:none;width:18px;height:18px}.profile-form__terms-label a{color:var(--color-accent);font-weight:600}.profile-form__submit{margin-top:8px;padding:14px;border:none;border-radius:12px;font-size:1rem;font-weight:600;color:var(--color-on-primary);background:var(--color-primary)}.profile-form__submit:disabled{opacity:.6}.profile-page{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:32px 24px;background:var(--color-background)}.profile-page__title{margin:0 0 4px;color:var(--color-primary)}.profile-page__subtitle{margin:0 0 24px;color:var(--color-text-secondary);text-align:center;max-width:360px}.badge-card{display:block;width:100%;aspect-ratio:3 / 4;padding:0;border:none;background:transparent;perspective:900px;font-family:inherit}.badge-card__inner{position:relative;display:block;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}.badge-card--flipped .badge-card__inner{transform:rotateY(180deg)}.badge-card__face{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px;border-radius:18px;text-align:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--color-border);background:var(--color-surface)}.badge-card__back{transform:rotateY(180deg)}.badge-card__emoji{font-size:2.6rem;line-height:1}.badge-card__name{font-family:Fredoka,sans-serif;font-weight:600;color:var(--color-text-primary)}.badge-card__status{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.badge-card--earned .badge-card__face{border-color:var(--color-accent);box-shadow:0 8px 20px #c065022e}.badge-card--earned .badge-card__status{color:var(--color-accent)}.badge-card--locked .badge-card__front{opacity:.7}.badge-card--locked .badge-card__emoji{filter:grayscale(1)}.badge-card__benefit{font-weight:700;color:var(--color-text-primary);line-height:1.3}.badge-card__qr{display:inline-flex;margin:6px 0;padding:6px;border-radius:10px;background:#fff;border:1px solid var(--color-border)}.badge-card__qr svg{display:block;width:100%;height:auto;max-width:112px}.badge-card__hint,.badge-card__how{font-size:.8rem;color:var(--color-text-muted);line-height:1.3}.badge-card__how-title{font-family:Fredoka,sans-serif;font-weight:600;color:var(--color-text-primary)}@media(prefers-reduced-motion:reduce){.badge-card__inner{transition:none}}.card-page{max-width:720px;margin:0 auto;padding:8px 20px 64px}.card-page__header{display:flex;align-items:center;justify-content:flex-end}.card-page__signout{background:none;border:none;color:var(--color-text-secondary);font-size:.9rem}.card-page__intro{text-align:center;margin-bottom:24px}.card-page__greeting{margin:0 0 4px;font-weight:700;color:var(--color-text-secondary)}.card-page__title{margin:0 0 6px;color:var(--color-primary)}.card-page__subtitle{margin:0 auto;max-width:420px;color:var(--color-text-secondary);line-height:1.4}.card-page__badges{list-style:none;margin:0 0 32px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.card-page__note{max-width:420px;margin:0 auto 28px;padding:12px 16px;border-radius:12px;background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:.85rem;line-height:1.4;text-align:center}.card-page__actions{display:flex;flex-direction:column;gap:12px;width:100%;max-width:360px;margin:0 auto}.card-page__btn,.card-page__link{padding:14px;border:none;border-radius:12px;text-align:center;text-decoration:none;font-size:1rem;font-weight:600}.card-page__btn{color:var(--color-on-primary);background:var(--color-primary)}.card-page__link{color:var(--color-primary);background:var(--color-surface);border:1px solid var(--color-border)}.legal{max-width:640px;margin:0 auto;padding:32px 24px 64px;color:var(--color-text-primary);line-height:1.5}.legal__title{margin:0 0 4px;color:var(--color-primary)}.legal__meta{margin:0 0 24px;color:var(--color-text-muted);font-size:.85rem}.legal h2{margin:28px 0 8px;font-size:1.1rem;color:var(--color-primary)}.legal ul{margin:0;padding-left:20px}.legal li{margin:4px 0}.legal__foot{margin-top:28px;color:var(--color-text-secondary);font-style:italic}.site-header{position:sticky;top:0;z-index:50;background:#fff8eee0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:2px solid rgba(10,41,91,.08)}.site-header__nav{max-width:1200px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.site-header__logo-link{display:flex;align-items:center;text-decoration:none}.site-header__logo{height:48px;width:auto;object-fit:contain;display:block}.site-header__spacer{flex:1}.site-header__links{display:flex;align-items:center;gap:20px}.site-header__link{font-family:Fredoka,sans-serif;font-weight:500;font-size:16px;color:#0a295b;text-decoration:none;padding:8px 6px;transition:color .15s}.site-header__link:hover{color:#c06502}.site-header__link--accent{font-weight:600;color:#c06502}.site-header__link--accent:hover{color:#0a295b}.site-header__cta{display:flex;align-items:center;gap:8px;flex:none;background:#c06502;color:#fff;font-family:Fredoka,sans-serif;font-weight:600;font-size:15px;text-decoration:none;padding:11px 20px;border-radius:999px;box-shadow:0 6px 16px #c0650259;transition:transform .15s,box-shadow .15s}.site-header__cta:hover{transform:translateY(-2px);box-shadow:0 10px 22px #c0650273}@media(max-width:768px){.site-header__logo-link{cursor:pointer}.site-header__links{display:none;flex-direction:column;align-items:stretch;gap:4px;width:100%;padding-top:8px}.site-header__nav--open .site-header__links{display:flex}.site-header__link,.site-header__cta{padding:12px 8px}.site-header__cta{justify-content:center;margin-top:6px}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--color-background, #fff8ee);color:var(--color-text-primary, #0a295b);min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Fredoka,Nunito,sans-serif;font-weight:600}#root{min-height:100vh}button{font-family:inherit;cursor:pointer}a{color:var(--color-accent, #c06502)}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;min-height:70vh}.app-loading__mascot{width:104px;height:auto;animation:app-loading-bounce 1.6s ease-in-out infinite}.app-loading__spinner{width:34px;height:34px;border-radius:50%;border:4px solid var(--color-border, #e9d7bf);border-top-color:var(--color-accent, #c06502);animation:app-loading-spin .8s linear infinite}@keyframes app-loading-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes app-loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.app-loading__mascot{animation:none}.app-loading__spinner{animation-duration:2s}}
