:root{--heart-green: #5b8556;--sun-gold: #c69b12;--heart-red: #a63b32;}
:root{--paper: #f5f1ea;--paper-2: #efe9df;--mist: #dce3e3;--stone: #b9b2a6;--moss: #6e7a5e;--ink: #2a2a28;--ink-2: #4a4a46;--muted: #8a877f;--seal: #b5452b;--serif: "Cormorant Garamond", Georgia, serif;--sans: Inter, "Segoe UI", sans-serif;--gutter: clamp(16px, 5vw, 64px);}
*{box-sizing: border-box;}
html{scroll-behavior: smooth;}
body{margin: 0px;background: var(--paper);color: var(--ink);font: 300 17px/1.85 var(--sans);-webkit-font-smoothing: antialiased;}
img{display: block;max-width: 100%;}
button{font: inherit;color: inherit;background: none;border: 0px;cursor: pointer;}
::selection{background: var(--mist);}
html[data-lang="lt"] body [lang="en"], html[data-lang="en"] body [lang="lt"]{display: none !important;}
.bar{position: fixed;inset: 0px 0px auto;z-index: 20;display: flex;align-items: center;gap: 20px;padding: 14px var(--gutter);background: var(--paper);border-bottom: 1px solid rgba(185, 178, 166, 0.35);}
.bar > *{position: relative;z-index: 1;}
.seal{display: inline-grid;place-items: center;width: 40px;height: 40px;font: 500 15px var(--serif);text-decoration: none;flex: 0 0 auto;}
.seal.big{width: 64px;height: 64px;font-size: 22px;}
.dots{flex: 1 1 0%;display: flex;justify-content: center;gap: 10px;}
.dots a{width: 7px;height: 7px;border-radius: 50%;background: var(--stone);opacity: 0.55;transition: 0.3s;}
.dots a.on{background: var(--ink);opacity: 1;transform: scale(1.3);}
.lang{font-size: 12px;letter-spacing: 0.2em;color: var(--muted);display: flex;gap: 6px;align-items: center;margin-left: auto;}
.lang button{padding: 4px 2px;letter-spacing: 0.2em;color: var(--muted);}
.lang button[aria-pressed="true"]{color: var(--ink);border-bottom: 1px solid var(--ink);}
.exit{display: inline-flex;align-items: center;gap: 6px;font-size: 12px;letter-spacing: 0.2em;text-transform: uppercase;color: var(--muted);padding: 4px 0px 4px 16px;border-left: 1px solid rgba(185, 178, 166, 0.6);transition: color 0.2s;}
.exit:hover, .exit:focus-visible{color: var(--seal);}
.exit svg{width: 14px;height: 14px;}
.hero{min-height: 100svh;display: grid;grid-template-columns: 1.35fr 1fr;padding-top: 0px;}
.hero-photo{position: relative;overflow: hidden;background: var(--mist);}
.hero-photo img{width: 100%;height: 100%;object-fit: cover;filter: saturate(0.85);}
.hero-text{padding: 120px var(--gutter) 60px;display: flex;flex-direction: column;justify-content: center;gap: 28px;background: rgb(251, 249, 245);}
.hero h1{font: 300 clamp(48px, 7vw, 96px)/1 var(--serif);margin: 0px;letter-spacing: 0.005em;}
.hero h1 i{color: var(--moss);}
.tag{max-width: 340px;color: var(--ink-2);margin: 0px;font-size: 16px;}
.read{align-self: flex-start;font-size: 11px;letter-spacing: 0.3em;text-transform: uppercase;color: var(--ink);text-decoration: none;border-bottom: 1px solid var(--ink);padding-bottom: 5px;}
.facts{text-align: center;font-size: 12px;letter-spacing: 0.22em;text-transform: uppercase;color: var(--muted);margin: 0px;padding: 46px var(--gutter);border-bottom: 1px solid rgba(185, 178, 166, 0.5);}
.facts b{font-weight: 400;color: var(--ink);}
.facts i{font-style: normal;margin: 0px 0.9em;color: var(--stone);}
.chapter{padding: clamp(80px, 12vw, 160px) var(--gutter) 40px;max-width: 1240px;margin: 0px auto;}
.ch-head{display: grid;grid-template-columns: 120px 1fr;gap: 0px 30px;margin-bottom: 50px;}
.ch-num{font: 300 clamp(40px, 6vw, 72px)/1 var(--serif);color: var(--stone);}
.ch-meta{font-size: 11px;letter-spacing: 0.3em;text-transform: uppercase;color: var(--moss);margin-bottom: 10px;}
.ch-title{font: 300 clamp(38px, 5.5vw, 68px)/1.05 var(--serif);margin: 0px 0px 18px;}
.ch-sum{max-width: 620px;color: var(--ink-2);margin: 0px;}
.ch-cover{margin: 0px 0px 70px;cursor: zoom-in;}
.ch-cover img{width: 100%;max-height: 82vh;object-fit: cover;filter: saturate(0.85);}
.ch-body{display: grid;grid-template-columns: 1fr 1fr;gap: clamp(40px, 7vw, 100px);align-items: start;}
.moments{list-style: none;margin: 0px;padding: 0px;}
.moment{display: grid;grid-template-columns: 92px 1fr;gap: 18px;padding: 20px 0px;border-top: 1px solid rgba(185, 178, 166, 0.55);}
.moment:last-child{border-bottom: 1px solid rgba(185, 178, 166, 0.55);}
.m-date{font-size: 12px;color: var(--muted);letter-spacing: 0.06em;padding-top: 4px;}
.m-title{font: 400 23px/1.25 var(--serif);margin: 0px 0px 4px;}
.m-text{margin: 0px;color: var(--ink-2);font-size: 15px;line-height: 1.75;}
.quotes{position: sticky;top: 90px;display: flex;flex-direction: column;gap: 46px;}
.quote{margin: 0px;border-left: 1px solid var(--stone);padding-left: clamp(20px, 3vw, 36px);}
.q-text{font: 300 clamp(22px, 2.3vw, 29px)/1.4 var(--serif);margin: 0px;white-space: pre-line;}
.q-sub{font: italic 400 18px/1.5 var(--serif);color: var(--moss);margin: 12px 0px 0px;white-space: pre-line;}
.q-who{font-size: 11px;letter-spacing: 0.25em;text-transform: uppercase;color: var(--muted);margin-top: 16px;}
.gallery{margin-top: 80px;columns: 260px 3;column-gap: 14px;}
.tile{break-inside: avoid;margin: 0px 0px 14px;position: relative;cursor: zoom-in;background: var(--paper-2);}
.tile img{width: 100%;height: auto;filter: saturate(0.85);transition: filter 0.4s;}
.tile:hover img{filter: saturate(1);}
.tile .play{position: absolute;inset: 0px;display: grid;place-items: center;pointer-events: none;}
.tile .play span{width: 46px;height: 46px;border-radius: 50%;background: rgba(245, 241, 234, 0.85);display: grid;place-items: center;font-size: 14px;color: var(--ink);}
.divider{display: flex;justify-content: center;padding: 70px 0px 0px;}
.divider svg{width: 140px;color: var(--stone);}
.end{text-align: center;padding: 120px var(--gutter) 140px;display: grid;justify-items: center;gap: 24px;}
.end-line{font: italic 300 clamp(26px, 3vw, 36px) var(--serif);margin: 0px;color: var(--ink-2);}
.lightbox{position: fixed;inset: 0px;z-index: 50;background: rgba(245, 241, 234, 0.97);display: grid;grid-template-columns: 70px 1fr 70px;grid-template-rows: 1fr auto;}
.lightbox[hidden]{display: none;}
.lb-stage{grid-column: 2;margin: 0px;display: grid;place-items: center;padding: 40px 0px 10px;min-height: 0px;}
.lb-stage img, .lb-stage video{max-width: 100%;max-height: calc(-120px + 100svh);object-fit: contain;}
.lb-nav{font: 300 54px var(--serif);color: var(--muted);}
.lb-nav:hover{color: var(--ink);}
.lb-nav.prev{grid-area: 1 / 1;}
.lb-nav.next{grid-area: 1 / 3;}
.lb-x{position: absolute;top: 10px;right: 18px;font: 300 40px var(--serif);color: var(--muted);z-index: 1;}
.lb-cap{grid-column: 1 / -1;text-align: center;font-size: 12px;letter-spacing: 0.2em;color: var(--muted);margin: 0px 0px 22px;}
.reveal{opacity: 0;transform: translateY(18px);transition: opacity 1.1s, transform 1.1s;}
.reveal.in{opacity: 1;transform: none;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto;}
.reveal{opacity: 1;transform: none;transition: none;}
}
@media (max-width: 860px){.hero{grid-template-columns: 1fr;min-height: auto;}
.hero-photo{height: 62svh;}
.hero-text{padding: 40px var(--gutter) 56px;}
.dots{display: none;}
.exit{padding-left: 12px;}
.ch-head{grid-template-columns: 1fr;}
.ch-num{font-size: 34px;margin-bottom: 8px;}
.ch-body{grid-template-columns: 1fr;}
.quotes{position: static;}
.moment{grid-template-columns: 74px 1fr;gap: 12px;}
.lightbox{grid-template-columns: 0px 1fr 0px;}
.lb-nav{display: none;}
}
html[data-enc="1"] body:not(.open) > :not(.gate){display: none !important;}
.gate{position: fixed;inset: 0px;z-index: 60;display: grid;place-items: center;padding: 40px 20px;overflow: auto;background: radial-gradient(120% 70% at 50% 110%, rgb(220, 227, 227) 0%, transparent 60%), linear-gradient(rgb(245, 241, 234) 0%, rgb(238, 240, 236) 55%, rgb(223, 229, 227) 100%);transition: opacity 0.9s;}
.gate::after{content: "";position: absolute;left: 10%;right: 10%;bottom: 52px;height: 1px;background: var(--stone);opacity: 0.5;}
.gate[hidden]{display: none;}
.gate.leaving{opacity: 0;pointer-events: none;}
.gate-card{position: relative;z-index: 1;width: min(420px, 100%);text-align: center;display: grid;justify-items: center;gap: 18px;}
.gate-card h1{font: 300 clamp(42px, 9vw, 62px)/1.02 var(--serif);margin: 6px 0px 0px;}
.gate-card h1 i{color: var(--moss);}
.gate-note{margin: 0px;color: var(--ink-2);font-size: 15px;max-width: 330px;}
.gate-card label{font-size: 11px;letter-spacing: 0.3em;text-transform: uppercase;color: var(--muted);margin-top: 10px;}
.gate-card #pw{width: 100%;font: 400 22px var(--serif);text-align: center;letter-spacing: 0.12em;color: var(--ink);background: transparent;border-top: 0px;border-right: 0px;border-left: 0px;border-image: none;border-bottom: 1px solid var(--stone);padding: 8px 4px;outline: none;}
.gate-card #pw:focus{border-bottom-color: var(--ink);}
.gate-card .remember{display: flex;gap: 8px;align-items: center;letter-spacing: 0.05em;text-transform: none;font-size: 13px;margin: 0px;cursor: pointer;}
.gate-card .remember input{accent-color: var(--moss);}
.gate-err{min-height: 22px;margin: 0px;font-size: 13px;color: var(--seal);}
.gate-card .read{background: none;border-top: 0px;border-left: 0px;border-right: 0px;cursor: pointer;}
.gate-card .read:disabled{opacity: 0.5;cursor: wait;}
.gate-lang{position: absolute;top: 20px;right: 24px;font-size: 12px;letter-spacing: 0.2em;color: var(--muted);z-index: 2;}
.gate-lang button{letter-spacing: 0.2em;color: var(--muted);padding: 2px;}
.gate-lang button[aria-pressed="true"]{color: var(--ink);border-bottom: 1px solid var(--ink);}
.gate-foot{position: absolute;bottom: 18px;left: 0px;right: 0px;text-align: center;font-size: 11px;letter-spacing: 0.2em;color: var(--muted);margin: 0px;}
.lock{font-size: 11px;letter-spacing: 0.25em;text-transform: uppercase;color: var(--muted);border-bottom: 1px solid var(--stone);padding-bottom: 3px;margin-top: 10px;}
img.wait{background: var(--paper-2);}
.lb-stage .loading{font: italic 300 22px var(--serif);color: var(--muted);}
.site-tabs{display: flex;gap: clamp(16px, 3vw, 32px);align-items: center;white-space: nowrap;}
.site-tabs a{color: var(--muted);text-decoration: none;font-size: 12px;letter-spacing: 0.08em;padding: 6px 0px;border-bottom: 1px solid transparent;}
.site-tabs a[aria-current="page"]{color: var(--ink);border-bottom-color: var(--ink);}
body.house-open .dots{visibility: hidden;}
.sunnyside-page{padding: 120px var(--gutter) 30px;min-height: 100svh;}
.house-heading{text-align: center;}
.house-heading h1{margin: 0px;font: 300 clamp(48px,6vw,78px)/1.1 var(--serif);}
.house-eyebrow{margin: 0px 0px 12px;font-size: 11px;text-transform: uppercase;letter-spacing: 0.25em;color: var(--moss);}
.house-views{display: flex;flex-wrap: wrap;justify-content: center;gap: 22px;margin: 25px 0px 0px;min-height: 34px;}
.house-views button{font-size: 12px;padding: 5px 0px;border-bottom: 1px solid transparent;color: var(--muted);}
.house-views button[aria-pressed="true"]{border-color: var(--ink);color: var(--ink);}
.house-viewer{height: clamp(380px, 58svh, 850px);position: relative;margin: 0px auto;width: 100%;max-width: 1500px;}
.house-viewer canvas{display: block;width: 100%;height: 100%;touch-action: pan-y;}
#houseStatus{position: absolute;inset: 42% 0px auto;text-align: center;color: var(--muted);font-size: 14px;}
@media (max-width: 600px){.bar{gap: 12px;flex-wrap: wrap;padding-top: 10px;}
.site-tabs{gap: 16px;}
.dots{order: 5;flex-basis: 100%;}
.exit{padding-left: 8px;}
.exit span{display: none;}
.sunnyside-page{padding-top: 140px;}
.house-viewer{height: 60svh;min-height: 360px;}
}
@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto;}
}
[hidden]{display: none !important;}
body.music-open .dots{visibility: hidden;}
.music-page{min-height: 100svh;padding: 150px var(--gutter) 160px;max-width: 1000px;margin: auto;}
.music-heading{margin-bottom: 64px;}
.music-heading h1{font: 300 clamp(48px,8vw,80px)/1.1 var(--serif);margin: 16px 0px;}
.music-heading > p:last-child{color: var(--muted);font-size: 15px;}
.music-track{display: flex;align-items: center;gap: 28px;width: 100%;text-align: left;padding: 26px 8px;border-top: 1px solid var(--stone);border-bottom: 1px solid var(--stone);}
.music-track:hover, .music-track[aria-pressed="true"]{background: var(--paper-2);}
.music-number{font-size: 12px;color: var(--muted);}
.music-track-title{font: 400 34px var(--serif);flex: 1 1 0%;}
.music-track:focus-visible{outline: 2px solid var(--moss);outline-offset: 4px;}
.music-dock{position: fixed;z-index: 22;bottom: 0px;left: 0px;right: 0px;background: var(--paper-2);border-top: 1px solid var(--stone);padding: 14px var(--gutter);display: flex;flex-wrap: wrap;align-items: center;gap: 12px 32px;box-shadow: rgba(42, 42, 40, 0.03) 0px -6px 24px;}
.music-now{min-width: 140px;display: flex;flex-direction: column;line-height: 1.4;}
.music-now .house-eyebrow{font-size: 9px;margin: 0px 0px 4px;}
.music-now strong{font: 400 26px var(--serif);}
.music-dock audio{flex: 1 1 0%;min-width: 230px;max-width: 680px;height: 44px;}
#musicStatus{flex-basis: 100%;margin: 0px;font-size: 12px;color: var(--muted);}
#musicStatus:empty{display: none;}
body.with-music{padding-bottom: 110px;}
@media (max-width: 600px){.music-page{padding-top: 150px;}
.site-tabs{gap: 12px;}
.site-tabs a{font-size: 11px;}
.music-dock{gap: 8px;padding: 10px 16px;}
.music-now{min-width: 100px;}
.music-dock audio{min-width: 200px;}
.music-track{gap: 14px;}
body.with-music{padding-bottom: 160px;}
}
.music-playback{display: flex;align-items: center;gap: 12px;flex: 1 1 0%;min-width: 260px;max-width: 730px;}
.music-playback audio{min-width: 0px;max-width: none;}
.music-close{width: 34px;height: 42px;flex: 0 0 auto;display: grid;place-items: center;padding: 0px;font: 28px/1 var(--sans);color: var(--muted);}
.music-close:hover{color:var(--heart-red);}
.music-close:focus-visible{outline: 2px solid var(--moss);outline-offset: 2px;border-radius: 4px;}
@media (max-width: 600px){.music-now{flex-basis: 100%;}
.music-playback{min-width: 0px;flex-basis: 100%;}
.music-playback audio{min-width: 0px;}
}
.music-mode{display: flex;align-items: center;justify-content: center;gap: 5px;flex: 0 0 auto;color: var(--muted);font-size: 11px;padding: 6px 3px;min-width: 30px;min-height: 38px;}
.music-mode svg{width: 19px;height: 19px;fill: none;stroke: currentcolor;stroke-width: 1.3;stroke-linecap: round;stroke-linejoin: round;}
.music-mode:focus-visible{outline: 2px solid var(--moss);outline-offset: 2px;border-radius: 3px;}
@media (max-width: 600px){.music-mode span{display: none;}
.music-playback{gap: 6px;}
}
.music-mode{width: 36px;height: 38px;border-radius: 6px;}
.music-mode[aria-pressed="true"]{color: var(--heart-green);background: rgba(91, 133, 86, 0.12);filter: none;box-shadow: inset 0 0 0 1px var(--heart-green);}
.music-mode[aria-pressed="true"] svg{stroke-width: 1.9;}
.seal{background: none;color: var(--sun-gold);border-radius: 0px;transform: none;box-shadow: none;transition: color 0.3s;}
.seal .sun-mark{display: block;width: 100%;height: 100%;overflow: visible;transform-origin: 50% 50%;animation: 18s linear 0s infinite normal none paused sun-turn;}
.seal:hover, .seal:focus-visible{color: var(--heart-red);}
.seal:hover .sun-mark, .seal:focus-visible .sun-mark{animation-play-state: running;}
.seal:focus-visible{outline: 2px solid var(--moss);outline-offset: 4px;border-radius: 50%;}
@keyframes sun-turn{0%{transform: rotate(0deg);}
100%{transform: rotate(360deg);}
}
@media (prefers-reduced-motion: reduce){.seal .sun-mark{animation: auto ease 0s 1 normal none running none;}
}
.page-end{padding: 70px 0px 60px;gap: 40px;}
.page-end .divider{padding: 0px;}


/* Match native Chrome/Edge audio controls to the warm paper dock. */
.music-playback audio{background:var(--paper-2);border-radius:8px;color-scheme:light;accent-color:var(--moss)}
.music-playback audio::-webkit-media-controls-enclosure{background:var(--paper-2);border-radius:8px}
.music-playback audio::-webkit-media-controls-panel{background:var(--paper-2)}

/* Phone controls get their own centered row and room around screen edges. */
@media(max-width:600px){
 .music-dock{padding:12px max(24px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}
 .music-playback{flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%;width:100%}
 .music-playback audio{flex:0 0 100%;width:100%;min-width:0;height:44px}
 .music-playback .music-mode,.music-playback .music-close{flex:0 0 44px;width:44px;height:44px;min-height:44px}
 body.with-music{padding-bottom:calc(220px + env(safe-area-inset-bottom))}
}


/* Thumb-friendly photo close control, clear of the phone browser edges. */
@media(max-width:860px){
 .lightbox{height:100dvh;padding-bottom:calc(88px + env(safe-area-inset-bottom));padding-top:env(safe-area-inset-top)}
 .lightbox .lb-x{top:auto;right:auto;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);width:52px;height:52px;padding:0;display:grid;place-items:center;font:300 32px/1 var(--sans);color:var(--muted);background:var(--paper-2);border:1px solid var(--stone);border-radius:50%;touch-action:manipulation}
 .lightbox .lb-x:hover,.lightbox .lb-x:focus-visible{color:var(--heart-red)}
 .lightbox .lb-x:focus-visible{outline:2px solid var(--moss);outline-offset:3px}
 .lb-stage{padding:16px 8px 8px}
 .lb-stage img,.lb-stage video{max-height:calc(100dvh - 170px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
 .lb-cap{margin:0 12px 8px;font-size:11px;letter-spacing:.08em}
}

/* Keep the mobile document on its vertical axis; viewer gestures stay independent. */
@media(max-width:860px),(pointer:coarse){
 html,body{max-width:100%;overflow-x:hidden;overflow-x:clip;overscroll-behavior-x:none}
 .lightbox,.gate{overscroll-behavior-x:none}
}

/* The model only captures gestures after an intentional activation. */
.house-enter-navigation{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;justify-content:center;padding:18px;touch-action:pan-y pinch-zoom;cursor:pointer}
.house-enter-navigation span{padding:10px 20px;border:1px solid var(--stone);border-radius:24px;background:var(--paper);color:var(--ink-2);font:300 13px/1.6 var(--sans)}
.house-enter-navigation:focus-visible{outline:2px solid var(--moss);outline-offset:-3px}
.house-leave-navigation{position:absolute;top:12px;right:12px;z-index:3;min-width:64px;min-height:44px;padding:8px 16px;background:var(--paper);border:1px solid var(--stone);border-radius:24px;color:var(--ink-2);font-size:13px}
.house-leave-navigation:focus-visible{outline:2px solid var(--moss);outline-offset:2px}

/* Room presets have comfortable phone tap targets. */
@media(max-width:860px),(pointer:coarse){
 .house-views{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:24px auto 16px;max-width:620px}
 .house-views button{min-width:0;min-height:48px;padding:12px 10px;font-size:14px;line-height:1.4;border:1px solid var(--stone);border-radius:6px;white-space:normal}
 .house-views button[aria-pressed="true"]{color:var(--heart-green);border-color:var(--heart-green);background:rgba(91,133,86,.08)}
 .house-views button:focus-visible{outline:2px solid var(--moss);outline-offset:2px}
}
