:root{--ink:#030a13;--midnight:#061529;--panel:#07192d;--ice:#e9f4ff;--blue:#188dff;--edge:#2375aa;--gold:#d5b27c;--muted:#afc4dc;--display:Georgia,'Palatino Linotype','Times New Roman',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--ice);font:16px/1.6 Georgia,'Times New Roman',serif}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%}a:focus-visible,button:focus-visible{outline:3px solid #a8ddff;outline-offset:5px}::selection{background:#166fb1;color:#fff}
.site-header{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;gap:2.2rem;align-items:center;justify-content:space-between;padding:25px clamp(19px,2.7vw,52px)}.secret-link{white-space:nowrap;display:flex;align-items:center;gap:.8rem;border:1px solid rgba(222,180,115,.85);border-radius:8px;color:#f7deb0;padding:12px 17px;background:rgba(1,7,15,.76);box-shadow:0 6px 28px #0007;transition:transform .2s,background .2s}.secret-link:hover{transform:translateY(-2px);background:#1e2030}.secret-avatar{width:32px;height:35px;border:2px solid #bda076;border-radius:3px;background:#806344;display:grid;place-items:center;font-family:serif;font-size:20px;color:#1e1b17}.secret-link .arrow{font-size:24px;margin-left:.2rem}.top-nav{display:flex;align-items:center;gap:clamp(.7rem,2.25vw,2.75rem);flex-wrap:wrap;justify-content:flex-end}.top-nav a{font-family:var(--display);letter-spacing:.09em;font-size:.91rem;text-transform:uppercase;text-shadow:0 2px 8px #000;transition:color .2s}.top-nav a:hover,.top-nav a[aria-current=page]{color:#c2e5ff}.top-nav a[aria-current=page]{text-shadow:0 0 12px #41acff;border-bottom:2px solid #1c9bff;padding-bottom:6px}.about-icon{display:none}
.home-hero{min-height:580px;height:min(70vw,610px);max-height:720px;position:relative;background:linear-gradient(180deg,rgba(0,5,11,.34) 0%,rgba(0,5,11,.08) 55%,rgba(0,8,18,.5) 90%,#03101f 100%),url('/assets/img/storm.jpg') center center/cover no-repeat;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}.home-hero:before{content:'';inset:0;position:absolute;background:radial-gradient(ellipse at 50% 31%,rgba(8,24,44,.03),rgba(0,0,0,.25) 74%);pointer-events:none}.hero-content{position:relative;z-index:2;width:min(1100px,96%);padding-top:65px}.hero-kicker{font-size:clamp(.85rem,2vw,1.6rem);letter-spacing:.9em;color:#cbecff;text-shadow:0 0 14px #008fff;margin:0 0 -1.25rem}.hero-title{font-family:var(--display);font-size:clamp(4.5rem,13.8vw,13rem);line-height:1.04;letter-spacing:.055em;font-weight:400;margin:1rem 0 0;text-transform:uppercase;color:#e4f1ff;text-shadow:0 1px 0 #fff,0 4px 2px #427db1,0 9px 12px #00111d,0 0 30px #009dff;-webkit-text-stroke:.5px #e3faff}.hero-tag{font:clamp(.95rem,1.6vw,1.42rem)/1.5 var(--display);letter-spacing:.26em;text-transform:uppercase;margin:.15rem auto 2.6rem;color:#f6f9ff;text-shadow:0 2px 8px #000;max-width:30ch}.portal-row{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap}.portal-button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;border:2px solid #8fddff;padding:13px 32px;width:320px;height:66px;box-sizing:border-box;border-radius:100px;background:rgba(0,13,35,.68);color:#e9f8ff;font-family:var(--display);letter-spacing:.25em;text-transform:uppercase;font-size:clamp(1rem,1.65vw,1.6rem);box-shadow:0 0 5px #fff,0 0 18px #0099ff, inset 0 0 10px #0099ff,0 0 35px #0287f899;transition:transform .2s,box-shadow .2s}.portal-button:hover{transform:translateY(-3px);box-shadow:0 0 9px #fff,0 0 25px #0099ff,inset 0 0 13px #0099ff,0 0 40px #0287f8}.portal-button span{font-size:1.5em;line-height:.8}.portal-past{border-color:#e6b05f;color:#fff4de;background:linear-gradient(180deg,rgba(102,59,10,.86) 0%,rgba(53,29,4,.80) 52%,rgba(27,14,2,.80) 100%);box-shadow:0 0 5px #fff3db,0 0 16px #c6801f,inset 0 0 12px rgba(233,177,80,.95),0 0 34px rgba(196,122,18,.56)}.portal-past:hover{box-shadow:0 0 8px #fff3db,0 0 24px #db8b25,inset 0 0 14px rgba(248,191,93,.98),0 0 40px rgba(214,128,21,.65)}.portal-future{}
.home-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;width:min(1500px,96%);margin:-10px auto 0;position:relative;z-index:3}.feature-card{min-height:382px;border:1px solid #176391;border-radius:9px;background:#031226;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 24px #0009;transition:transform .25s,border .25s}.feature-card:hover{transform:translateY(-6px);border-color:#51c1ff}.feature-card img{width:100%;height:220px;object-fit:cover;display:block;mask-image:linear-gradient(#000 68%,transparent 100%)}.feature-copy{text-align:center;margin-top:-15px;padding:0 15px 18px;display:flex;flex-direction:column;align-items:center;flex:1}.feature-card h2{font:normal 1.37rem/1.3 var(--display);letter-spacing:.13em;text-transform:uppercase;margin:0 0 6px}.feature-card p{margin:0 0 16px;line-height:1.35;max-width:26ch;color:#d4e4f5;font-size:.96rem}.feature-card .explore{display:inline-block;border:1px solid #399aff;border-radius:7px;min-width:155px;padding:5px 16px;margin-top:auto;text-transform:uppercase;letter-spacing:.11em;transition:background .2s}.feature-card:hover .explore{background:#0b467b}.site-footer{border-top:1px solid #123756;margin-top:48px;padding:25px max(20px,4vw);display:grid;grid-template-columns:1fr minmax(0,1.7fr) 1fr;align-items:center;gap:20px;color:#9fbdd8;letter-spacing:.14em;font-size:.77rem;text-transform:uppercase}.site-footer span:nth-child(2){text-align:center}.site-footer span:last-child{text-align:right}.site-footer a:hover{color:white}
.inner-page{min-height:100vh;background:radial-gradient(ellipse at 50% 0%,#0a3962,#061529 40%,#02070f 90%)}.inner-page .site-header{position:relative;background:#030d1de8;border-bottom:1px solid #12436c}.section-hero{min-height:355px;padding:90px 25px 42px;display:grid;place-items:center;text-align:center;background:linear-gradient(0deg,#061629de,#03142a70),url('/assets/img/storm.jpg') center/cover}.section-hero h1,.future-title{font:normal clamp(2.7rem,7vw,6.2rem)/1.1 var(--display);letter-spacing:.16em;margin:.3rem 0;text-shadow:0 0 25px #178ef8}.section-hero p{max-width:560px;margin:0 auto;color:#d6e6f6;font-size:1.15rem}.inner-main{max-width:980px;margin:0 auto;padding:45px 25px 80px}.glass-panel{padding:clamp(25px,4vw,50px);border:1px solid #256799;border-radius:12px;background:linear-gradient(160deg,#0c2843c9,#06111fee);box-shadow:0 20px 60px #0005}.glass-panel h2{font:normal 2rem var(--display);margin-top:0;color:#d4e9ff;letter-spacing:.06em}.glass-panel p{font-size:1.1rem;color:#c5d5e6}.back-link{display:inline-block;border:1px solid #3f94c8;color:#dbedff;padding:8px 22px;border-radius:6px;margin-top:22px}.back-link:hover{background:#174775}.silhouette{width:168px;height:168px;border-radius:50%;background:radial-gradient(circle at 50% 44%,#3a5167,#081321 75%);display:flex;align-items:center;justify-content:center;margin:0 auto 28px;border:1px solid #40617d;overflow:hidden;box-shadow:0 18px 45px #0005}.silhouette svg{width:90px;fill:#01060b}.realistic-silhouette img{display:block;width:100%;height:100%;object-fit:cover}.about-copy{text-align:center;max-width:680px;margin:auto}.about-copy h2{font-size:clamp(2rem,5vw,3.5rem);margin-bottom:10px}.about-copy p{font-size:1.24rem;font-style:italic;line-height:1.9}.future-page{background:#010916;overflow:hidden}.future-display{min-height:65vh;display:grid;place-items:center;position:relative;isolation:isolate;text-align:center;padding:80px 30px}.future-display:before{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 39px,#146ba414 40px),repeating-linear-gradient(90deg,transparent 0 39px,#146ba414 40px),radial-gradient(ellipse at center,#124872 0%,transparent 65%);mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent)}.future-display .eyebrow{color:#61bdfb;letter-spacing:.5em}.future-display h1{margin:15px 0 5px}.future-display p{color:#bed9ef;max-width:480px;margin:10px auto 30px}.future-line{width:clamp(180px,60vw,500px);height:2px;background:#4bc5ff;box-shadow:0 0 25px 5px #198ffa;animation:pulse 4s ease-in-out infinite;margin:25px auto}@keyframes pulse{50%{opacity:.4;transform:scaleX(.65)}}
/* The Family: deliberately a different world. */
.family-page{--paper:#e8d8b5;--brown:#422a1b;--oldgold:#8f6231;background:radial-gradient(circle at 28% 18%,rgba(205,135,78,.34) 0 8%,transparent 27%),radial-gradient(circle at 62% 42%,rgba(108,56,34,.30) 0 13%,transparent 33%),radial-gradient(circle at 80% 10%,rgba(36,18,11,.34) 0 10%,transparent 25%),linear-gradient(140deg,#8f5d39 0%,#7e4b2d 28%,#6d3d25 48%,#4e2b1e 74%,#2c1813 100%);color:#2d2016;font:17px/1.5 Georgia,serif;min-height:100vh;position:relative}.family-page:before{content:'';pointer-events:none;position:fixed;inset:0;opacity:.55;background-image:radial-gradient(circle at 15% 18%,rgba(255,219,172,.13) 0 2px,transparent 3px),radial-gradient(circle at 85% 46%,rgba(255,225,180,.10) 0 1.5px,transparent 3px),radial-gradient(circle at 34% 69%,rgba(255,230,195,.09) 0 2px,transparent 3px),repeating-radial-gradient(circle at 20% 30%,rgba(255,255,255,.06) 0 1px,rgba(0,0,0,0) 1px 4px),repeating-radial-gradient(circle at 75% 55%,rgba(255,255,255,.04) 0 1px,rgba(0,0,0,0) 1px 5px),linear-gradient(115deg,transparent 0 19%,rgba(255,228,184,.09) 26%,transparent 34%),linear-gradient(220deg,transparent 0 28%,rgba(27,11,8,.18) 38%,transparent 46%),linear-gradient(25deg,transparent 0 46%,rgba(255,235,206,.07) 54%,transparent 62%);background-size:370px 280px,440px 300px,410px 330px,190px 160px,230px 190px,100% 100%,100% 100%,100% 100%;mix-blend-mode:soft-light}.family-page:after{content:'';pointer-events:none;position:fixed;inset:0;opacity:.42;background:radial-gradient(ellipse at 35% 22%,rgba(255,218,170,.20),transparent 38%),radial-gradient(ellipse at 67% 58%,rgba(255,210,160,.10),transparent 32%),radial-gradient(ellipse at 83% 18%,rgba(0,0,0,.20),transparent 28%),radial-gradient(ellipse at 18% 82%,rgba(0,0,0,.16),transparent 30%),linear-gradient(180deg,rgba(255,255,255,.06),transparent 22%,transparent 78%,rgba(0,0,0,.14) 100%);mix-blend-mode:multiply}.family-top{display:flex;justify-content:space-between;align-items:center;padding:19px clamp(20px,4vw,60px);gap:10px}.family-top a{font-variant:small-caps;letter-spacing:.14em;color:#f3dbab;border-bottom:1px solid #c7a171}.family-top a:hover{color:white}.family-frame{max-width:1110px;padding:0 22px 60px;margin:0 auto;text-align:center;position:relative}.family-arch{margin:8px auto 24px;padding:14px 14px 8px;max-width:900px;background:none;box-shadow:none;border:0}.family-arch .ornament{color:#d8c39f;font-size:1rem;letter-spacing:.5em;text-shadow:0 1px 6px #1d0d03}.family-arch h1{font:normal clamp(4.1rem,10vw,7.4rem)/1.1 Georgia,serif;letter-spacing:.035em;margin:8px 0 4px;display:block;color:#f4e3c0;background:linear-gradient(180deg,#fff6de 0%,#ebcf99 33%,#b77a3d 58%,#f3d39f 80%,#fff2cf 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:.55px #4a2c18;text-shadow:0 3px 0 #7b4d21,0 5px 1px #4b2a12,0 10px 14px #170b04,0 15px 22px #100802;filter:drop-shadow(0 4px 9px #1b0c03)}.family-arch p{color:#f0ddba;letter-spacing:.26em;text-transform:uppercase;margin:6px 0 0;font-size:.74rem;text-shadow:0 1px 4px #241005}.family-caption{font-size:.98rem;letter-spacing:.07em;color:#f8e9cc;text-shadow:0 1px 5px #251307;margin:10px 0 13px}.album-area{max-width:820px;margin:0 auto;position:relative}.photo-frame{display:block;position:relative;border:0;cursor:pointer;width:100%;aspect-ratio:4/2.65;padding:clamp(11px,2vw,23px);background:linear-gradient(130deg,#704628,#c4a270 15%,#81532e 45%,#d8b681 75%,#684626);box-shadow:0 15px 50px #170a05d0,inset 0 0 0 4px #392113,inset 0 0 0 8px #dec192;outline-offset:5px;overflow:hidden}.photo-viewport{width:100%;height:100%;overflow:hidden;background:#d0bc93;box-shadow:inset 0 0 40px #2a180e;position:relative}.album-photo{width:100%;height:100%;object-fit:contain;display:block;animation:slide-reveal .45s cubic-bezier(.2,.65,.2,1) both;filter:sepia(.07)}.album-photo.back{animation-name:slide-back}.photo-frame .hint{position:absolute;right:13px;bottom:13px;z-index:3;padding:5px 11px;background:#17100bc4;color:#fff0d7;font-size:.83rem;border-radius:4px;opacity:0;transition:opacity .2s}.photo-frame:hover .hint,.photo-frame:focus-visible .hint{opacity:1}@keyframes slide-reveal{from{opacity:.45;transform:translateX(8%) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes slide-back{from{opacity:.45;transform:translateX(-8%) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}.album-controls{display:flex;justify-content:center;align-items:center;gap:15px;margin:22px auto 8px;color:#f0dfbc;flex-wrap:wrap}.album-controls button,.family-button{border:1px solid #ceb17f;background:linear-gradient(180deg,#f1e2c4,#c8a773);padding:9px 19px;color:#382415;box-shadow:0 3px 0 #442910;border-radius:5px;cursor:pointer}.album-controls button:hover,.family-button:hover{filter:brightness(1.07)}.album-controls #slide-count{font-variant:small-caps;letter-spacing:.1em}.family-button{display:inline-block;font-variant:small-caps;font-size:1.45rem;letter-spacing:.08em;padding:13px 37px;margin:23px auto 12px;font-weight:600}.album-note{color:#efdbb5;opacity:.94;font-size:.89rem}.gallery-view{margin:40px auto 0;max-width:1100px;scroll-margin-top:30px}.gallery-view[hidden]{display:none}.gallery-view h2{font:normal 2.8rem var(--display);font-variant:small-caps;color:#f3dbac;letter-spacing:.08em;margin:10px 0 20px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:15px}.gallery-grid button{border:5px solid #d4b78b;box-shadow:0 5px 18px #1d0e09d4;padding:0;background:#382a1d;cursor:pointer;aspect-ratio:1.2}.gallery-grid button:hover{outline:3px solid #f7dfb6}.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block}.gallery-close{color:#fae8cb;border:1px solid #dfc396;background:#4d301f;padding:7px 18px;border-radius:4px;cursor:pointer;margin-top:20px}.family-footer{text-align:center;padding:28px 15px;color:#dbc09a;letter-spacing:.12em;font-variant:small-caps}

/* The Past: believable late-90s GeoCities energy */
.past-page{background:#0c1040;color:#fff5ef;font:16px/1.5 Verdana,Arial,sans-serif;position:relative;min-height:100vh;overflow-x:hidden}.past-page a{text-decoration:underline}.past-stars{position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(circle at 10% 15%,rgba(255,255,255,.85) 0 1px,transparent 1.8px),radial-gradient(circle at 22% 40%,rgba(255,255,255,.7) 0 1px,transparent 2px),radial-gradient(circle at 82% 28%,rgba(255,255,255,.75) 0 1px,transparent 2px),radial-gradient(circle at 68% 62%,rgba(255,255,255,.7) 0 1px,transparent 2px),linear-gradient(180deg,#18286d 0%,#0a1247 58%,#06092a 100%);background-size:280px 220px,330px 280px,390px 310px,360px 270px,100% 100%;z-index:0}.past-header,.past-wrap,.past-footer{position:relative;z-index:1}.past-header{padding:14px 18px 0}.past-nav{max-width:1180px;margin:0 auto 8px;display:flex;justify-content:flex-end;gap:15px;flex-wrap:wrap}.past-nav a{display:inline;color:#bfe1ff;font-weight:700;text-decoration:underline;text-underline-offset:2px;background:none;border:0;box-shadow:none;padding:0}.past-nav a:hover{color:#fff}.past-topline{max-width:1180px;margin:0 auto 10px;border:2px solid #d1c4ff;background:#3a2175;padding:6px 10px;color:#f8e8ff;box-shadow:4px 4px 0 #000;text-align:center}.past-small{font-weight:700;color:#ffd66f}.past-neighborhood{letter-spacing:.05em}.past-neighborhood-link{color:#fff4ad;font-weight:700;text-decoration:underline}.past-neighborhood-link:hover{color:#fff9d8}.past-wrap{max-width:1180px;margin:14px auto 0;padding:0 18px 35px;display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px}.past-sidebar{display:flex;flex-direction:column;gap:14px}.side-box,.content-box{background:#efe8ff;color:#171236;border:3px ridge #d6c4ff;box-shadow:5px 5px 0 rgba(0,0,0,.7);padding:12px}.blink{animation:past-blink 1s steps(1,end) infinite}@keyframes past-blink{50%{opacity:.7}}.counter-title,.guestbook-title{font-weight:700;color:#8c1163;text-transform:uppercase;font-size:.82rem;letter-spacing:.08em;margin-bottom:8px}.visitor-counter{display:flex;gap:3px;justify-content:center}.visitor-counter span{display:grid;place-items:center;width:26px;height:34px;background:#000;color:#61f8f3;border:2px inset #8d8d8d;font:bold 1rem/1 monospace}.badges{gap:8px}.mini-badge{border:2px outset #fff;background:linear-gradient(180deg,#2a5798,#0d2448);color:#ecf7ff;padding:7px 8px;font:bold .78rem/1.2 Arial,sans-serif;text-align:center;margin-top:8px}.music-box{display:flex;align-items:center;gap:12px}.speaker-toggle{width:44px;height:44px;border:2px outset #f0d16b;background:#4e2f83;color:#fff3c7;font:bold 1.4rem/1 Arial;cursor:pointer}.past-main{display:flex;flex-direction:column;gap:16px}.past-hero{background:linear-gradient(180deg,#352e9c,#101650 60%,#0b0e32);border:4px ridge #ddd2ff;padding:18px 20px 20px;color:#fff;text-align:center;box-shadow:6px 6px 0 rgba(0,0,0,.75)}.construction{font:bold .95rem/1.4 Verdana,sans-serif;color:#ffe267;background:#5b1439;display:inline-block;padding:5px 10px;border:2px outset #f7c7da;margin-bottom:10px}.marquee-shell{background:#fff7ba;color:#5f0035;border:2px inset #e4d784;padding:8px;margin-bottom:10px}.past-hero h1{margin:7px 0 10px;font:bold clamp(2rem,5vw,3.5rem)/1.1 'Trebuchet MS',Verdana,sans-serif;color:#c3ff60;text-shadow:2px 2px 0 #132100,4px 4px 0 #000}.past-tagline{margin:0 auto 14px;max-width:58ch;font-size:1rem;color:#f6f2ff}.past-button-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.retro-button{display:inline-block;padding:8px 13px;background:#012542;color:#f4ffff;border:2px outset #86d2ff;box-shadow:3px 3px 0 #000;cursor:pointer;text-decoration:none}.retro-button:hover{background:#083e70}.content-box h2{margin:.1rem 0 .65rem;font:bold 1.45rem/1.2 'Trebuchet MS',Verdana,sans-serif;color:#4b1a91}.two-col{display:grid;grid-template-columns:1.2fr .9fr;gap:18px}.spark-list{padding-left:1.25rem;margin:0}.spark-list li{margin:.35rem 0}.status-card{border:2px groove #c9b2f7;background:#fff;padding:8px 10px;margin-top:10px}.status-head{font:bold .85rem Arial,sans-serif;color:#a30059;text-transform:uppercase;letter-spacing:.08em}.status-body{color:#10223d}.center-note{text-align:center;color:#5a0e54;font-style:italic}.button-wall{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:12px}.web-badge{display:grid;place-items:center;min-height:36px;padding:6px 8px;border:2px outset #fff;background:linear-gradient(180deg,#0d3a7a,#08172f);color:#fff;font:bold .8rem/1 Arial,sans-serif;text-decoration:none;text-align:center}.web-badge:nth-child(2n){background:linear-gradient(180deg,#7a0d64,#2b092c)}.web-badge:nth-child(3n){background:linear-gradient(180deg,#0f6f67,#08352f)}.webring{margin-top:16px;text-align:center;color:#092648;background:#ffeec8;border:2px dashed #ac7d1c;padding:10px}.update-table{width:100%;border-collapse:collapse;background:#fff}.update-table th,.update-table td{border:2px solid #c8b1f2;padding:8px 10px;text-align:left;color:#171236}.update-table th{background:#ddd0ff}.past-footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;align-items:center;padding:16px 18px 24px;color:#ebdeff;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.past-footer span:nth-child(2){text-align:center}.past-footer span:last-child{text-align:right}.past-footer a{color:#bfe1ff}.past-footer a:hover{color:#fff}.music-box #music-state{color:#8e0a66;font-weight:700}.past-page marquee{font-weight:700}@media(max-width:900px){.past-wrap{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}.past-footer{grid-template-columns:1fr;text-align:center}.past-footer span,.past-footer span:last-child{ text-align:center }}
@media(max-width:980px){.site-header{align-items:flex-start;flex-wrap:wrap;gap:13px}.top-nav{gap:15px}.home-hero{min-height:580px}.home-cards{grid-template-columns:repeat(2,minmax(0,1fr));width:min(850px,95%)}.feature-card{min-height:360px}.hero-content{padding-top:125px}}@media(max-width:640px){.site-header{padding:16px 14px;justify-content:center}.secret-link{padding:7px 10px;font-size:.82rem;margin:0 auto}.secret-avatar{width:25px;height:26px;font-size:14px}.top-nav{justify-content:center;gap:12px}.top-nav a{font-size:.71rem;letter-spacing:.06em}.home-hero{height:590px;min-height:590px;background-position:48% 50%}.hero-content{padding-top:132px}.hero-kicker{letter-spacing:.45em;margin-bottom:0;font-size:.88rem}.hero-title{font-size:clamp(3.1rem,15.7vw,6.2rem);letter-spacing:.025em;margin:.3rem 0}.hero-tag{font-size:.85rem;letter-spacing:.18em;margin:.15rem auto 2rem;max-width:25ch}.portal-row{gap:10px}.portal-button{padding:10px 23px;font-size:.9rem;letter-spacing:.16em;width:255px;height:54px}.home-cards{margin-top:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.feature-card{min-height:275px}.feature-card img{height:125px}.feature-copy{padding:0 6px 12px;margin-top:-8px}.feature-card h2{font-size:.96rem;letter-spacing:.06em}.feature-card p{font-size:.78rem;line-height:1.3}.feature-card .explore{min-width:unset;font-size:.75rem;padding:6px 13px}.site-footer{font-size:.65rem;padding:23px 15px}.inner-page .site-header{padding:16px 10px}.section-hero{min-height:270px;padding:45px 15px}.glass-panel{padding:20px}.family-top{padding:15px 12px}.family-arch{padding:12px 8px 10px;margin-bottom:16px}.family-arch h1{font-size:clamp(3.2rem,14vw,5.5rem)}.family-arch p{font-size:.68rem;letter-spacing:.18em}.family-frame{padding:0 12px 40px}.photo-frame{aspect-ratio:4/3.2}.album-controls{gap:10px}.album-controls button{padding:7px 12px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* v1.2: dark, realistic portrait without a cartoon-style round frame */
.realistic-silhouette{width:min(225px,52vw);height:auto;aspect-ratio:272/320;border-radius:8px;background:#071321;box-shadow:0 12px 46px #0009,0 0 0 1px #37617d;margin:0 auto 26px}.realistic-silhouette img{height:100%;object-fit:cover;object-position:center}

/* v1.9 Past navigation / actual web badge links */
.past-page .past-nav{justify-content:flex-end;margin-bottom:12px}
.past-page .past-nav a{display:inline;min-height:0;padding:0;background:none;border:0;box-shadow:none;color:#c9e9ff;text-decoration:underline;text-underline-offset:3px;font-weight:600}
.past-page .past-nav a:hover{color:#fff}
.past-page .mini-badge{display:block;text-decoration:none}
.past-page a.mini-badge:hover{filter:brightness(1.25);text-decoration:underline}
.past-page a.mini-badge:focus-visible{outline:3px solid #fdc565;outline-offset:3px}
/* The guestbook page matches the old hand-built website */
.guestbook-container{max-width:730px;margin:0 auto}.guestbook-head{text-align:center;margin:4px auto 18px;font:700 2.2rem/1.2 'Trebuchet MS',Verdana,sans-serif;color:#c6ff6a;text-shadow:2px 2px #000}.guestbook-intro{margin:0 auto 15px;text-align:center;color:#e9f0ff}.guestbook-form{display:grid;gap:10px}.guestbook-form label{display:grid;gap:5px;font-weight:bold;color:#3e1565}.guestbook-form input,.guestbook-form textarea{display:block;max-width:100%;width:100%;padding:9px;border:2px inset #a69abc;background:#fff;color:#13122e;font:16px/1.4 Verdana,Arial,sans-serif}.guestbook-form textarea{min-height:92px;resize:vertical}.guestbook-notice{background:#fff5cc;border:2px solid #b08b3a;color:#422716;padding:12px;margin-bottom:18px}.guestbook-entries{display:grid;gap:10px}.guestbook-entry{background:#fff;border-left:4px solid #7746b0;padding:11px;color:#15132d}.guestbook-entry strong{color:#54218c}.guestbook-entry p{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}.guestbook-entry small{color:#655a70}.guestbook-message{min-height:1.4em;font-weight:600;color:#276124}

/* v2.1: paired time-travel buttons — equal, restrained, ALWAYS on one line. */
.portal-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:620px;width:calc(100% - 26px);margin:0 auto;align-items:center}
.portal-row .portal-button{width:100%;min-width:0;height:57px;min-height:57px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex-wrap:nowrap;padding:8px 13px;gap:.6rem;line-height:1.15;font-size:clamp(.88rem,1.35vw,1.20rem);letter-spacing:.16em}
.portal-row .portal-past{border-color:#c98a34;color:#fbe1b4;background:linear-gradient(170deg,rgba(54,30,7,.78),rgba(17,12,9,.78) 60%,rgba(82,47,12,.60));box-shadow:0 0 4px #e9b86e,0 0 12px #a86615,inset 0 0 11px #b6732299,0 0 23px #b6721744}
.portal-row .portal-past:hover{box-shadow:0 0 5px #f8d095,0 0 16px #c4832e,inset 0 0 12px #cb8530,0 0 28px #b6721766}
@media(max-width:480px){.portal-row{width:calc(100% - 10px);gap:8px}.portal-row .portal-button{height:47px;min-height:47px;padding:7px 5px;gap:.32rem;font-size:clamp(.64rem,2.5vw,.83rem);letter-spacing:.07em}.portal-row .portal-button span{font-size:1.25em}}


/* v3.8 — The Family / aged parchment background */
.family-page{
  background-color:#6b4d32;
  background-image:
    linear-gradient(180deg,rgba(54,27,9,.08),rgba(49,25,10,.03) 32%,rgba(24,10,4,.14) 100%),
    url('/assets/img/family-parchment-v38.webp');
  background-position:center center, center center;
  background-size:cover,cover;
  background-attachment:fixed,fixed;
  background-repeat:no-repeat,no-repeat;
}
.family-page:before{
  background:none;
  opacity:0;
}
.family-page:after{
  background:
    radial-gradient(ellipse 86% 74% at 50% 49%,transparent 52%,rgba(44,18,6,.18) 100%),
    linear-gradient(180deg,rgba(255,246,220,.06),transparent 18%,transparent 80%,rgba(64,28,9,.08) 100%);
  opacity:1;
  mix-blend-mode:multiply;
  z-index:0;
}
.family-top,.family-frame,.family-footer{position:relative;z-index:1}
@media (max-width:700px){
  .family-page{background-attachment:scroll,scroll;background-position:center top, center top;}
}



/* v3.10 — The Family: readable ink against light parchment.
   Keep the approved metallic-gold title and the parchment image untouched. */
.family-page{
  color:#24160e;
}
.family-top a{
  display:inline-block;
  color:#211309;
  background:rgba(255,242,208,.83);
  border:1px solid rgba(86,48,20,.52);
  border-radius:3px;
  padding:5px 12px;
  text-shadow:none;
  box-shadow:0 2px 8px rgba(47,22,8,.12);
}
.family-top a:hover{color:#050302;background:#fff0d0;}
.family-arch{
  background:radial-gradient(ellipse at 50% 48%,rgba(53,24,9,.57) 0%,rgba(53,24,9,.41) 42%,rgba(53,24,9,0) 75%);
}
/* Do not change .family-arch h1: preserve the approved gold finish. */
.family-arch .ornament{
  display:table;
  margin:0 auto;
  color:#fff1d2;
  background:rgba(58,30,14,.62);
  padding:0 12px;
  border-radius:25px;
  text-shadow:0 1px 3px #211007;
}
.family-arch p{
  display:table;
  margin:10px auto 0;
  padding:5px 14px;
  color:#231408;
  background:rgba(255,241,207,.92);
  border-radius:4px;
  text-shadow:none;
  font-weight:700;
  letter-spacing:.20em;
}
.family-caption{
  display:table;
  margin:10px auto 14px;
  padding:5px 14px;
  color:#241408;
  background:rgba(255,244,221,.87);
  border-radius:4px;
  font-weight:700;
  text-shadow:none;
}
.album-controls{color:#22150e;}
.album-controls #slide-count{
  padding:5px 10px;
  background:rgba(255,243,213,.88);
  color:#21140b;
  border-radius:4px;
  font-weight:700;
  text-shadow:none;
}
.album-note{
  color:#201209;
  opacity:1;
  background:rgba(255,242,214,.88);
  border-radius:4px;
  padding:7px 12px;
  max-width:820px;
  margin:8px auto;
  text-shadow:none;
}
.gallery-view h2{
  display:table;
  margin:10px auto 20px;
  padding:5px 18px;
  background:rgba(255,241,213,.92);
  color:#23140a;
  border-radius:4px;
  text-shadow:none;
}
.family-footer{
  color:#24170e;
  text-shadow:none;
}
.family-footer a,
.family-footer{
  font-weight:600;
}
.family-footer a{text-decoration:underline;text-underline-offset:3px;}
.family-footer a:hover{color:#664020;}
.family-footer{
  background:linear-gradient(90deg,transparent,rgba(255,243,214,.82) 14% 86%,transparent);
  margin:0 auto;
}
.family-page :focus-visible{outline-color:#512c14;}

/* v3.11 — The Family cleanup pass
   Remove dark halo/shadows behind the title and remove cream text boxes.
   Keep the parchment background and simplify to dark ink on paper. */
.family-top a{
  background:none;
  border:0;
  border-bottom:1px solid rgba(79,47,24,.55);
  border-radius:0;
  padding:0;
  box-shadow:none;
  color:#3a2416;
}
.family-top a:hover{background:none;color:#1b0f09;border-bottom-color:#1b0f09;}
.family-arch{
  background:none;
}
.family-arch h1{
  text-shadow:none !important;
  filter:none !important;
}
.family-arch p{
  display:block;
  margin:8px 0 0;
  padding:0;
  color:#4a2c18;
  background:none;
  border-radius:0;
  text-shadow:none;
  font-weight:700;
  letter-spacing:.22em;
  font-size:.78rem;
}
.family-caption{
  display:block;
  margin:10px 0 13px;
  padding:0;
  color:#49311e;
  background:none;
  border-radius:0;
  font-weight:700;
  text-shadow:none;
  font-size:1.03rem;
}
.album-controls{
  color:#3f2a1b;
}
.album-controls #slide-count{
  padding:0;
  background:none;
  color:#3f2a1b;
  border-radius:0;
  font-weight:700;
  text-shadow:none;
}
.album-note{
  color:#3b2618;
  background:none;
  border-radius:0;
  padding:0;
  max-width:820px;
  margin:8px auto;
  text-shadow:none;
  font-size:.93rem;
}
.gallery-view h2{
  display:block;
  margin:10px 0 20px;
  padding:0;
  background:none;
  color:#4a2c18;
  border-radius:0;
  text-shadow:none;
}
.family-footer{
  color:#3b2618;
  text-shadow:none;
  background:none;
}
.family-footer a{color:#4f301a;}
.family-footer a:hover{color:#2c170d;}


/* v3.12 — Family title / nav refinement
   Darker brown title gradient, no halo, move Enigma link to the right. */
.family-top{
  justify-content:flex-end;
}
.family-top a{
  font-size:1.03rem;
  letter-spacing:.16em;
  font-weight:700;
}
.family-arch h1{
  color:#6d4323;
  background:linear-gradient(180deg,#3a2114 0%, #5b3620 38%, #7a4b2a 68%, #9a6638 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  -webkit-text-stroke:0;
  text-shadow:none !important;
  filter:none !important;
}
.family-arch .ornament{
  color:#8d6841;
  text-shadow:none;
}
@media(max-width:640px){
  .family-top{justify-content:flex-end;}
  .family-top a{font-size:.92rem;}
}

/* v3.13 — Family leather pass
   Swap parchment for distressed brown leather and flatten the typography.
   Use cleaner text styling and simpler overlays for better harmony. */
.family-page{
  color:#efd6b0;
  background-color:#4a2613;
  background-image:
    linear-gradient(180deg,rgba(16,8,4,.18) 0%,rgba(16,8,4,.08) 28%,rgba(8,4,2,.24) 100%),
    url('/assets/img/family-leather-v313.webp');
  background-position:center center, center center;
  background-size:cover, cover;
  background-attachment:fixed, fixed;
  background-repeat:no-repeat, no-repeat;
}
.family-page:before{background:none;opacity:0}
.family-page:after{
  background:
    radial-gradient(ellipse 92% 78% at 50% 46%, rgba(0,0,0,0) 52%, rgba(20,8,3,.23) 100%),
    linear-gradient(180deg, rgba(255,222,185,.05) 0%, rgba(255,222,185,0) 18%, rgba(0,0,0,0) 78%, rgba(0,0,0,.12) 100%);
  opacity:1;
  mix-blend-mode:multiply;
}
.family-top,.family-frame,.family-footer{position:relative;z-index:1}
.family-top{justify-content:flex-end}
.family-top a{
  display:inline-block;
  color:#f1d0a2;
  background:none;
  border:0;
  border-bottom:1px solid rgba(241,208,162,.55);
  border-radius:0;
  padding:0 0 2px;
  box-shadow:none;
  text-shadow:none;
  font-size:1.08rem;
  letter-spacing:.15em;
}
.family-top a:hover{color:#fff0d2;background:none;border-bottom-color:#fff0d2}
.family-arch{
  background:none;
  box-shadow:none;
  border:0;
}
.family-arch .ornament{
  color:#d7b182;
  background:none;
  text-shadow:none;
}
.family-arch h1{
  background:linear-gradient(180deg,#6d3c1f 0%, #92582d 34%, #b87843 68%, #d4a16e 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  -webkit-text-stroke:0;
  text-shadow:none !important;
  filter:none !important;
}
.family-arch p{
  color:#f0d8b8;
  background:none;
  text-shadow:none;
  letter-spacing:.22em;
}
.family-caption{
  color:#f1dcc0;
  background:none;
  text-shadow:none;
}
.album-controls{color:#f2dec1}
.album-controls #slide-count{
  color:#f2dec1;
  background:none;
}
.album-controls button,.family-button{
  border:1px solid #b5824b;
  background:linear-gradient(180deg,#ebcb9c 0%,#cb945b 55%,#a56837 100%);
  color:#2e180a;
  box-shadow:0 3px 0 #5c3214, 0 10px 24px rgba(18,8,3,.22);
}
.album-controls button:hover,.family-button:hover{filter:brightness(1.08)}
.album-note{color:#ead4b5;background:none;text-shadow:none}
.gallery-view h2{color:#f1d4ac;background:none;text-shadow:none}
.family-footer{color:#e0c19a;background:none;text-shadow:none}
.family-footer a{color:#f0d2a8}
.family-footer a:hover{color:#fff0d2}
@media (max-width:700px){
  .family-page{background-attachment:scroll,scroll;background-position:center top, center top;}
}


/* v3.14 — Family header re-balance
   Fix top-right Enigma link, remove the ornament, move rotating copy to the top,
   and give “The Family” a darker brown gradient that harmonizes with the leather. */
.family-top a{
  font-size:1.16rem;
  letter-spacing:.18em;
}
.family-arch{
  max-width:960px;
  margin:8px auto 18px;
  padding:6px 14px 4px;
}
.family-arch .ornament{display:none !important;}
.family-caption{
  margin:2px 0 12px;
  font-size:.92rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:#f3d8b0;
  font-weight:700;
}
.family-arch h1{
  color:#6d4323;
  background:linear-gradient(180deg,#2b150b 0%, #4a2a17 46%, #6d4323 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:none !important;
  filter:none !important;
}
.family-arch p{
  margin:8px 0 0;
  color:#efd4ad;
  letter-spacing:.22em;
}
@media(max-width:640px){
  .family-top a{font-size:1.01rem;}
  .family-caption{font-size:.78rem;letter-spacing:.18em;}
}


/* v3.17 — Bare family album canvas, ready for real photos.
   The temporary phrase ticker, heading, and demo-cover animation are removed.
   Keep the photo viewer, slideshow and comments fully functional for real photos. */
.family-page.family-placeholder-mode .photo-frame .hint {display:none;}
.family-page.family-placeholder-mode .photo-frame,
.family-page.family-placeholder-mode .photo-frame:disabled{
  opacity:1;
  cursor:default;
}
.family-page.family-placeholder-mode .album-photo{
  animation:none;
  filter:none;
}


/* v3.17 — The Family title takes the old large-heading position.
   The collection label and subtitle remain stationary; the title glides
   through three large phrases in a seamless, uninterrupted right-to-left loop. */
.family-arch{
  max-width:1020px;
  margin:8px auto 19px;
  padding:6px 8px 4px;
  background:none;
  box-shadow:none;
}
.family-arch p.family-collection-label{
  display:block;
  margin:4px 0 9px;
  padding:0;
  color:#f4dcb5;
  background:none;
  font:700 .93rem/1.4 Georgia,serif;
  text-transform:uppercase;
  letter-spacing:.25em;
  text-shadow:none;
}
.family-arch h1.family-title-carousel{
  box-sizing:border-box;
  display:block;
  position:relative;
  width:100%;
  height:clamp(77px,11.5vw,138px);
  margin:0;
  padding:0;
  overflow:hidden;
  background:none;
  color:inherit;
  -webkit-text-fill-color:initial;
  -webkit-text-stroke:0;
  text-shadow:none !important;
  filter:none !important;
  -webkit-mask-image:linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
  mask-image:linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
}
.family-title-track{
  display:flex;
  align-items:center;
  width:600%;
  height:100%;
  animation:family-title-glide 28s linear infinite;
  will-change:transform;
}
.family-title-set{
  display:flex;
  flex:0 0 50%;
  width:50%;
  height:100%;
  align-items:center;
}
.family-title-phrase{
  box-sizing:border-box;
  display:flex;
  flex:0 0 33.333333%;
  width:33.333333%;
  height:100%;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  font:normal clamp(2.8rem,8.3vw,7.15rem)/1.1 Georgia,serif;
  letter-spacing:.018em;
  color:#a4734a;
  background:linear-gradient(180deg,#c99a6c 0%,#ad7a4e 50%,#875432 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  -webkit-text-stroke:0;
  text-shadow:none;
}
@keyframes family-title-glide{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(-50%,0,0);}
}
.family-arch p.family-subtitle{
  display:block;
  margin:4px 0 0;
  padding:0;
  color:#efd5b0;
  background:none;
  text-transform:uppercase;
  font:700 .82rem/1.5 Georgia,serif;
  letter-spacing:.22em;
  text-shadow:none;
}
@media(max-width:640px){
  .family-arch p.family-collection-label{font-size:.78rem;letter-spacing:.17em;}
  .family-arch p.family-subtitle{font-size:.73rem;letter-spacing:.14em;}
  .family-title-phrase{font-size:clamp(2.35rem,9.3vw,4.1rem);}
  .family-arch h1.family-title-carousel{height:clamp(62px,16vw,96px);}
}
@media(prefers-reduced-motion:reduce){
  .family-title-track{animation:none;}
}

/* v3.18 — Restore the controls and the two album notes even while the placeholder photograph is displayed. */


/* v3.19 — understated equal-sign ornaments around the collection label. */
.family-arch p.family-collection-label{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:clamp(.5rem,1.8vw,1.05rem);
  white-space:nowrap;
}
.family-collection-decoration{
  color:#e6bf90;
  font-size:1.08em;
  letter-spacing:.01em;
  font-weight:700;
}
.album-area > .album-note{
  margin:15px auto 0;
  font-size:1rem;
}
@media(max-width:640px){
  .family-arch p.family-collection-label{font-size:.74rem;letter-spacing:.12em;gap:.45rem;}
  .family-collection-decoration{font-size:1em;}
}


/* v3.20: gallery pagination for large real-photo collections. */
.family-load-more{display:block;margin:25px auto 12px;padding:12px 25px;cursor:pointer;border:1px solid #c69c6a;background:linear-gradient(180deg,#f3d6ab,#c89963);border-radius:5px;color:#3b2618;font:700 1rem Georgia,serif;}
.family-load-more[hidden]{display:none;}
.gallery-grid button{overflow:hidden;}
.gallery-grid img{aspect-ratio:1.2;object-fit:cover;}
