@import "https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,400;0,500;0,600;1,500&family=Hanken+Grotesk:wght@400;500;600&family=Inter:wght@300;400;500;600&family=Playfair+Display:wght@400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Mr+Dafoe&family=Jost:wght@300;400;500&display=swap";:root{--bg:#0a1014;--bg2:#0e161b;--surface:#131d23;--surface2:#18242b;--surface3:#1f2d35;--accent:#79d2dc;--accent2:#a1e6ec;--accent-dim:#79d2dc1f;--accent-bdr:#79d2dc40;--on-accent:#0a1014;--text:#f5f5f0;--text2:#a0a09a;--text3:#5a5a55;--border:#2a2a2a;--border2:#333;--success:#4caf7d;--danger:#e05a5a;--warning:#d9a441;--warning-dim:#d9a4411f;--warning-bdr:#d9a44147;--radius:10px;--radius-lg:16px;--radius-pill:20px;--radius-sm:8px;--font-display:"Fraunces", Georgia, serif;--font-body:"Hanken Grotesk", system-ui, sans-serif;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--chart-1:#79d2dc;--chart-2:#4caf7d;--chart-3:#7b8fe0;--cat-grammar:#7b8fe0;--cat-agreement:#4caf7d;--cat-prepositions:#79d2dc;--cat-pronouns:#a1e6ec;--cat-vocab:#a0afee;--cat-structure:#e05a5a;--cat-other:#a0a09a;--persona-1:#7b6ee0;--persona-2:#4caf9d;--persona-3:#e07b8f;--persona-4:#5b9bd5;--persona-5:#5bb8d5;--persona-6:#e07b6d;--persona-7:#6db8a0;--persona-8:#7be0b8;--crest-bg:#1c2a30;--crest-locked:#2a363c;--dur-fast:.14s;--dur:.24s;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--surface-glass:#131d239e;--overlay-tint:#0a101461;--glass-edge:#ffffff1a;--accent-deep:#2e5c66;--auth-glass:#ffffff0e;--auth-edge:#ffffff1f;--auth-input-bg:#ffffff0d;--auth-input-edge:#ffffff24;--glass-top:linear-gradient(90deg, transparent, #ffffff38, transparent);--bg-glow:radial-gradient(ellipse 55% 45% at 6% 4%, #79d2dc26, transparent 62%), radial-gradient(ellipse 55% 45% at 94% 6%, #79d2dc26, transparent 62%), radial-gradient(ellipse 55% 45% at 6% 96%, #79d2dc1f, transparent 62%), radial-gradient(ellipse 55% 45% at 94% 96%, #79d2dc1f, transparent 62%), radial-gradient(ellipse 70% 55% at 50% 50%, #79d2dc0d, transparent 72%)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,sans-serif}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}.btn-primary{background:linear-gradient(180deg, var(--accent) 0%, var(--accent-deep) 100%);color:var(--on-accent);letter-spacing:.02em;box-shadow:0 12px 26px color-mix(in srgb, var(--accent-deep) 48%, transparent), inset 0 1px 0 #ffffff57, inset 0 -3px 8px #0003;border:none;border-radius:15px;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;transition:opacity .2s cubic-bezier(.25,.46,.45,.94),transform .15s cubic-bezier(.25,.46,.45,.94),box-shadow .2s cubic-bezier(.25,.46,.45,.94)}.btn-primary:hover{opacity:.96;box-shadow:0 16px 32px color-mix(in srgb, var(--accent-deep) 54%, transparent), inset 0 1px 0 #ffffff57, inset 0 -3px 8px #0003}.btn-primary:active{opacity:1;box-shadow:0 6px 14px color-mix(in srgb, var(--accent-deep) 40%, transparent), inset 0 1px 0 #ffffff38, inset 0 -2px 6px #00000038;transform:scale(.98)}.btn-primary:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.upgrade-seal{animation:2.6s ease-in-out infinite upgradeGlow}.upgrade-sparkle{animation:2.2s ease-in-out infinite upgradeTwinkle}@keyframes upgradeGlow{0%,to{box-shadow:0 0 18px 2px var(--accent-dim)}50%{box-shadow:0 0 34px 8px var(--accent-dim)}}@keyframes upgradeTwinkle{0%,to{opacity:.25;transform:scale(.85)}50%{opacity:.9;transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){.upgrade-seal,.upgrade-sparkle{animation:none!important}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.btn-secondary{background:linear-gradient(180deg, var(--surface2) 0%, var(--surface) 100%);border:1px solid var(--border2);color:var(--text2);cursor:pointer;border-radius:15px;padding:.75rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .15s cubic-bezier(.25,.46,.45,.94),color .15s cubic-bezier(.25,.46,.45,.94),transform .1s cubic-bezier(.25,.46,.45,.94),box-shadow .15s cubic-bezier(.25,.46,.45,.94);box-shadow:0 4px 12px #0000001a,inset 0 1px #ffffff1a}.btn-secondary:hover{background:linear-gradient(180deg, var(--surface3) 0%, var(--surface2) 100%);color:var(--text);box-shadow:0 6px 16px #00000024,inset 0 1px #ffffff1f}.btn-secondary:active{transform:scale(.98);box-shadow:0 2px 6px #0000001f,inset 0 1px #ffffff14}.btn-secondary:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.card-interactive{transition:transform .18s cubic-bezier(.25,.46,.45,.94),box-shadow .18s cubic-bezier(.25,.46,.45,.94)}.card-interactive:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.card-interactive:active{box-shadow:none;transform:translateY(0)scale(.99)}.card{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius-lg);padding:1.25rem}.input{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:.75rem 1rem;font-size:.9rem;transition:border-color .2s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text3)}.input:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface2) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}.input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface2) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}.input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface2) inset;caret-color:var(--text);transition:background-color 9999s ease-in-out}.professor-msg p{margin:0 0 12px}.professor-msg p:last-child{margin-bottom:0}.professor-msg ul,.professor-msg ol{margin:8px 0 12px 20px;padding:0}.professor-msg li{margin-bottom:6px;line-height:1.6}.professor-msg hr{border:none;border-top:1px solid #ffffff14;margin:14px 0}.professor-msg strong{color:var(--accent2);font-weight:600}.professor-msg h2{color:var(--accent2);margin:0 0 10px;font-size:1rem;font-weight:600}.professor-msg h3{margin:0 0 8px;font-size:.95rem;font-weight:600}.professor-msg code{background:var(--accent-dim);border:1px solid var(--accent-bdr);color:var(--accent2);border-radius:4px;padding:1px 6px;font-size:.85rem}[data-theme=light]{--bg:#f5f5f0;--bg2:#ebebe6;--surface:#fff;--surface2:#f0f0eb;--surface3:#e8e8e3;--accent:#2e5c66;--accent2:#38707c;--accent-dim:#2e5c661f;--accent-bdr:#2e5c6640;--on-accent:#fff;--text:#1a1a1a;--text2:#5a5a55;--text3:#a0a09a;--border:#ddddd8;--border2:#d0d0cb;--warning:#b07d18;--warning-dim:#b07d181f;--warning-bdr:#b07d184d;--chart-1:#2e5c66;--cat-prepositions:#2e5c66;--cat-pronouns:#4a8c96;--cat-vocab:#6b7cc8;--persona-5:#3d8fb0;--persona-8:#3fa882;--crest-bg:#e8e8e3;--crest-locked:#c7c7c2;--surface-glass:#ffffff8c;--overlay-tint:#141e212e;--glass-edge:#ffffffb3;--accent-deep:#1f4049;--auth-glass:#ffffff94;--auth-edge:#2e5c6638;--auth-input-bg:#ffffffb3;--auth-input-edge:#2e5c664d;--glass-top:linear-gradient(90deg, transparent, #2e5c6659, transparent);--bg-glow:radial-gradient(ellipse 55% 45% at 6% 4%, #2e5c6638, transparent 62%), radial-gradient(ellipse 55% 45% at 94% 6%, #2e5c6638, transparent 62%), radial-gradient(ellipse 55% 45% at 6% 96%, #38707c2e, transparent 62%), radial-gradient(ellipse 55% 45% at 94% 96%, #38707c2e, transparent 62%), radial-gradient(ellipse 70% 55% at 50% 50%, #2e5c660f, transparent 72%)}.app-bg{background-color:var(--bg);background-image:var(--bg-glow);background-attachment:fixed;min-height:100vh}.glass-modal{box-shadow:inset 0 1px 0 var(--glass-edge), 0 24px 60px #00000073;border:1px solid var(--glass-edge)!important}[data-fontsize=small]{font-size:14px}[data-fontsize=medium]{font-size:16px}[data-fontsize=large]{font-size:18px}[data-fontsize=xlarge]{font-size:21px}.typing-dots{gap:4px;display:inline-flex}.typing-dots span{background:var(--text3);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite typingDot}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes transitionFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes shimmer{0%{opacity:.4}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulseGreen{0%,to{transform:scale(1);box-shadow:0 0 #4caf7d80}50%{transform:scale(1.08);box-shadow:0 0 0 12px #4caf7d00}}@keyframes enterFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.enter-fade-up{animation:enterFadeUp var(--dur) var(--ease-out)}.stagger>*{animation:enterFadeUp var(--dur) var(--ease-out) both}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:50ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.15s}.stagger>:nth-child(5){animation-delay:.2s}.stagger>:nth-child(6){animation-delay:.25s}.stagger>:nth-child(7){animation-delay:.3s}.stagger>:nth-child(8){animation-delay:.35s}.stagger>:nth-child(n+9){animation-delay:.4s}@keyframes heroPop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.hero-pop{animation:heroPop var(--dur) var(--ease-out) both}@keyframes streakPulse{0%{transform:scale(1)}35%{transform:scale(1.07)}to{transform:scale(1)}}.streak-pulse{animation:streakPulse .6s var(--ease-out) 1 both}@keyframes streakGlow{0%{text-shadow:0 0 #0000}40%{text-shadow:0 0 14px var(--accent)}to{text-shadow:0 0 #0000}}.streak-celebrate{animation:streakGlow 1.1s var(--ease-out) 1 both}@keyframes evoDraw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.evo-line{stroke-dasharray:1;stroke-dashoffset:1px;animation:evoDraw .7s var(--ease-out) forwards}@keyframes evoArea{0%{opacity:0}to{opacity:1}}.evo-area{opacity:0;animation:evoArea .7s var(--ease-out) forwards;animation-delay:.12s}@keyframes modalPop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-pop{animation:modalPop var(--dur) var(--ease-out) both}.auth-page{min-height:100vh;font-family:var(--font-body);position:relative}.auth-orbs{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.auth-orb{filter:blur(60px);will-change:transform, border-radius;position:absolute}.auth-orb-1{background:var(--accent);opacity:.28;border-radius:63% 37% 54% 46%/55% 48% 52% 45%;width:360px;height:360px;animation:24s ease-in-out infinite authBlob1;top:-100px;left:-80px}.auth-orb-2{background:var(--accent2);opacity:.24;border-radius:58% 42% 60% 40%/47% 62% 38% 53%;width:300px;height:300px;animation:29s ease-in-out infinite authBlob2;bottom:-90px;right:-70px}.auth-orb-3{background:var(--accent-deep);opacity:.26;border-radius:47% 53% 43% 57%/56% 47% 53% 44%;width:280px;height:280px;animation:22s ease-in-out infinite authBlob3;top:6%;right:-60px}.auth-orb-4{background:var(--accent);opacity:.2;border-radius:55% 45% 57% 43%/43% 55% 45% 57%;width:220px;height:220px;animation:27s ease-in-out infinite authBlob4;bottom:10%;left:-50px}.auth-orb-5{background:var(--accent2);opacity:.22;border-radius:61% 39% 52% 48%/50% 53% 47% 50%;width:260px;height:260px;animation:31s ease-in-out infinite authBlob5;top:44%;right:-20px}[data-theme=light] .auth-orb-1{opacity:.46}[data-theme=light] .auth-orb-2{opacity:.42}[data-theme=light] .auth-orb-3{opacity:.5}[data-theme=light] .auth-orb-4{opacity:.4}[data-theme=light] .auth-orb-5{opacity:.44}@keyframes authBlob1{0%,to{border-radius:63% 37% 54% 46%/55% 48% 52% 45%;transform:translate(0)rotate(0)}50%{border-radius:45% 55% 38% 62%/48% 60% 40% 52%;transform:translate(38px,28px)rotate(8deg)}}@keyframes authBlob2{0%,to{border-radius:58% 42% 60% 40%/47% 62% 38% 53%;transform:translate(0)rotate(0)}50%{border-radius:40% 60% 45% 55%/60% 40% 58% 42%;transform:translate(-34px,-26px)rotate(-7deg)}}@keyframes authBlob3{0%,to{border-radius:47% 53% 43% 57%/56% 47% 53% 44%;transform:translate(0)rotate(0)}50%{border-radius:60% 40% 58% 42%/44% 58% 42% 56%;transform:translate(-30px,26px)rotate(-9deg)}}@keyframes authBlob4{0%,to{border-radius:55% 45% 57% 43%/43% 55% 45% 57%;transform:translate(0)rotate(0)}50%{border-radius:40% 60% 42% 58%/57% 43% 55% 45%;transform:translate(32px,-22px)rotate(7deg)}}@keyframes authBlob5{0%,to{border-radius:61% 39% 52% 48%/50% 53% 47% 50%;transform:translate(0)rotate(0)}50%{border-radius:44% 56% 60% 40%/58% 42% 50% 50%;transform:translate(-24px,-28px)rotate(-6deg)}}.auth-center{z-index:1;justify-content:center;align-items:center;min-height:100vh;padding:2.5rem 1.25rem;display:flex;position:relative}.auth-card{background:var(--auth-glass);-webkit-backdrop-filter:blur(26px)saturate(165%);border:1px solid var(--auth-edge);border-radius:var(--radius-lg);width:100%;max-width:400px;padding:2rem 1.75rem;position:relative;overflow:hidden;box-shadow:0 24px 60px #00000047}.auth-card:before{content:"";background:var(--glass-top);pointer-events:none;height:1px;position:absolute;top:0;left:0;right:0}[data-theme=light] .auth-card{box-shadow:0 20px 50px #2e5c6629}.auth-input{background:var(--auth-input-bg);border-color:var(--auth-input-edge)}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.btn-primary.auth-submit{background:linear-gradient(135deg, var(--accent), var(--accent-deep))}.fwcert{--paper:#fcfbf7;--ink:#2b2b28;--muted:#8a8e8a;--gold:#c9a24b;background:var(--paper);width:880px;height:622px;color:var(--ink);padding:18px;font-family:Jost,sans-serif;position:relative}.fwcert-frame{border:1px solid var(--accent);outline:6px solid var(--paper);outline-offset:-13px;flex-direction:column;height:100%;padding:44px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #2b2b280f}.fwcert-frame:before,.fwcert-frame:after{content:"";border:1.5px solid var(--accent);opacity:.6;width:18px;height:18px;position:absolute}.fwcert-frame:before{border-bottom:0;border-right:0;top:10px;left:10px}.fwcert-frame:after{border-top:0;border-left:0;bottom:10px;right:10px}.fwcert-top{justify-content:space-between;align-items:flex-start;display:flex}.fwcert-brand{align-items:center;gap:12px;display:flex}.fwcert-crest{background:var(--deep);width:42px;height:42px;color:var(--paper);letter-spacing:.5px;border-radius:11px;place-items:center;font-size:17px;font-weight:500;display:grid}.fwcert-wordmark{flex-direction:column;line-height:1.25;display:flex}.fwcert-wordmark b{color:var(--deep);font-size:15px;font-weight:500}.fwcert-wordmark small{color:var(--muted);letter-spacing:.3px;font-size:10.5px}.fwcert-tier{text-align:right;flex-direction:column;align-items:flex-end;gap:5px;display:flex}.fwcert-lvl{letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-size:10.5px}.fwcert-dots{gap:5px;display:flex}.fwcert-dots i{border:1px solid var(--accent);border-radius:50%;width:7px;height:7px}.fwcert-dots i.on{background:var(--accent)}.fwcert-body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.fwcert-eyebrow{letter-spacing:4px;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:500}.fwcert-to{color:var(--muted);letter-spacing:.4px;margin-top:18px;font-size:12.5px}.fwcert-name{color:var(--deep);margin-top:4px;font-family:Cormorant Garamond;font-size:52px;font-weight:600;line-height:1.05}.fwcert-rule{align-items:center;gap:12px;width:360px;margin:14px 0 16px;display:flex}.fwcert-rule span{background:var(--accent);opacity:.55;flex:1;height:1px}.fwcert-rule i{background:var(--accent);width:7px;height:7px;transform:rotate(45deg)}.fwcert-desc{color:#4a4e4a;font-size:13px}.fwcert-level{color:var(--deep);letter-spacing:.3px;margin-top:6px;font-family:Cormorant Garamond;font-size:27px;font-weight:600}.fwcert-cefr{color:var(--muted);letter-spacing:.6px;margin-top:5px;font-size:11px}.fwcert-foot{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.fwcert-sign,.fwcert-date{flex-direction:column;gap:6px;min-width:150px;display:flex}.fwcert-date{text-align:right;align-items:flex-end}.fwcert-line{background:#c9ccc6;width:150px;height:1px}.fwcert-cap{color:var(--muted);letter-spacing:.3px;font-size:10.5px}.fwcert-date b{color:var(--deep);font-family:Cormorant Garamond;font-size:16px;font-weight:500}.fwcert-sign:before{content:"Igor Oliveira";color:var(--deep);margin-bottom:-1px;font-family:Mr Dafoe,cursive;font-size:30px;line-height:.8}.fwcert-seal{border:1.5px solid var(--accent);border-radius:50%;flex-shrink:0;align-self:flex-end;place-items:center;width:62px;height:62px;display:grid;position:relative}.fwcert-seal:before{content:"";border:1px solid var(--accent);opacity:.45;border-radius:50%;position:absolute;inset:5px}.fwcert-seal b{letter-spacing:1px;text-transform:uppercase;color:var(--deep);text-align:center;font-size:9px;line-height:1.2}.fwcert--gold .fwcert-frame{background:linear-gradient(#fffdf6,#fcfbf7)}.fwcert--gold .fwcert-eyebrow,.fwcert--gold .fwcert-seal b{color:var(--gold)}.fwcert--gold .fwcert-rule i,.fwcert--gold .fwcert-dots i.on{background:var(--gold)}.fwcert--gold .fwcert-rule span,.fwcert--gold .fwcert-dots i,.fwcert--gold .fwcert-seal,.fwcert--gold .fwcert-seal:before,.fwcert--gold .fwcert-frame{border-color:var(--gold)}.fwcert--gold .fwcert-crest{background:linear-gradient(135deg, var(--deep), #143f63)}
