body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-tertiary:#1a1a25;--text-primary:#fff;--text-secondary:#a0a0b0;--text-muted:#606070;--accent-primary:#6366f1;--accent-secondary:#8b5cf6;--accent-gradient:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);--glass-bg:#ffffff08;--glass-border:#ffffff14;--glass-shadow:0 8px 32px #0000004d;--section-padding:120px 0;--container-width:1200px;--border-radius:16px;--border-radius-sm:8px;--border-radius-lg:24px;--transition-fast:0.2s ease;--transition-normal:0.3s ease;--transition-slow:0.5s ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{background:#0a0a0f;background:var(--bg-primary);color:#fff;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;overflow-x:hidden}.App{min-height:100vh;position:relative}.scroll-progress{background:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);background:var(--accent-gradient);box-shadow:0 0 10px #6366f180;height:3px;left:0;position:fixed;top:0;transition:width .1s ease;z-index:9999}.floating-shapes{bottom:0;left:0;overflow:hidden;pointer-events:none;position:fixed;right:0;top:0;z-index:0}.float-shape{animation:float 20s ease-in-out infinite;border-radius:50%;filter:blur(60px);opacity:.5;position:absolute}.float-1{animation-delay:0s;background:#6366f126;height:400px;left:-10%;top:10%;width:400px}.float-2{animation-delay:-5s;background:#8b5cf61f;height:300px;right:-5%;top:60%;width:300px}.float-3{animation-delay:-10s;background:#a855f71a;bottom:10%;height:250px;left:30%;width:250px}.float-4{animation-delay:-15s;background:#6366f114;height:350px;left:50%;top:40%;width:350px}@keyframes float{0%,to{transform:translate(0) rotate(0deg)}25%{transform:translate(30px,-30px) rotate(5deg)}50%{transform:translate(-20px,20px) rotate(-5deg)}75%{transform:translate(20px,30px) rotate(3deg)}}.gradient-bg{background:radial-gradient(800px circle at 50% 50%,#6366f126,#0000 40%),radial-gradient(600px circle at 80% 20%,#8b5cf61a,#0000 40%),radial-gradient(400px circle at 20% 80%,#a855f714,#0000 40%);background:radial-gradient(800px circle at var(--mouse-x,50%) var(--mouse-y,50%),#6366f126,#0000 40%),radial-gradient(600px circle at 80% 20%,#8b5cf61a,#0000 40%),radial-gradient(400px circle at 20% 80%,#a855f714,#0000 40%);bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;transition:background .3s ease;z-index:0}.glass{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffff08;background:var(--glass-bg);border:1px solid #ffffff14;border:1px solid var(--glass-border);box-shadow:0 8px 32px #0000004d;box-shadow:var(--glass-shadow)}.loading-screen{align-items:center;background:#0a0a0f;background:var(--bg-primary);bottom:0;display:flex;justify-content:center;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:9999}.loading-content{text-align:center;z-index:1}.loading-logo{display:flex;font-size:5rem;font-weight:800;gap:8px;justify-content:center;margin-bottom:40px}.logo-letter{-webkit-text-fill-color:#0000;animation:letterBounce .6s ease-out forwards;background:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;opacity:0;transform:translateY(20px)}.logo-letter:first-child{animation-delay:.2s}.logo-letter:nth-child(2){animation-delay:.4s}@keyframes letterBounce{0%{opacity:0;transform:translateY(20px)}50%{transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.loading-bar{background:#1a1a25;background:var(--bg-tertiary);border-radius:2px;height:4px;margin:0 auto 20px;overflow:hidden;width:200px}.loading-progress{animation:loadingBar 2s ease-in-out forwards;background:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);background:var(--accent-gradient);border-radius:2px;box-shadow:0 0 15px #6366f180;height:100%}@keyframes loadingBar{0%{width:0}to{width:100%}}.loading-text{display:flex;gap:4px;justify-content:center}.loading-dot{animation:dotPulse 1.4s ease-in-out infinite;color:#a0a0b0;color:var(--text-secondary);font-size:1.5rem}.loading-dot:first-child{animation-delay:0s}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-8px)}}.loading-shapes{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.loading-shapes .shape{animation:shapeFloat 8s ease-in-out infinite;border-radius:50%;filter:blur(80px);position:absolute}.shape-1{background:#6366f14d;height:300px;left:10%;top:20%;width:300px}.shape-2{animation-delay:-3s;background:#8b5cf640;height:200px;right:20%;top:60%;width:200px}.shape-3{animation-delay:-5s;background:#a855f733;bottom:20%;height:250px;left:40%;width:250px}@keyframes shapeFloat{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,-30px) scale(1.1)}}.navbar{align-items:center;border-radius:50px;display:flex;gap:4px;justify-content:center;left:50%;padding:8px 12px;position:fixed;top:20px;transform:translateX(-50%);transition:all .3s ease;transition:all var(--transition-normal);z-index:1000}.nav-link{background:none;border:none;border-radius:50px;color:#a0a0b0;color:var(--text-secondary);cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;transition:all .2s ease;transition:all var(--transition-fast);white-space:nowrap}.nav-link.active,.nav-link:hover{background:#6366f126;color:#fff;color:var(--text-primary)}.nav-home{border-radius:50px 0 0 50px;border-right:1px solid #ffffff14;border-right:1px solid var(--glass-border);font-size:1rem;margin-right:4px;padding:8px 16px 8px 12px}.hero-section{align-items:center;display:flex;gap:60px;justify-content:space-between;margin:0 auto;max-width:1200px;max-width:var(--container-width);min-height:100vh;padding:140px 5% 80px;position:relative}.hero-content{flex:1 1;max-width:600px}.hero-badge{align-items:center;background:#22c55e1a;border:1px solid #22c55e33;border-radius:50px;color:#22c55e;display:inline-flex;font-size:.85rem;font-weight:500;gap:8px;margin-bottom:24px;padding:8px 16px}.badge-dot{animation:pulse 2s ease-in-out infinite;background:#22c55e;border-radius:50%;height:8px;width:8px}.hero-title{margin-bottom:16px}.title-line{color:#a0a0b0;color:var(--text-secondary);display:block;font-size:1.2rem;font-weight:400;margin-bottom:8px}.title-name{font-size:clamp(2.5rem,5vw,4rem);font-weight:800;line-height:1.1}.gradient-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text}.hero-subtitle{color:#fff;color:var(--text-primary);font-size:clamp(1.2rem,2.5vw,1.5rem);font-weight:600;margin-bottom:12px}.hero-description{color:#a0a0b0;color:var(--text-secondary);font-size:1.1rem;margin-bottom:32px;max-width:500px}.hero-cta{display:flex;gap:16px;margin-bottom:48px}.btn-primary{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);background:var(--accent-gradient);border:none;border-radius:16px;border-radius:var(--border-radius);color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:8px;padding:14px 28px;transition:all .2s ease;transition:all var(--transition-fast)}.btn-primary:hover{box-shadow:0 10px 30px #6366f166;transform:translateY(-3px)}.glow-effect{overflow:hidden;position:relative}.glow-effect:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.glow-effect:hover:before{left:100%}.btn-primary.large{font-size:1.1rem;padding:18px 36px}.btn-arrow{transition:transform .2s ease;transition:transform var(--transition-fast)}.btn-primary:hover .btn-arrow{transform:translateX(4px)}.btn-secondary{background:#0000;border:2px solid #ffffff14;border:2px solid var(--glass-border);border-radius:16px;border-radius:var(--border-radius);color:#fff;color:var(--text-primary);cursor:pointer;font-size:1rem;font-weight:600;padding:14px 28px;transition:all .2s ease;transition:all var(--transition-fast)}.btn-secondary:hover{background:#6366f11a;border-color:#6366f1;border-color:var(--accent-primary)}.hero-stats{align-items:center;display:flex;gap:32px}.stat-item{text-align:center}.stat-number{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;display:block;font-size:2rem;font-weight:800}.stat-label{color:#a0a0b0;color:var(--text-secondary);font-size:.85rem}.stat-divider{background:#ffffff14;background:var(--glass-border);height:40px;width:1px}.hero-visual{display:flex;flex:1 1;justify-content:center}.code-window{border-radius:16px;border-radius:var(--border-radius);max-width:450px;overflow:hidden;width:100%}.window-header{align-items:center;background:#0003;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--glass-border);display:flex;padding:12px 16px}.window-dots{display:flex;gap:8px;margin-right:16px}.dot{border-radius:50%;height:12px;width:12px}.dot.red{background:#ff5f56}.dot.yellow{background:#ffbd2e}.dot.green{background:#27ca40}.code-content,.window-title{color:#a0a0b0;color:var(--text-secondary);font-size:.85rem}.code-content{font-family:Fira Code,Monaco,monospace;line-height:1.8;overflow-x:auto;padding:20px}.code-content code{color:#a5d6ff}.scroll-indicator{align-items:center;bottom:40px;cursor:pointer;display:flex;flex-direction:column;gap:12px;left:50%;opacity:.6;position:absolute;transform:translateX(-50%);transition:opacity .2s ease;transition:opacity var(--transition-fast)}.scroll-indicator:hover{opacity:1}.mouse{border:2px solid #a0a0b0;border:2px solid var(--text-secondary);border-radius:15px;height:42px;position:relative;width:26px}.mouse-wheel{animation:mouseScroll 2s ease-in-out infinite;background:#6366f1;background:var(--accent-primary);border-radius:2px;height:8px;left:50%;position:absolute;top:8px;transform:translateX(-50%);width:4px}@keyframes mouseScroll{0%,to{opacity:1;transform:translateX(-50%) translateY(0)}50%{opacity:.3;transform:translateX(-50%) translateY(12px)}}.scroll-text{color:#a0a0b0;color:var(--text-secondary);font-size:.75rem;letter-spacing:1px;text-transform:uppercase}.section{margin:0 auto;max-width:1200px;max-width:var(--container-width);padding:120px 0;padding:var(--section-padding);padding-left:5%;padding-right:5%;position:relative}.section-header{margin-bottom:60px;text-align:center}.section-tag{background:#6366f11a;border-radius:50px;color:#6366f1;color:var(--accent-primary);display:inline-block;font-size:.85rem;font-weight:600;letter-spacing:1px;margin-bottom:16px;padding:6px 16px;text-transform:uppercase}.section-title{color:#fff;color:var(--text-primary);font-size:clamp(2rem,4vw,3rem);font-weight:800}.animate-on-scroll{opacity:0;transform:translateY(30px);transition:all .6s cubic-bezier(.16,1,.3,1)}.animate-on-scroll.visible{opacity:1;transform:translateY(0)}.about-content{grid-gap:60px;align-items:start;display:grid;gap:60px;grid-template-columns:1fr 1fr}.about-text{max-width:600px}.about-lead{color:#fff;color:var(--text-primary);font-size:1.25rem;font-weight:500;line-height:1.7;margin-bottom:20px}.about-text p{color:#a0a0b0;color:var(--text-secondary);line-height:1.8;margin-bottom:16px}.education-cards{display:flex;flex-direction:column;gap:20px}.edu-card{border-radius:16px;border-radius:var(--border-radius);display:flex;gap:20px;padding:24px;transition:all .3s ease;transition:all var(--transition-normal)}.edu-card:hover{border-color:#6366f1;border-color:var(--accent-primary);transform:translateX(8px)}.edu-icon{font-size:2rem}.edu-content h4{color:#fff;color:var(--text-primary);font-size:1.1rem;font-weight:600;margin-bottom:4px}.edu-degree{color:#a0a0b0;color:var(--text-secondary);margin-bottom:8px}.edu-meta{color:#606070;color:var(--text-muted);display:flex;font-size:.85rem;gap:16px}.edu-grade{color:#6366f1;color:var(--accent-primary);font-weight:600}.skills-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(2,1fr);margin-bottom:60px}.skill-category{border-radius:16px;border-radius:var(--border-radius);padding:30px;transition:all .3s ease;transition:all var(--transition-normal)}.skill-category:hover{border-color:#6366f1;border-color:var(--accent-primary);transform:translateY(-5px)}.category-title{color:#fff;color:var(--text-primary);font-size:1.1rem;font-weight:600;margin-bottom:24px}.skill-tags{display:flex;flex-wrap:wrap;gap:10px}.skill-tag{animation:tagAppear .5s ease forwards;background:#6366f11a;border:1px solid #6366f133;border-radius:50px;color:#a0a0b0;color:var(--text-secondary);font-size:.9rem;font-weight:500;opacity:0;padding:8px 16px;transform:translateY(10px);transition:all .2s ease;transition:all var(--transition-fast)}@keyframes tagAppear{to{opacity:1;transform:translateY(0)}}.skill-tag:hover{background:#6366f133;border-color:#6366f1;border-color:var(--accent-primary);box-shadow:0 4px 15px #6366f14d;color:#fff;color:var(--text-primary);transform:translateY(-2px)}.certifications{text-align:center}.cert-title{color:#fff;color:var(--text-primary);font-size:1.3rem;font-weight:600;margin-bottom:30px}.cert-grid{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.cert-badge{align-items:center;border-radius:16px;border-radius:var(--border-radius);display:flex;gap:10px;padding:12px 20px;transition:all .2s ease;transition:all var(--transition-fast)}.cert-badge:hover{border-color:#6366f1;border-color:var(--accent-primary);transform:translateY(-3px)}.cert-icon{font-size:1.3rem}.cert-name{color:#a0a0b0;color:var(--text-secondary);font-size:.9rem;font-weight:500}.timeline{margin:0 auto;max-width:800px}.timeline-item{display:flex;gap:30px;margin-bottom:40px}.timeline-marker{align-items:center;display:flex;flex-direction:column;flex-shrink:0}.marker-dot{background:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);background:var(--accent-gradient);border-radius:50%;box-shadow:0 0 20px #6366f180;height:16px;width:16px}.marker-line{background:#ffffff14;background:var(--glass-border);flex:1 1;margin-top:10px;width:2px}.timeline-content{border-radius:16px;border-radius:var(--border-radius);flex:1 1;padding:24px;transition:all .3s ease;transition:all var(--transition-normal)}.timeline-content:hover{border-color:#6366f1;border-color:var(--accent-primary);transform:translateX(8px)}.exp-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:16px}.exp-title{color:#fff;color:var(--text-primary);font-size:1.2rem;font-weight:600}.exp-company{color:#6366f1;color:var(--accent-primary);font-weight:500}.exp-period{background:#1a1a25;background:var(--bg-tertiary);border-radius:8px;border-radius:var(--border-radius-sm);color:#606070;color:var(--text-muted);font-size:.85rem;padding:4px 12px}.exp-highlights{list-style:none;margin-bottom:16px}.exp-highlights li{color:#a0a0b0;color:var(--text-secondary);font-size:.95rem;margin-bottom:8px;padding-left:20px;position:relative}.exp-highlights li:before{color:#6366f1;color:var(--accent-primary);content:"▸";left:0;position:absolute}.exp-tags,.project-tags{display:flex;flex-wrap:wrap;gap:8px}.tag{background:#6366f11a;border-radius:50px;color:#6366f1;color:var(--accent-primary);font-size:.8rem;font-weight:500;padding:4px 12px}.projects-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.project-card{border-radius:16px;border-radius:var(--border-radius);overflow:hidden;padding:30px;position:relative;transition:all .3s ease;transition:all var(--transition-normal)}.project-card:hover{border-color:#6366f1;border-color:var(--accent-primary);transform:translateY(-8px)}.project-glow{background:radial-gradient(circle,#6366f11a 0,#0000 70%);height:200%;left:-50%;opacity:0;pointer-events:none;position:absolute;top:-50%;transition:opacity .5s ease;width:200%}.project-card:hover .project-glow{opacity:1}.project-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.project-icon{font-size:2.5rem}.project-link{color:#6366f1;color:var(--accent-primary);font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s ease;transition:all var(--transition-fast)}.project-link:hover{text-decoration:underline}.project-name{color:#fff;color:var(--text-primary);font-size:1.4rem;font-weight:700;margin-bottom:8px}.project-period{color:#606070;color:var(--text-muted);font-size:.85rem;margin-bottom:12px}.project-desc{color:#a0a0b0;color:var(--text-secondary);line-height:1.6;margin-bottom:16px}.project-features{list-style:none;margin-bottom:20px}.project-features li{color:#a0a0b0;color:var(--text-secondary);font-size:.9rem;margin-bottom:8px;padding-left:20px;position:relative}.project-features li:before{color:#22c55e;content:"✓";left:0;position:absolute}.coming-soon{align-items:center;background:#0000;border:2px dashed #ffffff14;border:2px dashed var(--glass-border);display:flex;justify-content:center;min-height:300px}.coming-soon-content{text-align:center}.coming-icon{display:block;font-size:3rem;margin-bottom:16px}.coming-soon h3{color:#fff;color:var(--text-primary);font-size:1.2rem;margin-bottom:8px}.coming-soon p{color:#606070;color:var(--text-muted)}.contact-section{padding-bottom:80px;text-align:center}.contact-content{margin:0 auto;max-width:700px}.contact-title{color:#fff;color:var(--text-primary);font-size:clamp(2rem,4vw,3rem);font-weight:800;margin:16px 0 20px}.contact-desc{color:#a0a0b0;color:var(--text-secondary);font-size:1.1rem;line-height:1.7;margin-bottom:40px}.contact-methods{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:40px}.contact-card{align-items:center;border-radius:16px;border-radius:var(--border-radius);display:flex;flex-direction:column;gap:8px;min-width:180px;padding:24px 32px;text-decoration:none;transition:all .3s ease;transition:all var(--transition-normal)}.contact-card:hover{border-color:#6366f1;border-color:var(--accent-primary);transform:translateY(-5px)}.contact-icon{font-size:2rem}.contact-label{color:#606070;color:var(--text-muted);font-size:.85rem;letter-spacing:1px;text-transform:uppercase}.contact-value{color:#fff;color:var(--text-primary);font-size:.95rem;font-weight:500}.contact-cta{margin-top:50px;text-align:center}.cta-text{color:#606070;color:var(--text-muted);font-size:.9rem;letter-spacing:2px;margin-bottom:16px;text-transform:uppercase}.cta-button{align-items:center;background:#0000;border:2px solid #6366f1;border:2px solid var(--accent-primary);border-radius:50px;color:#fff;color:var(--text-primary);display:inline-flex;font-size:1rem;font-weight:600;gap:12px;overflow:hidden;padding:16px 32px;position:relative;text-decoration:none;transition:all .3s ease}.cta-button:before{background:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a855f7);background:var(--accent-gradient);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:-1}.cta-button:hover{border-color:#0000;box-shadow:0 10px 30px #6366f166;transform:translateY(-3px)}.cta-button:hover:before{opacity:1}.cta-icon{font-size:1.2rem}.cta-label{position:relative}.footer{border-top:1px solid #ffffff14;border-top:1px solid var(--glass-border);padding:40px 5%;text-align:center}.footer-content p{color:#606070;color:var(--text-muted);font-size:.9rem}.footer-tagline{color:#a0a0b0;color:var(--text-secondary);margin-top:8px}.footer-portal-link{align-items:center;background:#0000;border:1px solid #ffffff0f;border-radius:100px;color:#606070;color:var(--text-muted);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.7rem;font-weight:500;gap:5px;letter-spacing:.02em;margin-top:16px;opacity:.5;padding:5px 10px;transition:all .25s ease}.footer-portal-link:hover{background:#06b6d40d;border-color:#06b6d44d;color:#6366f1;color:var(--accent-primary,#06b6d4);opacity:1}.footer-portal-link svg{flex-shrink:0}@media (max-width:1024px){.hero-section{flex-direction:column;padding-top:120px;text-align:center}.hero-content{max-width:100%}.hero-cta,.hero-stats{justify-content:center}.hero-visual{width:100%}.about-content,.skills-grid{grid-template-columns:1fr}}@media (max-width:768px){.navbar{gap:2px;padding:6px 8px}.nav-link{font-size:.75rem;padding:6px 10px}.hero-section{padding:100px 5% 60px}.hero-stats{flex-direction:column;gap:20px}.stat-divider{height:1px;width:40px}.code-window{max-width:100%}.section{padding:80px 5%}.timeline-item{flex-direction:column;gap:16px}.timeline-marker{flex-direction:row;gap:16px}.marker-line{flex:1 1;height:2px;margin:0;width:auto}.contact-methods{align-items:center;flex-direction:column}.contact-card{max-width:300px;width:100%}.projects-grid{grid-template-columns:1fr}}@media (max-width:480px){.hero-badge{font-size:.75rem;padding:6px 12px}.hero-cta{flex-direction:column}.btn-primary,.btn-secondary{justify-content:center;width:100%}.cert-grid{flex-direction:column}.cert-badge{justify-content:center}}.valentine-container,.valentine-container *{cursor:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27><text y=%2724%27 font-size=%2724%27>%F0%9F%92%96</text></svg>") 16 16,auto}.valentine-container{align-items:center;animation:gradientShift 15s ease infinite;background:linear-gradient(135deg,#ff9a9e,#fecfef 25%,#fda4af 50%,#f472b6 75%,#ec4899);background-size:400% 400%;display:flex;flex-direction:column;font-family:Segoe UI,Comic Sans MS,cursive,sans-serif;justify-content:center;min-height:100vh;position:relative;width:100%}@keyframes gradientShift{0%,to{background-position:0 50%}25%{background-position:100% 50%}50%{background-position:100% 100%}75%{background-position:0 100%}}.floating-hearts-bg{height:100%;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100%;z-index:1}.floating-heart{animation:floatUp linear infinite;bottom:-50px;filter:drop-shadow(0 0 5px rgba(255,105,180,.5));opacity:.7;position:absolute}@keyframes floatUp{0%{opacity:0;transform:translateY(0) rotate(0deg) scale(1)}10%{opacity:.7}90%{opacity:.7}to{opacity:0;transform:translateY(-110vh) rotate(1turn) scale(.5)}}.music-toggle{background:#ffffffe6;border:2px solid #ff69b4;border-radius:25px;box-shadow:0 4px 15px #ff69b44d;cursor:pointer;font-size:14px;padding:10px 20px;position:fixed;right:20px;top:20px;transition:all .3s ease;z-index:1000}.music-toggle:hover{background:#ff69b4;color:#fff;transform:scale(1.1)}.asking-screen,.catching-screen,.celebration-screen,.intro-screen{max-width:800px;padding:20px;position:relative;text-align:center;width:100%;z-index:10}.asking-title,.main-title{color:#fff;font-size:clamp(2rem,6vw,4rem);line-height:1.3;margin-bottom:30px;text-shadow:0 0 10px #ff69b4,0 0 20px #ff69b4,0 0 30px #ff69b4,0 0 40px #ff1493,3px 3px 0 #d63384}.subtitle{color:#fff;font-size:clamp(1rem,3vw,1.5rem);margin-bottom:40px;text-shadow:2px 2px 4px #0003}.animate-title{animation:titlePulse 2s ease-in-out infinite,titleBounce .5s ease-out}@keyframes titlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes titleBounce{0%{opacity:0;transform:translateY(-50px) scale(.5)}50%{transform:translateY(10px) scale(1.1)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-subtitle{animation:fadeInUp 1s ease-out .5s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.start-button{animation:gradientButton 3s ease infinite;background:linear-gradient(45deg,#ff6b6b,#ff69b4,#ff1493);background-size:200% 200%;border:none;border-radius:50px;box-shadow:0 10px 30px #ff69b466,0 0 0 0 #ff69b4b3;color:#fff;cursor:pointer;font-size:clamp(1.2rem,3vw,1.8rem);font-weight:700;letter-spacing:2px;padding:20px 50px;text-transform:uppercase;transition:all .3s ease}@keyframes gradientButton{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.start-button:hover{box-shadow:0 15px 40px #ff69b480,0 0 0 10px #ff69b433;transform:translateY(-5px) scale(1.05)}.bounce-animation{animation:bounce 2s ease infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}.catching-screen{align-items:center;display:flex;flex-direction:column;justify-content:flex-start;min-height:100vh;padding-top:50px}.catching-title{color:#fff;font-size:clamp(1.5rem,4vw,2.5rem);margin-bottom:20px;text-shadow:2px 2px 4px #0000004d}.hearts-counter{background:#fffffff2;border-radius:20px;box-shadow:0 10px 30px #0003;margin-bottom:30px;padding:20px 40px}.heart-count{color:#ff1493;font-size:3rem;font-weight:700}.heart-total{color:#888;font-size:1.5rem}.progress-bar{background:#f0f0f0;border-radius:10px;height:15px;margin-top:10px;overflow:hidden;width:200px}.progress-fill{background:linear-gradient(90deg,#ff69b4,#ff1493);border-radius:10px;height:100%;transition:width .3s ease}.clickable-heart{background:none;border:none;cursor:pointer;filter:drop-shadow(0 5px 15px rgba(255,105,180,.5));position:absolute;transition:transform .1s ease;z-index:100}.clickable-heart:hover{transform:scale(1.2)}.clickable-heart:active{transform:scale(.9)}.pulse-animation{animation:pulse .6s ease-in-out infinite,fadeInHeart .3s ease-out}.clickable-heart.fast-heart{animation:pulse .4s ease-in-out infinite,jiggle .3s ease-in-out infinite,fadeInHeart .3s ease-out}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes jiggle{0%,to{translate:0 0}25%{translate:8px -5px}50%{translate:-5px 8px}75%{translate:5px 5px}}@keyframes fadeInHeart{0%{opacity:0;scale:.3}to{opacity:1;scale:1}}.sparkle{animation:sparkleAnim 1s ease-out forwards;pointer-events:none;position:absolute;z-index:200}@keyframes sparkleAnim{0%{opacity:1;transform:scale(0)}50%{opacity:1;transform:scale(1.5)}to{opacity:0;transform:scale(.5) translateY(-30px)}}.asking-screen{flex-direction:column;min-height:100vh}.asking-screen,.buttons-container{align-items:center;display:flex;justify-content:center}.buttons-container{flex-wrap:wrap;gap:30px;margin-top:30px;min-height:200px;position:relative;width:100%}.yes-button{animation:gradientButton 3s ease infinite,bounce 2s ease infinite;background:linear-gradient(45deg,#00c853,#69f0ae,#00e676);background-size:200% 200%;border:none;border-radius:50px;box-shadow:0 10px 30px #00c85366,0 0 20px #00c8534d;color:#fff;cursor:pointer;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;letter-spacing:3px;padding:25px 60px;text-transform:uppercase;transition:all .3s ease}.yes-button:hover{box-shadow:0 15px 40px #00c85399,0 0 40px #00c85366;transform:scale(1.15) translateY(-5px)}.no-button{background:linear-gradient(45deg,#f44,#ff6b6b);border:none;border-radius:50px;box-shadow:0 5px 15px #ff44444d;color:#fff;cursor:not-allowed;font-size:clamp(1rem,2.5vw,1.3rem);font-weight:700;padding:20px 40px;transition:none}.no-button.escaping{pointer-events:auto;transition:left .3s ease-out,top .3s ease-out,transform .3s ease,opacity .3s ease}.escape-message{animation:fadeInUp .5s ease-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fff3;border-radius:20px;color:#fff;font-size:clamp(1rem,2.5vw,1.3rem);margin-top:30px;padding:15px 30px;text-shadow:2px 2px 4px #0000004d}.celebration-screen{align-items:center;animation:gradientShift 5s ease infinite;background:linear-gradient(135deg,#ff6b6b,#ff69b4 25%,#ff1493 50%,#e91e63 75%,#d63384);background-size:400% 400%;display:flex;flex-direction:column;justify-content:center;min-height:100vh;overflow:hidden;position:relative;width:100%}.celebration-content{padding:20px;position:relative;text-align:center;z-index:10}.celebration-title{color:#fff;font-size:clamp(2rem,8vw,5rem);margin-bottom:30px;text-shadow:0 0 20px gold,0 0 40px gold,0 0 60px gold,4px 4px 0 #ff6b6b}.animate-celebration{animation:celebrationPulse .5s ease-in-out infinite,rainbowGlow 2s ease-in-out infinite}@keyframes celebrationPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes rainbowGlow{0%,to{text-shadow:0 0 20px red,0 0 40px red,0 0 60px red}33%{text-shadow:0 0 20px gold,0 0 40px gold,0 0 60px gold}66%{text-shadow:0 0 20px #ff69b4,0 0 40px #ff69b4,0 0 60px #ff69b4}}.hearts-explosion{left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}.explosion-heart{animation:explode 2s ease-out forwards;font-size:2rem;position:absolute}@keyframes explode{0%{opacity:1;transform:translate(-50%,-50%) rotate(0deg) scale(0)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-200px) scale(1.5)}}.celebration-message{color:#fff;font-size:clamp(1.5rem,4vw,2.5rem);margin:20px 0;text-shadow:2px 2px 4px #0000004d}.celebration-submessage{color:#ffe4ec;font-size:clamp(1rem,3vw,1.5rem);margin-bottom:30px}.animate-message{animation:fadeInUp 1s ease-out .5s both}.animate-submessage{animation:fadeInUp 1s ease-out 1s both}.final-message{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:20px;box-shadow:0 10px 40px #0003;margin-top:30px;padding:30px 50px}.love-quote{color:#fff;font-size:clamp(1.2rem,3vw,2rem);font-style:italic;text-shadow:1px 1px 3px #0003}.animate-final{animation:fadeInUp 1s ease-out 1.5s both,glow 2s ease-in-out 2s infinite}@keyframes glow{0%,to{box-shadow:0 0 20px #ffffff4d}50%{box-shadow:0 0 40px #fff9}}.floating-emojis-celebration{bottom:0;height:100%;left:0;pointer-events:none;position:fixed;width:100%;z-index:5}.floating-emoji{animation:floatUpEmoji 8s linear infinite;bottom:-50px;font-size:2rem;position:absolute}@keyframes floatUpEmoji{0%{opacity:0;transform:translateY(0) rotate(0deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-110vh) rotate(1turn)}}.confetti-container{height:100%;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100%;z-index:1000}.confetti-piece{animation:confettiFall linear forwards;position:absolute;top:-20px}.confetti-square{border-radius:2px}.confetti-circle{border-radius:50%}.confetti-heart{background:#0000!important;font-size:12px}@keyframes confettiFall{0%{opacity:1;transform:translateY(0) rotate(0deg)}to{opacity:0;transform:translateY(100vh) rotate(2turn)}}.firework{animation:fireworkBurst 2s ease-out forwards;background:var(--fw-color);border-radius:50%;box-shadow:0 0 20px var(--fw-color),0 0 40px var(--fw-color),0 0 60px var(--fw-color);height:10px;position:absolute;width:10px}@keyframes fireworkBurst{0%{opacity:1;transform:scale(0)}50%{opacity:1;transform:scale(3)}to{opacity:0;transform:scale(5)}}@media (max-width:768px){.valentine-container{padding:10px}.buttons-container{flex-direction:column;gap:20px}.no-button,.yes-button{padding:15px 40px}.music-toggle{font-size:12px;padding:8px 15px;right:10px;top:10px}.hearts-counter{padding:15px 30px}.heart-count{font-size:2rem}.final-message{margin:20px;padding:20px 30px}}@media (max-width:480px){.asking-title,.main-title{font-size:1.8rem}.celebration-title{font-size:2rem}.start-button{font-size:1rem;padding:15px 30px}}.valentine-container{bottom:0;right:0}.photo-collage-bg,.valentine-container{left:0;overflow:hidden;position:fixed;top:0}.photo-collage-bg{height:100%;pointer-events:none;width:100%;z-index:5}.collage-photo{animation:photoFloat 8s ease-in-out infinite,photoAppear 1s ease-out forwards;border-radius:15px;box-shadow:0 10px 30px #0006,0 0 0 4px #ffffff80;opacity:0;overflow:hidden;position:absolute}.collage-photo img{height:100%;object-fit:cover;width:100%}.collage-photo .photo-heart{animation:heartPulse 1s ease-in-out infinite;bottom:-5px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));font-size:1.5rem;position:absolute;right:-5px}@keyframes photoAppear{0%{opacity:0;transform:scale(.5) rotate(-10deg)}to{opacity:.9;transform:scale(1) rotate(0deg);transform:scale(1) rotate(var(--rotation,0deg))}}@keyframes photoFloat{0%,to{transform:translateY(0) rotate(0deg);transform:translateY(0) rotate(var(--rotation,0deg))}50%{transform:translateY(-15px) rotate(2deg);transform:translateY(-15px) rotate(calc(var(--rotation, 0deg) + 2deg))}}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.collage-photo.photo-1{--rotation:-8deg;height:180px;left:3%;top:5%;width:140px}.collage-photo.photo-2{--rotation:5deg;height:170px;right:5%;top:8%;width:130px}.collage-photo.photo-3{--rotation:-5deg;bottom:25%;height:150px;left:2%;width:120px}.collage-photo.photo-4{--rotation:10deg;bottom:5%;height:175px;left:15%;width:135px}.collage-photo.photo-5{--rotation:-12deg;bottom:8%;height:160px;right:3%;width:125px}.collage-photo.photo-6{--rotation:7deg;height:145px;left:1%;top:40%;width:115px}.collage-photo.photo-7{--rotation:-3deg;height:165px;right:2%;top:35%;width:130px}@media (max-width:768px){.collage-photo{box-shadow:0 5px 15px #0000004d,0 0 0 3px #fff6}.collage-photo.photo-1{height:130px;left:2%;top:3%;width:100px}.collage-photo.photo-2{height:120px;right:2%;top:5%;width:95px}.collage-photo.photo-3{bottom:30%;height:115px;left:1%;width:90px}.collage-photo.photo-4{bottom:3%;height:125px;left:5%;width:100px}.collage-photo.photo-5{bottom:5%;height:115px;right:2%;width:90px}.collage-photo.photo-6{height:105px;left:0;top:45%;width:85px}.collage-photo.photo-7{height:120px;right:1%;top:40%;width:95px}.collage-photo .photo-heart{font-size:1rem}}*{-webkit-tap-highlight-color:transparent}button{-webkit-appearance:none;appearance:none}.mp-portal{--bg:#0a0a0b;--bg-elevated:#131316;--bg-elevated-hover:#1a1a1e;--bg-overlay:#0a0a0bd9;--surface:#131316;--surface-2:#1a1a1e;--surface-3:#222227;--border:#ffffff0f;--border-strong:#ffffff1a;--border-focus:#06b6d480;--text:#ededed;--text-secondary:#a1a1aa;--text-tertiary:#71717a;--text-quaternary:#52525b;--accent:#06b6d4;--accent-hover:#22d3ee;--accent-bg:#06b6d41a;--accent-border:#06b6d440;--success:#10b981;--success-bg:#10b9811a;--warning:#f59e0b;--warning-bg:#f59e0b1a;--danger:#ef4444;--danger-bg:#ef44441a;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 2px #0000004d;--shadow:0 4px 12px #0006;--shadow-lg:0 12px 40px #00000080;--transition:150ms cubic-bezier(0.4,0,0.2,1);--transition-slow:250ms cubic-bezier(0.4,0,0.2,1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;letter-spacing:-.011em;min-height:100vh}.mp-portal *,.mp-portal :after,.mp-portal :before{box-sizing:border-box}.mp-portal button,.mp-portal input,.mp-portal select,.mp-portal textarea{-webkit-font-smoothing:antialiased;font-family:inherit;letter-spacing:inherit}.mp-login{align-items:center;background:radial-gradient(ellipse 80% 60% at 50% -10%,#06b6d414,#0000 60%),radial-gradient(ellipse 60% 80% at 80% 100%,#06b6d40a,#0000 60%),var(--bg);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:24px;position:relative}.mp-login-grid{background-image:linear-gradient(var(--border) 1px,#0000 1px),linear-gradient(90deg,var(--border) 1px,#0000 1px);background-size:60px 60px;inset:0;mask-image:radial-gradient(ellipse 60% 60% at 50% 50%,#000 30%,#0000 80%);-webkit-mask-image:radial-gradient(ellipse 60% 60% at 50% 50%,#000 30%,#0000 80%);opacity:.4;pointer-events:none;position:absolute}.mp-login-card{max-width:400px;position:relative;width:100%;z-index:1}.mp-login-brand{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--accent);display:flex;height:48px;justify-content:center;margin:0 auto 32px;width:48px}.mp-login-header{margin-bottom:32px;text-align:center}.mp-login-header h1{color:var(--text);font-size:28px;font-weight:600;letter-spacing:-.02em;margin:0 0 8px}.mp-login-header p{color:var(--text-secondary);font-size:14px;margin:0}.mp-login-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);gap:18px;padding:28px}.mp-field,.mp-login-form{display:flex;flex-direction:column}.mp-field{gap:6px}.mp-field label{color:var(--text-secondary);font-size:13px;font-weight:500;letter-spacing:-.005em}.mp-input,.mp-select,.mp-textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:14px;font-weight:400;outline:none;padding:11px 14px;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.mp-input::placeholder,.mp-textarea::placeholder{color:var(--text-quaternary)}.mp-input:hover,.mp-select:hover,.mp-textarea:hover{border-color:var(--border-strong)}.mp-input:focus,.mp-select:focus,.mp-textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #06b6d41a}.mp-input:disabled{cursor:not-allowed;opacity:.5}.mp-btn{align-items:center;border:1px solid #0000;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;letter-spacing:-.005em;padding:10px 16px;transition:all var(--transition);-webkit-user-select:none;user-select:none;white-space:nowrap}.mp-btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.mp-btn-primary{background:var(--accent);color:#001619;font-weight:600}.mp-btn-primary:hover:not(:disabled){background:var(--accent-hover)}.mp-btn-secondary{background:var(--surface-2);border-color:var(--border);color:var(--text)}.mp-btn-secondary:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-strong)}.mp-btn-ghost{background:#0000;border-color:#0000;color:var(--text-secondary)}.mp-btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.mp-btn-danger{background:var(--danger-bg);border-color:#ef444433;color:var(--danger)}.mp-btn-danger:hover:not(:disabled){background:#ef444426;border-color:#ef44444d}.mp-btn-icon{flex-shrink:0;height:36px;padding:8px;width:36px}.mp-btn-block{width:100%}.mp-btn-lg{font-size:14px;padding:12px 18px}.mp-spinner{animation:mp-spin .7s linear infinite;border:1.5px solid;border-radius:50%;border-right:1.5px solid #0000;flex-shrink:0;height:14px;width:14px}@keyframes mp-spin{to{transform:rotate(1turn)}}.mp-alert{align-items:flex-start;background:var(--danger-bg);border:1px solid #ef444433;border-radius:var(--radius);color:var(--danger);display:flex;font-size:13px;gap:10px;line-height:1.5;padding:11px 14px}.mp-alert svg{flex-shrink:0;margin-top:1px}.mp-alert-close{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;margin-left:auto;opacity:.7;padding:0;transition:opacity var(--transition)}.mp-alert-close:hover{opacity:1}.mp-dashboard{display:flex;flex-direction:column;margin:0 auto;max-width:720px;min-height:100vh;padding-bottom:76px}.mp-header{backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:#0a0a0bcc;border-bottom:1px solid var(--border);padding:14px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.mp-header-content{align-items:center;display:flex;gap:12px;justify-content:space-between}.mp-header-title{display:flex;flex-direction:column;gap:2px;min-width:0}.mp-header-title h1{color:var(--text);font-size:17px;font-weight:600;letter-spacing:-.015em;margin:0}.mp-header-meta{font-feature-settings:"tnum";color:var(--text-tertiary);font-size:12px;font-variant-numeric:tabular-nums}.mp-main{flex:1 1;padding:24px 20px;width:100%}.mp-nav{backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:#0a0a0beb;border-top:1px solid var(--border);bottom:0;display:flex;justify-content:center;left:0;padding:6px 12px max(6px,env(safe-area-inset-bottom));position:fixed;right:0;z-index:50}.mp-nav-inner{display:flex;max-width:720px;width:100%}.mp-nav-item{align-items:center;background:none;border:none;border-radius:var(--radius);color:var(--text-tertiary);cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:4px;padding:8px 12px;transition:color var(--transition)}.mp-nav-item:hover{color:var(--text-secondary)}.mp-nav-item.active{color:var(--accent)}.mp-nav-item span{font-size:11px;font-weight:500;letter-spacing:-.005em}.mp-action-bar{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:24px}.mp-action{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:10px;padding:14px 16px;text-align:left;transition:all var(--transition)}.mp-action:hover{background:var(--surface-2);border-color:var(--border-strong)}.mp-action svg{color:var(--text-secondary);flex-shrink:0}.mp-section-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.mp-section-title{color:var(--text-tertiary);font-size:13px;font-weight:600;letter-spacing:.02em;margin:0;text-transform:uppercase}.mp-section-meta{font-feature-settings:"tnum";color:var(--text-tertiary);font-size:12px;font-variant-numeric:tabular-nums}.mp-list{display:flex;flex-direction:column;gap:24px}.mp-list-group-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:8px;margin-bottom:8px;padding-bottom:8px}.mp-list-group-title{color:var(--text-tertiary);font-size:12px;font-weight:600;letter-spacing:.04em;margin:0;text-transform:uppercase}.mp-list-group-count{font-feature-settings:"tnum";color:var(--text-quaternary);font-size:11px;font-variant-numeric:tabular-nums;margin-left:auto}.mp-list-items{display:flex;flex-direction:column}.mp-list-item{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;padding:12px 0;transition:background var(--transition)}.mp-list-item:last-child{border-bottom:none}.mp-list-item.deleting{opacity:.4;pointer-events:none}.mp-list-item-name{color:var(--text);flex:1 1;font-size:15px;font-weight:400;letter-spacing:-.005em}.mp-list-item-meta{align-items:center;color:var(--text-tertiary);display:flex;gap:8px}.mp-list-item-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--transition)}.mp-list-item:hover .mp-list-item-actions{opacity:1}@media (hover:none){.mp-list-item-actions{opacity:1}}.mp-icon-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer;display:inline-flex;height:30px;justify-content:center;transition:all var(--transition);width:30px}.mp-icon-btn:hover{background:var(--surface-2);color:var(--text)}.mp-icon-btn.danger:hover{background:var(--danger-bg);color:var(--danger)}.mp-badge{align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;color:var(--text-tertiary);display:inline-flex;font-size:11px;font-weight:500;gap:4px;letter-spacing:0;padding:2px 7px}.mp-badge-accent{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.mp-edit-row{align-items:center;display:flex;flex:1 1;gap:6px}.mp-edit-row .mp-input{font-size:14px;padding:6px 10px}.mp-empty{flex-direction:column;gap:12px;padding:56px 20px;text-align:center}.mp-empty,.mp-empty-icon{align-items:center;display:flex}.mp-empty-icon{background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text-tertiary);height:48px;justify-content:center;width:48px}.mp-empty h3{color:var(--text);font-size:16px;font-weight:600;letter-spacing:-.01em;margin:0}.mp-empty p{color:var(--text-tertiary);font-size:13px;line-height:1.5;margin:0;max-width:280px}.mp-modal-overlay{align-items:flex-end;animation:mp-fade-in .2s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#0009;display:flex;inset:0;justify-content:center;padding:0;position:fixed;z-index:100}@keyframes mp-fade-in{0%{opacity:0}to{opacity:1}}.mp-modal{animation:mp-slide-up .28s cubic-bezier(.16,1,.3,1);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;flex-direction:column;max-height:92vh;max-width:560px;overflow:hidden;width:100%}@keyframes mp-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.mp-modal-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:16px 20px}.mp-modal-title{color:var(--text);font-size:16px;font-weight:600;letter-spacing:-.01em;margin:0}.mp-modal-body{display:flex;flex:1 1;flex-direction:column;gap:24px;overflow-y:auto;padding:20px}.mp-modal-footer{background:var(--bg);border-top:1px solid var(--border);display:flex;flex-shrink:0;gap:8px;padding:14px 20px}.mp-modal-footer .mp-btn{flex:1 1}.mp-modal-footer .mp-btn-primary{flex:2 1}.mp-capture-zone{position:relative}.mp-file-input{cursor:pointer;inset:0;opacity:0;position:absolute}.mp-capture-target{align-items:center;background:var(--surface);border:1.5px dashed var(--border-strong);border-radius:var(--radius);cursor:pointer;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:56px 24px;text-align:center;transition:all var(--transition)}.mp-capture-target:hover{background:var(--surface-2);border-color:var(--accent-border)}.mp-capture-icon{align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:12px;color:var(--text-secondary);display:flex;height:48px;justify-content:center;width:48px}.mp-capture-target h4{color:var(--text);font-size:14px;font-weight:500;margin:0}.mp-capture-target p{color:var(--text-tertiary);font-size:12px;margin:0}.mp-image-preview{display:flex;flex-direction:column;gap:12px}.mp-image-preview img{border:1px solid var(--border);border-radius:var(--radius);max-height:320px;object-fit:cover;width:100%}.mp-image-preview-actions{display:flex;gap:8px}.mp-image-preview-actions .mp-btn{flex:1 1}.mp-detected-list{display:flex;flex-direction:column;gap:6px}.mp-detected-item{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:10px;padding:10px 12px;transition:all var(--transition)}.mp-detected-item.unselected{opacity:.5}.mp-detected-item.unselected .mp-list-item-name{text-decoration:line-through;-webkit-text-decoration-color:var(--text-quaternary);text-decoration-color:var(--text-quaternary)}.mp-checkbox{align-items:center;background:var(--bg);border:1.5px solid var(--border-strong);border-radius:5px;color:#0000;cursor:pointer;display:inline-flex;flex-shrink:0;height:20px;justify-content:center;transition:all var(--transition);width:20px}.mp-checkbox.checked{background:var(--accent);border-color:var(--accent);color:#001619}.mp-detected-item .mp-input{background:#0000;border:1px solid #0000;flex:1 1;padding:6px 8px}.mp-detected-item .mp-input:focus,.mp-detected-item .mp-input:hover{background:var(--bg);border-color:var(--border)}.mp-search-wrapper{position:relative}.mp-search-icon{color:var(--text-tertiary);left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.mp-search{padding-left:40px;padding-right:36px}.mp-search-clear{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;display:flex;padding:4px;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:all var(--transition)}.mp-search-clear:hover{background:var(--surface-2);color:var(--text)}.mp-chips{display:flex;flex-wrap:wrap;gap:6px}.mp-chip{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:100px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:4px;padding:7px 12px;transition:all var(--transition)}.mp-chip:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.mp-chip-add{color:var(--text-secondary)}.mp-chip-add:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.mp-chip-selected{background:var(--accent);border-color:var(--accent);color:#001619;font-weight:600}.mp-chip-selected:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#001619}.mp-chip-remove{align-items:center;background:#00000026;border:none;border-radius:50%;color:inherit;cursor:pointer;display:inline-flex;height:16px;justify-content:center;margin-left:2px;padding:0;transition:background var(--transition);width:16px}.mp-chip-remove:hover{background:#0000004d}.mp-category-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(2,1fr)}.mp-category-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;font-size:13px;font-weight:500;padding:12px 14px;text-align:left;transition:all var(--transition)}.mp-category-btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.mp-back-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:13px;gap:4px;margin-bottom:12px;margin-left:-10px;padding:6px 10px;transition:all var(--transition)}.mp-back-btn:hover{background:var(--surface-2);color:var(--text)}.mp-result-group{margin-bottom:18px}.mp-result-group-title{color:var(--text-tertiary);font-size:11px;font-weight:600;letter-spacing:.04em;margin:0 0 8px;text-transform:uppercase}.mp-selected-tray{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.mp-selected-tray-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.mp-selected-tray-title{color:var(--text);font-size:13px;font-weight:600}.mp-selected-tray-count{font-feature-settings:"tnum";color:var(--text-tertiary);font-size:12px;font-variant-numeric:tabular-nums}.mp-custom-add{display:flex;gap:8px}.mp-custom-add .mp-input{flex:1 1}.mp-meal-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:14px;margin-bottom:16px;padding:18px}.mp-meal-form-title{font-size:14px;font-weight:600;margin:0}.mp-form-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.mp-meal-cards{display:flex;flex-direction:column;gap:8px}.mp-meal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:12px;padding:14px;transition:all var(--transition)}.mp-meal-card:hover{background:var(--surface-2);border-color:var(--border-strong)}.mp-meal-card.deleting{opacity:.4}.mp-meal-rank{font-feature-settings:"tnum";align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text-tertiary);display:inline-flex;flex-shrink:0;font-size:11px;font-variant-numeric:tabular-nums;font-weight:600;height:24px;justify-content:center;margin-top:1px;width:24px}.mp-meal-content{flex:1 1;min-width:0}.mp-meal-name{color:var(--text);font-size:15px;font-weight:600;letter-spacing:-.01em;margin:0 0 8px}.mp-meal-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.mp-meal-meta{display:flex;gap:6px}.mp-meal-actions{align-items:center;gap:2px}.mp-meal-actions,.mp-reorder{display:flex;flex-direction:column}.mp-reorder{gap:1px}.mp-reorder .mp-icon-btn{border-radius:4px;height:22px;width:28px}.mp-suggestions-actions{display:flex;gap:8px;margin-bottom:24px}.mp-suggestion{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;overflow:hidden;transition:all var(--transition)}.mp-suggestion:hover{background:var(--surface-2);border-color:var(--border-strong)}.mp-suggestion+.mp-suggestion{margin-top:8px}.mp-suggestion-header{align-items:center;display:flex;gap:12px;padding:14px}.mp-suggestion-rank{font-feature-settings:"tnum";align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text-tertiary);display:inline-flex;flex-shrink:0;font-size:12px;font-variant-numeric:tabular-nums;font-weight:600;height:28px;justify-content:center;width:28px}.mp-suggestion-main{flex:1 1;min-width:0}.mp-suggestion-title{align-items:center;color:var(--text);display:flex;font-size:15px;font-weight:600;gap:6px;letter-spacing:-.01em;margin-bottom:3px}.mp-suggestion-pref{align-items:center;color:var(--accent);display:inline-flex}.mp-suggestion-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-tertiary);display:-webkit-box;font-size:13px;line-height:1.4;margin:0 0 8px;overflow:hidden}.mp-suggestion-meta{align-items:center;display:flex;gap:6px}.mp-match-bar{align-items:center;display:flex;gap:8px;padding-right:4px}.mp-match-track{background:var(--surface-3);border-radius:2px;height:4px;overflow:hidden;width:50px}.mp-match-fill{background:var(--accent);border-radius:2px;height:100%;transition:width var(--transition-slow)}.mp-match-pct{font-feature-settings:"tnum";color:var(--text-secondary);font-size:11px;font-variant-numeric:tabular-nums;font-weight:600;min-width:28px;text-align:right}.mp-suggestion-chevron{color:var(--text-tertiary);flex-shrink:0;transition:transform var(--transition)}.mp-suggestion.expanded .mp-suggestion-chevron{transform:rotate(180deg)}.mp-suggestion-detail{animation:mp-fade-in .2s ease;border-top:1px solid var(--border);margin-top:0;padding:0 14px 14px}.mp-detail-section{padding-top:14px}.mp-detail-section+.mp-detail-section{border-top:1px solid var(--border);margin-top:14px}.mp-detail-title{color:var(--text-tertiary);font-size:11px;font-weight:600;letter-spacing:.04em;margin:0 0 8px;text-transform:uppercase}.mp-detail-section ol{margin:0;padding-left:20px}.mp-detail-section li{color:var(--text-secondary);font-size:13px;line-height:1.55;margin-bottom:6px}.mp-detail-section li:last-child{margin-bottom:0}.mp-detail-section .mp-empty-text{color:var(--text-quaternary);font-size:12px;font-style:italic}.mp-confirm-overlay{align-items:center;animation:mp-fade-in .2s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#000000a6;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:200}.mp-confirm{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:360px;padding:24px;text-align:center;width:100%}.mp-confirm h3{font-size:17px;font-weight:600;letter-spacing:-.015em;margin:0 0 8px}.mp-confirm p{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0 0 20px}.mp-confirm-actions{display:flex;gap:8px}.mp-confirm-actions .mp-btn{flex:1 1}.mp-stack{display:flex;flex-direction:column;gap:24px}.mp-cluster{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.mp-divider{background:var(--border);border:none;height:1px;margin:0}.mp-text-secondary{color:var(--text-secondary);font-size:13px}.mp-portal-loading{align-items:center;background:var(--bg);display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:100vh}.mp-portal-loading p{color:var(--text-tertiary);font-size:13px;margin:0}.mp-portal-loading-spinner{animation:mp-spin .7s linear infinite;border:2px solid var(--border-strong);border-radius:50%;border-top-color:var(--accent);height:24px;width:24px}@media (min-width:640px){.mp-modal-overlay{align-items:center;padding:24px}.mp-modal{border-radius:var(--radius-lg);max-height:88vh}.mp-action-bar{grid-template-columns:repeat(2,1fr)}.mp-category-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width:768px){.mp-main{padding:32px 24px}.mp-header{padding:18px 24px}.mp-header-title h1{font-size:18px}}
/*# sourceMappingURL=main.c27ba1bc.css.map*/