:root{--primary:#111827;--secondary:#374151;--tertiary:#6b7280;--accent:#3b82f6;--bg-primary:#fff;--bg-secondary:#fafafa;--bg-tertiary:#f8fafc;--bg-gradient:linear-gradient(135deg,#fafafa,#fff);--text-primary:#111827;--text-secondary:#374151;--text-muted:#6b7280;--text-light:#9ca3af;--white:#fff;--border-light:#0000000d;--border-medium:#0000001a;--border-dark:#0003;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--shadow-xl:0 20px 25px #0000001a;--border-radius:12px;--border-radius-sm:6px;--border-radius-lg:16px;--transition:all 0.2s ease;--transition-fast:all 0.15s ease}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fafafa;background:var(--bg-secondary);color:#111827;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;line-height:1.6;margin:0;overflow-x:hidden}code{background:#f3f4f6;border:1px solid #0000000d;border:1px solid var(--border-light);border-radius:6px;border-radius:var(--border-radius-sm);color:#374151;color:var(--text-secondary);font-family:JetBrains Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:.9em;padding:.25rem .5rem}#root{min-height:100vh}:focus{border-radius:6px;border-radius:var(--border-radius-sm);outline:2px solid #3b82f6;outline:2px solid var(--accent);outline-offset:2px}::selection{background:#ffff004d;color:#111827}html{overflow-y:scroll}h1,h2,h3,h4,h5,h6{line-height:1.2;margin:0 0 1rem}p{margin:0 0 1rem}a{color:#3b82f6;color:var(--accent);transition:all .15s ease;transition:var(--transition-fast)}a:hover{color:#2563eb}button{border-radius:6px;border-radius:var(--border-radius-sm);transition:all .15s ease;transition:var(--transition-fast)}*{box-sizing:border-box;margin:0;padding:0}.App{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-gradient);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;position:relative}html{scroll-behavior:auto}::selection{background:var(--light-pink);color:var(--text-primary)}::-moz-selection{background:var(--light-pink);color:var(--text-primary)}a{color:var(--soft-blue);position:relative;text-decoration:none;transition:var(--transition)}a:hover{color:var(--soft-pink)}a:focus{border-radius:var(--border-radius-small);outline:2px solid var(--light-blue);outline-offset:2px}button{background:linear-gradient(135deg,var(--light-blue),var(--lilac));border:none;border-radius:var(--border-radius);box-shadow:var(--shadow-light);color:var(--text-primary);cursor:pointer;font-family:inherit;font-weight:500;outline:none;padding:.75rem 1.5rem;transition:var(--transition)}button:hover{background:linear-gradient(135deg,var(--soft-blue),var(--soft-purple));box-shadow:var(--shadow-medium);transform:translateY(-2px)}button:active{box-shadow:var(--shadow-light);transform:translateY(0)}button:focus{outline:2px solid var(--light-blue);outline-offset:2px}img{height:auto;max-width:100%}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-family:Cinzel,serif;font-weight:600;letter-spacing:.01em;line-height:1.3;margin-bottom:1rem}h1{font-size:clamp(2.5rem,5vw,4rem);font-weight:700}h2{font-size:clamp(2rem,4vw,3rem)}h3{font-size:clamp(1.5rem,3vw,2.25rem)}p{color:var(--text-secondary);line-height:1.7;margin-bottom:1.25rem}.text-center{text-align:center}.text-light-blue{color:var(--light-blue)}.text-light-pink{color:var(--light-pink)}.text-lilac{color:var(--lilac)}.text-soft-blue{color:var(--soft-blue)}.text-soft-pink{color:var(--soft-pink)}.text-soft-purple{color:var(--soft-purple)}.bg-light-blue{background-color:#a8d8ff26}.bg-light-pink{background-color:#ffb3d926}.bg-lilac{background-color:#d4afdf26}.bg-glass{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3}.shadow-light{box-shadow:var(--shadow-light)}.shadow-medium{box-shadow:var(--shadow-medium)}.shadow-heavy{box-shadow:var(--shadow-heavy)}.rounded{border-radius:var(--border-radius)}.rounded-small{border-radius:var(--border-radius-small)}.navigation{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffffffa;border-bottom:1px solid #0000000d;box-shadow:0 1px 3px #0000001a;left:0;padding:0;position:fixed;right:0;top:0;transition:all .2s ease;z-index:1000}.nav-container{height:70px;justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 2rem}.nav-container,.nav-logo{align-items:center;display:flex}.nav-logo{text-decoration:none;transition:opacity .2s ease}.nav-logo:hover{opacity:.8}.logo-image{height:32px;transition:transform .2s ease;width:auto}.logo-text{color:#374151;font-family:Cinzel,serif;font-size:1.35rem;font-weight:600;letter-spacing:-.01em;margin-left:.75rem}.nav-links{align-items:center;display:flex;gap:0}.nav-link{color:#374151;font-size:.95rem;font-weight:500;letter-spacing:.01em;padding:1.5rem;position:relative;text-decoration:none;transition:color .2s ease}.nav-link:hover{background:#fff6;border-radius:6px;color:#111827;transform:translateY(-1px)}.nav-link.active{background:#ffffff80;border-radius:6px;color:#111827;font-weight:600}.nav-link.active:after{background:#111827;border-radius:1px;bottom:0;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);width:24px}.nav-link:focus{border-radius:4px;outline:2px solid #3b82f6;outline-offset:2px}.nav-logo:focus{outline:none}@media (max-width:768px){.nav-container{padding:0 1rem}.nav-links{gap:0}.nav-link{font-size:.9rem;padding:1.5rem 1rem}.logo-image{height:28px}}.nav-link:focus,.nav-link:focus-visible{box-shadow:none!important;outline:none!important}@media (max-width:480px){.nav-link{padding:1.5rem .75rem}}.page-container.home-page{align-items:flex-start;background:var(--bg-gradient);box-sizing:border-box;margin-top:0;min-height:100vh;overflow-x:hidden;position:relative}.image-container,.page-container.home-page{display:flex;justify-content:center;width:100%}.image-container{align-items:center;flex-direction:column;margin-top:80px}.main-image{box-shadow:0 8px 32px #0000001a;height:auto;margin-top:-1.5rem;max-height:calc(100vh - 200px);max-width:90vw;object-fit:contain;width:auto}.image-title,.main-image{animation:fadeInUp 1s ease-out}.image-title{color:#2c3e50;font-family:Cinzel,serif;font-size:3rem;font-weight:600;margin-bottom:2rem;text-align:center;text-shadow:2px 2px 6px #ffc0cb66}.hero-content{position:relative;z-index:2}.hero-title{-webkit-text-fill-color:#0000;animation:shimmer 3s ease-in-out infinite;background:linear-gradient(135deg,var(--light-blue),var(--light-pink));-webkit-background-clip:text;background-clip:text;font-family:Cinzel,serif;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.hero-subtitle{color:var(--text-secondary);font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:400;line-height:1.6;margin-bottom:2rem}.hero-description{color:var(--text-muted);font-size:1rem;line-height:1.7;margin:0 auto;max-width:600px}.sakura-decoration{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.sakura-petal{animation:modernFloat 15s ease-in-out infinite;background:var(--light-pink);border-radius:50% 0 50% 0;height:12px;opacity:.6;position:absolute;transform:rotate(45deg);width:12px}.sakura-1{animation-delay:0s;background:var(--light-blue);left:15%;top:10%}.sakura-2{animation-delay:2s;background:var(--lilac);right:20%;top:20%}.sakura-3{animation-delay:4s;background:var(--light-pink);left:10%;top:60%}.sakura-4{animation-delay:6s;background:var(--light-blue);bottom:20%;right:15%}.sakura-5{animation-delay:8s;background:var(--lilac);left:80%;top:40%}.sakura-6{animation-delay:10s;background:var(--light-pink);left:70%;top:70%}.sakura-7{animation-delay:12s;background:var(--light-blue);right:40%;top:30%}@keyframes modernFloat{0%,to{opacity:.6;transform:rotate(45deg) translateY(0) scale(1)}25%{opacity:.8;transform:rotate(45deg) translateY(-20px) scale(1.1)}50%{opacity:.4;transform:rotate(45deg) translateY(-10px) scale(.9)}75%{opacity:.7;transform:rotate(45deg) translateY(-30px) scale(1.05)}}@keyframes shimmer{0%,to{background-position:0 50%;background-size:200% 200%}50%{background-position:100% 50%;background-size:200% 200%}}@media (max-width:768px){.hero-section{margin:1rem;padding:3rem 1.5rem}.sakura-petal{height:8px;width:8px}}@media (max-width:480px){.hero-section{margin:.5rem;padding:2rem 1rem}}.page-container.projects-page{align-items:center;background:#fafafa!important;display:flex;justify-content:center;min-height:100vh;overflow-x:hidden;padding-top:70px!important;position:relative}.page-container.projects-page:before{display:none!important}.projects-page .page-header{margin:0 -2.5rem 0 3.5rem;max-width:90%;padding:4rem 2rem 3rem;text-align:left}.projects-page .page-title{animation:fadeInUp 1s ease-out;color:#2c3e50;font-size:3rem;font-weight:600;margin-bottom:1rem;text-shadow:2px 2px 6px #ffc0cb66}.projects-page .page-subtitle{animation:fadeInUp 1s ease-out .3s both;color:#6b7280;font-size:1.2rem;font-weight:400;line-height:1.6;margin:0 auto;max-width:600px;text-align:center}.projects-page .content-section{margin:0 auto;max-width:1200px;padding:0 2rem 4rem}.projects-grid{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:1fr 1fr;margin-left:auto;margin-right:auto;margin-top:2rem;max-width:90%;width:90%}.project-card{animation:fadeInUp 1s ease-out .6s both;background:#fff;border:1px solid #0000000d;border-radius:12px;box-shadow:0 1px 3px #0000001a;color:inherit;display:block;overflow:hidden;text-decoration:none;transition:all .2s ease}.project-card:hover{border-color:#0000001a;box-shadow:0 8px 20px #00000026;transform:scale(1.02)}.project-image-container{background:#0000;border-bottom:1px solid #0000000d;height:240px;margin:0;overflow:hidden;padding:0}.project-image{border:none;display:block;height:100%;margin:0;object-fit:cover;padding:0;width:100%}.project-content{padding:2rem}.project-title-container{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.project-title{color:#111827;font-family:Cinzel,serif;font-size:1.5rem;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:0}.project-logo{flex-shrink:0;height:28px;margin-right:.25rem;order:-1;transform:translateY(-3px);width:auto}.project-description{color:#4b5563;font-size:.95rem;line-height:1.6;margin-bottom:1.5rem}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem}.tech-tag{background:#f3f4f6;border:1px solid #0000000d;border-radius:6px;color:#374151;font-size:.8rem;font-weight:500;letter-spacing:.025em;padding:.375rem .75rem}.project-card:hover .tech-tag{background:#e5e7eb;border-color:#0000001a}@media (max-width:768px){.projects-page .page-header{padding:3rem 1rem 2rem}.projects-page .content-section{padding:0 1rem 3rem}.projects-grid{gap:2rem;grid-template-columns:1fr}.project-image-container{height:200px}.project-content{padding:1.5rem}.project-title{font-size:1.3rem}.project-description{font-size:.9rem}}@media (max-width:480px){.projects-grid{gap:1.5rem;grid-template-columns:1fr}.project-content{padding:1.25rem}.project-title{font-size:1.2rem}}.blog-container{background:linear-gradient(135deg,#fff5e6,#f0f8ff 50%,#e6f3ff);box-sizing:border-box;padding-top:70px;position:relative;width:100%}.blog-container:before{background-image:radial-gradient(circle at 20% 80%,#ffc0cb26 0,#0000 50%),radial-gradient(circle at 80% 20%,#40e0d026 0,#0000 50%);bottom:0;content:"";left:0;position:fixed;right:0;top:0;z-index:-1}.blog-header{margin-bottom:1rem;padding:4rem 2rem 3rem;text-align:center}.blog-title{animation:fadeInUp 1s ease-out;color:#2c3e50;font-size:3rem;font-weight:600;margin-bottom:0;text-shadow:2px 2px 6px #ffc0cb66}.blog-subtitle{animation:fadeInUp 1s ease-out .3s both;color:#6b7280;font-size:1.2rem;font-weight:400;line-height:1.6;margin:0 auto;max-width:600px}.tag-filter{animation:fadeInUp 1s ease-out .6s both;margin:0 auto 2rem;max-width:1000px;padding:0 2rem}.tag-filter h3{color:#2c3e50;font-size:1.1rem;font-weight:500;margin-bottom:1rem}.tag-list{display:flex;flex-wrap:wrap;gap:.8rem}.tag-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;border:2px solid #40e0d04d;border-radius:25px;color:#4a90e2;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.tag-button:hover{background:#40e0d033;border-color:#40e0d0;box-shadow:0 4px 12px #40e0d04d;transform:translateY(-2px)}.tag-button.active{background:linear-gradient(135deg,#40e0d0,#ff69b4);border-color:#0000;box-shadow:0 4px 15px #40e0d066;color:#fff}.clear-filter{background:#ff69b433;border:2px solid #ff69b44d;border-radius:25px;color:#ff69b4;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.clear-filter:hover{background:#ff69b44d;transform:translateY(-2px)}.blog-posts{display:flex;flex-direction:column;gap:3rem;margin:0 auto;max-width:1000px;padding:0 2rem 2rem}.blog-post{animation:fadeInUp 1s ease-out;background:#fefefe;background-image:radial-gradient(circle at 1px 1px,#00000008 1px,#0000 0);background-size:20px 20px;border-radius:0;box-shadow:0 2px 5px #0000001a,0 8px 25px #0000000d,inset 0 1px 0 #ffffffe6;padding:3rem;position:relative;transition:all .3s ease}.blog-post:before{background:linear-gradient(135deg,#ffffff1a,#fff0 30%,#0000 70%,#0000000d);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.blog-post:hover{box-shadow:0 4px 10px #00000026,0 15px 35px #00000014,inset 0 1px 0 #ffffffe6;transform:translateY(-3px)}.blog-post>*{position:relative;z-index:2}.post-header{margin-bottom:1.5rem}.post-title{color:#2c3e50;font-size:1.8rem;font-weight:600;line-height:1.3;margin-bottom:.8rem}.post-meta{align-items:center;color:#7f8c8d;display:flex;font-size:.9rem;gap:1rem}.post-date{color:#2c3e50;font-weight:500}.post-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.post-tag{background:linear-gradient(135deg,#40e0d033,#ffc0cb33);border:1px solid #40e0d04d;border-radius:15px;color:#2c3e50;cursor:pointer;font-size:.8rem;font-weight:500;padding:.3rem .8rem;transition:all .3s ease}.post-tag:hover{background:linear-gradient(135deg,#40e0d04d,#ffc0cb4d);box-shadow:0 2px 8px #40e0d033;transform:translateY(-1px)}.post-content-preview{color:#2c3e50;font-size:1.05rem;line-height:1.8;position:relative}.post-content-preview p{margin-bottom:1.2rem}.content-fade{margin-top:1rem;position:relative}.fade-overlay{background:linear-gradient(#0000,#fefefe);bottom:3rem;height:4rem;left:0;pointer-events:none;position:absolute;right:0}.expand-btn{align-items:center;background:none;border:none;border-radius:20px;color:#7f8c8d;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;margin:1rem auto 0;opacity:.7;padding:.5rem 1rem;transition:all .3s ease}.expand-btn:hover{background:#34495e1a;opacity:1;transform:translateY(-1px)}.expand-icon{font-size:1.2rem;font-weight:700}.post-content-expanded{animation:fadeIn .5s ease-out;color:#2c3e50;line-height:1.8;margin-top:1rem}.post-content-expanded p{font-size:1.05rem;margin-bottom:1.2rem}.post-content-expanded p:last-of-type{margin-bottom:1.5rem}.collapse-btn{align-items:center;background:none;border:none;border-radius:20px;color:#7f8c8d;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;margin:0 auto;opacity:.7;padding:.5rem 1rem;transition:all .3s ease}.collapse-btn:hover{background:#34495e1a;opacity:1;transform:translateY(-1px)}.collapse-icon{font-size:1.2rem;font-weight:700}.no-posts{color:#666;font-size:1.1rem;padding:3rem;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width:768px){.blog-title{font-size:2.5rem}.blog-subtitle{font-size:1.1rem}.blog-posts{padding:0 1rem 2rem}.blog-post{padding:1.5rem}.post-title{font-size:1.5rem}.post-meta{align-items:flex-start;flex-direction:column;gap:.5rem}.tag-list{gap:.5rem}.tag-button{font-size:.8rem;padding:.4rem .8rem}}@media (max-width:480px){.blog-title{font-size:2rem}.post-title{font-size:1.3rem}.blog-container{padding-top:70px}}.page-container.about-page{align-items:flex-start;background:var(--bg-gradient);box-sizing:border-box;display:flex;justify-content:center;margin-top:0;min-height:100vh;overflow-x:hidden;position:relative;width:100%}.page-container.about-page:before{animation:watercolorFloat 25s ease-in-out infinite reverse;background-image:radial-gradient(circle at 15% 25%,#d4afdf14 0,#0000 40%),radial-gradient(circle at 85% 75%,#a8d8ff14 0,#0000 40%),radial-gradient(circle at 10% 80%,#d4afdf0d 0,#0000 35%),radial-gradient(circle at 90% 20%,#a8d8ff0d 0,#0000 35%);bottom:0;content:"";left:0;position:fixed;right:0;top:0;z-index:-1}.about-header{margin-bottom:1rem;margin-top:200px;padding:2rem;text-align:center}.headshot-image{animation:fadeInUp 1s ease-out;border-radius:50%;box-shadow:0 8px 32px #0000001a;height:350px;margin-left:6rem;margin-right:-6rem;margin-top:-4rem;object-fit:cover;width:350px}.about-page .content-section{margin:120px auto 0;max-width:800px;padding:0 2rem 4rem}.about-page .content-section p{color:var(--text-secondary);font-size:1.1rem;line-height:1.4;margin-bottom:.8rem;text-align:left}.welcome-text{color:#111827!important;font-size:1.3rem!important;font-weight:500!important;margin-bottom:1.5rem!important}.intro-text{font-size:1.1rem!important;margin-bottom:.5rem!important}.about-list{list-style:disc;margin-bottom:2rem;margin-top:.3rem;padding-left:1.5rem}.about-list li{color:var(--text-secondary);font-size:1.05rem;line-height:1.4;margin-bottom:.3rem;text-align:left}.contact-section{margin-top:2rem;text-align:left}.contact-title{color:#111827!important;font-size:1.1rem!important;font-weight:500!important;margin-bottom:.3rem!important}.contact-section p{color:var(--text-secondary)!important;font-size:1.05rem!important;line-height:1.4!important;margin-bottom:.8rem!important}.social-icons{display:flex;gap:1.5rem;justify-content:flex-start;margin-top:.5rem}.social-link{color:#111827;display:inline-block;transition:all .3s ease}.social-link:hover{color:#4a90e2;transform:translateY(-2px)}.social-icon{height:32px;transition:all .3s ease;width:32px}.social-link:hover .social-icon{transform:scale(1.1)}@keyframes watercolorFloat{0%,to{opacity:.8;transform:translateX(0) translateY(0) rotate(0deg)}25%{opacity:.6;transform:translateX(15px) translateY(-10px) rotate(1deg)}50%{opacity:.9;transform:translateX(-10px) translateY(5px) rotate(-.5deg)}75%{opacity:.7;transform:translateX(5px) translateY(-15px) rotate(.5deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.about-page .page-header{padding:1.5rem 1rem}.about-page .content-section{padding:0 1rem 3rem}.about-page .content-section p{font-size:1rem}}@media (max-width:480px){.about-page .page-header{padding:1rem}.about-page .content-section p{font-size:.95rem}}
/*# sourceMappingURL=main.a7f8152a.css.map*/