@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 #6c5ce74d}50%{box-shadow:0 0 0 8px #6c5ce700}}@keyframes doodleFloat{0%,to{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-10px) rotate(.5deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes typingDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}:root{--color-bg: #f6f3ec;--color-bg-alt: #efe9dd;--color-surface: rgba(255, 253, 249, .72);--color-surface-solid: #fffdf9;--color-text-primary: #2b2925;--color-text-secondary: #6b665d;--color-text-tertiary: #a8a294;--color-accent: #6c5ce7;--color-accent-hover: #5a4bd4;--color-accent-light: rgba(108, 92, 231, .1);--color-accent-soft: rgba(108, 92, 231, .16);--color-coral: #ff7a66;--color-danger: #e5484d;--color-success: #2f9e6f;--color-warning: #e8920c;--color-border: rgba(43, 41, 37, .1);--color-border-strong: rgba(43, 41, 37, .16);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 22px;--radius-xl: 30px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(43, 41, 37, .06);--shadow-md: 0 6px 18px rgba(43, 41, 37, .08);--shadow-lg: 0 12px 34px rgba(43, 41, 37, .1);--shadow-xl: 0 20px 50px rgba(43, 41, 37, .14);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-display: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;--transition-fast: .15s ease;--transition-normal: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background-color:var(--color-bg);background-image:radial-gradient(rgba(43,41,37,.035) 1px,transparent 1px);background-size:22px 22px;color:var(--color-text-primary);line-height:1.6;overflow:hidden;height:100dvh}#root{height:100dvh;display:flex;flex-direction:column}::selection{background:var(--color-accent);color:#fff}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;letter-spacing:-.02em;line-height:1.1}h2{font-family:var(--font-display);font-size:clamp(1.4rem,3vw,1.9rem);font-weight:600;letter-spacing:-.01em;line-height:1.25}h3{font-size:clamp(1.05rem,2.5vw,1.3rem);font-weight:600;line-height:1.4}p{font-size:clamp(.97rem,2vw,1.09rem);color:var(--color-text-secondary);line-height:1.75}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}.glass{background:var(--color-surface);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--color-border)}.glass-strong{background:#fffdf9e0;backdrop-filter:blur(36px) saturate(180%);-webkit-backdrop-filter:blur(36px) saturate(180%);border:1px solid var(--color-border)}.doodle-illustration{display:block;line-height:0}.doodle-illustration svg{width:100%;height:auto;display:block}.doodle-float{animation:doodleFloat 6s ease-in-out infinite}.lab-msg-copy{opacity:0;transition:opacity var(--transition-fast)}.lab-msg:hover .lab-msg-copy,.lab-msg-copy:focus-visible{opacity:1}@media (hover: none){.lab-msg-copy{opacity:1}}.glossary-term{color:var(--color-text-primary);font-weight:600;background:linear-gradient(transparent 62%,var(--color-accent-soft) 0);border-bottom:1.5px dashed var(--color-accent);border-radius:2px;padding:0 1px;cursor:help;transition:background var(--transition-fast),color var(--transition-fast)}.glossary-term:hover,.glossary-term:focus-visible{background:var(--color-accent-soft);color:var(--color-accent-hover);outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}button{font-family:var(--font-sans);cursor:pointer;border:none;background:none;font-size:inherit;color:inherit}input,textarea{font-family:var(--font-sans);font-size:inherit}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
