:root{--night:#050505;--night-2:#101010;--pink:#d8b077;--cream:#faf4ef;--muted:#aaa69f}
body{background:#050505}#atmosphere{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:25;opacity:.65}#effects-toggle{position:fixed;bottom:16px;right:16px;z-index:40;border:1px solid #ffffff30;border-radius:30px;padding:10px 15px;background:#080808dd;color:#ddd;font-size:11px;cursor:pointer;backdrop-filter:blur(8px)}
.gate{background:#050505;overflow:auto}.gate__grain{opacity:.055}.gate__layout{gap:4vw}.gate h1{font-size:clamp(3.4rem,6.7vw,7.8rem);line-height:1.04}.gate__copy{padding:1rem 0}.gate__lead{font-size:clamp(1.1rem,1.7vw,1.4rem)}.gate__portrait{border-radius:16px;max-height:calc(100svh - 170px);min-height:380px;align-self:stretch;transform:rotate(0deg);background:#161113;box-shadow:0 0 80px #d8b0770b,0 0 0 1px #ffffff20}.gate__portrait img{filter:saturate(.85);object-position:center 20%}.gate__portrait:after{display:none}#reveal{position:absolute;inset:0;width:100%;height:100%;z-index:3;touch-action:none;cursor:crosshair}.reveal-invitation{position:absolute;z-index:4;top:50%;left:50%;transform:translate(-50%,-50%);color:#e4c0cd;font-family:Georgia,serif;font-style:italic;font-size:1.4rem;pointer-events:none;transition:opacity .3s}.is-scratching .reveal-invitation{opacity:0}.gate__portrait-label{z-index:2;bottom:1rem;left:1rem;background:#0008;padding:.6rem}.reveal-progress{height:3px;background:#ffffff20;max-width:260px;margin-top:2rem;overflow:hidden}.reveal-progress span{display:block;width:0;height:100%;background:var(--pink);transition:width .2s}.gate__status{margin:1rem 0;font-size:.65rem}.gate__footer{padding-bottom:1.3rem}.gate__footer span:last-child{margin-right:130px}.hero{background:#050505}.hero__visual{box-shadow:0 0 90px #d8b0770a}.interlude{background:#080808;color:var(--cream);border-top:1px solid #ffffff15}.photo-row figcaption{color:#bda98b}.closing{background:#050505}.site-header,.site-footer{background:#050505}.primary-link{border-radius:3px;box-shadow:0 0 0 #d8b07700;transition:transform .25s,box-shadow .25s,background .25s}.primary-link:hover{box-shadow:0 0 35px #d8b07730}.photo-row figure{transition:transform .5s}.photo-row figure:hover{transform:translateY(-8px)}.photo-row img{border-radius:4px}.scroll-reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}.gate.is-done{transform:scale(1.025);transition:opacity .7s,visibility .7s,transform .7s}.site-footer{padding-bottom:5rem}
@media(max-width:760px){.gate__layout{display:grid;grid-template-columns:1fr;gap:1.2rem}.gate__copy{padding:0}.gate h1{font-size:clamp(2.7rem,11vw,4.1rem);margin:.6rem 0}.gate__lead{font-size:1rem}.gate__hint{margin:.4rem 0}.gate__portrait{position:relative;inset:auto;width:min(100%,320px);height:38svh;min-height:245px;max-height:410px;opacity:1;z-index:auto;margin:0 auto;order:2;border-radius:12px;transform:rotate(0deg)}.gate__portrait img{object-position:center 25%}.reveal-progress{margin-top:1rem;max-width:100%}.gate__status{display:inline-block;margin:.7rem 1rem .3rem 0}.gate__footer{font-size:.52rem;margin-top:1rem}.gate__portrait-label{display:block;font-size:.5rem}.micro{letter-spacing:.1em}.hero__visual{height:auto;min-height:0;max-height:none}.hero__visual img{height:auto;display:block}.interlude>p{font-size:2.5rem}#effects-toggle{font-size:10px;padding:8px 12px;bottom:10px;right:10px}}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none}.gate.is-done{transform:none}.photo-row figure:hover{transform:none}}

/* Graphite scratch card and warm metal accents. */
.reveal-invitation{font-family:Arial,sans-serif;font-style:normal;font-weight:800;font-size:clamp(.95rem,1.5vw,1.2rem);letter-spacing:.18em;white-space:nowrap;color:#f1e7d7;padding:18px 26px;border:1px dashed #e5d6bc80;border-radius:5px;background:#151617a6;box-shadow:0 1px 0 #ffffff14,inset 0 1px 5px #0005;text-shadow:0 1px 2px #000}
.gate__portrait{border:1px solid #bda98b45;box-shadow:0 20px 70px #0009,0 0 0 5px #ffffff04;background:#242629}.gate__portrait img{filter:saturate(.93)}.gate__hint{color:#aaa69f}.primary-link{background:#d8b077;color:#12100c}.primary-link:hover{background:#e8c895}.photo-row figcaption{letter-spacing:.12em}#atmosphere{opacity:.5}
:focus-visible{outline:3px solid #d8b077;outline-offset:4px}

.photo-row video{display:block;width:100%;height:min(52vw,620px);object-fit:cover;object-position:center 28%;border-radius:4px;background:#151515}.photo-row video:hover{transform:none}@media(max-width:760px){.photo-row video{height:65vw}}

.gate h1{font-size:clamp(2.7rem,5vw,5.1rem);line-height:1.06}.gate h1 em{white-space:nowrap}@media(max-width:760px){.gate h1{font-size:clamp(2.2rem,8.4vw,3.3rem);line-height:1.07}.gate h1 em{white-space:normal}}

.hero{background:radial-gradient(circle at 67% 40%,#281915 0,transparent 49%),#050505}.hero h2{font-size:clamp(4rem,7vw,7.2rem);line-height:1.02}.hero__visual{box-shadow:0 22px 90px #000b,0 0 70px #d8b07713}.hero__visual img{object-position:center 30%}.hero__number{background:#080808d9;color:#f2e7d9}.closing{background:radial-gradient(circle at center,#231b13,#050505 65%)}@media(max-width:760px){.hero h2{font-size:clamp(3.15rem,13vw,5.6rem)}.hero__visual{min-height:0;height:auto;max-height:none}.hero__visual img{height:auto;display:block}}

.choose{padding:clamp(4rem,8vw,8rem) clamp(1.5rem,5vw,5.5rem);background:linear-gradient(180deg,#080808,#17110d 48%,#080808);color:#faf4ef;text-align:center}
.choose .eyebrow{justify-content:center}.choose h2{font:400 clamp(3.3rem,6vw,6.2rem)/1.02 Georgia,serif;letter-spacing:-.065em;margin:1.2rem 0}.choose h2 em{color:#d8b077}.choose__intro{font-size:clamp(1rem,1.5vw,1.25rem);color:#c4bbb0;margin:0 auto 2.7rem;max-width:34rem;line-height:1.5}
.choose__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.7rem,2vw,1.5rem);max-width:850px;margin:auto}.choose__card{position:relative;display:block;width:100%;border:1px solid #d8b07755;background:#111;color:#faf4ef;padding:0;overflow:hidden;cursor:pointer;text-align:left;transition:transform .25s,border-color .25s,box-shadow .25s}.choose__card:hover{transform:translateY(-5px);border-color:#d8b077}.choose__card[aria-pressed=true]{border-color:#e8c895;box-shadow:0 0 0 3px #d8b07755}.choose__card img{display:block;width:100%;height:clamp(280px,43vw,520px);object-fit:cover;object-position:center 25%}.choose__card span{position:absolute;inset:auto 0 0;padding:2.3rem 1rem 1rem;background:linear-gradient(transparent,#000e);font-size:.82rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.choose__response{min-height:1.8rem;margin:1.9rem 0 .2rem;color:#e1c49b;font-size:1.05rem}.choose .primary-link{margin-top:1rem}
@media(max-width:760px){.choose h2{font-size:clamp(2.7rem,11vw,4rem)}.choose__card img{height:clamp(250px,75vw,390px)}.choose__card span{font-size:.62rem;letter-spacing:.07em;padding:.7rem .6rem;background:#080808d9}.choose__intro{margin-bottom:1.6rem}}
@media(prefers-reduced-motion:reduce){.choose__card:hover{transform:none}}

.moments{padding:clamp(4rem,8vw,8rem) clamp(1.5rem,5vw,5.5rem);background:#0d0b0a;color:var(--cream);border-top:1px solid #ffffff18}
.moments__copy{max-width:68rem;margin:0 auto 2.5rem}.moments h2{font:400 clamp(3.2rem,6vw,6rem)/1.02 Georgia,serif;letter-spacing:-.065em;margin:1rem 0}.moments h2 em{color:var(--pink);font-weight:400}.moments__copy>p:last-child{max-width:34rem;color:#c4bbb0;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.5}
.moments__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.7rem,2vw,1.5rem);max-width:68rem;margin:auto}.moments__grid figure{margin:0}.moments__grid img{display:block;width:100%;height:clamp(300px,49vw,640px);object-fit:cover;object-position:center 27%;border:1px solid #d8b07740}.moments__grid figcaption{padding-top:.9rem;color:#d8b077;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
@media(max-width:760px){.moments h2{font-size:clamp(2.7rem,11vw,4rem)}.moments__grid img{height:clamp(230px,63vw,380px)}.moments__grid figcaption{font-size:.56rem;letter-spacing:.08em}}
