/* The Enigma · three private photo collections · v3.25 */
:root{color-scheme:dark;}
.collections-entrance,.personal-album{margin:0;min-height:100vh;box-sizing:border-box}
.collections-entrance *,.personal-album *{box-sizing:border-box}
.collections-entrance a,.personal-album a{text-decoration:none;color:inherit}
.collections-entrance button,.personal-album button,.personal-album select{font:inherit}
.collections-entrance button,.personal-album button{cursor:pointer}
.collections-entrance :focus-visible,.personal-album :focus-visible{outline:3px solid #8ad5ff;outline-offset:4px}
.collections-entrance{background:#050d18;color:#edf3f8;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background-image:radial-gradient(ellipse at 48% -20%,rgba(23,97,143,.28),transparent 54%),radial-gradient(ellipse at 95% 90%,rgba(118,72,42,.14),transparent 50%),linear-gradient(125deg,#06111c,#080d16 60%,#111420)}
.collection-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px clamp(20px,4vw,64px);border-bottom:1px solid #7faacf2b;letter-spacing:.19em;font-size:.78rem;color:#a8bdca}
.back-home{font-weight:650;color:#d4e8f8!important}
.back-home:hover{color:#fff!important}
.collection-landing{max-width:1340px;margin:0 auto;text-align:center;padding:clamp(44px,6vw,78px) 22px 94px}
.entrance-eyebrow{color:#d1b88e;letter-spacing:.38em;font-size:.77rem;margin:0 0 13px}
.collection-landing h1{font:400 clamp(3rem,7vw,6.1rem)/1.1 Georgia,'Times New Roman',serif;letter-spacing:.07em;margin:0;color:#f3efe6}
.entrance-intro{font:1.07rem/1.7 Georgia,serif;color:#b4bdc3;margin:18px auto 45px}
.three-collections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2.3vw,28px);align-items:stretch}
.collection-tile{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;min-height:440px;border-radius:12px;border:1px solid rgba(217,224,227,.28);isolation:isolate;box-shadow:0 19px 42px #0009;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.collection-tile:hover{transform:translateY(-6px);border-color:#ecd9b8;box-shadow:0 25px 50px #000b}
.collection-tile::before{content:"";position:absolute;inset:0;z-index:-2}
.collection-tile::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,transparent 36%,rgba(0,0,0,.14) 50%,rgba(0,0,0,.73) 100%)}
.collection-tile .tile-illustration{display:block;position:relative;width:100%;height:250px;flex:0 0 250px;overflow:hidden}
.collection-tile .tile-meta{margin:auto 20px 7px;color:#e5cfb2;font-size:.73rem;letter-spacing:.27em;text-transform:uppercase}
.collection-tile strong{font:400 clamp(1.42rem,2.4vw,2.25rem)/1.15 Georgia,serif;letter-spacing:.01em;margin:0 10px;min-height:2.3em;display:grid;place-items:center;text-wrap:balance}
.collection-tile .tile-action{margin:14px 0 26px;font-size:.78rem;letter-spacing:.25em;color:#d0eaff}
.collection-tile .tile-action b{font-size:1.1rem;font-weight:400}
.tile-jeff::before{background:linear-gradient(150deg,#0b2033,#103d52 52%,#081625)}
.tile-jeff .tile-illustration{background:radial-gradient(ellipse at 34% 29%,#22517a99,transparent 58%),repeating-linear-gradient(90deg,transparent 0 33px,#80c7ec14 34px 35px),repeating-linear-gradient(0deg,transparent 0 33px,#80c7ec14 34px 35px),#06182a}
.tile-jeff .tile-illustration i{position:absolute;display:block;border:1px solid #7edbfa99;border-radius:8px;background:linear-gradient(145deg,#1c4660,#061526);box-shadow:0 12px 24px #0008,inset 0 0 35px #2a91cc33;transform:rotate(-9deg)}
.tile-jeff .tile-illustration i:nth-child(1){width:43%;height:63%;top:16%;left:14%}
.tile-jeff .tile-illustration i:nth-child(2){width:42%;height:60%;top:25%;left:44%;transform:rotate(9deg)}
.tile-jeff .tile-illustration i:nth-child(3){width:42%;height:53%;top:40%;left:28%;transform:rotate(-2deg)}
.tile-grandparents{border-color:#be9467a3;transform:translateY(-9px)}
.tile-grandparents:hover{transform:translateY(-15px)}
.tile-grandparents::before{background:linear-gradient(180deg,#52352065,#211008d9),url('/assets/img/family-leather-v313.webp') center/cover}
.tile-grandparents .tile-illustration{background:radial-gradient(ellipse at 50% 40%,#cca16a52,transparent 77%)}
.tile-grandparents .tile-illustration i{position:absolute;display:block;width:46%;height:62%;border:7px ridge #ceab75;box-shadow:0 8px 20px #120804ab,inset 0 0 30px #5843293d;background:linear-gradient(145deg,#e5cfaa 0%,#ae8f69 53%,#705139 100%)}
.tile-grandparents .tile-illustration i:nth-child(1){top:13%;left:17%;transform:rotate(-12deg)}
.tile-grandparents .tile-illustration i:nth-child(2){top:17%;left:46%;transform:rotate(11deg)}
.tile-grandparents .tile-illustration i:nth-child(3){top:37%;left:29%;transform:rotate(1deg)}
.tile-grandparents .tile-meta{color:#f5dcb7}
.tile-paula::before{background:linear-gradient(150deg,#807588,#cfaab5 52%,#5f4d67)}
.tile-paula .tile-illustration{background:radial-gradient(ellipse at 65% 25%,#fff3ecc4,transparent 62%),radial-gradient(ellipse at 15% 80%,#dcc4d6ab,transparent 49%),linear-gradient(135deg,#856e87,#d5b0ba)}
.tile-paula .tile-illustration i{position:absolute;display:block;width:42%;height:62%;border:7px solid #f7e7db;border-bottom-width:18px;box-shadow:0 8px 22px #3420336e;background:linear-gradient(135deg,#a7b4a4,#f4e8db 60%,#c08d96)}
.tile-paula .tile-illustration i:nth-child(1){top:17%;left:14%;transform:rotate(-13deg)}
.tile-paula .tile-illustration i:nth-child(2){top:20%;left:46%;transform:rotate(11deg)}
.tile-paula .tile-illustration i:nth-child(3){top:40%;left:29%;transform:rotate(-3deg)}
.collection-footer{text-align:center;padding:24px 12px;color:#74879b;border-top:1px solid #ffffff17;font-size:.75rem;letter-spacing:.21em}
.collection-footer span{margin:0 5px}

/* Shared behaviour, independently styled by theme. */
.personal-album{--accent:#9cd6fa;--ink:#e7eff8;--muted:#c2d0dd;--card:#122438;--button:#112a43;--button-ink:#e9f6ff;--line:#5f93b188;--frame-outer:#3f6880;--frame-inner:#0d1828;--photo-bg:#0d1d2f;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:#071321;position:relative;isolation:isolate}
.personal-album.theme-night{background:radial-gradient(ellipse at 50% -20%,#134d6d79,transparent 70%),radial-gradient(ellipse at 4% 86%,#192a5455,transparent 55%),#060f1a}
.personal-album.theme-daylight{--accent:#6e4b63;--ink:#4d3441;--muted:#78606d;--card:#fcf5f2;--button:#e9d9e1;--button-ink:#553548;--line:#bb97a37a;--frame-outer:#c4a2b2;--frame-inner:#f7ede5;--photo-bg:#eee3dc;background:radial-gradient(ellipse at 85% -10%,#fffaf7 0%,transparent 55%),radial-gradient(ellipse at 12% 68%,#e1d7c3,transparent 50%),linear-gradient(145deg,#f8eee9,#e4d8d9 65%,#eee5d8);font-family:Georgia,serif}
.personal-album[hidden],.personal-album [hidden]{display:none!important}
.personal-top{display:flex;align-items:center;justify-content:space-between;padding:22px clamp(16px,4vw,65px);gap:18px;font-size:.87rem;letter-spacing:.19em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.personal-top a,.personal-footer a{color:var(--ink);font-weight:600}
.personal-top a:hover,.personal-footer a:hover{color:var(--accent)}
.personal-main{max-width:1140px;margin:auto;padding:35px 18px 80px;text-align:center}
.personal-title-area{padding:17px 4px 23px}
.personal-kicker{margin:0 0 8px;font-size:.77rem;letter-spacing:.35em;color:var(--accent);font-weight:700}
.personal-title-area h1{font-size:clamp(3.2rem,7vw,6.4rem);font-weight:400;line-height:1.15;letter-spacing:.025em;margin:0;text-wrap:balance}
.theme-night .personal-title-area h1{font-family:Georgia,serif;color:#c8eaff;text-shadow:0 0 35px #5dbdfe40}
.theme-daylight .personal-title-area h1{font-family:Georgia,serif;color:#74505f;font-style:italic}
.personal-subtitle{font:1.03rem/1.7 Georgia,serif;color:var(--muted);margin:10px 0 0}
.personal-stage{max-width:850px;margin:auto}
.personal-frame{position:relative;width:100%;display:block;border:0;border-radius:3px;padding:clamp(10px,2vw,20px);background:linear-gradient(135deg,var(--frame-outer),var(--frame-inner) 52%,var(--frame-outer));box-shadow:0 18px 42px #0006,inset 0 0 0 1px #ffffff63;aspect-ratio:4/2.65;overflow:hidden;cursor:zoom-in}
.theme-daylight .personal-frame{box-shadow:0 16px 40px #6c526e44,inset 0 0 0 2px #fff9}
.personal-picture{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--photo-bg);position:relative}
.personal-picture img{height:100%;width:100%;object-fit:contain;display:block}
.personal-frame .personal-open-hint{position:absolute;bottom:12px;right:13px;padding:7px 10px;border-radius:4px;background:#081523c9;color:#fff;font:.74rem system-ui;letter-spacing:.09em;opacity:0;transition:opacity .2s}
.personal-frame:hover .personal-open-hint,.personal-frame:focus-visible .personal-open-hint{opacity:1}
.personal-frame.is-empty{cursor:default}
.personal-frame.is-empty .personal-picture::before{content:'PHOTOGRAPHS ARE BEING PREPARED';letter-spacing:.13em;font-size:.9rem;color:var(--muted)}
.personal-frame.is-empty img{display:none}
.personal-controls{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin:22px auto 0}
.personal-controls button,.full-album-button,.load-more,.back-to-slideshow,.dialog-buttons button,.dialog-top button{border:1px solid var(--line);border-radius:5px;color:var(--button-ink);background:var(--button);padding:10px 17px;transition:filter .2s,transform .2s}
.personal-controls button:hover,.full-album-button:hover,.load-more:hover,.back-to-slideshow:hover{filter:brightness(1.2);transform:translateY(-1px)}
.personal-controls button:disabled,.full-album-button:disabled{opacity:.45;cursor:not-allowed}
#slide-count{color:var(--muted);min-width:110px;font-variant-numeric:tabular-nums;font-size:.86rem}
.personal-note{color:var(--muted);font-size:.91rem;letter-spacing:.07em;margin:19px 0 12px}
.full-album-button{padding:13px 30px;margin:12px auto 20px;letter-spacing:.14em;font-weight:600}
.personal-gallery{max-width:1050px;margin:45px auto 0;scroll-margin-top:25px}
.personal-gallery h2{font:400 clamp(2rem,4vw,3rem) Georgia,serif;letter-spacing:.04em;margin:0 0 13px}
.personal-sort{display:flex;align-items:center;justify-content:end;gap:11px;color:var(--muted);font-size:.88rem;margin:0 0 15px}
.personal-sort select{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:7px 11px;border-radius:5px}
.personal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:13px}
.personal-grid button{background:var(--card);border:2px solid var(--line);border-radius:5px;padding:0;aspect-ratio:1.2;overflow:hidden;cursor:zoom-in}
.personal-grid button:hover{border-color:var(--accent)}
.personal-grid img{width:100%;height:100%;object-fit:cover;display:block}
.load-more,.back-to-slideshow{margin:22px 8px 0}
.personal-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:25px clamp(16px,4vw,65px);border-top:1px solid var(--line);color:var(--muted);font-size:.8rem;letter-spacing:.14em}
.personal-overlay{position:fixed;inset:0;z-index:90;background:#02050beb;display:flex;align-items:center;justify-content:center;padding:clamp(8px,2vw,28px);color:#e9e9f1;font-family:system-ui,-apple-system,'Segoe UI',sans-serif}
.personal-dialog{width:min(1200px,100%);height:min(92vh,980px);display:flex;flex-direction:column;align-items:stretch;background:#0c1422;border:1px solid #6992b47c;box-shadow:0 20px 80px #000c;border-radius:8px;overflow:hidden;outline:none}
.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:9px 19px;border-bottom:1px solid #ffffff24;color:#d2dce5;min-height:55px}
.dialog-top button{font-size:1.5rem;line-height:1;background:#16283d;color:#fff;padding:4px 13px}
.dialog-image{min-height:0;flex:1;display:flex;justify-content:center;align-items:center;padding:12px;background:#07101c}
.dialog-image img{object-fit:contain;max-width:100%;max-height:100%;width:auto;height:auto}
.dialog-buttons{display:flex;gap:16px;justify-content:center;padding:12px;border-top:1px solid #ffffff24}
.dialog-buttons button{background:#172b42;color:#fff}
body.album-viewer-open{overflow:hidden}
@media(max-width:850px){.three-collections{gap:12px}.collection-tile{min-height:370px}.collection-tile .tile-illustration{height:210px;flex-basis:210px}.collection-tile strong{font-size:clamp(1.2rem,2.6vw,1.55rem)}}
@media(max-width:620px){.collection-nav{padding:17px}.collection-nav>span{font-size:.65rem;letter-spacing:.08em}.collection-landing{padding:42px 14px 65px}.entrance-intro{margin:15px auto 28px}.three-collections{grid-template-columns:1fr;max-width:410px;margin:auto;gap:20px}.collection-tile{min-height:325px}.tile-grandparents{transform:none}.tile-grandparents:hover{transform:translateY(-5px)}.collection-tile .tile-illustration{height:165px;flex-basis:165px}.collection-tile strong{font-size:1.85rem;min-height:auto}.collection-tile .tile-meta{margin-top:12px}.collection-tile .tile-action{margin:9px auto 20px}.personal-top{padding:15px}.personal-main{padding:23px 12px 65px}.personal-title-area{padding:12px 4px 17px}.personal-frame{aspect-ratio:4/3.1}.personal-controls{gap:8px}.personal-controls button{padding:8px 11px;font-size:.85rem}#slide-count{min-width:75px}.personal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.personal-footer{font-size:.7rem}.personal-dialog{height:min(95vh,900px)}}
@media(prefers-reduced-motion:reduce){.collection-tile,.personal-controls button,.full-album-button,.load-more,.back-to-slideshow{transition:none}}
