@font-face{font-family:"The Seasons";src:url("assets/fonts/the-seasons.otf") format("opentype");font-display:swap}@font-face{font-family:"The Seasons Turkish";src:url("assets/fonts/the-seasons-turkish.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat-regular.woff2") format("woff2");font-weight:400;font-display:swap}@font-face{font-family:"Montserrat";src:url("assets/fonts/montserrat-semibold.woff2") format("woff2");font-weight:600;font-display:swap}@font-face{font-family:"Brittany";src:url("assets/fonts/brittany-signature.ttf") format("truetype");font-display:swap}
:root{--sea-salt:#f4efe6;--raw-canvas:#e9ddc8;--sand:#d9c2a1;--reed:#b98a58;--olive:#6c704e;--palm:#5a4a3e;--burnt:#2b2722;--ink:#2f2924;--brown:#5e5146;--line:#e3d4be;--paper:#f7f2ea;--shadow:0 30px 90px rgba(47,41,36,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--sea-salt);color:var(--ink);font:400 16px/1.6 "Montserrat",Arial,sans-serif}button,input{font:inherit}button{color:inherit}img{max-width:100%}[hidden]{display:none!important}
@media(pointer:fine){body,button,a,.photo-card{cursor:url("assets/art/cursor-spark.svg") 16 16,auto}input{cursor:text}}
.paper-grain{position:fixed;inset:0;pointer-events:none;opacity:.2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E")}
.login-view{position:relative;isolation:isolate;min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:32px clamp(22px,4vw,68px) 24px;overflow:hidden}.login-watercolor{position:absolute;z-index:-2;left:-6vw;right:-6vw;bottom:-9vw;width:112vw;max-width:none;opacity:.44;mix-blend-mode:multiply;mask-image:linear-gradient(to bottom,transparent 0,#000 36%)}.login-view:after{content:"";position:absolute;z-index:-3;inset:0;background:radial-gradient(circle at 70% 18%,rgba(230,214,184,.56),transparent 32%),linear-gradient(180deg,var(--sea-salt),rgba(244,239,230,.9))}
.event-lockup{text-align:center;position:relative;z-index:1}.event-lockup p{margin:0}.couple-name{font:400 clamp(24px,3vw,32px)/1.1 "The Seasons",Georgia,serif;display:flex;align-items:center;justify-content:center;gap:.2em}.couple-name img{width:.58em;height:.58em;flex:none}.event-date,.event-place{font-size:.72rem;letter-spacing:.19em;color:var(--brown)}.event-date{margin-top:10px!important}.event-place{margin-top:3px!important}.event-place span{color:var(--reed);padding:0 .18em}
.login-card{align-self:center;justify-self:center;width:min(100%,650px);text-align:center;padding:36px 0 64px}.brand-spark{display:block;width:31px;height:31px;margin:0 auto 22px}.overline{margin:0 0 18px;color:var(--olive);font-size:.76rem;font-weight:600;letter-spacing:.23em}.login-card h1,.album-copy h1{font:400 clamp(3.45rem,8vw,6.5rem)/.88 "The Seasons",Georgia,serif;letter-spacing:-.045em;margin:0}.login-card h1 em,.album-copy h1 em{color:var(--olive);font-weight:400}.intro{max-width:390px;margin:28px auto 34px;color:var(--brown);font-family:"The Seasons",Georgia,serif;font-size:1.16rem}
.code-form{width:min(100%,540px);margin:auto;text-align:left}.code-form>label{display:block;margin:0 0 8px;font-size:.76rem;font-weight:600;letter-spacing:.15em;color:var(--brown)}.code-field{display:flex;border-bottom:1px solid rgba(47,41,36,.45);background:rgba(247,242,234,.62);transition:border-color .2s,box-shadow .2s}.code-field:focus-within{border-color:var(--reed);box-shadow:0 5px 0 -4px var(--reed)}.code-field input{min-width:0;flex:1;border:0;background:transparent;padding:17px 18px;outline:0;color:var(--ink);font-size:1rem;text-transform:uppercase}.code-field input::placeholder{text-transform:none;color:rgba(94,81,70,.55)}.code-field button{border:0;background:var(--olive);color:var(--paper);padding:0 20px;display:flex;align-items:center;gap:18px;font-size:.75rem;font-weight:600;letter-spacing:.12em;transition:background .2s,transform .2s}.code-field button:hover{background:#5c6042}.code-field button:active{transform:translateY(1px)}.form-message{min-height:24px;margin:12px 0 0;color:rgba(94,81,70,.8);font-size:.78rem}.form-message.error{color:#8b4138}.form-message.loading{color:var(--olive)}.login-footnote{align-self:end;text-align:center;margin:0;font-size:.68rem;font-weight:600;letter-spacing:.22em;color:var(--brown)}.login-footnote span{color:var(--reed)}
.album-view{background:var(--sea-salt);min-height:100vh}.album-nav{height:72px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid var(--line);background:rgba(244,239,230,.91);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.album-nav p{font-size:.72rem;letter-spacing:.16em;color:var(--brown)}.nav-brand{justify-self:start;border:0;background:none;font:400 1.4rem "The Seasons",Georgia,serif;display:flex;align-items:center;gap:8px}.nav-brand img{width:15px;height:15px}.text-button{justify-self:end;border:0;background:none;font-size:.7rem;font-weight:600;letter-spacing:.12em}
.album-intro{min-height:calc(100svh - 72px);position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.7fr);gap:8vw;align-items:center;padding:clamp(60px,8vw,120px) clamp(22px,7vw,120px)}.album-watercolor{position:absolute;z-index:0;width:82%;left:-21%;bottom:-4%;opacity:.22;mix-blend-mode:multiply;mask-image:linear-gradient(90deg,#000 40%,transparent 92%)}.album-copy{position:relative;z-index:1}.album-copy h1{font-size:clamp(3.4rem,6.8vw,7.7rem)}.album-copy>p:last-child{margin:32px 0 0;color:var(--brown);font-family:"The Seasons",Georgia,serif;font-size:1.24rem}.album-portrait{position:relative;z-index:1;justify-self:end;width:min(100%,470px);box-shadow:var(--shadow)}.album-portrait:before{content:"";position:absolute;inset:-16px 18px 16px -18px;border:1px solid var(--reed);z-index:-1}.album-portrait img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}.album-portrait span{position:absolute;left:-31px;bottom:22px;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.68rem;font-weight:600;letter-spacing:.25em;color:var(--brown)}
.gallery-section{padding:90px clamp(14px,3vw,48px) 120px;background:var(--burnt);color:var(--paper)}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;max-width:1500px;margin:0 auto 48px;padding:0 8px}.gallery-heading .overline{color:var(--reed);margin-bottom:6px}.gallery-heading h2{font:400 clamp(3.2rem,6vw,6.4rem)/1 "The Seasons",Georgia,serif;margin:0}.gallery-actions{display:flex;align-items:center;gap:18px}.gallery-actions span{color:rgba(247,242,234,.7);font-size:.86rem}.outline-button{border:1px solid rgba(247,242,234,.34);background:transparent;color:var(--paper);padding:13px 17px;font-size:.72rem;font-weight:600;letter-spacing:.12em}.photo-grid{columns:3 330px;column-gap:7px;max-width:1500px;margin:auto}.photo-card{position:relative;margin:0 0 7px;break-inside:avoid;background:#39332d;overflow:hidden}.photo-card>img{display:block;width:100%;height:auto;transition:transform .55s ease,filter .25s}.photo-card:hover>img{transform:scale(1.012)}.photo-card.selected>img{filter:brightness(.72)}.select-photo{position:absolute;top:14px;right:14px;width:40px;height:40px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(43,39,34,.42);color:white;display:grid;place-items:center;backdrop-filter:blur(6px);font-size:0}.select-photo:before{content:"";width:8px;height:8px;border-radius:50%;background:white;transition:transform .2s,background .2s}.selected .select-photo{background:var(--reed);border-color:var(--reed)}.selected .select-photo:before{transform:scale(1.35)}.open-photo{position:absolute;inset:0;border:0;background:transparent;font-size:0;width:calc(100% - 58px)}
.closing-note{min-height:76vh;padding:100px 22px;display:grid;place-content:center;text-align:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 55%,rgba(217,194,161,.38),transparent 35%),var(--sea-salt)}.closing-note>img{width:32px;margin:0 auto 30px}.closing-note h2{font:400 clamp(3.5rem,8vw,7.5rem)/1 "The Seasons",Georgia,serif;margin:0}.closing-note>p{margin:24px auto 36px;color:var(--brown);font-family:"The Seasons",Georgia,serif;font-size:clamp(1.1rem,2vw,1.5rem)}.closing-signature{font:400 clamp(2rem,4vw,3.2rem) "The Seasons",Georgia,serif}.closing-signature span{color:var(--reed);font-size:.65em;padding:0 .18em}
.download-bar{position:fixed;z-index:30;left:50%;bottom:18px;transform:translateX(-50%);width:min(960px,calc(100% - 28px));display:flex;justify-content:space-between;align-items:center;gap:24px;padding:14px 15px 14px 22px;background:rgba(247,242,234,.96);color:var(--ink);box-shadow:0 20px 70px rgba(0,0,0,.34);backdrop-filter:blur(16px)}.download-bar>div:first-child{display:grid}.download-bar strong{font-size:.86rem}.clear-button{border:0;background:none;text-align:left;padding:0;color:var(--brown);font-size:.75rem;text-decoration:underline;text-underline-offset:3px}.download-actions{display:flex;gap:8px}.download-actions button{border:0;background:var(--olive);color:white;padding:14px 17px;font-size:.68rem;font-weight:600;letter-spacing:.09em}.download-actions button:last-child{background:var(--ink)}.download-actions span{opacity:.7}
.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;border:0;padding:0;margin:0;background:rgba(21,19,17,.96);color:white}.lightbox::backdrop{background:rgba(21,19,17,.8)}.lightbox[open]{display:grid;grid-template-columns:70px 1fr 70px;align-items:center}.lightbox figure{margin:0;height:100vh;display:grid;place-content:center;justify-items:center;padding:34px 0}.lightbox figure img{max-width:calc(100vw - 180px);max-height:calc(100vh - 90px);object-fit:contain}.lightbox figcaption{margin-top:10px;color:rgba(255,255,255,.58);font-size:.75rem;letter-spacing:.1em}.lightbox button{border:0;background:transparent;color:white}.lightbox-close{position:absolute;z-index:2;right:24px;top:14px;font:300 2.4rem/1 Arial}.lightbox-nav{height:100%;font-size:1.5rem}.toast{position:fixed;z-index:60;left:50%;bottom:28px;transform:translate(-50%,18px);padding:13px 18px;background:var(--ink);color:var(--paper);font-size:.82rem;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.cursor-burst{position:fixed;z-index:999;pointer-events:none;width:24px;height:24px;transform:translate(-50%,-50%);background:url("assets/art/cursor-spark.svg") center/contain no-repeat;animation:spark-pop .45s ease-out forwards}@keyframes spark-pop{to{opacity:0;transform:translate(-50%,-50%) scale(2.2) rotate(28deg)}}
@media(max-width:800px){.login-watercolor{bottom:-2vw;height:45vh;object-fit:cover}.album-nav{grid-template-columns:1fr auto}.album-nav>p{display:none}.album-intro{grid-template-columns:1fr;padding-top:75px}.album-copy{text-align:center}.album-copy h1{font-size:clamp(3.35rem,13vw,5rem)}.album-copy>p:last-child{font-size:1.05rem}.album-portrait{width:min(78vw,420px);justify-self:center;margin:30px 0 50px}.gallery-heading{align-items:start;flex-direction:column}.gallery-actions{width:100%;justify-content:space-between}.download-bar{align-items:stretch;flex-direction:column;gap:10px;padding:13px}.download-bar>div:first-child{padding:0 4px}.download-actions button{flex:1}.lightbox[open]{grid-template-columns:46px 1fr 46px}.lightbox figure img{max-width:calc(100vw - 92px)}.lightbox-close{right:10px}}
@media(max-width:560px){.login-view{padding-top:22px}.event-place{font-size:.62rem;letter-spacing:.11em}.login-card{padding-top:20px}.login-card h1{font-size:clamp(3.25rem,15vw,4.8rem)}.code-field{display:grid}.code-field button{justify-content:center;padding:15px}.login-watercolor{height:38vh;opacity:.34}.album-nav{height:62px}.album-intro{min-height:auto;padding-bottom:70px}.album-portrait{width:76vw}.gallery-section{padding-top:68px}.gallery-heading{margin-bottom:30px}.gallery-actions{align-items:flex-start;flex-direction:column}.photo-grid{columns:2 145px}.select-photo{width:36px;height:36px;top:9px;right:9px}.download-actions{display:grid}.download-actions button{width:100%}.lightbox-nav{font-size:1.1rem}}
.album-copy h1{font-family:"The Seasons Turkish","The Seasons",Georgia,serif;line-height:.9;letter-spacing:-.018em;font-variant-ligatures:none}.album-copy h1 em.tr-spacing{letter-spacing:.012em}.intro,.album-copy>p:last-child,.closing-note>p{letter-spacing:.012em;font-variant-ligatures:none}.closing-note h2{font-family:"The Seasons Turkish","The Seasons",Georgia,serif;font-size:clamp(2.4rem,7.5vw,7.5rem);font-weight:400;letter-spacing:-.025em;white-space:nowrap}
#albumPhotoCount{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.035em;font-variant-numeric:lining-nums proportional-nums}
@media(max-width:560px){.closing-note h2{font-size:clamp(2.2rem,10.2vw,3rem)}}
.closing-note h2{letter-spacing:-.025em;word-spacing:.06em}.closing-note h2>span{display:inline-block;white-space:nowrap}
.album-portrait img.person-focused-cover{object-position:var(--focal-x,50%) var(--focal-y,50%)}
.load-more-wrap{display:grid;place-items:center;margin:44px auto 0}.load-more-button{border:1px solid rgba(247,242,234,.42);background:transparent;color:var(--paper);padding:15px 22px;font-size:.72rem;font-weight:600;letter-spacing:.12em;transition:background .2s,color .2s}.load-more-button:hover{background:var(--paper);color:var(--burnt)}.load-more-button:disabled{cursor:wait;opacity:.62}.load-more-button[hidden]{display:none}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.download-parts-dialog{width:min(620px,calc(100% - 28px));max-height:min(82vh,760px);border:0;padding:0;background:transparent;color:var(--ink)}.download-parts-dialog::backdrop{background:rgba(21,19,17,.72);backdrop-filter:blur(5px)}.download-parts-card{background:var(--sea-salt);padding:clamp(26px,5vw,48px);box-shadow:0 24px 90px rgba(0,0,0,.38)}.download-parts-card>img{width:25px;margin-bottom:18px}.download-parts-card h2{font:400 clamp(2.2rem,6vw,3.8rem)/.95 "The Seasons Turkish","The Seasons",Georgia,serif;margin:8px 0 16px}.download-parts-card>p:not(.overline){color:var(--brown);line-height:1.55;margin:0 0 24px}.download-parts-list{display:grid;gap:8px;max-height:320px;overflow:auto;padding-right:5px}.download-part{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:54px;padding:9px 10px 9px 15px;border:1px solid rgba(65,58,49,.18);font-size:.82rem}.download-part small{color:var(--brown)}.download-part a{display:inline-flex;justify-content:center;min-width:154px;padding:12px 14px;background:var(--olive);color:white;text-decoration:none;font-size:.66rem;font-weight:600;letter-spacing:.08em}.download-part a.downloaded{background:var(--brown);opacity:.72}.download-parts-close{width:100%;margin-top:18px;border:1px solid var(--ink);background:transparent;color:var(--ink);padding:14px;font-size:.68rem;font-weight:600;letter-spacing:.1em}@media(max-width:560px){.download-parts-card{padding:25px 18px}.download-part{align-items:stretch;flex-direction:column;gap:8px}.download-part a{width:100%}.download-parts-list{max-height:42vh}}
.music-toggle{position:fixed;z-index:45;right:18px;bottom:18px;display:flex;align-items:center;gap:10px;height:48px;padding:0 16px 0 12px;border:1px solid rgba(47,41,36,.18);border-radius:999px;background:rgba(244,239,230,.94);color:var(--ink);box-shadow:0 12px 40px rgba(47,41,36,.2);backdrop-filter:blur(14px);font-size:.62rem;font-weight:600;letter-spacing:.12em;transition:bottom .25s,background .25s,color .25s}.music-toggle img{width:23px;height:23px;transition:transform .5s}.music-toggle.playing{background:var(--olive);color:white}.music-toggle.playing img{filter:brightness(0) invert(1);animation:music-spark 3s linear infinite}.has-download-bar .music-toggle{bottom:102px}@keyframes music-spark{to{transform:rotate(360deg)}}@media(max-width:800px){.has-download-bar .music-toggle{bottom:178px}}@media(max-width:560px){.music-toggle{width:50px;padding:0;justify-content:center}.music-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.has-download-bar .music-toggle{bottom:202px}}
