:root{--color-primary:#f43f5e;--color-primary-hover:#e11d48;--color-primary-light:#ffe4e6;--color-primary-dark:#be123c;--color-accent:#fb7185;--color-accent-light:#fecdd3;--color-score-low:#10b981;--color-score-low-bg:#d1fae5;--color-score-medium:#f59e0b;--color-score-medium-bg:#fef3c7;--color-score-high:#ef4444;--color-score-high-bg:#fee2e2;--color-found:#10b981;--color-found-bg:#ecfdf5;--color-unfound:#9ca3af;--color-unfound-bg:#f3f4f6;--color-free:#8b5cf6;--color-free-bg:#ede9fe;--color-twitter:#1da1f2;--color-twitter-hover:#0c8de4;--color-bg:#fff1f2;--color-bg-subtle:#fafafa;--color-card:#fff;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-error:#dc2626;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 6px -1px rgba(0,0,0,.07),0 2px 4px -1px rgba(0,0,0,.04);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -2px rgba(0,0,0,.04);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--shadow-glow:0 0 30px rgba(244,63,94,.15);--shadow-card:0 4px 20px rgba(0,0,0,.08);--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-normal:250ms cubic-bezier(0.4,0,0.2,1);--transition-slow:350ms cubic-bezier(0.4,0,0.2,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}body:before{content:"";position:fixed;top:0;left:0;right:0;height:600px;background:linear-gradient(135deg,#f43f5e,#fb7185 50%,#fda4af);opacity:.05;z-index:-1;pointer-events:none}.container{width:100%;max-width:800px;margin:0 auto;padding:0 var(--spacing-lg)}.main{flex:1;padding:var(--spacing-xl) 0 var(--spacing-3xl)}.header{background:var(--color-card);padding:var(--spacing-xl) 0;margin-top:52px;box-shadow:var(--shadow-sm);border-bottom:1px solid var(--color-border-light)}.header:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:80px;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));border-radius:var(--radius-full)}.header__title{font-size:2rem;font-weight:800;text-align:center;margin-bottom:var(--spacing-xs);letter-spacing:-.02em;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header__tagline{font-size:1rem;color:var(--color-text-secondary);text-align:center}.input-section{margin-bottom:var(--spacing-xl)}.input-label{display:block;font-size:.9375rem;font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-sm)}.text-input{width:100%;min-height:200px;padding:var(--spacing-lg);font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--color-text);background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--radius-lg);resize:vertical;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.text-input:hover{border-color:var(--color-text-muted)}.text-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-light),var(--shadow-glow)}.text-input::placeholder{color:var(--color-text-muted)}.input-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-sm);margin-bottom:var(--spacing-md);min-height:24px}.char-count{font-size:.875rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;transition:color var(--transition-fast)}.char-count.warning{color:var(--color-score-medium)}.char-count.error,.error-message{color:var(--color-error)}.error-message{font-size:.875rem;font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);font-family:var(--font-sans);font-size:1rem;font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;min-height:52px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{width:100%;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;box-shadow:var(--shadow-md),0 4px 14px rgba(244,63,94,.25)}.btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg),0 6px 20px rgba(244,63,94,.3)}.btn--primary:active:not(:disabled){transform:translateY(0)}.btn--secondary{background:var(--color-card);color:var(--color-text);border:2px solid var(--color-border);flex:1}.btn--secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.btn--twitter{background:linear-gradient(135deg,var(--color-twitter),#0c8de4);color:#fff;flex:1}.btn--twitter:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md),0 4px 14px rgba(29,161,242,.3)}.btn--outline{width:100%;background:transparent;color:var(--color-text-secondary);border:2px solid var(--color-border)}.btn--outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn__text{display:inline}.btn__loading{display:flex;align-items:center;gap:var(--spacing-sm)}.spinner{width:18px;height:18px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:a .8s linear infinite}@keyframes a{to{transform:rotate(1turn)}}.results-section{animation:b var(--transition-slow)}@keyframes b{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.score-container{text-align:center;margin-bottom:var(--spacing-xl)}.score-circle{width:160px;height:160px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-md);position:relative;transition:all var(--transition-normal)}.score-circle:before{content:"";position:absolute;inset:-4px;border-radius:50%;padding:4px;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.score-circle.score-low{background:var(--color-score-low-bg)}.score-circle.score-low:before{background:linear-gradient(135deg,var(--color-score-low),#34d399)}.score-circle.score-medium{background:var(--color-score-medium-bg)}.score-circle.score-medium:before{background:linear-gradient(135deg,var(--color-score-medium),#fbbf24)}.score-circle.score-high{background:var(--color-score-high-bg)}.score-circle.score-high:before{background:linear-gradient(135deg,var(--color-score-high),#f87171)}.score-number{font-size:3.5rem;font-weight:800;color:var(--color-text);font-variant-numeric:tabular-nums}.score-interpretation{font-size:1.125rem;color:var(--color-text-secondary);max-width:400px;margin:0 auto}.bingo-banner{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;font-size:2rem;font-weight:800;text-align:center;padding:var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl);letter-spacing:.1em;box-shadow:var(--shadow-lg),0 8px 30px rgba(244,63,94,.3);animation:c 2s infinite}@keyframes c{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.bingo-card-container{margin-bottom:var(--spacing-xl)}.section-title{font-size:1.25rem;font-weight:700;margin-bottom:var(--spacing-md);color:var(--color-text);display:flex;align-items:center;gap:var(--spacing-sm)}.section-title:before{content:"";width:4px;height:20px;background:linear-gradient(180deg,var(--color-primary),var(--color-accent));border-radius:var(--radius-full)}.bingo-card{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--spacing-sm);background:var(--color-card);padding:var(--spacing-md);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid var(--color-border-light)}.bingo-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);border-radius:var(--radius-md);font-size:.75rem;font-weight:600;text-align:center;word-break:break-word;line-height:1.2;transition:all var(--transition-fast)}.bingo-cell--unfound{background:var(--color-unfound-bg);color:var(--color-unfound);border:2px dashed var(--color-border)}.bingo-cell--found{background:linear-gradient(135deg,var(--color-found-bg),#d1fae5);color:var(--color-found);border:2px solid var(--color-found);box-shadow:0 2px 8px rgba(16,185,129,.2)}.bingo-cell--free{background:linear-gradient(135deg,var(--color-free-bg),#ddd6fe);color:var(--color-free);border:2px solid var(--color-free);font-weight:700}.bingo-cell--winning{animation:d 1s ease-in-out infinite alternate}@keyframes d{0%{box-shadow:0 0 5px var(--color-found)}to{box-shadow:0 0 20px var(--color-found)}}.buzzword-breakdown{margin-bottom:var(--spacing-xl)}.breakdown-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text);cursor:pointer;transition:all var(--transition-fast)}.breakdown-toggle:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.breakdown-toggle.active{border-color:var(--color-primary);border-bottom-left-radius:0;border-bottom-right-radius:0}.toggle-icon{font-size:1.25rem;font-weight:400;transition:transform var(--transition-fast)}.breakdown-toggle.active .toggle-icon{transform:rotate(45deg)}.breakdown-content{background:var(--color-card);border:2px solid var(--color-primary);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);padding:var(--spacing-lg)}.breakdown-category{margin-bottom:var(--spacing-lg)}.breakdown-category:last-child{margin-bottom:0}.breakdown-category__title{font-size:.875rem;font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-sm)}.breakdown-category__words{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.breakdown-word{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-primary-light);color:var(--color-primary-dark);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500}.breakdown-word__count{font-size:.75rem;color:var(--color-text-muted)}.share-section{margin-bottom:var(--spacing-xl)}.share-buttons{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.footer{padding:var(--spacing-xl) 0;border-top:1px solid var(--color-border);text-align:center;background:var(--color-card)}.footer p{font-size:.875rem;color:var(--color-text-muted);margin-bottom:var(--spacing-xs)}.privacy-note{font-size:.75rem}@media (max-width:640px){.header__title{font-size:1.5rem}.score-circle{width:140px;height:140px}.score-number{font-size:3rem}.bingo-cell{font-size:.625rem;padding:var(--spacing-xs)}.share-buttons{flex-direction:column}.share-buttons .btn{flex:none;width:100%}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--spacing-md) var(--spacing-lg);background:hsla(0,0%,100%,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border)}.site-nav__brand{display:inline-flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;font-weight:700;font-size:1.125rem}.site-nav__icon{color:var(--color-primary);font-size:1.25rem}.site-nav__text{color:var(--color-text)}.footer a,.site-nav__accent{color:var(--color-primary)}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}