/* OLD ROCKER CAVID — extra-shiny early-2000s birthday edition */
:root{--night:#030513;--navy:#081943;--blue:#1458a0;--ice:#9bdcff;--gold:#ffdf70;--gold2:#fff5bd;--red:#ff493d;--cream:#fff4d7;--violet:#a78bfa}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{margin:0;color:var(--cream);background:#02030b url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='%23ffffff' opacity='.65'%3E%3Ccircle cx='14' cy='22' r='1'/%3E%3Ccircle cx='97' cy='37' r='.8'/%3E%3Ccircle cx='54' cy='111' r='1'/%3E%3Ccircle cx='143' cy='133' r='.8'/%3E%3C/g%3E%3Cg stroke='%23bfe5ff' stroke-width='.7' opacity='.8'%3E%3Cpath d='M32 55v12M26 61h12M122 82v10M117 87h10'/%3E%3C/g%3E%3C/svg%3E");font:16px Georgia,'Times New Roman',serif}
a{color:#73c9ff;text-shadow:0 0 5px #197aff}a:visited{color:#d6aaff}a:hover{color:#fff5a8;background:#173b78;text-shadow:0 0 9px #ffe680}
.welcome-page{min-height:100vh;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 15%,#162e78 0,#080f32 35%,#02030b 72%)}
.sparkles{position:fixed;inset:0;pointer-events:none;opacity:.8;background-image:radial-gradient(2px 2px at 12% 18%,#fff 50%,transparent 60%),radial-gradient(2px 2px at 75% 25%,#ffeaa0 50%,transparent 60%),radial-gradient(3px 3px at 85% 72%,#fff 50%,transparent 60%),radial-gradient(1px 1px at 44% 86%,#8bd6ff 50%,transparent 60%),radial-gradient(2px 2px at 26% 65%,#fff 50%,transparent 60%);background-size:190px 170px,230px 210px,270px 230px,210px 200px,240px 220px;animation:twinkle 3s steps(2,end) infinite}
@keyframes twinkle{0%,100%{opacity:.45;filter:brightness(.9)}50%{opacity:1;filter:brightness(1.6)}}
.welcome-box{position:relative;width:min(92%,640px);text-align:center;padding:35px 28px 26px;border:4px ridge #ffe7a0;outline:2px solid #b87a18;outline-offset:7px;background:linear-gradient(145deg,rgba(5,10,31,.98),rgba(12,27,73,.97),rgba(3,5,18,.98));box-shadow:0 0 15px #fff2a5,0 0 38px #e4a735,0 0 75px #163dbe,inset 0 0 35px #1c3f9c;animation:goldPulse 3s ease-in-out infinite}
@keyframes goldPulse{0%,100%{box-shadow:0 0 12px #fff2a5,0 0 32px #d89b2a,0 0 65px #163dbe,inset 0 0 30px #1c3f9c}50%{box-shadow:0 0 22px #fff,0 0 55px #ffd55e,0 0 90px #416dff,inset 0 0 45px #2b54bc}}
.tiny-top,.tiny-bottom,.under-construction{font:11px 'Courier New',monospace;letter-spacing:2px;color:#c5e4ff}
h1{margin:19px 0 11px;color:var(--gold2);font-size:clamp(36px,8vw,68px);line-height:.94;letter-spacing:2px;text-shadow:0 1px 0 #8c4b00,0 3px 0 #9d5b04,0 0 8px #fff,0 0 18px #ffd84c,0 0 38px #ffb400}
h1 span{font-family:'Brush Script MT','Segoe Script',cursive;color:#ffe68d;font-size:1.08em;font-style:italic}
.ornament{margin:20px 0;color:#ffdb65;letter-spacing:8px;text-shadow:0 0 10px #ffc83d}
.welcome-copy{color:#fff0a4;letter-spacing:3px;font:bold 14px 'Courier New',monospace;text-shadow:0 0 10px #ffbe33}
.welcome-note{color:#c7e7ff;line-height:1.8;font-style:italic;text-shadow:0 0 8px #167dff}
.enter-link{display:inline-block;margin:20px 0 25px;padding:14px 22px;color:#fff8c8!important;text-decoration:none;font:bold 16px 'Courier New',monospace;letter-spacing:2px;border:3px ridge #fff0a1;background:linear-gradient(#ff6b25,#b60a12 55%,#5c0615);box-shadow:0 0 10px #ffed91,0 0 25px #ff431b,5px 5px 0 #391019;text-shadow:0 0 8px #fff;animation:buttonGlow 1.7s ease-in-out infinite}
@keyframes buttonGlow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.45)}}
.enter-link:hover{transform:translateY(-2px);background:linear-gradient(#ffb44d,#d51b20);color:white!important}
.under-construction{color:#ffd166;margin-bottom:17px;text-shadow:0 0 9px #ffab00}.heart{color:#ff5252;text-shadow:0 0 9px red}.tiny-bottom{letter-spacing:.5px}
.inside-page{background-color:#030610;background-image:radial-gradient(ellipse at 50% 0,#112d70 0,transparent 48%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='130'%3E%3Cpath d='M65 57v16M57 65h16' stroke='%23fff0a3' stroke-width='1' opacity='.5'/%3E%3C/svg%3E")}
.site-header{width:min(97%,1000px);margin:20px auto 0;text-align:center;padding:17px 10px;background:linear-gradient(110deg,#02040d,#0b2059 35%,#111b49 60%,#02040d);border:4px ridge #f7d67a;box-shadow:0 0 8px #fff1a1,0 0 25px #1c65c8,inset 0 0 25px #172e75}
.header-stars{color:#ffe58a;letter-spacing:5px;font-size:13px;text-shadow:0 0 8px #ffcf38;overflow-wrap:anywhere}
.site-header h1{font-size:clamp(30px,5vw,51px);margin:14px 0 8px}.tagline{color:#bce8ff;font:12px 'Courier New',monospace;letter-spacing:2px;text-shadow:0 0 8px #158bff}
.page-wrap{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px;width:min(97%,1000px);margin:15px auto;align-items:start}
.sidebar,.content{border:3px ridge #d5b75c;background:linear-gradient(145deg,rgba(4,12,35,.97),rgba(7,22,57,.97));padding:15px;box-shadow:0 0 9px #e9bd48,0 0 22px #1747a2,inset 0 0 22px rgba(43,83,176,.24)}
.sidebar h2{font:bold 15px Georgia;text-align:center;color:#ffe991;border-bottom:1px dashed #d9b957;padding-bottom:11px;margin:0 0 10px;text-shadow:0 0 8px #ffcb38}
.sidebar a{display:block;padding:8px 5px;margin:2px 0;font:13px 'Courier New',monospace;border-bottom:1px dotted #274e87}
.sidebar a.active{color:#fff3a6;background:linear-gradient(90deg,#1c3e7b,transparent);text-shadow:0 0 8px #ffdc69}
.sidebar-rule{border-top:1px dashed #b99b4b;margin:14px 0}.side-note{text-align:center;font:10px 'Courier New',monospace;line-height:1.8;color:#b6d9ff}.party-counter{margin:8px auto;text-align:center;background:#020407;border:2px inset #ffdf70;color:#6cff7b;padding:8px 2px;font:bold 12px 'Courier New',monospace;letter-spacing:2px;text-shadow:0 0 7px #26ff61}
.content{min-height:470px;line-height:1.7}.notice{text-align:center;padding:9px;border:1px dashed #ffdf70;color:#fff0a0;background:linear-gradient(90deg,#111b3a,#1b3971,#111b3a);font:bold 12px 'Courier New',monospace;letter-spacing:1px;text-shadow:0 0 8px #ffcc40;box-shadow:inset 0 0 15px #284f9a}
.content h2{color:#ffe38b;font-size:27px;border-bottom:1px dashed #c9a84b;padding-bottom:9px;text-shadow:0 0 10px #ffbd36}.content h2.gold-heading{text-align:center;border:0;font-size:clamp(25px,4vw,36px);text-shadow:0 0 7px #fff,0 0 16px #ffd14c,2px 3px 0 #8d5100}
.content h3{color:#ffdf79;font-size:16px;margin-top:0;text-shadow:0 0 8px #cc8c15}.content p{font-size:15px}.hero-grid{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);gap:22px;align-items:center;margin:15px 0 22px}
.photo-frame{padding:8px;border:4px ridge #ffe37b;background:linear-gradient(135deg,#fff5b5,#a87514,#fff0a2,#87500a);box-shadow:0 0 8px #fff,0 0 25px #ffcf3e;transform:rotate(-1deg)}
.photo-placeholder{min-height:225px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:#ffedab;background:radial-gradient(circle,#213f82,#060b1b 75%);border:2px solid #f9e4a0;padding:15px;text-shadow:0 0 8px #ffce41}.photo-placeholder .photo-star{font-size:42px;color:#ffe991}.photo-placeholder strong{font-size:13px;letter-spacing:1px}.photo-placeholder small{font:10px 'Courier New',monospace;color:#b5d9ff}.frame-caption{text-align:center;color:#4a2400;font:bold 10px 'Courier New',monospace;letter-spacing:1px;padding-top:6px}
.hero-copy h3{font:italic 22px Georgia;color:#ffe38b}.hero-copy p{color:#d7eaff}.shiny-rule{text-align:center;color:#ffdf70;text-shadow:0 0 10px #ffd34b;margin:18px 0}.signature{text-align:center;color:#ffdf90!important;font-style:italic;font-size:17px!important;text-shadow:0 0 9px #f5b82e}
.content-panel{margin:18px 0;padding:16px;border:2px ridge #9f813a;background:linear-gradient(135deg,rgba(16,37,80,.9),rgba(5,12,34,.95));box-shadow:inset 0 0 18px rgba(53,109,216,.2),0 0 8px rgba(255,212,93,.25)}
.content-panel p{margin:8px 0}.birthday-panel{text-align:center;border-color:#ffe080;box-shadow:0 0 12px rgba(255,211,75,.35),inset 0 0 20px rgba(37,76,156,.4)}.big-wish{font:bold 19px Georgia;color:#fff0a2;text-shadow:0 0 10px #ffca39}.big-wish span{font-size:22px}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px}.blink-line{text-align:center;color:#ffe68b;font:bold 12px 'Courier New',monospace;margin:27px 0 12px;text-shadow:0 0 8px #ffbf33}.memory-card{margin:16px 0;padding:15px;border:1px dashed #e5c45f;background:rgba(14,35,75,.75)}.memory-card>span{color:#ffdf79;font:bold 11px 'Courier New',monospace}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.gallery-placeholder{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:7px;border:4px ridge #f3d678;background:radial-gradient(circle,#173e7b,#050b1d 75%);color:#ffeb9e;box-shadow:0 0 9px #ffda61,inset 0 0 20px #23488e;text-shadow:0 0 8px #ffc941}.gallery-placeholder span{font-size:32px}.gallery-placeholder strong{font:12px 'Courier New',monospace}.gallery-placeholder small{font:10px 'Courier New',monospace;color:#bce5ff}.music-list p{padding:8px;border-bottom:1px dotted #6889ba;color:#cceaff}.back-link{font-size:13px!important}
.site-footer{width:min(97%,1000px);margin:13px auto 24px;padding:12px;text-align:center;border:2px ridge #c9a74c;background:#050c21;color:#a9c7e8;font:10px 'Courier New',monospace;letter-spacing:.5px;box-shadow:0 0 12px #184a99}.site-footer p{margin:5px}
@media(max-width:650px){.page-wrap{grid-template-columns:1fr}.sidebar{display:flex;flex-wrap:wrap;align-items:center;gap:3px 8px}.sidebar h2{width:100%}.sidebar a{display:inline-block}.sidebar-rule,.side-note,.party-counter{display:none}.hero-grid,.two-column{grid-template-columns:1fr}.photo-frame{max-width:300px;margin:auto;width:100%}.photo-placeholder{min-height:180px}.header-stars{letter-spacing:2px}.welcome-box{padding:28px 16px 22px}.gallery-grid{gap:9px}.gallery-placeholder{min-height:120px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}
