*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0f172a;color:#f8fafc}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(165deg,#0f172a,#1e293b,#0f172a 60%,#1a1f35)}.hero-bg{position:absolute;inset:0;pointer-events:none}.molecule{position:absolute;border-radius:50%;opacity:.15;animation:float 20s ease-in-out infinite}.molecule:before,.molecule:after{content:"";position:absolute;border-radius:50%;background:currentColor}.molecule-1{width:80px;height:80px;top:15%;left:20%;background:radial-gradient(circle,#6366f1 0%,transparent 70%);animation-delay:0s}.molecule-1:before{width:24px;height:24px;top:50%;left:120%;background:#818cf8}.molecule-1:after{width:16px;height:16px;top:-20%;left:50%;background:#a5b4fc}.molecule-2{width:60px;height:60px;bottom:25%;right:15%;background:radial-gradient(circle,#f59e0b 0%,transparent 70%);animation-delay:-5s}.molecule-2:before{width:20px;height:20px;top:80%;left:80%;background:#fbbf24}.molecule-3{width:40px;height:40px;top:40%;right:25%;background:radial-gradient(circle,#ec4899 0%,transparent 70%);animation-delay:-10s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(15px,-15px) scale(1.05)}66%{transform:translate(-10px,10px) scale(.95)}}.hero-content{position:relative;z-index:1;text-align:center;padding:2rem}.hero-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,6vw,3.5rem);font-weight:400;color:#f8fafc;margin:0 0 .75rem;letter-spacing:.02em;animation:fadeInUp 1s ease-out}.hero-tagline{font-size:clamp(1rem,2.5vw,1.25rem);color:#94a3b8;margin:0 0 2rem;font-weight:300;animation:fadeInUp 1s ease-out .2s both}.hero-cta{display:inline-block;padding:.75rem 2rem;font-size:1rem;font-weight:500;color:#0f172a;background:linear-gradient(135deg,#a5b4fc,#818cf8);border:none;border-radius:2rem;cursor:pointer;transition:transform .2s,box-shadow .2s;animation:fadeInUp 1s ease-out .4s both}.hero-cta:hover{transform:translateY(-2px);box-shadow:0 8px 24px #818cf866}.hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-indicator{display:block;width:24px;height:40px;border:2px solid rgba(148,163,184,.5);border-radius:12px;position:relative}.scroll-indicator:after{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:4px;height:8px;background:#94a3b8;border-radius:2px;animation:scrollBounce 2s ease-in-out infinite}@keyframes scrollBounce{0%,to{opacity:0;transform:translate(-50%) translateY(0)}50%{opacity:1;transform:translate(-50%) translateY(12px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.love-letter{padding:6rem 2rem;background:linear-gradient(180deg,#1e293b,#0f172a)}.love-letter-inner{max-width:640px;margin:0 auto}.love-letter .section-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,4vw,2rem);font-weight:400;color:#f8fafc;margin:0 0 2.5rem;text-align:center}.letter-content{background:#1e293b99;border:1px solid rgba(148,163,184,.15);border-radius:12px;padding:2.5rem}.letter-content p{font-size:1.1rem;line-height:1.8;color:#cbd5e1;margin:0 0 1.5rem}.letter-content p:last-child{margin-bottom:0}.timeline{padding:6rem 2rem;background:#0f172a}.timeline-inner{max-width:680px;margin:0 auto}.timeline .section-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,4vw,2rem);font-weight:400;color:#f8fafc;margin:0 0 .5rem;text-align:center}.section-subtitle{color:#94a3b8;font-size:1rem;margin:0 0 3rem;text-align:center}.timeline-track{position:relative}.timeline-track:before{content:"";position:absolute;left:11px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#6366f1,#ec4899);border-radius:2px}.timeline-item{position:relative;padding-left:3rem;padding-bottom:2.5rem}.timeline-item:last-child{padding-bottom:0}.timeline-marker{position:absolute;left:0;top:4px;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#818cf8);border:3px solid #0f172a;box-shadow:0 0 0 2px #6366f14d}.timeline-content{background:#1e293b80;border:1px solid rgba(148,163,184,.1);border-radius:8px;padding:1.25rem 1.5rem}.timeline-date{display:block;font-size:.85rem;color:#818cf8;font-weight:500;margin-bottom:.35rem}.timeline-title{font-size:1.1rem;font-weight:600;color:#f8fafc;margin:0 0 .5rem}.timeline-description{font-size:.95rem;color:#94a3b8;line-height:1.6;margin:0}.chemistry-section{padding:6rem 2rem;background:linear-gradient(180deg,#0f172a,#1e293b)}.chemistry-inner{max-width:560px;margin:0 auto}.chemistry-section .section-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,4vw,2rem);font-weight:400;color:#f8fafc;margin:0 0 2rem;text-align:center}.formula-block{background:#1e293b99;border:1px solid rgba(148,163,184,.15);border-radius:12px;padding:2rem;text-align:center;margin-bottom:2rem}.formula-equation{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.25rem,3vw,1.5rem);color:#818cf8;margin:0 0 1rem;letter-spacing:.05em}.formula-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 1.5rem;color:#94a3b8;font-size:.95rem;margin-bottom:1rem}.formula-legend strong{color:#a5b4fc}.formula-note{font-size:.9rem;color:#64748b;font-style:italic;margin:0}.us-message{text-align:center;color:#a5b4fc;font-size:1rem;margin:0 0 1rem;animation:fadeIn .4s ease-out}.periodic-mini{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.element-cell{width:56px;height:56px;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:600;border-radius:6px;border:1px solid rgba(148,163,184,.2);color:#f8fafc;transition:transform .2s,box-shadow .2s}.element-cell:hover{transform:scale(1.05);box-shadow:0 4px 12px #6366f14d}.element-he{background:#6366f133}.element-ne{background:#f59e0b33}.element-ar{background:#ec489933}.element-us{background:linear-gradient(135deg,#6366f14d,#ec48994d);cursor:pointer}.element-kr{background:#22c55e33}.photo-gallery{padding:6rem 2rem;background:#1e293b}.gallery-inner{max-width:1000px;margin:0 auto}.photo-gallery .section-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,4vw,2rem);font-weight:400;color:#f8fafc;margin:0 0 .5rem;text-align:center}.gallery-hint{font-size:.85rem;color:#64748b;text-align:center;margin:0 0 2rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.gallery-item{aspect-ratio:3/2;border:none;border-radius:8px;overflow:hidden;cursor:pointer;padding:0;background:#0f172a;transition:transform .2s,box-shadow .2s}.gallery-item:hover{transform:scale(1.02);box-shadow:0 8px 24px #0000004d}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block}.lightbox{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;cursor:pointer}.lightbox img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px;cursor:default}.lightbox-close{position:absolute;top:1rem;right:1rem;padding:.5rem 1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#f8fafc;border-radius:6px;cursor:pointer;font-size:.9rem}.lightbox-close:hover{background:#fff3}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);padding:.75rem 1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#f8fafc;border-radius:6px;cursor:pointer;font-size:.9rem}.lightbox-nav:hover{background:#fff3}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.interactive-section{padding:6rem 2rem 4rem;background:linear-gradient(180deg,#1e293b,#0f172a)}.interactive-inner{max-width:560px;margin:0 auto}.interactive-section .section-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,4vw,2rem);font-weight:400;color:#f8fafc;margin:0 0 2rem;text-align:center}.pun-display{background:#1e293b99;border:1px solid rgba(148,163,184,.15);border-radius:12px;padding:2rem;text-align:center;margin-bottom:2rem}.pun-text{font-size:1.1rem;color:#cbd5e1;font-style:italic;margin:0 0 1rem}.pun-btn{padding:.5rem 1rem;font-size:.9rem;color:#818cf8;background:transparent;border:1px solid rgba(129,140,248,.4);border-radius:6px;cursor:pointer;transition:background .2s,color .2s}.pun-btn:hover{background:#818cf833}.beaker-area{text-align:center;margin-bottom:3rem}.beaker{width:64px;height:64px;border-radius:8px 8px 4px 4px;border:2px solid rgba(148,163,184,.3);background:linear-gradient(180deg,#818cf833,#6366f11a);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s}.beaker:hover{transform:scale(1.05);box-shadow:0 0 20px #818cf84d}.beaker-icon{font-size:1.5rem;font-weight:700;color:#818cf8}.easter-egg{margin-top:1rem;font-size:1rem;color:#a5b4fc;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.site-footer{text-align:center;padding-top:2rem;border-top:1px solid rgba(148,163,184,.15)}.site-footer p{color:#64748b;font-size:.95rem;margin:0 0 .25rem}.footer-date{font-size:.85rem!important;color:#475569!important}.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1rem 1.5rem;background:#0f172acc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(148,163,184,.1)}.nav-toggle{display:none;flex-direction:column;gap:5px;padding:.5rem;background:transparent;border:none;cursor:pointer;color:#f8fafc}.nav-toggle span{display:block;width:24px;height:2px;background:currentColor}.nav-menu{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;list-style:none;margin:0;padding:0}.nav-menu li{margin:0}.nav-link{padding:.5rem .75rem;font-size:.9rem;color:#94a3b8;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:color .2s,background .2s}.nav-link:hover{color:#f8fafc;background:#6366f126}@media(max-width:640px){.nav-toggle{display:flex}.nav-menu{display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:#0f172afa;padding:1rem;border-bottom:1px solid rgba(148,163,184,.1)}.nav-menu-open{display:flex}}.app{min-height:100vh}.app main{padding-top:56px}
