:root{--bg:#0a0a0a;--surface:#151515;--line:#2b2b2b;--text:#f2f2f2;--muted:#9a9a9a;--accent:#fff;--pad:clamp(24px,5vw,72px);--serif:"Cormorant Garamond",Georgia,serif;--sans:"Inter",system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--sans);margin:0}a{color:var(--text);text-decoration:none}a:hover{color:var(--accent)}button{color:inherit;cursor:pointer;font-family:inherit}.nav{padding:24px var(--pad);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 40px;display:flex}.nav-home{z-index:3;border-bottom:0;padding-top:32px;position:absolute;top:0;left:0;right:0}.brand{font-family:var(--serif);letter-spacing:.04em;font-size:28px}.links{letter-spacing:.18em;text-transform:uppercase;flex-wrap:wrap;gap:8px 36px;font-size:13px;display:flex}.links a.on{color:var(--accent)}.eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--accent);font-size:12px}.muted{color:var(--muted)}h1,h2{font-family:var(--serif);margin:0;font-weight:400}.btn{border:1px solid var(--accent);letter-spacing:.2em;text-transform:uppercase;background:0 0;align-items:center;min-height:48px;padding:0 32px;font-size:13px;display:inline-flex}.btn.solid{background:var(--accent);color:var(--bg);border:0;font-weight:500}.chip{min-height:44px;color:var(--text);border:1px solid var(--line);letter-spacing:.16em;text-transform:uppercase;background:0 0;padding:0 20px;font-size:12px}.chip.on{background:var(--text);color:var(--bg);border-color:var(--text)}.gate{background:radial-gradient(90% 80% at 50% 40%,#242424 0%,#0a0a0a 70%);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.gate form{text-align:center;flex-direction:column;align-items:center;gap:20px;width:min(420px,100%);display:flex}.gate .names{font-family:var(--serif);letter-spacing:.04em;font-size:32px}.rule{background:var(--accent);width:48px;height:1px}.gate h1{font-size:clamp(44px,12vw,56px);line-height:1.05}.gate p{color:var(--muted);margin:0 0 16px;font-size:15px;line-height:1.6}.gate label,.form label{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);align-self:flex-start;font-size:12px}input,textarea{background:var(--surface);border:1px solid var(--line);width:100%;color:var(--text);font:inherit;height:52px;padding:0 16px;font-size:16px}textarea{resize:vertical;height:88px;padding:12px 16px}.err{color:#ddd;font-size:14px}.hero{min-height:100svh;padding:120px var(--pad) 32px;background:radial-gradient(120% 90% at 70% 30%,#3a3a3a 0%,#161616 55%,#0a0a0a 100%);flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.hero video{object-fit:cover;filter:brightness(.6);width:100%;height:100%;position:absolute;inset:0}.hero:after{content:"";background:linear-gradient(#0a0a0a80,#0a0a0a26 40%,#0a0a0acc);position:absolute;inset:0}.hero>*{z-index:2;position:relative}.hero-c{text-align:center;flex-direction:column;align-items:center;gap:24px;display:flex}.hero h1{letter-spacing:-.01em;white-space:nowrap;font-size:clamp(40px,8vw,136px);line-height:1}.hero em,.gate em,.moment h2{font-style:italic}.hero .eb{letter-spacing:.32em;text-transform:uppercase;color:var(--muted);font-size:13px}.hero .meta{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-size:14px}.scroll{letter-spacing:.28em;text-transform:uppercase;color:var(--muted);align-self:flex-end;font-size:12px}.section{padding:96px var(--pad);flex-direction:column;gap:40px;display:flex}.row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;display:flex}.row h2{font-size:clamp(40px,5vw,56px)}.link-sm{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-size:13px}.hl{flex-wrap:wrap;gap:16px;display:flex}.hl .tile{aspect-ratio:3/4;flex:200px}.tile{background:var(--surface);cursor:zoom-in;position:relative;overflow:hidden}.tile img{object-fit:cover;width:100%;height:100%;transition:filter .3s;display:block}.heart{background:#0a0a0a99;border:0;border-radius:22px;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:absolute;bottom:12px;right:12px}.heart svg{fill:none;stroke:var(--text);stroke-width:1.6px}.heart.on svg{fill:var(--accent);stroke:var(--accent)}.page-h{padding:72px var(--pad) 32px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.page-h h1{margin-top:8px;font-size:clamp(48px,7vw,96px);line-height:1}.moments{flex-direction:column;gap:80px;padding:32px 0 96px;display:flex}.moment .head{padding:0 var(--pad);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.moment .t{flex-wrap:wrap;align-items:baseline;gap:8px 24px;display:flex}.moment .num{letter-spacing:.24em;font-size:13px}.moment h2{font-size:clamp(36px,5vw,64px);line-height:1}.moment .count{color:var(--muted);font-size:13px}.arrows{gap:8px;display:flex}.arrows button{border:1px solid var(--line);background:0 0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.arrows button:last-child{border-color:var(--accent)}.arrows svg{fill:none;stroke:var(--text);stroke-width:1.6px}.car{padding:0 var(--pad);scroll-snap-type:x proximity;scrollbar-width:none;gap:16px;display:flex;overflow-x:auto}.car::-webkit-scrollbar{display:none}.car .tile{scroll-snap-align:start;flex:none;height:min(440px,62vw)}.car .tile img{width:auto;height:100%}.grid{padding:0 var(--pad) 96px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.grid .tile{aspect-ratio:1}.grid.large{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:16px}.grid.large .tile{aspect-ratio:4/5}.empty{padding:80px var(--pad);color:var(--muted)}.hidden{display:none!important}.film{padding:48px var(--pad) 96px;flex-direction:column;align-items:center;gap:24px;display:flex}.film video{aspect-ratio:16/9;background:#000;width:min(1200px,100%)}.viewer{z-index:50;background:#0a0a0af7;grid-template-columns:1fr 360px;display:none;position:fixed;inset:0}.viewer.open{display:grid}.vstage{justify-content:center;align-items:center;min-height:0;padding:16px;display:flex;position:relative}.vstage img{object-fit:contain;max-width:100%;max-height:100%}.vnav{border:1px solid var(--line);background:#0a0a0a99;width:48px;height:48px;margin-top:-24px;font-size:20px;position:absolute;top:50%}.vprev{left:16px}.vnext{right:16px}.vclose{z-index:2;border:1px solid var(--line);background:#0a0a0a99;width:44px;height:44px;font-size:20px;position:absolute;top:16px;right:16px}.vside{border-left:1px solid var(--line);flex-direction:column;gap:16px;min-height:0;padding:24px;display:flex}.vside .acts{flex-wrap:wrap;gap:8px;display:flex}.vside .acts button{border:1px solid var(--line);letter-spacing:.14em;text-transform:uppercase;background:0 0;min-height:44px;padding:0 16px;font-size:12px}.vside .acts button.on{border-color:var(--accent);color:var(--accent)}.clist{flex-direction:column;flex:1;gap:14px;font-size:14px;line-height:1.5;display:flex;overflow:auto}.clist b{font-weight:500}.cform{flex-direction:column;gap:8px;display:flex}.cform input{height:44px;font-size:14px}.cform textarea{height:64px;font-size:14px}.cform button,.rform button{background:var(--accent);min-height:44px;color:var(--bg);letter-spacing:.16em;text-transform:uppercase;border:0;font-size:12px}.rform{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:16px;font-size:14px;display:none}.rform.open{display:flex}.rform input{height:44px;font-size:14px}.rform textarea{height:56px;font-size:14px}.note{color:var(--muted);font-size:13px}@media (width<=800px){.viewer{grid-template-rows:55% 45%;grid-template-columns:1fr}.vside{border-left:0;border-top:1px solid var(--line);padding:16px}}.admin{padding:48px var(--pad);flex-direction:column;gap:40px;max-width:960px;margin:0 auto;display:flex}.admin table{border-collapse:collapse;width:100%;font-size:14px}.admin th,.admin td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px}.admin th{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:400}.admin img{object-fit:cover;width:64px;height:64px}.admin button{border:1px solid var(--line);background:0 0;min-height:36px;padding:0 12px;font-size:12px}
