.js-site{background:var(--paper);width:100%;min-width:0;height:100dvh;color:var(--ink);font-family:var(--font-body);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;flex:1;scroll-padding-top:100px;overflow:auto}.js-site *{box-sizing:border-box}.js-site button,.js-site a{-webkit-tap-highlight-color:transparent}.js-site button{font:inherit;cursor:pointer}.js-site a{color:inherit;text-decoration:none}.js-site :focus-visible{outline:2px solid var(--accent);outline-offset:5px}.js-site p,.js-site h1,.js-site h2,.js-site h3,.js-site figure{margin:0}.js-motion{min-height:100%}.js-brand{white-space:nowrap;font:26px var(--font-serif);letter-spacing:3px;align-items:center;gap:11px;display:inline-flex}.js-brand img{border-radius:9px;display:block}.js-brand.large{font-size:42px}.js-brand.large img{border-radius:16px;width:64px;height:64px}.js-nav{z-index:30;background:#fffcf7f5;border:1px solid #e5dbcf99;border-radius:40px;justify-content:space-between;align-items:center;gap:20px;width:min(860px,100% - 48px);height:66px;margin:20px auto 0;padding:8px 13px 8px 23px;display:flex;position:sticky;top:20px;box-shadow:0 4px 20px #30272008}.js-nav nav{align-items:center;gap:28px;font-size:14px;display:flex}.js-nav nav a{padding:14px 0}.js-nav nav a:hover,.js-nav nav a[aria-current]{color:var(--accent)}.js-site .js-button{border:1px solid var(--button-edge);border-radius:var(--button-radius);background:var(--accent);min-height:52px;box-shadow:var(--button-shadow);font-family:var(--font-body);text-align:center;transition:transform var(--press) var(--ease);justify-content:center;align-items:center;gap:12px;padding:13px 24px;font-size:17px;font-weight:600;line-height:1.5;display:inline-flex;color:var(--onAccent)!important}@media (hover:hover) and (pointer:fine){.js-button:hover:not(:disabled){transform:translateY(-1px)}}.js-button:active:not(:disabled){box-shadow:var(--button-shadow-pressed);transform:translateY(1px)}.js-button.secondary{border-color:var(--line);background:var(--soft);color:var(--ink)!important}.js-button.quiet{box-shadow:none;background:0 0;border-color:#0000;padding:10px 14px;color:var(--ink)!important}.js-button.quiet:hover{background:var(--soft)}.js-button.small{border-radius:var(--button-radius-small);min-height:44px;padding:9px 18px;font-size:14px}.js-button:disabled{opacity:.45;cursor:default;box-shadow:none;transform:none}[data-motion=off] .js-button{transform:none!important}@media (prefers-reduced-motion:reduce){.js-button{transform:none!important}}.js-hero{isolation:isolate;height:calc(100svh - 86px);min-height:810px;max-height:1040px;position:relative;overflow:hidden}.js-hero-copy{z-index:2;text-align:center;pointer-events:none;width:min(750px,67%);margin:0 auto;padding-top:clamp(120px,15vh,195px);position:relative}.js-hero h1{font:500 clamp(58px, 6vw, 92px)/1.3 var(--font-serif);letter-spacing:-2px}.js-hero h1 em{color:var(--accent);white-space:nowrap;font-style:normal}.js-hero-copy>p{letter-spacing:1px;margin-top:30px;font-size:18px;line-height:1.8}.js-hero-actions{pointer-events:auto;justify-content:center;gap:14px;margin-top:42px;display:flex}.js-hero-scroll{font:16px var(--font-serif);letter-spacing:2px;flex-direction:column;align-items:center;gap:22px;display:flex;position:absolute;bottom:44px;left:50%;transform:translate(-50%);color:var(--muted)!important}.js-memory-scene{--gather:0;pointer-events:none;position:absolute;inset:0}.js-memory{will-change:auto;pointer-events:auto;position:absolute}.js-memory.family{width:clamp(170px,19vw,275px);transform:translate(calc(var(--gather) * 130px), calc(var(--gather) * 160px)) rotate(calc(-9deg + var(--gather) * 9deg));top:70px;left:3%}.js-memory.courtyard{width:clamp(170px,18vw,260px);transform:translate(calc(var(--gather) * -130px), calc(var(--gather) * 170px)) rotate(calc(8deg - var(--gather) * 8deg));top:68px;right:2.5%}.js-memory.voice{transform:translate(calc(var(--gather) * 160px), calc(var(--gather) * -90px)) rotate(calc(-7deg + var(--gather) * 7deg));bottom:128px;left:5%}.js-memory.book{transform:translate(calc(var(--gather) * -180px), calc(var(--gather) * -90px)) rotate(calc(10deg - var(--gather) * 10deg)) scale(1.17);bottom:85px;right:6.5%}.js-photo{background:#fffcf7;border:1px solid #e9dfd0;padding:10px 10px 13px;box-shadow:2px 8px 22px #392a191c}.js-photo img{aspect-ratio:1;object-fit:cover;width:100%;height:auto;display:block}.js-photo figcaption{font:13px var(--font-serif);color:var(--muted);letter-spacing:2px;text-align:center;padding:13px 0 0}.js-voice-card{background:var(--surface);width:252px;font-family:var(--font-serif);transition:transform var(--press) var(--ease);border:1px solid #e9dfd0;border-radius:10px;padding:23px 21px;display:block;box-shadow:2px 8px 22px #392a191c}.js-voice-card:hover{transform:translateY(-5px)}.js-voice-card>span{font-size:17px}.js-voice-card>div{align-items:center;gap:10px;margin-top:17px;display:flex}.js-voice-card [aria-label]{transform-origin:0;width:105px;margin-right:-26px;transform:scaleX(.7)}.js-voice-icon{background:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.js-voice-note{font:11px var(--font-body);white-space:nowrap;color:var(--muted)}.js-section{max-width:1180px;margin:0 auto;padding:100px 40px;scroll-margin-top:70px}.js-section.sample{max-width:1380px;padding-top:130px;padding-bottom:120px}.js-section.wide{max-width:1380px}.js-journey{grid-template-columns:1fr 420px;align-items:center;gap:110px;display:grid}.js-section-number{letter-spacing:3px;color:var(--accent);font-size:13px;margin-bottom:26px!important}.js-journey h2,.js-sample-layout h2{font:500 clamp(34px, 3.7vw, 52px)/1.45 var(--font-serif);letter-spacing:-1px}.js-steps{border-top:1px solid var(--line);margin-top:45px}.js-step{border-bottom:1px solid var(--line)}.js-step>button{text-align:left;background:0 0;border:0;align-items:center;gap:22px;width:100%;min-height:74px;padding:22px 0;display:flex}.js-step button>span{color:var(--accent);font:17px var(--font-serif)}.js-step strong{font:22px var(--font-serif);flex:1;font-weight:400}.js-step p{color:var(--muted);margin:0 0 23px 44px;font-size:16px;line-height:1.9}.js-step.active strong{color:var(--accent)}.js-phone-stage{flex-direction:column;align-items:center;display:flex}.js-phone{border:1px solid var(--line);background:var(--paper);border-radius:30px;width:334px;overflow:hidden;box-shadow:0 25px 60px #4232210d}.js-phone-inner{flex-direction:column;gap:21px;padding:27px 24px 22px;display:flex}.js-preview-cover{align-self:center;padding:2px 0}.js-preview-record{flex-direction:column;align-items:center;gap:23px;padding:32px 0;display:flex}.js-demo-note{color:var(--muted);font-size:12px;line-height:1.8;display:block;margin-top:24px!important}.js-sample-layout{grid-template-columns:1.2fr .8fr;align-items:center;gap:85px;display:grid}.js-section-body{color:var(--muted);font-size:17px;line-height:1.9;margin:25px 0 30px!important}.js-book-spread{border-bottom:8px solid var(--cover);border-right:3px solid var(--cover);border-left:3px solid var(--cover);background:#eee3ce;border-radius:4px 9px 9px 4px;grid-template-columns:1fr 1fr;min-height:398px;display:grid;transform:rotate(-3deg);box-shadow:0 17px 30px #3027201a}.js-book-spread article{background:#fffbf1;border-top:1px solid #e3d9c5;padding:27px 24px 48px;position:relative}.js-book-spread article:first-child{border-right:1px solid #e5dbc6;border-radius:3px 0 0 3px;box-shadow:inset -9px 0 15px #a58a5220}.js-book-spread article:last-child{border-radius:0 6px 6px 0;box-shadow:inset 9px 0 15px #a58a5215}.js-book-spread header{font:10px var(--font-serif);color:var(--accent);border-bottom:1px solid #d9c7af;justify-content:space-between;margin-bottom:21px;padding-bottom:12px;display:flex}.js-book-spread h3{font:22px/1.5 var(--font-serif);color:var(--accent);margin-bottom:16px}.js-book-spread p{font:14px/2.05 var(--font-serif);color:#44382c;margin-bottom:14px}.js-book-spread small{font:10px var(--font-serif);position:absolute;bottom:18px}.js-book-spread .js-book-quote{margin-top:50px;font-size:18px;line-height:2}.js-book-seal{color:var(--accent);font:14px var(--font-serif);margin-top:23px;display:block}.js-footer{border-top:1px solid var(--line);align-items:center;gap:28px;max-width:1250px;margin:auto;padding:36px 30px 44px;display:flex}.js-footer p{font:15px var(--font-serif);color:var(--muted);flex:1}.js-footer>a:not(.js-brand),.js-footer>span{color:var(--muted);font-size:12px}.js-dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:20px;width:min(850px,100% - 32px);max-height:90dvh;padding:24px 32px 30px;overflow:auto;box-shadow:0 30px 100px #21160d33}.js-dialog::backdrop{background:#30272066}.js-dialog-head{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;display:flex}.js-dialog .js-book-spread{min-height:410px;transform:none}.js-reader-controls{justify-content:space-between;align-items:center;margin-top:25px;font-size:14px;display:flex}.js-reveal{opacity:1;transform:none}.js-reveal[data-visible=false]{opacity:0;transform:translateY(22px)}.js-reveal[data-visible=true]{transition:opacity var(--reveal) var(--ease), transform var(--reveal) var(--ease)}.js-page-enter{animation:js-page-in var(--page) var(--ease) both}.js-memory-scene[data-play=yes] .js-photo,.js-memory-scene[data-play=yes] .js-voice-card,.js-memory-scene[data-play=yes] .book>div{animation:js-paper-in 1s var(--ease) both}.js-memory-scene .courtyard .js-photo{animation-delay:.1s}.js-memory-scene .voice .js-voice-card{animation-delay:.2s}.js-memory-scene .book>div{animation-delay:.3s}@keyframes js-page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes js-paper-in{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.js-heading.h1{font:500 clamp(40px, 5vw, 64px)/1.35 var(--font-serif)}.js-heading.h2{font:500 36px/1.45 var(--font-serif)}.js-heading.h3{font:500 23px/1.5 var(--font-serif)}.js-copy.body{color:var(--muted);max-width:650px;font-size:17px;line-height:1.9}.js-copy.eyebrow{color:var(--accent);letter-spacing:3px;font-size:12px}.js-copy.caption{color:var(--muted);font-size:13px;line-height:1.8}.js-group.stack{flex-direction:column;gap:22px;display:flex}.js-group.row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.js-group.split{grid-template-columns:1fr 1fr;gap:30px;display:grid}.js-group.center{flex-direction:column;align-items:center;gap:24px;display:flex}.js-group.swatches{flex-wrap:wrap;gap:24px;display:flex}.js-studio .js-section.studio{padding-top:76px;padding-bottom:40px}.js-swatch{flex-direction:column;gap:8px;width:104px;font-size:13px;display:flex}.js-swatch>div{border:1px solid #30272015;border-radius:9px;width:104px;height:76px}.js-swatch code{color:var(--muted);font-size:11px}.js-gallery-menu{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:12px;padding:30px 0 25px;display:flex}.js-gallery-menu a{background:var(--soft);border-radius:20px;padding:8px 12px;font-size:14px}.js-gallery-block{border-bottom:1px solid var(--line);content-visibility:auto;contain-intrinsic-size:auto 300px;grid-template-columns:230px 1fr;gap:45px;padding:55px 0;scroll-margin-top:110px;display:grid}.js-gallery-label h2{font:25px var(--font-serif);margin-bottom:14px}.js-gallery-label p{color:var(--muted);font-size:14px;line-height:1.9}.js-gallery-preview{flex-direction:column;gap:24px;min-width:0;display:flex}.js-gallery-preview .js-phone{width:310px}.js-gallery-preview .js-photo{max-width:220px}.js-gallery-preview .js-book-spread{transform:none}.js-gallery-preview .js-memory-scene.is-compact{background:var(--soft);border-radius:16px;height:500px;position:relative;overflow:hidden}.is-compact .js-memory.family{width:155px;top:40px;left:28px}.is-compact .js-memory.courtyard{width:140px;top:38px;right:28px}.is-compact .js-memory.voice{transform-origin:0 100%;bottom:70px;left:32px;transform:rotate(-7deg)scale(.85)}.is-compact .js-memory.book{transform-origin:100% 100%;bottom:42px;right:50px;transform:rotate(8deg)scale(.8)}[data-motion=off] *,[data-motion=off] :before,[data-motion=off] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-motion=off] .js-reveal{opacity:1!important;transform:none!important}.js-brand-assets{flex-wrap:wrap;align-items:center;gap:30px;display:flex}.js-brand-assets>img{border-radius:30px;box-shadow:0 15px 30px #30272015}.js-brand-assets p{color:var(--muted);margin:18px 0 12px;font-size:14px}.js-brand-assets>div>a:last-child{color:var(--accent);font-size:13px}