:root{--bg-dark: #0f0e17;--bg-card: #1a1925;--accent-green: #57cc99;--accent-cyan: #38bdf8;--accent-orange: #fb923c;--accent-purple: #a78bfa;--text-primary: #f8fafc;--text-muted: #94a3b8;--border-block: 4px solid var(--accent-green);--font-heading: "Fredoka", sans-serif;--font-body: "DM Sans", sans-serif;--radius: 8px;--shadow: 0 8px 24px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);background:var(--bg-dark);color:var(--text-primary);line-height:1.6;min-height:100vh;display:flex;flex-direction:column;position:relative}body:before{content:"";position:fixed;inset:0;background:linear-gradient(135deg,#0f0e17,#1a1525,#0e1419 60%,#0f0e17);background-size:400% 400%;animation:bgShift 15s ease infinite;z-index:-1;pointer-events:none}@keyframes bgShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem}.site-header{background:var(--bg-card);border-bottom:var(--border-block);padding:1rem 1.5rem;position:sticky;top:0;z-index:100}.header-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:1rem}.site-nav{flex:1;display:flex;justify-content:space-evenly;gap:clamp(1rem,4vw,2.5rem);margin-left:1rem}.nav-link{color:var(--text-muted);text-decoration:none;font-size:.95rem;white-space:nowrap}.nav-link:hover{color:var(--accent-cyan)}.logo{font-family:var(--font-heading);font-weight:700;font-size:1.75rem;color:var(--accent-cyan);text-decoration:none;letter-spacing:.02em}.logo:hover{color:var(--accent-green)}.tagline{font-size:.95rem;color:var(--text-muted)}@media (max-width: 768px){.site-header{padding:.75rem 1rem}.header-inner{flex-wrap:wrap;gap:.5rem}.logo{font-size:1.4rem}.tagline{font-size:.85rem}.site-nav{flex:1 1 100%;margin-left:0;margin-top:.25rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.1);justify-content:flex-start;flex-wrap:wrap;gap:.75rem 1rem}}.hero{text-align:center;padding:2.5rem 1rem;margin-bottom:2rem}.hero h1{font-family:var(--font-heading);font-size:clamp(1.75rem,5vw,2.5rem);margin:0 0 .5rem;background:linear-gradient(135deg,var(--accent-cyan),var(--accent-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero p{color:var(--text-muted);margin:0;font-size:1.05rem}.intro{background:var(--bg-card);border-radius:var(--radius);padding:1.75rem 1.5rem;margin-bottom:2rem;border-left:4px solid var(--accent-cyan)}.intro h2{font-family:var(--font-heading);font-size:1.5rem;margin:0 0 1rem;color:var(--accent-cyan)}.intro p{margin:0 0 1rem;color:var(--text-primary);font-size:1rem;line-height:1.65}.intro p:last-child{margin-bottom:0}.intro-lead{font-size:1.05rem;color:var(--text-primary)}.intro strong{color:var(--accent-green);font-weight:600}.intro-cta{color:var(--text-muted);font-size:.95rem;font-style:italic}.gallery-heading{font-family:var(--font-heading);font-size:1.35rem;margin:0 0 1rem;color:var(--accent-green)}.timeline-section,.timeline-page{margin-bottom:2rem}.timeline-page{overflow-x:hidden}.timeline-page-title{font-family:var(--font-heading);font-size:1.75rem;margin:0 0 .25rem;color:var(--accent-cyan)}.timeline-heading{font-family:var(--font-heading);font-size:1.35rem;margin:0 0 .25rem;color:var(--accent-cyan)}.timeline-back{margin:2rem 0 0;font-size:.95rem}.timeline-back a{color:var(--accent-cyan);text-decoration:none}.timeline-back a:hover{color:var(--accent-green);text-decoration:underline}.feedback-page{max-width:32rem;margin:0 auto 2rem}.feedback-title{font-family:var(--font-heading);font-size:1.75rem;margin:0 0 .25rem;color:var(--accent-cyan)}.feedback-intro{color:var(--text-muted);font-size:.95rem;margin:0 0 1.5rem}.feedback-form{display:flex;flex-direction:column;gap:.75rem}.feedback-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.feedback-label{font-size:.9rem;font-weight:600;color:var(--text-primary)}.feedback-input,.feedback-textarea{font-family:var(--font-body);font-size:1rem;padding:.6rem .75rem;border:2px solid var(--bg-card);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary);width:100%;transition:border-color .2s}.feedback-input::placeholder,.feedback-textarea::placeholder{color:var(--text-muted)}.feedback-input:focus,.feedback-textarea:focus{outline:none;border-color:var(--accent-cyan)}.feedback-textarea{resize:vertical;min-height:120px}.feedback-submit{font-family:var(--font-heading);font-size:1rem;font-weight:600;padding:.75rem 1.25rem;margin-top:.5rem;border:none;border-radius:var(--radius);background:var(--accent-cyan);color:var(--bg-dark);cursor:pointer;transition:background .2s,transform .2s}.feedback-submit:hover{background:var(--accent-green);transform:translateY(-2px)}.feedback-back{margin-top:2rem;font-size:.95rem}.feedback-back a{color:var(--accent-cyan);text-decoration:none}.feedback-back a:hover{color:var(--accent-green);text-decoration:underline}.timeline-hint{font-size:.9rem;color:var(--text-muted);margin:0 0 1rem}.timeline-progress-wrap{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.timeline-progress-year{font-family:var(--font-heading);font-size:.95rem;color:var(--accent-orange);font-weight:600;flex-shrink:0}.timeline-progress-bar{flex:1;height:8px;background:var(--bg-card);border-radius:4px;overflow:hidden}.timeline-progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent-green),var(--accent-cyan));border-radius:4px;transition:width .15s ease-out}.timeline-fullwidth{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);padding-left:max(2.5rem,20vw);padding-right:1.5rem;margin-bottom:.5rem;box-sizing:border-box}.timeline-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:.5rem}.timeline-scroll::-webkit-scrollbar{height:8px}.timeline-scroll::-webkit-scrollbar-track{background:var(--bg-card);border-radius:4px}.timeline-scroll::-webkit-scrollbar-thumb{background:var(--accent-cyan);border-radius:4px}.timeline-track{display:flex;gap:1.5rem;min-width:max-content;padding-left:max(2.5rem,20vw);padding-right:max(3rem,25vw)}.timeline-item-wrap{display:flex;flex-direction:column;align-items:center;gap:.5rem;scroll-snap-align:start;flex-shrink:0;opacity:1;transform:translate(0);transition:opacity .4s ease-out,transform .4s ease-out}.timeline-item-wrap.timeline-visible{opacity:1;transform:translate(0)}.timeline-year{font-family:var(--font-heading);font-size:1rem;color:var(--accent-orange);font-weight:600}.timeline-item{display:flex;flex-direction:column;width:280px;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;border:2px solid transparent;box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:border-color .2s,transform .2s}.timeline-item:hover{border-color:var(--accent-cyan);transform:scale(1.02)}.timeline-thumb{width:280px;height:210px;overflow:hidden;background:var(--bg-dark)}.timeline-thumb img{width:100%;height:100%;object-fit:cover;display:block}.timeline-title{font-size:.95rem;font-weight:600;padding:0 .5rem;text-align:center;line-height:1.2;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.timeline-date{font-size:.85rem;color:var(--text-muted);padding:0 .5rem .5rem}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;list-style:none;padding:0;margin:0}.gallery-item{margin:0}.gallery-link{display:block;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;border:2px solid transparent;box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:border-color .2s,transform .2s}.gallery-link:hover{border-color:var(--accent-green);transform:translateY(-4px)}.gallery-thumb-wrap{aspect-ratio:4 / 3;overflow:hidden;background:var(--bg-dark)}.gallery-thumb-wrap img{width:100%;height:100%;object-fit:cover;display:block}.gallery-caption{padding:1rem}.gallery-caption h2{font-family:var(--font-heading);font-size:1.1rem;margin:0 0 .25rem;color:var(--text-primary)}.gallery-caption .date{font-size:.875rem;color:var(--text-muted)}.divider{height:4px;background:linear-gradient(90deg,var(--accent-green),var(--accent-cyan),var(--accent-orange));background-size:200% 100%;margin:2rem 0;border-radius:2px;animation:dividerShine 4s ease-in-out infinite}@keyframes dividerShine{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.lightbox{display:none;position:fixed;inset:0;background:#000000e6;z-index:1000;align-items:center;justify-content:center;padding:2rem}.lightbox.open{display:flex;flex-direction:column}.lightbox-content{max-width:90vw;max-height:80vh;display:flex;flex-direction:column;align-items:center;gap:1rem}.lightbox-content img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:var(--radius);border:2px solid var(--accent-cyan)}.lightbox-caption{text-align:center;color:var(--text-primary)}.lightbox-caption h3{font-family:var(--font-heading);margin:0 0 .25rem;font-size:1.25rem}.lightbox-caption .date{color:var(--text-muted);font-size:.9rem}.lightbox-description{margin:.75rem 0 0;font-size:.95rem;line-height:1.5;color:#fff;max-width:32rem;margin-left:auto;margin-right:auto;white-space:pre-line}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:var(--bg-card);color:var(--text-primary);border:2px solid var(--accent-cyan);border-radius:var(--radius);width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;cursor:pointer;transition:background .2s,color .2s}.lightbox-nav:hover{background:var(--accent-cyan);color:var(--bg-dark)}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}#lightbox-close{position:absolute;top:1rem;right:1rem;background:var(--bg-card);color:var(--text-primary);border:2px solid var(--accent-green);border-radius:var(--radius);padding:.5rem 1rem;font-family:var(--font-body);font-size:1rem;cursor:pointer}#lightbox-close:hover{background:var(--accent-green);color:var(--bg-dark)}.site-footer{background:var(--bg-card);border-top:2px solid var(--accent-purple);padding:1rem 1.5rem;text-align:center;margin-top:auto}.site-footer p{margin:0;font-size:.9rem;color:var(--text-muted)}@media (max-width: 640px){.gallery{grid-template-columns:1fr}}
