@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@500;700;800&family=Cinzel:wght@600;700;800;900&family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Alex+Brush&display=swap");:root{--font-sans:"Nunito",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--font-cinzel:"Cinzel",Georgia,serif;--font-diploma:"Cormorant Garamond",Georgia,Cambria,"Times New Roman",serif;--font-cursive:"Alex Brush",cursive;--bg-main:#fff;--bg-surface:#fff;--bg-subtle:#f8fafc;--bg-muted:#f1f5f9;--border-subtle:#f1f5f9;--border-strong:#e2e8f0;--border-focus:#059669;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--primary:#059669;--primary-hover:#047857;--primary-light:#ecfdf5;--primary-border:#a7f3d0;--accent-pink:#ec4899;--accent-amber:#d97706;--accent-purple:#7c3aed;--accent-teal:#0d9488;--accent-sky:#0284c7;--finger-l-pinky:#f43f5e;--finger-l-ring:#ea580c;--finger-l-middle:#ca8a04;--finger-l-index:#16a34a;--finger-thumb:#7c3aed;--finger-r-index:#0d9488;--finger-r-middle:#059669;--finger-r-ring:#9333ea;--finger-r-pinky:#db2777;--shadow-sm:0 1px 3px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.07),0 2px 4px -2px rgba(0,0,0,.05);--shadow-lg:0 10px 20px -3px rgba(0,0,0,.08),0 4px 6px -4px rgba(0,0,0,.03);--shadow-xl:0 20px 30px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.04);--shadow-glow:0 0 20px rgba(5,150,105,.25);--radius-xl:28px;--radius-lg:20px;--radius-md:14px;--radius-sm:8px}*{box-sizing:border-box;padding:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-primary);min-height:100vh;overflow-x:hidden;letter-spacing:-.01em}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f8fafc}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.navbar-root{position:-webkit-sticky;position:sticky;top:0;z-index:100;background-color:hsla(0,0%,100%,.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid #e2e8f0;box-shadow:0 1px 4px rgba(0,0,0,.03);width:100%;transition:all .2s ease}.navbar-container{max-width:1280px;margin:0 auto;padding:0 20px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px}.nav-logo-link{display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;text-decoration:none!important;flex-shrink:0;cursor:pointer;line-height:1;transition:transform .15s ease}.nav-logo-link:hover{transform:scale(1.02)}.nav-logo-icon-box{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#059669,#10b981);display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(5,150,105,.3);flex-shrink:0;transition:transform .2s ease}.nav-logo-link:hover .nav-logo-icon-box{transform:rotate(-6deg) scale(1.06)}.nav-logo-text-wrap{display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:6px!important;white-space:nowrap!important;line-height:1}.nav-logo-title{font-weight:900;font-size:1.15rem;letter-spacing:-.02em;color:#0f172a}.nav-logo-badge,.nav-logo-title{font-family:var(--font-sans);line-height:1}.nav-logo-badge{font-size:.62rem;font-weight:800;padding:2.5px 7px;border-radius:999px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;letter-spacing:.04em;box-shadow:0 2px 6px rgba(217,119,6,.25)}.nav-desktop-links{display:flex;align-items:center;gap:4px}.nav-desktop-item{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:12px;font-size:.88rem;font-weight:700;color:#475569;text-decoration:none;transition:all .15s ease;border:1px solid transparent;white-space:nowrap}.nav-desktop-item:hover{background-color:#f8fafc;color:#059669;transform:translateY(-1px)}.nav-desktop-item.active{background-color:#ecfdf5;color:#047857;border-color:#a7f3d0;font-weight:800;box-shadow:0 1px 3px rgba(5,150,105,.08)}.nav-desktop-hud{display:flex;align-items:center;gap:10px;flex-shrink:0;position:relative}.nav-streak-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background-color:#fef3c7;border:1px solid #fde68a;color:#b45309;font-weight:800;font-size:.84rem;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.nav-streak-pill:hover{transform:scale(1.04);box-shadow:0 2px 8px rgba(217,119,6,.18)}.nav-sound-btn{width:38px;height:38px;border-radius:10px;background-color:#f8fafc;border:1px solid #cbd5e1;color:#059669;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.nav-sound-btn:hover{background-color:#ecfdf5;border-color:#a7f3d0;transform:scale(1.05)}.nav-mobile-toggle{display:none;width:40px;height:40px;border-radius:10px;background-color:#fff;border:1.5px solid #cbd5e1;color:#0f172a;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s ease}.nav-mobile-toggle.open{background-color:#ecfdf5;border-color:#059669;color:#059669}@media (max-width:1023px){.nav-desktop-hud,.nav-desktop-links{display:none!important}.nav-mobile-toggle{display:flex!important}.navbar-container{height:60px;padding:0 16px}}@media (max-width:440px){.navbar-container{height:56px;padding:0 12px}.nav-logo-icon-box{width:32px;height:32px;border-radius:8px}.nav-logo-title{font-size:.96rem}.nav-logo-badge{font-size:.58rem;padding:2px 5px}.nav-mobile-toggle{width:36px;height:36px;border-radius:8px}}@media (max-width:360px){.nav-logo-title{font-size:.86rem}.nav-logo-badge{display:none}}.glass-panel{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease}.glass-panel:hover{box-shadow:var(--shadow-lg)}.glass-pill{background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:9999px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(180deg,#10b981,#059669);color:#fff;font-family:var(--font-sans);font-weight:800;font-size:1.05rem;padding:14px 28px;border-radius:var(--radius-md);border:none;border-bottom:4px solid #047857;cursor:pointer;transition:transform .12s cubic-bezier(.16,1,.3,1),box-shadow .12s ease,background-color .15s ease;box-shadow:0 4px 14px rgba(5,150,105,.28);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(5,150,105,.4)}.btn-primary:active{transform:translateY(2px);border-bottom-width:2px;box-shadow:0 2px 6px rgba(5,150,105,.2)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:10px;background-color:#fff;color:#0f172a;font-family:var(--font-sans);font-weight:800;font-size:1.05rem;padding:13px 26px;border-radius:var(--radius-md);border:2px solid #e2e8f0;border-bottom:4px solid #cbd5e1;cursor:pointer;transition:transform .12s cubic-bezier(.16,1,.3,1),box-shadow .12s ease,border-color .15s ease,color .15s ease;box-shadow:0 2px 8px rgba(0,0,0,.04);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none}.btn-secondary:hover{border-color:#059669 #059669 #047857;color:#059669;transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.08)}.btn-secondary:active{transform:translateY(2px);border-bottom-width:2px;box-shadow:0 1px 4px rgba(0,0,0,.04)}.interactive-btn{will-change:transform}.interactive-btn:hover{filter:brightness(1.04)}.interactive-btn:active{transform:translateY(2px) scale(.98)!important;border-bottom-width:2px!important}.typing-box{font-family:var(--font-mono);font-size:1.45rem;line-height:2.1rem;letter-spacing:.04em;padding:16px 20px;border-radius:var(--radius-lg);background-color:#f8fafc;border:2px solid var(--border-strong);box-shadow:inset 0 2px 6px rgba(0,0,0,.04);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.typing-box:focus{border-color:var(--border-focus);box-shadow:inset 0 2px 6px rgba(0,0,0,.04),0 0 0 3px rgba(5,150,105,.15)}@media (max-width:640px){.typing-box{font-size:1.25rem;line-height:1.85rem;padding:18px 16px;letter-spacing:.02em;border-radius:14px}}.char-pending{color:#94a3b8}.char-correct{color:#059669;font-weight:700}.char-error{color:#dc2626;background-color:#fee2e2;border-radius:4px;font-weight:700;animation:subtleShake .25s ease}.char-current{color:#065f46;background-color:var(--primary-light);border-bottom:3px solid var(--primary);border-radius:4px;animation:cursorBlink 1s infinite alternate}@keyframes cursorBlink{0%{border-color:var(--primary)}to{border-color:transparent}}@keyframes subtleShake{0%,to{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.keycap{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--border-strong);box-shadow:0 3px 0 #cbd5e1,0 4px 8px rgba(0,0,0,.05);font-family:var(--font-mono);font-weight:700;transition:all .1s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;height:52px;color:var(--text-primary)}.keycap:hover{border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 4px 0 #cbd5e1,0 6px 12px rgba(0,0,0,.07)}.keycap.active-key{transform:translateY(2px);box-shadow:0 1px 0 #cbd5e1,0 0 14px rgba(5,150,105,.3);background:linear-gradient(180deg,#ecfdf5,#d1fae5);border-color:var(--primary);animation:pulseGlow 2s infinite alternate}.keycap-bump:after{content:"";position:absolute;bottom:6px;width:14px;height:3px;background-color:#64748b;border-radius:2px}.finger-dot{width:8px;height:8px;border-radius:50%;display:inline-block}@keyframes pulseGlow{0%{box-shadow:0 1px 0 #cbd5e1,0 0 8px rgba(5,150,105,.25)}to{box-shadow:0 1px 0 #cbd5e1,0 0 18px rgba(5,150,105,.55)}}@keyframes floatAnim{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-float{animation:floatAnim 4s ease-in-out infinite}@keyframes shimmerEffect{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.4) 50%,hsla(0,0%,100%,0));background-size:200% 100%;animation:shimmerEffect 2.5s infinite}.badge-interactive{transition:transform .15s cubic-bezier(.34,1.56,.64,1)}.badge-interactive:hover{transform:scale(1.08)}@media print{@page{size:landscape;margin:6mm}body{background:#fff!important;padding:0!important;margin:0!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.footer-root,.navbar-root,.no-print,footer,header,nav{display:none!important}.printable-certificate-wrapper{box-shadow:none!important;border-width:6px!important;max-width:100%!important;width:100%!important;margin:0 auto!important;page-break-inside:avoid!important;break-inside:avoid!important}}