@layer reset{@scope([data-astryx-theme=matcha]) to ([data-astryx-theme]){:where(h1,h2,h3,h4,h5,h6){font-family:var(--font-family-heading);color:var(--color-text-primary)}:where(h1){font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:1.4194}:where(h2){font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:1.44}:where(h3){font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:1.4}:where(h4){font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1.5}:where(h5){font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:1.5385}:where(h6){font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.6}:where(p){font-family:var(--font-family-body);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary);line-height:1.5}:where(small){font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-secondary);line-height:1.5385}:where(code,pre){font-family:var(--font-family-code);font-size:var(--font-size-base);line-height:1.5}:where(hr){border:none;border-top:1px solid var(--color-border)}}}@layer astryx-theme{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@scope([data-astryx-theme=matcha]) to ([data-astryx-theme]){:scope{--font-size-4xs:.3125rem;--font-size-3xs:.4375rem;--font-size-2xs:.5rem;--font-size-xs:.625rem;--font-size-sm:.8125rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5625rem;--font-size-2xl:1.9375rem;--font-size-3xl:2.4375rem;--font-size-4xl:3.0625rem;--font-size-5xl:3.8125rem;--text-heading-1-size:var(--font-size-2xl);--text-heading-1-weight:var(--font-weight-semibold);--text-heading-1-leading:1.4194;--text-heading-2-size:var(--font-size-xl);--text-heading-2-weight:var(--font-weight-semibold);--text-heading-2-leading:1.44;--text-heading-3-size:var(--font-size-lg);--text-heading-3-weight:var(--font-weight-semibold);--text-heading-3-leading:1.4;--text-heading-4-size:var(--font-size-base);--text-heading-4-weight:var(--font-weight-semibold);--text-heading-4-leading:1.5;--text-heading-5-size:var(--font-size-sm);--text-heading-5-weight:var(--font-weight-semibold);--text-heading-5-leading:1.5385;--text-heading-6-size:var(--font-size-xs);--text-heading-6-weight:var(--font-weight-semibold);--text-heading-6-leading:1.6;--text-body-size:var(--font-size-base);--text-body-weight:var(--font-weight-normal);--text-body-leading:1.5;--text-large-size:var(--font-size-lg);--text-large-weight:var(--font-weight-semibold);--text-large-leading:1.4;--text-label-size:var(--font-size-base);--text-label-weight:var(--font-weight-medium);--text-label-leading:1.5;--text-code-size:var(--font-size-base);--text-code-weight:var(--font-weight-normal);--text-code-leading:1.5;--text-supporting-size:var(--font-size-sm);--text-supporting-weight:var(--font-weight-normal);--text-supporting-leading:1.5385;--text-display-1-size:var(--font-size-5xl);--text-display-1-weight:var(--font-weight-normal);--text-display-1-leading:1.2459;--text-display-2-size:var(--font-size-4xl);--text-display-2-weight:var(--font-weight-normal);--text-display-2-leading:1.2245;--text-display-3-size:var(--font-size-3xl);--text-display-3-weight:var(--font-weight-normal);--text-display-3-leading:1.2308;--duration-fast-min:95ms;--duration-fast:.125s;--duration-fast-max:.165s;--duration-medium-min:.225s;--duration-medium:.3s;--duration-medium-max:.4s;--duration-slow-min:.525s;--duration-slow:.7s;--duration-slow-max:.935s;--font-family-body:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-heading:"Playwrite US Trad", Georgia, "Times New Roman", Times, serif;--font-family-code:"JetBrains Mono", "SF Mono", Monaco, Consolas, monospace;--color-syntax-keyword:var(--lightningcss-light,#5a6b2a)var(--lightningcss-dark,#a8bf6a);--color-syntax-string:var(--lightningcss-light,#2e6b4a)var(--lightningcss-dark,#7bc49e);--color-syntax-comment:var(--lightningcss-light,#707e46)var(--lightningcss-dark,#707e46);--color-syntax-number:var(--lightningcss-light,#8c6b30)var(--lightningcss-dark,#d4b870);--color-syntax-function:var(--lightningcss-light,#3a5e8c)var(--lightningcss-dark,#7ba8d4);--color-syntax-type:var(--lightningcss-light,#6b4a8c)var(--lightningcss-dark,#b08ed4);--color-syntax-variable:var(--lightningcss-light,#3e481d)var(--lightningcss-dark,#c0cba9);--color-syntax-operator:var(--lightningcss-light,#707e46)var(--lightningcss-dark,#94a468);--color-syntax-constant:var(--lightningcss-light,#8c6b30)var(--lightningcss-dark,#d4b870);--color-syntax-tag:var(--lightningcss-light,#8c3a3a)var(--lightningcss-dark,#d47a7a);--color-syntax-attribute:var(--lightningcss-light,#7c5e3a)var(--lightningcss-dark,#c4a882);--color-syntax-property:var(--lightningcss-light,#3a7c6b)var(--lightningcss-dark,#70c4b0);--color-syntax-punctuation:var(--lightningcss-light,#707e46)var(--lightningcss-dark,#5a6440);--color-syntax-background:var(--lightningcss-light,#f0f0e0)var(--lightningcss-dark,#1a1c14);--color-accent:var(--lightningcss-light,#3e481d)var(--lightningcss-dark,#c0cba9);--color-accent-muted:var(--lightningcss-light,#3e481d14)var(--lightningcss-dark,#c0cba920);--color-neutral:var(--lightningcss-light,#3e481d0f)var(--lightningcss-dark,#c0cba91a);--color-background-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1a1c14);--color-background-body:var(--lightningcss-light,#f0f0e0)var(--lightningcss-dark,#12140e);--color-overlay:var(--lightningcss-light,#3e481d80)var(--lightningcss-dark,#3e481dcc);--color-overlay-hover:var(--lightningcss-light,#3e481d0d)var(--lightningcss-dark,#c0cba90d);--color-overlay-pressed:var(--lightningcss-light,#3e481d1a)var(--lightningcss-dark,#c0cba91a);--color-background-muted:var(--lightningcss-light,#f0f0e0)var(--lightningcss-dark,#3e481d);--color-text-primary:var(--lightningcss-light,#3e481d)var(--lightningcss-dark,#c0cba9);--color-text-secondary:var(--lightningcss-light,#707e46)var(--lightningcss-dark,#94a468);--color-text-disabled:var(--lightningcss-light,#c0cba9)var(--lightningcss-dark,#5a6440);--color-text-accent:var(--lightningcss-light,#3e481d)var(--lightningcss-dark,#c0cba9);--color-on-dark:#fff;--color-on-light:#3e481d;--color-on-accent:var(--lightningcss-light,#fff)var(--lightningcss-dark,#3e481d);--color-on-success:var(--lightningcss-light,#fff)var(--lightningcss-dark,#3e481d);--color-on-error:var(--lightningcss-light,#fff)var(--lightningcss-dark,#3e481d);--color-on-warning:var(--lightningcss-light,#3e481d)var(--lightningcss-dark,#3e481d);--color-icon-accent:var(--lightningcss-light,#3e481d)var(--lightningcss-dark,#c0cba9);--color-icon-primary:var(--lightningcss-light,#3e481d)var(--lightningcss-dark,#c0cba9);--color-icon-secondary:var(--lightningcss-light,#707e46)var(--lightningcss-dark,#94a468);--color-icon-disabled:var(--lightningcss-light,#c0cba9)var(--lightningcss-dark,#5a6440);--color-background-card:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1e2016);--color-background-popover:var(--lightningcss-light,#fff)var(--lightningcss-dark,#3e481d);--color-background-inverted:var(--lightningcss-light,#3e481d)var(--lightningcss-dark,#c0cba9);--color-success:var(--lightningcss-light,#4d9900)var(--lightningcss-dark,#6dbf2a);--color-success-muted:var(--lightningcss-light,#4d990020)var(--lightningcss-dark,#6dbf2a20);--color-error:var(--lightningcss-light,#fd0000)var(--lightningcss-dark,#ff5c5c);--color-error-muted:var(--lightningcss-light,#fd000020)var(--lightningcss-dark,#ff5c5c20);--color-warning:var(--lightningcss-light,#ffb600)var(--lightningcss-dark,#ffc940);--color-warning-muted:var(--lightningcss-light,#ffb60020)var(--lightningcss-dark,#ffc94020);--color-border:var(--lightningcss-light,#dce3ce)var(--lightningcss-dark,#c0cba91a);--color-border-emphasized:var(--lightningcss-light,#b7c29e)var(--lightningcss-dark,#5a6440);--color-skeleton:var(--lightningcss-light,#c0cba9)var(--lightningcss-dark,#5a6440);--color-shadow:var(--lightningcss-light,#3e481d1a)var(--lightningcss-dark,#0000004d);--color-tint-hover:var(--lightningcss-light,#000)var(--lightningcss-dark,#fff);--color-background-blue:var(--lightningcss-light,#3a5e8c33)var(--lightningcss-dark,#3a5e8c33);--color-border-blue:var(--lightningcss-light,#3a5e8c)var(--lightningcss-dark,#7ba8d4);--color-icon-blue:var(--lightningcss-light,#3a5e8c)var(--lightningcss-dark,#7ba8d4);--color-text-blue:var(--lightningcss-light,#2e4a6e)var(--lightningcss-dark,#8dbce0);--color-background-cyan:var(--lightningcss-light,#3a7c7c33)var(--lightningcss-dark,#3a7c7c33);--color-border-cyan:var(--lightningcss-light,#3a7c7c)var(--lightningcss-dark,#70c4c4);--color-icon-cyan:var(--lightningcss-light,#3a7c7c)var(--lightningcss-dark,#70c4c4);--color-text-cyan:var(--lightningcss-light,#2e6060)var(--lightningcss-dark,#82d4d4);--color-background-gray:var(--lightningcss-light,#707e4633)var(--lightningcss-dark,#5a644033);--color-border-gray:var(--lightningcss-light,#707e46)var(--lightningcss-dark,#707e46);--color-icon-gray:var(--lightningcss-light,#707e46)var(--lightningcss-dark,#94a468);--color-text-gray:var(--lightningcss-light,#3e481d)var(--lightningcss-dark,#c0cba9);--color-background-green:var(--lightningcss-light,#4d990033)var(--lightningcss-dark,#6dbf2a33);--color-border-green:var(--lightningcss-light,#4d9900)var(--lightningcss-dark,#6dbf2a);--color-icon-green:var(--lightningcss-light,#4d9900)var(--lightningcss-dark,#6dbf2a);--color-text-green:var(--lightningcss-light,#3d7a00)var(--lightningcss-dark,#80d43a);--color-background-orange:var(--lightningcss-light,#c4762033)var(--lightningcss-dark,#d4903a33);--color-border-orange:var(--lightningcss-light,#c47620)var(--lightningcss-dark,#d4903a);--color-icon-orange:var(--lightningcss-light,#c47620)var(--lightningcss-dark,#d4903a);--color-text-orange:var(--lightningcss-light,#a06018)var(--lightningcss-dark,#e0a04a);--color-background-pink:var(--lightningcss-light,#c44a7033)var(--lightningcss-dark,#e07a9a33);--color-border-pink:var(--lightningcss-light,#c44a70)var(--lightningcss-dark,#e07a9a);--color-icon-pink:var(--lightningcss-light,#c44a70)var(--lightningcss-dark,#e07a9a);--color-text-pink:var(--lightningcss-light,#a03a5a)var(--lightningcss-dark,#f08aaa);--color-background-purple:var(--lightningcss-light,#6b4a8c33)var(--lightningcss-dark,#b08ed433);--color-border-purple:var(--lightningcss-light,#6b4a8c)var(--lightningcss-dark,#b08ed4);--color-icon-purple:var(--lightningcss-light,#6b4a8c)var(--lightningcss-dark,#b08ed4);--color-text-purple:var(--lightningcss-light,#553a70)var(--lightningcss-dark,#c0a0e0);--color-background-red:var(--lightningcss-light,#fd000033)var(--lightningcss-dark,#ff5c5c33);--color-border-red:var(--lightningcss-light,#fd0000)var(--lightningcss-dark,#ff5c5c);--color-icon-red:var(--lightningcss-light,#fd0000)var(--lightningcss-dark,#ff5c5c);--color-text-red:var(--lightningcss-light,#c00)var(--lightningcss-dark,#ff7a7a);--color-background-teal:var(--lightningcss-light,#2e6b5a33)var(--lightningcss-dark,#5ab89833);--color-border-teal:var(--lightningcss-light,#2e6b5a)var(--lightningcss-dark,#5ab898);--color-icon-teal:var(--lightningcss-light,#2e6b5a)var(--lightningcss-dark,#5ab898);--color-text-teal:var(--lightningcss-light,#245546)var(--lightningcss-dark,#6ccaaa);--color-background-yellow:var(--lightningcss-light,#ffb60033)var(--lightningcss-dark,#ffc94033);--color-border-yellow:var(--lightningcss-light,#ffb600)var(--lightningcss-dark,#ffc940);--color-icon-yellow:var(--lightningcss-light,#ffb600)var(--lightningcss-dark,#ffc940);--color-text-yellow:var(--lightningcss-light,#cc9200)var(--lightningcss-dark,#ffd960);--spacing-0-5:3px;--spacing-1:6px;--spacing-1-5:9px;--spacing-2:12px;--spacing-3:18px;--spacing-4:24px;--spacing-5:30px;--spacing-6:36px;--spacing-7:42px;--spacing-8:48px;--spacing-9:54px;--spacing-10:60px;--spacing-11:66px;--spacing-12:72px;--radius-inner:6px;--radius-element:12px;--radius-container:18px;--radius-page:42px;--size-element-sm:36px;--size-element-md:40px;--size-element-lg:44px;--shadow-low:0 2px 4px #3e481d0d, 0 4px 8px #3e481d1a;--shadow-med:0 2px 4px #3e481d0d, 0 4px 12px #3e481d1a;--shadow-high:0 4px 6px #3e481d1a, 0 12px 24px #3e481d26;--shadow-inset-hover:inset 0px 0px 0px 2px #3e481d30;--shadow-inset-selected:inset 0px 0px 0px 2px #3e481d50;--shadow-inset-success:inset 0px 0px 0px 2px #4d990050;--shadow-inset-warning:inset 0px 0px 0px 2px #ffb60050;--shadow-inset-error:inset 0px 0px 0px 2px #fd000050}.astryx-heading.level-1{font-family:var(--font-family-heading);font-size:var(--text-heading-1-size);font-weight:var(--text-heading-1-weight);line-height:var(--text-heading-1-leading)}.astryx-heading.level-2{font-family:var(--font-family-heading);font-size:var(--text-heading-2-size);font-weight:var(--text-heading-2-weight);line-height:var(--text-heading-2-leading)}.astryx-heading.level-3{font-family:var(--font-family-heading);font-size:var(--text-heading-3-size);font-weight:var(--text-heading-3-weight);line-height:var(--text-heading-3-leading)}.astryx-heading.level-4{font-family:var(--font-family-heading);font-size:var(--text-heading-4-size);font-weight:var(--text-heading-4-weight);line-height:var(--text-heading-4-leading)}.astryx-heading.level-5{font-family:var(--font-family-heading);font-size:var(--text-heading-5-size);font-weight:var(--text-heading-5-weight);line-height:var(--text-heading-5-leading)}.astryx-heading.level-6{font-family:var(--font-family-heading);font-size:var(--text-heading-6-size);font-weight:var(--text-heading-6-weight);line-height:var(--text-heading-6-leading)}.astryx-text.body{font-family:var(--font-family-body);font-size:var(--text-body-size);line-height:var(--text-body-leading)}.astryx-text.large{font-family:var(--font-family-body);font-size:var(--text-large-size);line-height:var(--text-large-leading)}.astryx-text.label{font-family:var(--font-family-body);font-size:var(--text-label-size);line-height:var(--text-label-leading)}.astryx-text.code{font-family:var(--font-family-code);font-size:var(--text-code-size);line-height:var(--text-code-leading)}.astryx-text.supporting{font-family:var(--font-family-body);font-size:var(--text-supporting-size);line-height:var(--text-supporting-leading)}.astryx-text.display-1{font-family:var(--font-family-heading);font-size:var(--text-display-1-size);line-height:var(--text-display-1-leading)}.astryx-text.display-2{font-family:var(--font-family-heading);font-size:var(--text-display-2-size);line-height:var(--text-display-2-leading)}.astryx-text.display-3{font-family:var(--font-family-heading);font-size:var(--text-display-3-size);line-height:var(--text-display-3-leading)}.astryx-button{border-radius:var(--radius-full);--_button-radius:var(--radius-full)}.astryx-card{border-radius:var(--radius-page);--astryx-card-padding:var(--spacing-3);--_card-radius:var(--radius-page)}.astryx-section{--astryx-section-padding:var(--spacing-3)}.astryx-text.primary,.astryx-heading.primary{color:var(--color-text-primary)}.astryx-text.secondary,.astryx-heading.secondary{color:var(--color-text-secondary)}.astryx-text.disabled,.astryx-heading.disabled{color:var(--color-text-disabled)}.astryx-text.placeholder,.astryx-heading.placeholder{color:var(--color-text-secondary)}.astryx-text.accent,.astryx-heading.accent{color:var(--color-text-accent)}}@scope([data-astryx-theme=matcha]) to ([data-astryx-theme]){[data-astryx-media=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-text-primary:var(--color-on-dark);--color-icon-primary:var(--color-on-dark);--color-accent:var(--color-on-dark)}[data-astryx-media=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-text-primary:var(--color-on-light);--color-icon-primary:var(--color-on-light);--color-accent:var(--color-on-light)}}}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-ink:#1f2321;--color-ink-muted:#4b524d;--color-bg:#faf8f5;--color-surface:#fff;--color-border:#1f232114;--color-accent:#2f6f5e;--color-accent-hover:#275c4e;--color-accent-soft:#2f6f5e14;--color-focus:#1a73e8;--color-flag-mammal:#c98d9229;--color-flag-hidden:#c49a6624;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-4xl:clamp(2rem, 5vw, 3rem);--leading-tight:1.15;--leading-normal:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-pill:999px;--transition-fast:.15s ease;--transition-base:.25s ease;--container-max:480px;--header-height:56px;--tab-bar-height:64px;--tab-bar-gap:12px;--touch-target:48px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-family-body,var(--font-sans));font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary,var(--color-ink));background:var(--color-background-body,var(--color-bg));min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);margin:0}h1,h2,h3,h4{line-height:var(--leading-tight);margin:0}img{max-width:100%;display:block}a{color:inherit}button{font-family:inherit}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.container{max-width:var(--container-max);padding:0 var(--space-4);width:100%;margin:0 auto}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--space-2);background:var(--color-accent);color:#fff;border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);min-height:var(--touch-target);font-size:var(--text-base);cursor:pointer;text-align:center;transition:background var(--transition-fast), transform var(--transition-fast);white-space:nowrap;border:none;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-accent-hover)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:default;transform:none}.btn--sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-sm)}.btn--full{width:100%}.btn--ghost{color:var(--color-accent);border:1px solid var(--color-border);background:0 0}.btn--ghost:hover{background:var(--color-accent-soft)}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-shell--tabs{padding-bottom:calc(var(--tab-bar-height) + (var(--tab-bar-gap) * 2) + env(safe-area-inset-bottom))}.app-header{z-index:100;background:var(--color-background-body,var(--color-bg));border-bottom:1px solid var(--color-border);padding-top:env(safe-area-inset-top);position:sticky;top:0}.app-header__inner{max-width:var(--container-max);padding:0 var(--space-4);height:var(--header-height);justify-content:space-between;align-items:center;gap:var(--space-3);margin:0 auto;display:flex}.app-header__logo{font-weight:700;font-size:var(--text-lg);align-items:center;gap:var(--space-2);min-height:var(--touch-target);text-decoration:none;display:inline-flex}.app-header__wordmark span{color:var(--color-accent)}.tab-bar{z-index:100;bottom:calc(var(--tab-bar-gap) + env(safe-area-inset-bottom));max-width:calc(100vw - (var(--tab-bar-gap) * 2));border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);background:#faf8f5d1;border:1px solid #fff9;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #1f23212e,inset 0 1px #ffffffb3}.tab-bar__list{padding:0 var(--space-2);height:var(--tab-bar-height);align-items:center;gap:var(--space-1);margin:0;list-style:none;display:flex}.tab-bar__item{min-width:var(--touch-target);min-height:var(--touch-target);border-radius:var(--radius-pill);color:var(--color-ink-muted);-webkit-tap-highlight-color:transparent;touch-action:manipulation;justify-content:center;align-items:center;text-decoration:none;display:flex}.tab-bar__item[aria-current=page]{color:#fff;background:var(--color-accent)}.tab-bar__item--scan{color:var(--color-accent);background:var(--color-accent-soft)}.tab-bar__item--scan[aria-current=page]{color:#fff;background:var(--color-accent)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.tab-bar{background:#faf8f5f5}}.opie-tiles{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.opie-tile{justify-content:center;align-items:center;gap:var(--space-2);text-align:center;aspect-ratio:1;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-accent);color:#fff;flex-direction:column;font-weight:600;display:flex}.opie-tile__label{font-size:var(--text-base)}.opie-tile__note{font-size:var(--text-xs);color:#ffffffd9;font-weight:400}.opie-tile{cursor:default}@media (max-width:340px){.opie-tiles{grid-template-columns:1fr}.opie-tile{aspect-ratio:auto}}.app-main{padding:var(--space-6) 0 var(--space-8);flex:1}.app-footer{padding:var(--space-5) 0 calc(var(--space-5) + env(safe-area-inset-bottom));font-size:var(--text-xs);color:var(--color-text-secondary,var(--color-ink-muted));border-top:1px solid var(--color-border)}.app-footer p{margin:0 0 var(--space-2)}.app-footer p:last-child{margin-bottom:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.glass-page{min-height:100dvh;padding:var(--space-5) calc(var(--space-4) + env(safe-area-inset-right)) calc(var(--space-5) + env(safe-area-inset-bottom)) calc(var(--space-4) + env(safe-area-inset-left));background:var(--glass-bg,radial-gradient(circle at 18% 18%, #2f6f5e73, transparent 45%), radial-gradient(circle at 82% 22%, #c49a6652, transparent 42%), radial-gradient(circle at 50% 92%, #2f6f5e8c, transparent 58%), linear-gradient(160deg, #2f6f5e 0%, #223a33 55%, #1f2321 100%));background-position:50%;background-size:cover;justify-content:center;align-items:center;display:flex}.glass-card{width:100%;max-width:var(--container-max);padding:var(--space-6) var(--space-5);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(18px)saturate(140%);backdrop-filter:blur(18px)saturate(140%);background:#faf8f5cc;border:1px solid #ffffff8c;box-shadow:0 20px 60px #1f232159,inset 0 1px #fff9}.glass-card .astryx-text[data-color=secondary]{color:var(--color-ink-muted)}.opie-product{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.opie-product__head{align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);display:flex}.opie-product__thumb{border-radius:var(--radius-sm);background:var(--color-accent-soft);padding:var(--space-1);display:inline-flex}.opie-product__tag{margin-left:auto}.opie-ingredients{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.opie-ingredients li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.opie-ingredients li:last-child{border-bottom:0}.opie-ingredients li[data-flag=mammal],.opie-ingredients li[data-flag=hidden]{margin:0 calc(var(--space-3) * -1);padding-inline:var(--space-3);border-radius:var(--radius-sm)}.opie-ingredients li[data-flag=mammal]{background:var(--color-flag-mammal)}.opie-ingredients li[data-flag=hidden]{background:var(--color-flag-hidden)}.opie-ingredients__row{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--space-5);display:flex}.opie-steps{padding-left:var(--space-5);gap:var(--space-2);color:var(--color-ink-muted);flex-direction:column;margin:0;display:flex}.opie-steps li{padding-left:var(--space-1)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass-card{background:#faf8f5f0}}.opie-loading{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-4);flex-direction:column;display:flex}.opie-loading__mark{animation:1.1s ease-in-out infinite opie-bob;display:inline-flex}.opie-loading__label{font-size:var(--text-sm);color:var(--color-ink-muted)}@keyframes opie-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.opie-loading__mark{animation:none;transform:none}}.scanner__guide{text-align:center;padding:0 var(--space-4) var(--space-3)}.scanner__camera{height:calc(66dvh - var(--header-height));border-radius:var(--radius-lg);background:var(--color-ink);min-height:260px;position:relative;overflow:hidden}.scanner__video{object-fit:cover;width:100%;height:100%;display:block}.scanner__frame{border-radius:var(--radius-md);pointer-events:none;position:absolute;inset:12% 8%;box-shadow:0 0 0 2px #faf8f58c}.scanner__state{left:0;right:0;bottom:var(--space-3);align-items:center;gap:var(--space-2);flex-direction:column;display:flex;position:absolute}.scanner__shutter{width:64px;height:64px;min-height:var(--touch-target);border-radius:var(--radius-pill);color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background var(--transition-fast), border-color var(--transition-fast);background:#1f23218c;border:3px solid #faf8f5e6;justify-content:center;align-items:center;display:inline-flex}.scanner__shutter[data-ready=true]{background:var(--color-accent);border-color:#fff}.scanner__shutter:disabled{cursor:default}.scanner__hint{font-size:var(--text-xs);color:#fff;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:#1f23219e;font-weight:600}.scanner__shot{border-radius:var(--radius-md);background:var(--color-accent-soft);position:relative;overflow:hidden}.scanner__shot img{width:100%;display:block}.scanner__sweep:after{content:"";background:linear-gradient(#0000 0%,#2f6f5e59 50%,#0000 100%);animation:1.4s linear infinite opie-sweep;position:absolute;inset:0}@keyframes opie-sweep{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.scanner__sweep:after{opacity:.25;animation:none}}.scanner__thumbs{gap:var(--space-2);padding-bottom:var(--space-1);display:flex;overflow-x:auto}.scanner__thumb{border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--color-border);flex:none;width:64px;height:64px}
