/* Hallmark · macrostructure: Photographic · tone: cinematic intimacy · anchor hue: forest
 * Nav: N9 Edge-aligned minimal · Footer: Ft5 Statement · Theme: Atelier / original-brand palette
 * Pre-emit critique: Philosophy 5 · Hierarchy 4 · Execution 4 · Specificity 5 · Restraint 4 · Variety 5 */
:root {
  --color-paper: oklch(95% .015 86); --color-paper-alt: oklch(91% .022 80);
  --color-ink: oklch(29% .028 148); --color-muted: oklch(45% .022 148);
  --color-forest: oklch(29% .032 148); --color-forest-raised: oklch(35% .035 148);
  --color-accent: oklch(70% .105 60); --color-light-accent: oklch(82% .065 70);
  --color-line: oklch(29% .028 148 / .22); --color-light-line: oklch(95% .015 86 / .28);
  --color-error: oklch(43% .15 30); --color-focus: oklch(50% .12 148);
  --color-scrim: oklch(16% .015 148 / .75); --color-video-overlay: oklch(16% .015 148 / .3); --color-film-ink: oklch(18% .015 148);
  --color-clear: oklch(95% .015 86 / 0); --color-highlight: oklch(87% .07 80);
  --font-display: 'Instrument Serif', Georgia, serif;
  --font-body: 'Manrope', sans-serif;
  --space-xs: .5rem; --space-sm: 1rem; --space-md: 1.5rem; --space-lg: 2rem;
  --space-xl: 3rem; --space-2xl: 5rem; --space-section: clamp(5rem, 10vw, 10rem);
  --gutter: clamp(1.25rem, 5.5vw, 6rem);
  --ease-out: cubic-bezier(.16,1,.3,1); --ease-in: cubic-bezier(.7,0,.84,0);
  --ease-in-out: cubic-bezier(.65,0,.35,1);
  --dur-micro: 120ms; --dur-short: 240ms; --dur-long: 440ms;
  --z-base: 1; --z-raised: 10; --z-sticky: 200; --z-modal: 400;
}
* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: 7rem; }
body { margin: 0; overflow-x: clip; background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); font-size: 14px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
::selection { background: var(--color-highlight); color: var(--color-ink); }
button,input,textarea,select { font: inherit; color: inherit; }
button,a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .4; }
button { border: 0; border-radius: 0; background: transparent; padding: 0; }
button,a { touch-action: manipulation; }
button:active,.button:active { transform: translateY(1px); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 5px; }
img { display: block; max-width: 100%; height: auto; }
figure,p,h1,h2,h3 { margin: 0; }
h1,h2,h3 { font-weight: 400; min-width: 0; }
h1,h2 { font-family: var(--font-display); line-height: .99; letter-spacing: -.025em; overflow-wrap: anywhere; }
h2 { font-size: clamp(3.7rem, 6.8vw, 7.5rem); }
p { max-width: 65ch; }
em { font-weight: 400; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link { position: fixed; top: 1rem; left: 1rem; z-index: var(--z-modal); padding: 1rem; background: var(--color-forest); color: var(--color-paper); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.section-space { padding: var(--space-section) var(--gutter); }
.site-header { position: absolute; top: 0; left: 0; width: 100%; z-index: var(--z-raised); display: flex; align-items: center; justify-content: space-between; padding: 1.4rem var(--gutter); }
.brand { display: inline-flex; align-items: center; min-height: 44px; }
.brand-logo { width: 180px; height: auto; }
.header-right { display: flex; align-items: center; gap: clamp(1.25rem,3vw,3.5rem); }
.language-switch { display: flex; align-items: center; gap: .4rem; font-size: 11px; letter-spacing: .05em; min-height: 44px; }
.current-language { opacity: .55; }
.header-inquiry { font-size: 12px; border-bottom: 1px solid var(--color-line); padding: .55rem 0; white-space: nowrap; }
.menu-toggle { display: flex; align-items: center; gap: 1rem; font-size: 12px; min-height: 44px; }
.menu-mark { width: 25px; display: grid; gap: 6px; }
.menu-mark i { height: 1px; width: 25px; display: block; background: var(--color-ink); }
.menu-mark i:last-child { width: 17px; margin-left: auto; transition: transform var(--dur-short) var(--ease-out); }
.menu-toggle:hover .menu-mark i:last-child { transform: translateX(-8px); }
.hero-scroll { height: 205svh; position: relative; }
.hero-stage { position: sticky; top: 0; height: 100svh; min-height: 640px; isolation: isolate; overflow: clip; }
.hero-art { position: absolute; inset: 0; }
.scene-photo { position: absolute; overflow: clip; }
.scene-photo img { width: 100%; height: 100%; object-fit: cover; }
.scene-main { left: 54%; top: 15%; width: 39%; height: 70%; transform: rotate(3deg); }
.scene-main img { object-position: 50% 57%; }
.scene-detail { left: 39%; top: 67%; width: 12%; height: 24%; transform: rotate(-8deg); }
.scene-small { left: 36%; top: 13%; width: 10%; height: 23%; transform: rotate(-7deg); }
.scene-canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; }
.webgl-ready .scene-canvas { opacity: 1; }
.webgl-ready .scene-photo { opacity: 0; }
.hero-text { position: absolute; left: var(--gutter); top: 25%; z-index: var(--z-base); pointer-events: none; }
.hero-lead { font-size: 12px; margin-bottom: 1.2rem; letter-spacing: .02em; }
.hero-text h1 { font-size: clamp(7rem,14.9vw,16rem); line-height: .79; letter-spacing: -.035em; }
.hero-text h1>span:first-child { display: block; }
.hero-text h1 em { display: block; margin-left: 2.5vw; margin-top: 1.7rem; font-size: 1.12em; }
.hero-descriptor { display: block; font-family: var(--font-body); font-size: 11px; letter-spacing: .04em; line-height: 1.5; margin-top: 2rem; margin-left: .4rem; }
.hero-bottom { position: absolute; bottom: 6%; left: var(--gutter); right: var(--gutter); display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.hero-bottom p { font-size: 12px; max-width: 20ch; line-height: 1.65; }
.scroll-cue { display: flex; align-items: center; gap: 1.2rem; font-size: 10px; padding-bottom: .25rem; margin-left: 4vw; }
.scroll-line { width: 1px; height: 38px; background: var(--color-line); position: relative; }
.scroll-line::after { content: ''; position: absolute; width: 3px; height: 8px; top: 0; left: -1px; background: var(--color-ink); }
.hero-film { display: flex; align-items: center; gap: .9rem; padding: .25rem; font-size: 11px; white-space: nowrap; }
.play-circle { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--color-ink); border-radius: 50%; transition: transform var(--dur-short) var(--ease-out); }
.hero-film:hover .play-circle { transform: scale(1.1); }
.play-symbol { width: 0; height: 0; border-top: 5px solid var(--color-clear); border-bottom: 5px solid var(--color-clear); border-left: 8px solid currentColor; display: inline-block; margin-left: 3px; }
.tiny-play { display: inline-block; width: 0; height: 0; border-top: 3px solid var(--color-clear); border-bottom: 3px solid var(--color-clear); border-left: 5px solid currentColor; margin-left: .5rem; }
.hero-end { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: 8vh var(--gutter); opacity: 0; pointer-events: none; color: var(--color-paper); }
.hero-end p { font-family: var(--font-display); font-size: clamp(5rem,10vw,12rem); line-height: .97; letter-spacing: -.03em; }
.scene-toggle { position: absolute; bottom: 1.5rem; right: var(--gutter); font-size: 10px; z-index: var(--z-raised); background: var(--color-paper); padding: .35rem .7rem; min-height: 44px; opacity: 0; pointer-events: none; }
.scene-progress { position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background: var(--color-line); }
.scene-progress span { display: block; width: 100%; height: 100%; transform-origin: left center; transform: scaleX(0); background: var(--color-accent); }
.hero-scroll.is-paused { height: 100svh; }
.hero-scroll.is-paused .hero-stage { position: relative; }
.hero-scroll.scene-fallback { height: 100svh; }
.scene-fallback .hero-stage { position: relative; }
.manifesto { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 10vw; padding-top: 10rem; padding-bottom: 10rem; }
.manifesto h2 { font-size: clamp(4.5rem,8vw,9rem); }
.handwritten { display: block; color: var(--color-muted); font-family: var(--font-display); font-style: italic; font-size: clamp(2.2rem,3vw,4rem); margin-left: 6vw; margin-top: 1.8rem; transform: rotate(-7deg); }
.manifesto-right { padding-top: 2rem; }
.manifesto-photo { width: 63%; margin: 0 auto 3rem; transform: rotate(5deg); }
.manifesto-photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.prose { font-size: 15px; line-height: 1.85; }
.small-copy { font-size: 12px; color: var(--color-muted); line-height: 1.8; margin-top: 1.5rem; }
.editorial-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; margin-top: 1.8rem; padding-bottom: .25rem; border-bottom: 1px solid currentColor; position: relative; max-width: 100%; white-space: nowrap; }
.editorial-link::after { content: ''; position: absolute; bottom: -1px; left: 0; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform var(--dur-short) var(--ease-out); }
.editorial-link:hover::after { transform: scaleX(1); transform-origin: left; }
.memories { background: var(--color-paper-alt); padding-top: 8rem; padding-bottom: 7rem; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 4rem; margin-bottom: 5rem; }
.section-heading h2 { max-width: 15ch; }
.section-heading p { max-width: 35ch; font-size: 13px; padding-bottom: .25rem; }
.memory-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); align-items: start; gap: 4vw 3vw; }
.memory { min-width: 0; }
.memory-1 { grid-column: 1/6; }
.memory-2 { grid-column: 8/13; padding-top: 9vw; }
.memory-3 { grid-column: 2/5; padding-top: 1vw; }
.memory-4 { grid-column: 6/10; padding-top: 6vw; }
.memory-5 { grid-column: 10/13; padding-top: 16vw; }
.memory-6 { grid-column: 1/5; margin-top: -10vw; }
.photo-open { position: relative; width: 100%; display: block; overflow: clip; }
.photo-open img { width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; transition: transform 650ms var(--ease-out); }
.photo-open:hover img { transform: scale(1.035); }
.memory-3 img { aspect-ratio: 4/5; }
.memory-4 img { aspect-ratio: 3/4; }
.memory-6 img { aspect-ratio: 4/3; }
.photo-affordance { position: absolute; bottom: .7rem; right: .7rem; width: 32px; height: 32px; display: grid; place-items: center; background: var(--color-paper); font-size: 22px; line-height: 1; }
.memory figcaption { display: flex; justify-content: space-between; gap: 1rem; font-size: 11px; padding-top: .9rem; }
.memory figcaption span:last-child { color: var(--color-muted); font-size: 10px; }
.memories>.editorial-link { margin-left: 50%; margin-top: 4rem; }
.films-section { background: var(--color-forest); color: var(--color-paper); padding-top: 8rem; padding-bottom: 5rem; }
.films-section h2 { max-width: 13ch; }
.films-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3vw; }
.film-card:nth-child(2) { margin-top: 7rem; }
.film-screen { position: relative; aspect-ratio: 16/9; background: var(--color-film-ink); overflow: clip; }
.film-screen>img { width: 100%; height: 100%; object-fit: cover; }
.vimeo-mount,.vimeo-mount iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vimeo-mount { opacity: 0; pointer-events: none; }
.film-screen.is-playing .vimeo-mount { opacity: 1; }
.film-start { position: absolute; inset: 0; display: flex; justify-content: center; align-items: center; gap: 1rem; color: var(--color-paper); background: var(--color-video-overlay); }
.film-start .play-symbol { border-top-width: 8px; border-bottom-width: 8px; border-left-width: 12px; }
.film-screen.is-playing .film-start { display: none; }
.film-screen.is-playing .film-poster { opacity: 0; }
.film-caption { margin-top: 1.2rem; display: flex; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap; }
.film-caption h3 { font-family: var(--font-display); font-size: 28px; letter-spacing: -.015em; }
.film-caption>div { display: flex; gap: 1rem; }
.text-button { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; font-size: 11px; white-space: nowrap; }
.text-button:hover { opacity: .65; }
.film-footnote { font-size: 10px; margin-top: 3rem; opacity: .7; }
.films-section button:focus-visible { outline-color: var(--color-light-accent); }
.about-preview { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 12vw; padding-top: 9rem; padding-bottom: 10rem; }
.about-visual { width: 82%; margin-left: 10%; transform: rotate(-4deg); position: relative; }
.about-visual img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; }
.photo-edge { position: absolute; right: -1.6rem; top: 0; writing-mode: vertical-rl; font-size: 10px; letter-spacing: .1em; }
.about-copy h2 { margin-bottom: 2rem; }
.about-copy p { max-width: 40ch; font-size: 14px; line-height: 1.9; }
.invitation { background: var(--color-paper-alt); padding: 7rem var(--gutter) 9rem; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); align-items: center; gap: 9vw; position: relative; }
.invitation-image { width: 85%; transform: rotate(7deg); }
.invitation-image img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.invitation-copy h2 { font-size: clamp(3.7rem,6.5vw,7.5rem); }
.invitation-copy p { max-width: 39ch; margin-top: 1.8rem; font-size: 13px; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 52px; padding: .95rem 1.8rem; font-size: 12px; white-space: nowrap; transition: transform var(--dur-short) var(--ease-out),opacity var(--dur-short) var(--ease-out); }
.button-dark { background: var(--color-forest); color: var(--color-paper); }
.button:hover { transform: translateY(-2px); }
.invitation .button { margin-top: 2rem; }
.invitation-signature { position: absolute; right: var(--gutter); bottom: 1rem; font-family: var(--font-display); font-size: 3rem; font-style: italic; transform: rotate(-6deg); opacity: .6; }
.site-footer { background: var(--color-forest); color: var(--color-paper); padding: 5rem var(--gutter) 1.5rem; }
.footer-statement { font-family: var(--font-display); font-size: clamp(2.8rem,5.2vw,6rem); line-height: 1.05; letter-spacing: -.02em; }
.footer-main { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-top: 4rem; margin-bottom: 3rem; }
.footer-brand .brand-logo { width: 230px; }
.footer-contact { display: grid; gap: .25rem; font-size: 12px; text-align: right; }
.footer-contact a { min-height: 30px; }
.footer-meta { border-top: 1px solid var(--color-light-line); padding-top: 1rem; display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; font-size: 10px; }
.footer-meta a,.motion-toggle { min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; }
.motion-toggle { gap: .3rem; font-size: 10px; }
.site-footer :focus-visible { outline-color: var(--color-light-accent); }
dialog { border: 0; padding: 0; background: var(--color-paper); color: var(--color-ink); max-width: 100vw; max-height: 100svh; }
dialog::backdrop { background: var(--color-scrim); }
dialog[open] { animation: dialog-in var(--dur-long) var(--ease-out); }
@keyframes dialog-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.menu-dialog { width: 100vw; height: 100svh; margin: 0; padding: 1.4rem var(--gutter) 3rem; }
.menu-top,.menu-bottom { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.menu-top .text-button { font-size: 12px; }
.menu-top .text-button span { font-size: 28px; margin-left: .75rem; }
.menu-dialog nav { display: grid; gap: 1.4rem; margin-top: clamp(4rem,12vh,9rem); margin-bottom: 4rem; }
.menu-dialog nav a { font-family: var(--font-display); font-size: clamp(3.2rem,6.8vw,8rem); line-height: 1; width: fit-content; min-height: 44px; }
.menu-bottom { font-size: 12px; }
.photo-dialog { width: 100vw; height: 100svh; margin: 0; background: var(--color-forest); color: var(--color-paper); }
.dialog-bar { display: flex; justify-content: space-between; align-items: center; padding: .75rem 2rem; gap: 1rem; }
.photo-dialog figure { height: calc(100svh - 80px); display: flex; flex-direction: column; align-items: center; padding: 0 2rem 1.25rem; gap: 1rem; }
.photo-dialog figure img { object-fit: contain; max-height: calc(100% - 40px); max-width: 100%; width: auto; height: auto; }
.photo-dialog figcaption { font-size: 12px; }
.film-dialog { width: min(1100px,94vw); padding-bottom: 1.5rem; }
.film-dialog .dialog-bar h2 { font-family: var(--font-body); font-size: 12px; letter-spacing: 0; }
.film-dialog-mount { aspect-ratio: 16/9; background: var(--color-film-ink); }
.film-dialog iframe { width: 100%; height: 100%; display: block; border: 0; }
.film-external { margin: .5rem 2rem 0; }
body.dialog-open { overflow-y: hidden; }
.page-intro { padding-top: 12rem; }
.page-intro h1,.contact-intro h1,.privacy-page h1,.not-found h1 { font-size: clamp(4rem,8.5vw,10rem); }
.intro-copy { font-size: 16px; line-height: 1.85; margin-top: 2rem; max-width: 46ch; }
.about-intro { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); align-items: center; gap: 8vw; }
.about-portrait { transform: rotate(3deg); }
.about-portrait img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.about-portrait figcaption { font-size: 11px; margin-top: 1rem; }
.about-letter { padding-top: 0; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 10vw; align-items: center; }
.about-letter>p { font-family: var(--font-display); font-size: clamp(2rem,3vw,3.5rem); line-height: 1.3; }
.portrait-pair { display: flex; gap: 2rem; align-items: center; }
.portrait-pair img:first-child { width: 60%; transform: rotate(-5deg); }
.portrait-pair img:last-child { width: 35%; margin-top: 8rem; }
.approach { padding-top: 4rem; background: var(--color-paper-alt); }
.approach article { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8vw; padding: 3rem 0; border-bottom: 1px solid var(--color-line); }
.approach h2 { font-size: clamp(3rem,5vw,5rem); }
.approach p { max-width: 42ch; align-self: center; }
.photography-intro { position: relative; }
.photography-intro h1 { max-width: 15ch; }
.service-photo { width: 62%; margin: 4rem 0 3rem auto; }
.service-photo img { width: 100%; aspect-ratio: 5/4; object-fit: cover; object-position: 50% 58%; }
.service-prose { max-width: 52ch; font-size: 16px; margin-left: 10vw; }
.faq-section>p { margin: 2rem 0 3rem; }
.faq-list { max-width: 850px; margin: 0 0 3rem auto; }
.faq-list details { border-bottom: 1px solid var(--color-line); padding: 1.5rem 0; }
.faq-list summary { cursor: pointer; font-size: 16px; }
.faq-list p { padding-top: 1.2rem; margin-left: 1rem; font-size: 14px; line-height: 1.8; }
.film-intro { padding-bottom: 5rem; }
.film-intro+.films-section { padding-top: 5rem; }
.privacy-page { padding-top: 12rem; max-width: 1050px; margin: auto; }
.privacy-page section { margin-top: 3.5rem; }
.privacy-page section h2 { font-family: var(--font-body); font-size: 20px; margin-bottom: 1rem; line-height: 1.4; }
.privacy-page section p { max-width: 65ch; }
.privacy-external { margin-top: 3rem; }
.privacy-external a { text-decoration: underline; }
.not-found { padding-top: 13rem; min-height: 85svh; }
.not-found p { margin: 2rem 0; }
.contact-page { padding-top: 12rem; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 8vw; }
.contact-intro h1 { font-size: clamp(4rem,6.5vw,7rem); }
.contact-intro .intro-copy { font-size: 14px; max-width: 33ch; }
.contact-art { width: 63%; margin: 3rem 0 1rem 3vw; transform: rotate(-5deg); }
.contact-art img { width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: 50% 60%; }
.form-shell { padding-top: 1rem; min-width: 0; }
.form-steps { display: flex; padding: 0; margin: 0 0 3rem; list-style: none; border-bottom: 1px solid var(--color-line); gap: 1rem; justify-content: space-between; }
.form-steps button { padding-bottom: 1rem; min-height: 60px; display: grid; gap: .2rem; text-align: left; font-size: 10px; position: relative; }
.form-steps button[aria-current="step"]::after { content: ''; position: absolute; bottom: -1px; height: 2px; background: var(--color-ink); width: 100%; }
.step-number { font-family: var(--font-display); font-size: 23px; }
.form-panel { margin: 0; padding: 0; border: 0; min-width: 0; animation: panel-in var(--dur-long) var(--ease-out); }
@keyframes panel-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.form-panel>legend { font-family: var(--font-display); font-size: 40px; margin-bottom: 2rem; line-height: 1; }
.fields-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .9rem 1.5rem; }
.form-field { min-width: 0; margin-bottom: 1.1rem; }
.form-field label { display: block; font-size: 11px; margin-bottom: .6rem; }
.optional { font-size: 9px; color: var(--color-muted); }
.form-field input,.form-field textarea,.form-field select { display: block; width: 100%; border: 0; border-bottom: 1px solid var(--color-line); background: transparent; padding: .7rem .25rem; border-radius: 0; min-height: 46px; font-size: 16px; }
.form-field textarea { resize: vertical; border: 1px solid var(--color-line); padding: 1rem; font-size: 14px; line-height: 1.7; min-height: 180px; }
.form-field input::placeholder,.form-field textarea::placeholder { color: var(--color-muted); opacity: .8; }
.form-field input:disabled { opacity: .55; cursor: not-allowed; }
.form-field [aria-invalid="true"] { border-color: var(--color-error); }
.field-error { font-size: 11px; color: var(--color-error); margin-top: .4rem; min-height: 1.7em; }
.field-error:empty { visibility: hidden; }
.field-hint { font-size: 10px; color: var(--color-muted); line-height: 1.7; margin-top: .5rem; }
.check-label { display: flex; gap: .75rem; align-items: flex-start; font-size: 11px; line-height: 1.7; min-height: 44px; margin-bottom: 1rem; cursor: pointer; }
.check-label input { accent-color: var(--color-forest); width: 16px; height: 16px; flex: 0 0 16px; margin: .15rem 0 0; }
.check-label a { text-decoration: underline; }
.service-choices { margin: .7rem 0 1.8rem; padding: 0; border: 0; }
.service-choices legend { font-size: 11px; margin-bottom: .75rem; }
.choices-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; }
.choice { position: relative; min-width: 0; }
.choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice span { display: flex; align-items: center; justify-content: center; border: 1px solid var(--color-line); min-height: 48px; padding: .65rem .4rem; font-size: 11px; cursor: pointer; white-space: nowrap; }
.choice input:checked+span { background: var(--color-forest); color: var(--color-paper); border-color: var(--color-forest); }
.choice input:focus-visible+span { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.budget-row { display: grid; grid-template-columns: minmax(0,1fr) 85px; gap: 1rem; }
.story-meta { display: flex; align-items: flex-start; gap: 1rem; }
.story-meta .field-hint { flex: 1; }
.story-meta>span { font-size: 9px; padding-top: .5rem; white-space: nowrap; }
.consent { margin-top: 2rem; }
.form-navigation { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border-top: 1px solid var(--color-line); margin-top: 2rem; padding-top: 1.5rem; }
.step-counter { font-size: 10px; color: var(--color-muted); margin-right: auto; }
.form-retention { font-size: 10px; color: var(--color-muted); margin-top: 1.5rem; }
.form-status { font-size: 12px; color: var(--color-error); margin-bottom: 1.2rem; }
.form-status:empty { display: none; }
.inquiry-review { margin: 0; }
.inquiry-review>div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); gap: 1rem; border-bottom: 1px solid var(--color-line); padding: .7rem 0; }
.inquiry-review dt { font-size: 10px; color: var(--color-muted); }
.inquiry-review dd { font-size: 12px; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.delivery-note { margin-top: 2rem; font-size: 12px; }
.delivery-actions { margin-top: 1.5rem; display: flex; gap: 1rem; flex-direction: column; align-items: flex-start; }
.delivery-actions .editorial-link { margin-top: 0; }
.form-handoff h2 { font-size: 48px; margin-bottom: 1.5rem; }
.form-handoff>p { font-size: 13px; }
.handoff-mark { display: block; font-size: 30px; color: var(--color-muted); margin-bottom: 1rem; }
.handoff-text { display: block; width: 100%; margin-top: 2rem; padding: 1rem; border: 1px solid var(--color-line); background: transparent; font-size: 12px; resize: vertical; }
.handoff-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.copy-status { font-size: 11px; margin-top: 1rem; }
@media (min-width:1800px) { .hero-text h1 { font-size: 17vw; } }
@media (max-width:1100px) {
 .header-inquiry { display: none; }
 .hero-stage { min-height: 590px; }
 .hero-text { top: 30%; }
 .hero-text h1 { font-size: 16vw; }
 .scene-main { width: 43%; left: 51%; }
 .section-heading { gap: 2rem; }
 .section-heading p { max-width: 30ch; }
 .manifesto { gap: 6vw; }
 .footer-meta { flex-wrap: wrap; gap: .5rem 1.5rem; }
 .contact-page { gap: 5vw; }
 .form-panel>legend { font-size: 34px; }
 .fields-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
}
@media (max-width:800px) {
 .section-heading { display: block; margin-bottom: 3rem; }
 .section-heading p { max-width: 42ch; margin-top: 1.5rem; }
 .manifesto { grid-template-columns: minmax(0,1fr); gap: 3rem; padding-top: 6rem; padding-bottom: 6rem; }
 .manifesto-right { padding-top: 0; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 2rem; }
 .manifesto-photo { grid-row: span 3; margin: 1rem 0; width: 90%; }
 .manifesto-right .editorial-link { width: fit-content; }
 .prose { font-size: 13px; }
 .films-grid { grid-template-columns: minmax(0,1fr); gap: 3rem; }
 .film-card:nth-child(2) { margin-top: 0; }
 .films-section { padding-top: 5rem; }
 .about-preview { gap: 7vw; }
 .invitation { gap: 5vw; }
 .contact-page { grid-template-columns: minmax(0,1fr); gap: 3rem; padding-top: 9rem; }
 .contact-intro { position: relative; padding-right: 28%; }
 .contact-intro h1 { font-size: clamp(4rem,9vw,6rem); }
 .contact-art { width: 22%; position: absolute; right: 0; top: 1rem; margin: 0; }
 .contact-intro>.editorial-link { margin-top: 1rem; }
 .contact-intro .small-copy { display: none; }
 .fields-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem 1.5rem; }
 .form-shell { padding-top: 0; }
}
@media (max-width:640px) {
 :root { --gutter: 1.25rem; --space-section: 4.5rem; }
 body { font-size: 13px; }
 h2 { font-size: clamp(3.2rem,11.5vw,4.8rem); }
 .site-header { padding-top: 1rem; padding-bottom: 1rem; }
 .brand-logo { width: 142px; }
 .header-right { gap: 1rem; }
 .language-switch { font-size: 10px; gap: .25rem; }
 .menu-toggle { gap: .65rem; }
 .menu-toggle>span:first-child { display: none; }
 .menu-toggle { min-width: 44px; justify-content: flex-end; }
 .hero-scroll { height: 145svh; }
 .hero-stage { min-height: 660px; height: 100svh; }
 .scene-main { left: 25%; top: 20%; width: 69%; height: 54%; transform: rotate(4deg); }
 .scene-small { left: 5%; top: 62%; width: 26%; height: 23%; transform: rotate(-8deg); }
 .scene-detail { left: 72%; top: 69%; width: 20%; height: 17%; transform: rotate(7deg); }
 .hero-text { left: var(--gutter); top: 15%; }
 .hero-lead { font-size: 10px; margin-bottom: 1rem; }
 .hero-text h1 { font-size: clamp(5.3rem,24vw,9.5rem); line-height: .84; }
 .hero-text h1 em { margin-left: 9vw; margin-top: .7rem; }
 .hero-descriptor { margin-top: 1.25rem; max-width: 25ch; font-size: 9px; margin-left: .2rem; }
 .hero-bottom { bottom: 4%; align-items: center; gap: .5rem; }
 .hero-bottom p { font-size: 9px; max-width: 17ch; }
 .scroll-cue { display: none; }
 .hero-film { font-size: 9px; gap: .6rem; white-space: nowrap; text-align: left; }
 .play-circle { flex: 0 0 40px; width: 40px; height: 40px; }
 .hero-end { padding-bottom: 10vh; }
 .hero-end p { font-size: clamp(3.8rem,13vw,6rem); }
 .scene-toggle { bottom: 1.25rem; right: var(--gutter); font-size: 9px; min-height: 44px; }
 .manifesto { padding-top: 5rem; padding-bottom: 5rem; }
 .manifesto h2 { font-size: 16vw; }
 .handwritten { font-size: 2.2rem; margin-left: 22vw; margin-top: .5rem; }
 .manifesto-right { display: block; }
 .manifesto-photo { width: 58%; margin: 0 8vw 2.5rem auto; }
 .prose { font-size: 14px; }
 .small-copy { font-size: 11px; }
 .memory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2.5rem 1.25rem; }
 .memory-1 { grid-column: 1/3; padding: 0; margin: 0; width: 87%; }
 .memory-2 { grid-column: 2/3; padding: 0; margin: 0; }
 .memory-3 { grid-column: 1/2; grid-row: 2; padding: 2rem 0 0; margin: 0; }
 .memory-4 { grid-column: 1/3; padding: 0; margin: 0 0 0 auto; width: 83%; }
 .memory-5 { grid-column: 1/2; padding: 0; margin: 0; }
 .memory-6 { grid-column: 2/3; padding: 3rem 0 0; margin: 0; }
 .memory-6 img { aspect-ratio: 3/4; }
 .memory figcaption { font-size: 9px; gap: .25rem; }
 .memory figcaption span:last-child { display: none; }
 .memories>.editorial-link { margin: 3rem 0 0; }
 .memories { padding-top: 4.5rem; padding-bottom: 4rem; }
 .film-caption { gap: .3rem; }
 .film-caption h3 { font-size: 25px; }
 .film-caption>div { gap: 1.25rem; }
 .films-section { padding-top: 4.5rem; padding-bottom: 3rem; }
 .film-footnote { margin-top: 2rem; }
 .about-preview { grid-template-columns: minmax(0,1fr); gap: 3rem; padding-top: 5rem; padding-bottom: 5rem; }
 .about-visual { width: 67%; margin-left: 10%; }
 .about-copy h2 { margin-bottom: 1.5rem; }
 .about-copy p { font-size: 13px; }
 .invitation { grid-template-columns: minmax(0,1fr); gap: 2.5rem; padding: 4rem var(--gutter) 5rem; }
 .invitation-image { width: 45%; margin: 0 8vw 0 auto; }
 .invitation-copy h2 { font-size: 12vw; }
 .invitation-copy p { font-size: 12px; }
 .invitation-signature { font-size: 2rem; bottom: .8rem; }
 .button { min-height: 52px; padding: .9rem 1.25rem; font-size: 11px; }
 .site-footer { padding-top: 3rem; }
 .footer-statement { font-size: 2.7rem; }
 .footer-main { display: block; margin-top: 2.5rem; margin-bottom: 2rem; }
 .footer-brand .brand-logo { width: 190px; }
 .footer-contact { text-align: left; margin-top: 1.5rem; font-size: 12px; }
 .footer-meta { justify-content: flex-start; gap: .1rem 1.25rem; font-size: 9px; }
 .footer-meta>span { flex-basis: 100%; }
 .footer-meta>span:nth-child(2) { margin-bottom: .5rem; }
 .menu-dialog { padding-top: 1rem; }
 .menu-top { gap: 1rem; }
 .menu-top .brand-logo { width: 140px; }
 .menu-top .text-button { font-size: 10px; gap: .25rem; }
 .menu-top .text-button span { margin-left: .25rem; }
 .menu-dialog nav { margin-top: 4rem; gap: 1.6rem; }
 .menu-dialog nav a { font-size: clamp(2.35rem,9vw,3.8rem); }
 .menu-bottom { display: grid; gap: .8rem; font-size: 11px; }
 .dialog-bar { padding: .75rem 1rem; gap: .5rem; }
 .photo-dialog .dialog-bar { flex-wrap: wrap; }
 .photo-dialog .dialog-bar button { font-size: 9px; min-height: 44px; }
 .photo-dialog .dialog-bar button:nth-child(2) { order: -1; width: 100%; justify-content: flex-end; }
 .photo-dialog figure { height: calc(100svh - 120px); padding: 0 1rem 1rem; }
 .film-dialog { width: 100vw; }
 .film-dialog .dialog-bar h2 { font-size: 10px; }
 .film-external { margin-left: 1rem; }
 .page-intro,.privacy-page { padding-top: 8.5rem; }
 .page-intro h1,.privacy-page h1,.not-found h1 { font-size: 14vw; }
 .intro-copy { font-size: 14px; margin-top: 1.5rem; }
 .about-intro { grid-template-columns: minmax(0,1fr); gap: 3rem; }
 .about-portrait { width: 70%; margin-left: auto; }
 .about-letter { grid-template-columns: minmax(0,1fr); gap: 3rem; padding-top: 0; }
 .about-letter>p { font-size: 1.8rem; }
 .portrait-pair { gap: 1.5rem; }
 .portrait-pair img:last-child { margin-top: 4rem; }
 .approach { padding-top: 1.5rem; }
 .approach article { grid-template-columns: minmax(0,1fr); gap: 1.25rem; padding: 2rem 0; }
 .approach h2 { font-size: 2.8rem; }
 .approach p { font-size: 13px; }
 .service-photo { width: 88%; margin: 2.5rem 0 2rem auto; }
 .service-prose { margin-left: 0; font-size: 14px; }
 .faq-list summary { font-size: 14px; }
 .faq-list p { font-size: 12px; }
 .contact-page { padding-top: 8rem; gap: 2rem; }
 .contact-intro { padding-right: 0; }
 .contact-intro h1 { font-size: 15vw; }
 .contact-art { display: none; }
 .contact-intro .intro-copy { font-size: 12px; max-width: 34ch; margin-top: 1.25rem; }
 .contact-intro>.editorial-link { font-size: 11px; }
 .form-steps { margin-bottom: 2rem; gap: .75rem; }
 .form-steps button { font-size: 9px; }
 .step-number { font-size: 22px; }
 .form-panel>legend { font-size: 36px; margin-bottom: 1.5rem; }
 .fields-grid { grid-template-columns: minmax(0,1fr); gap: .25rem; }
 .form-field { margin-bottom: 1.2rem; }
 .form-field label { font-size: 11px; }
 .choice span { font-size: 10px; }
 .story-meta { gap: .75rem; }
 .form-navigation { margin-top: 1.5rem; gap: .75rem; }
 .inquiry-review>div { grid-template-columns: minmax(0,1fr); gap: .25rem; }
 .privacy-page section h2 { font-size: 17px; }
 .privacy-page section p { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *,*::before,*::after { animation-duration: 120ms !important; animation-iteration-count: 1 !important; transition-duration: 120ms !important; }
 .hero-scroll { height: 100svh; }
 .hero-stage { position: relative; }
 .scene-canvas { display: none; }
 .webgl-ready .scene-photo { opacity: 1; }
 .scene-photo { transform: none; }
 .photo-open:hover img { transform: none; }
}
.motion-reduced .hero-scroll { height: 100svh; }
.motion-reduced .hero-stage { position: relative; }
.motion-reduced .scene-photo { opacity: 1; }
.motion-reduced .scene-canvas { display: none; }
.motion-reduced .hero-text,.motion-reduced .hero-bottom { opacity: 1 !important; transform: none !important; }
.motion-reduced .hero-end { opacity: 0 !important; }
/* Second direction: tidal light, sculptural prints, a personal invitation. */
.hero-stage>.water-canvas { position:absolute;inset:0;width:100%;height:100%;z-index:-2;opacity:.85; }
.hero-stage::after { content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(100deg,rgba(244,239,225,.6),transparent 65%); }
.hero-text h1 { text-shadow:0 2px 30px rgba(245,239,220,.15); }
.hero-lead { display:flex;align-items:center;gap:1rem; }
.hero-lead::before { content:'';width:40px;height:1px;background:currentColor; }
.scene-photo { box-shadow:0 25px 70px #15271d33; }
.hero-film .play-circle { position:relative; }
.hero-film .play-circle::after,.ocean-play .play-circle::after { content:'';position:absolute;inset:-8px;border:1px solid currentColor;border-radius:50%;opacity:.3;animation:tidal-pulse 4s ease-in-out infinite; }
@keyframes tidal-pulse { 50% { transform:scale(1.14);opacity:.08; } }
.button { position:relative;overflow:hidden;isolation:isolate;transition:box-shadow .5s,transform .5s,background .4s; }
.button::after { content:'';position:absolute;inset:-100% -60%;z-index:-1;background:linear-gradient(110deg,transparent 42%,#ffffff22 50%,transparent 58%);transform:translateX(-80%);transition:transform .9s; }
.button:hover::after { transform:translateX(80%); }
.button:hover { box-shadow:0 12px 25px #1f302122;transform:translateY(-3px); }
.manifesto { background:radial-gradient(ellipse at 0% 50%,#b4b8a326,transparent 65%); }
.memories { position:relative;isolation:isolate;background:radial-gradient(ellipse at 70% 30%,#f8f1df 0%,#e6e1d4 45%,#cdd0bf 100%);overflow:hidden; }
.memories::before { content:'lo que permanece.';position:absolute;top:46%;left:-6%;white-space:nowrap;font:italic 19vw/.9 var(--font-display);color:#58674812;transform:rotate(-90deg);pointer-events:none;z-index:-1; }
.memories::after { content:'';position:absolute;inset:0 var(--gutter);border-inline:1px solid #30463112;pointer-events:none;z-index:-1; }
.gallery-axis { display:flex;justify-content:space-between;border-top:1px solid var(--color-line);padding:1rem 0 4rem;font-size:9px;letter-spacing:.18em; }
.memory { perspective:1400px;position:relative; }
.memory .photo-open { padding:clamp(5px,1vw,13px);background:#f9f6ed;box-shadow:2px 4px 5px #24311e12,14px 30px 55px #24311e22;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .7s var(--ease-out),box-shadow .7s;transform-style:preserve-3d; }
.memory:nth-child(3n+1) { rotate:-3deg; }
.memory:nth-child(3n+2) { rotate:3deg; }
.memory:nth-child(3n) { rotate:-5deg; }
.memory .photo-open::after { content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--glow-x,50%) var(--glow-y,50%),#fff4,transparent 60%);opacity:0;transition:opacity .5s;pointer-events:none;mix-blend-mode:soft-light; }
.memory .photo-open:hover { box-shadow:2px 6px 7px #24311e15,20px 40px 65px #24311e35; }
.memory .photo-open:hover::after { opacity:1; }
.memory.in-view .photo-open img { animation:print-arrive 1.2s var(--ease-out) both; }
@keyframes print-arrive { from { clip-path:inset(8% 0 0 0);transform:scale(1.065); } to { clip-path:inset(0);transform:scale(1); } }
.photo-affordance { border-radius:50%;background:#f8f3e4df;backdrop-filter:blur(8px);bottom:1.25rem;right:1.25rem;transition:rotate .4s,scale .4s; }
.photo-open:hover .photo-affordance { rotate:90deg;scale:1.15; }
.memory figcaption { padding:1.2rem .3rem; }
.ocean-interlude { min-height:95svh;position:relative;isolation:isolate;display:grid;place-items:center;text-align:center;overflow:hidden;background:#173d36;color:#f6eedc;padding:7rem var(--gutter); }
.ocean-interlude>.water-canvas,.ocean-video,.ocean-vignette { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3; }
.ocean-video { opacity:0;z-index:-2;transition:opacity 2s;mix-blend-mode:screen; }
.ocean-video.is-playing { opacity:.48; }
.ocean-vignette { z-index:-1;background:linear-gradient(0deg,#1029208c,transparent 70%),radial-gradient(ellipse,#17332822,#1428209c); }
.ocean-copy { max-width:100%; }
.eyebrow { font-size:10px;letter-spacing:.23em;margin:0 auto 3rem; }
.ocean-copy h2 { font-size:clamp(4rem,8.8vw,10rem); }
.ocean-copy h2 em { color:#e3cca0; }
.ocean-play { display:flex;align-items:center;justify-content:center;gap:1.5rem;margin:3rem auto 1rem;font-size:12px; }
.ocean-play .play-circle { width:68px;height:68px;border-color:#e9dfcaaa;position:relative;transition:scale .5s; }
.ocean-play:hover .play-circle { scale:1.1; }
.ocean-credit { font-size:10px;letter-spacing:.08em;margin:2rem auto 0;opacity:.75; }
.ocean-coordinate { position:absolute;bottom:2rem;right:var(--gutter);font:italic 24px var(--font-display); }
.youtube-mount { aspect-ratio:16/9;min-height:200px;background:#12241b; }
#youtube-dialog>.editorial-link { margin-left:2rem; }
.contact-page { background:radial-gradient(ellipse at 5% 15%,#bcc4ac44,transparent 50%),linear-gradient(135deg,#f4f0e6,#ece7db); }
.form-shell { background:#fcfaf3b3;border:1px solid #65724d33;padding:2.5rem;box-shadow:0 30px 90px #2837200c;position:relative; }
.form-shell::before { content:'';position:absolute;left:-1px;top:2rem;height:6rem;width:2px;background:#aa7c47; }
.form-panel { animation:invitation-panel .7s var(--ease-out); }
@keyframes invitation-panel { from { opacity:0;transform:perspective(1000px) rotateX(5deg) translateY(20px); } to { opacity:1;transform:none; } }
.form-panel>legend { font-size:3rem;font-style:italic; }
.form-field input,.form-field select { transition:background .3s,border-color .3s; }
.form-field input:focus,.form-field select:focus { background:#fff9;border-bottom-color:#344936; }
.choice span { transition:background .3s,box-shadow .3s,transform .3s; }
.choice input:checked+span { box-shadow:inset 0 0 0 1px #a98a59; }
.choice:hover span { transform:translateY(-2px); }
.phone-control { display:flex;align-items:center;gap:.6rem; }
.phone-control input { min-width:0; }
.country-trigger { white-space:nowrap;font-size:11px;min-height:46px;border-bottom:1px solid var(--color-line);padding:0 .3rem; }
.picker-dialog { width:min(480px,calc(100vw - 2rem));padding:2rem;max-height:85svh;box-shadow:0 30px 120px #13201755; }
.picker-heading { display:flex;gap:1rem;justify-content:space-between;align-items:start;margin-bottom:1.5rem; }
.picker-heading h2 { font-size:2.8rem;max-width:12ch; }
.picker-close { min-width:44px;min-height:44px;font-size:30px; }
.country-dialog>label { display:block;font-size:12px;margin-bottom:.5rem; }
.country-dialog>input { width:100%;padding:1rem;border:1px solid var(--color-line);background:#fff8; }
.country-results { display:grid;max-height:40svh;overflow:auto;margin-top:1rem; }
.country-results button { text-align:left;padding:.85rem;font-size:13px;border-bottom:1px solid #394d2922;min-height:44px; }
.country-results button:hover,.country-results button[aria-pressed=true] { background:#dde2ce; }
.country-count { font-size:10px;margin-top:1rem; }
.native-date { position:absolute!important;opacity:0;width:1px!important;height:1px!important;min-height:0!important;pointer-events:none; }
.date-trigger { min-height:56px;width:100%;text-align:left;border:1px solid var(--color-line);padding:.75rem 1rem;background:linear-gradient(100deg,#fff8,#e9e9dc66);font-size:15px; }
.date-trigger::after { content:'▦';float:right;font-size:20px; }
.calendar-navigation { display:grid;grid-template-columns:40px 1fr 90px 40px;gap:.3rem;margin:1rem 0; }
.calendar-navigation button { min-height:44px;font-size:28px; }
.calendar-navigation select { min-width:0;border:0;background:transparent;font-size:14px; }
.calendar-week,.calendar-days { display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:3px; }
.calendar-week { font-size:10px;margin:1rem 0; }
.calendar-days button { aspect-ratio:1;min-height:38px;border-radius:50%;font-size:13px; }
.calendar-days button:hover:not(:disabled),.calendar-days button[aria-pressed=true] { background:var(--color-forest);color:var(--color-paper); }
.calendar-days button:disabled { opacity:.25; }
.package-note { font-family:var(--font-display);font-size:23px;line-height:1.25;padding:1.2rem 0;border-top:1px solid var(--color-line);margin-bottom:1rem; }
.story-choices { border:0;padding:0;margin:0 0 2rem; }
.story-choices legend { font-size:12px;margin-bottom:1rem; }
.remember-choice { margin-top:2rem;padding-top:1rem;border-top:1px solid var(--color-line); }
.honeypot { position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden; }
@media(min-width:1000px) { .contact-page { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:6vw; } .contact-intro { position:sticky;top:3rem;align-self:start; } }
@media(max-width:640px) { .form-shell { padding:1.25rem;margin-inline:-.25rem; } .memories .section-heading { margin-bottom:2rem; } .gallery-axis { padding-bottom:2rem; } .memory .photo-open { padding:7px; } .ocean-interlude { min-height:80svh; } .ocean-copy h2 { font-size:4.2rem; } .eyebrow { font-size:8px;letter-spacing:.13em; } .picker-dialog { padding:1.25rem; } .calendar-navigation { grid-template-columns:36px 1fr 76px 36px; } }
.motion-paused *, .motion-paused *::after { animation-play-state:paused!important; }
.motion-paused .photo-open { transform:none!important; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important; } .memory .photo-open { transform:none!important; } }

.choice input { inset:0;width:100%;height:100%;margin:0;z-index:1;cursor:pointer; }
.phone-control { min-width:0; }
.fields-grid .form-field:has(.phone-control) { grid-column:1/-1; }
/* Hallmark · home choreography: P5 H4 E5 S5 R4 V5 · suspended photographic memory */
:root { --color-orbit:oklch(48% .047 92 / .4);--color-orbit-soft:oklch(48% .047 92 / .16);--color-ribbon:oklch(85% .04 84);--color-letter-shine:oklch(78% .09 76); }
.hero-stage { perspective:1800px; }
.hero-aperture { position:absolute;left:42%;top:6%;width:64vw;height:64vw;max-height:100svh;pointer-events:none;z-index:-1;transform-origin:center; }
.hero-aperture svg { width:100%;height:100%;stroke:var(--color-orbit);stroke-width:.75;overflow:visible;transform:rotateX(23deg) rotateY(-14deg); }
.aperture-track { stroke-dasharray:1700 470;transform-origin:400px 400px;animation:aperture-turn 44s linear infinite; }
.aperture-dashes { stroke-dasharray:1 12;transform-origin:400px 400px;animation:aperture-turn 90s linear infinite reverse; }
.aperture-inner { stroke:var(--color-orbit-soft);stroke-dasharray:700 1200;transform-origin:400px 400px;animation:aperture-turn 28s linear infinite; }
@keyframes aperture-turn { to { transform:rotate(360deg); } }
.aperture-word { position:absolute;left:34%;bottom:8%;font-family:var(--font-display);font-size:clamp(1.5rem,2.5vw,3rem);font-style:italic;letter-spacing:.02em;color:var(--color-muted);rotate:-8deg; }
.hero-letter { display:inline-block;animation:letter-unfold 1.45s cubic-bezier(.16,1,.3,1) backwards;animation-delay:calc(var(--letter)*65ms + 100ms);transform-origin:50% 100%; }
.hero-text em .hero-letter { animation-delay:calc(var(--letter)*75ms + 350ms); }
@keyframes letter-unfold { from { opacity:0;filter:blur(7px);transform:perspective(700px) rotateX(-65deg) rotateY(16deg) translate3d(0,65px,-80px); } to { opacity:1;filter:blur(0);transform:none; } }
.hero-word { white-space:nowrap; }
.hero-text h1>.hero-word:first-child { translate:calc(var(--title-travel,0px)*-1) 0; }
.hero-text h1>em.hero-word { translate:var(--title-travel,0px) 0; }
.hero-descriptor { animation:hero-copy-in 1.4s .8s both; }
.hero-lead { animation:hero-copy-in 1.3s .15s both; }
.hero-bottom { animation:hero-copy-in 1.5s 1.1s backwards; }
@keyframes hero-copy-in { from { opacity:0;filter:blur(3px);translate:0 14px; } to { opacity:1;filter:blur(0);translate:0 0; } }
.memory-light { position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;mix-blend-mode:screen; }
.hero-chapters { position:absolute;left:var(--gutter);right:var(--gutter);bottom:1.6rem;display:flex;gap:2rem;z-index:3;font-size:9px;letter-spacing:.08em;pointer-events:none; }
.hero-chapters span { opacity:.4;transition:opacity .5s,color .5s; }
.hero-chapters span::before { content:'';display:inline-block;width:5px;height:5px;border:1px solid currentColor;border-radius:50%;margin-right:.6rem;transition:background .5s; }
.hero-chapters span.active { opacity:1; }
.hero-chapters span.active::before { background:currentColor; }
.hero-stage:has(.hero-end[style*="opacity: 1"]) .hero-chapters { color:var(--color-paper); }
.scroll-line::after { animation:scroll-beat 2.5s var(--ease-in-out) infinite; }
@keyframes scroll-beat { 0% { translate:0 0;opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { translate:0 30px;opacity:0; } }
.memory-ribbon { background:var(--color-forest);color:var(--color-ribbon);overflow:hidden;padding:1.7rem 0;border-top:1px solid var(--color-light-line); }
.memory-ribbon>div { display:flex;align-items:center;gap:3rem;width:max-content;transform:translateX(var(--ribbon-scroll,0px));will-change:transform; }
.memory-ribbon span { font-family:var(--font-display);font-size:clamp(1.8rem,3vw,3rem);font-style:italic;white-space:nowrap; }
.memory-ribbon i { font-size:30px;font-style:normal;animation:aperture-turn 25s linear infinite; }
body[data-page=home] .memory { transform:translate3d(0,var(--drift,0px),0) rotateX(var(--print-turn,0deg));transition:transform .7s var(--ease-out); }
body[data-page=home] .manifesto-photo,body[data-page=home] .about-visual { transform:translate3d(0,var(--section-drift,0px),0) rotate(-3deg);transition:transform .8s var(--ease-out); }
body[data-page=home] .ocean-copy { transform:translateY(var(--section-drift,0px));transition:transform .8s var(--ease-out); }
body[data-page=home] .motion-entered .section-heading h2,body[data-page=home] .motion-entered .about-copy h2,body[data-page=home] .motion-entered .manifesto-title h2 { animation:editorial-arrive 1.1s var(--ease-out) both; }
@keyframes editorial-arrive { from { opacity:.4;clip-path:inset(0 0 18% 0);translate:0 30px; } to { opacity:1;clip-path:inset(0);translate:0 0; } }
.magnetic-control { translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .5s var(--ease-out),transform .5s,box-shadow .5s; }
@media(max-width:640px) { .hero-aperture { width:155vw;height:155vw;left:-17%;top:9%; } .aperture-word { bottom:4%;left:28%;font-size:1.7rem; } .hero-chapters { bottom:.9rem;gap:1.1rem;font-size:8px; } .hero-bottom { bottom:8%; } .memory-ribbon { padding:1.2rem 0; } .memory-ribbon>div { gap:1.5rem; } .hero-aperture svg { stroke-width:1; } }
.motion-reduced .hero-letter,.motion-reduced .hero-descriptor,.motion-reduced .hero-lead,.motion-reduced .hero-bottom { animation:none;opacity:1;filter:none; }
.motion-reduced .hero-word { translate:0 0!important; }
.motion-paused .magnetic-control { translate:0 0; }
.motion-paused .memory,.motion-paused .manifesto-photo,.motion-paused .about-visual,.motion-paused .ocean-copy { transform:none!important; }
@media(prefers-reduced-motion:reduce) { .hero-word,.magnetic-control { translate:0 0!important; } .hero-aperture svg { transform:none; } .memory-light { display:none; } }

.motion-paused .hero-letter,.motion-paused .hero-descriptor,.motion-paused .hero-lead,.motion-paused .hero-bottom { animation:none;filter:none; }

.hero-chapters { color:var(--chapter-color,var(--color-ink)); }
/* Hallmark · 1.3: tidal copper / wax correspondence · P5 H4 E5 S5 R4 V5 */
:root { --color-wax:oklch(42% .14 25);--color-wax-shadow:oklch(27% .095 25);--color-wax-light:oklch(60% .13 28);--color-copper:oklch(76% .09 72);--color-chat-paper:oklch(97% .014 83);--color-chat-shadow:oklch(20% .02 145 / .25);--color-chat-line:oklch(42% .03 90 / .2); }
.hero-stage>.water-canvas { z-index:-2;opacity:.95;pointer-events:none; }
.hero-art { z-index:0; }
.hero-text { z-index:3; }
.hero-bottom,.hero-end { z-index:3; }
.hero-letter-ink { display:inline-block;animation:brand-tide 7s ease-in-out infinite;animation-delay:calc(2.8s + var(--letter)*.12s);transform-origin:center; }
@keyframes brand-tide { 0%,60%,100% { transform:translateY(0) rotateY(0);text-shadow:0 0 0 var(--color-clear); } 20% { transform:perspective(700px) translateY(-9px) rotateY(10deg) rotateX(5deg);text-shadow:2px 10px 28px var(--color-orbit-soft); } 38% { transform:translateY(2px) rotateY(-4deg); } }
.memory-ribbon .services-track { gap:0;transform:none;animation:services-loop 38s linear infinite;will-change:transform; }
.services-group { display:flex;align-items:center;gap:3rem;padding-right:3rem;flex-shrink:0; }
@keyframes services-loop { to { transform:translateX(-50%); } }
.memory-ribbon:hover .services-track,.memory-ribbon:focus-within .services-track { animation-play-state:paused; }
.invitation-portal { min-height:105svh;background:var(--color-forest);color:var(--color-paper);display:block;text-align:center;isolation:isolate;overflow:hidden;padding:9rem var(--gutter) 8rem;perspective:1400px; }
.invitation-portal>.water-canvas { position:absolute;inset:0;width:100%;height:100%;z-index:-3;opacity:.48; }
.invitation-portal::after { content:'';position:absolute;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at center,var(--color-clear),var(--color-forest) 82%); }
.invitation-orbit { position:absolute;width:78vw;height:78vw;left:11%;top:50%;translate:0 -50%;pointer-events:none;z-index:-1; }
.invitation-orbit span { position:absolute;inset:0;border:1px solid var(--color-light-line);border-radius:50%;transform:rotateX(55deg) rotateZ(-25deg);animation:invitation-orbit 22s linear infinite; }
.invitation-orbit span:nth-child(2) { inset:8%;animation-direction:reverse;animation-duration:32s;opacity:.6; }
.invitation-orbit span:nth-child(3) { inset:17%;animation-duration:40s;opacity:.35; }
@keyframes invitation-orbit { to { transform:rotateX(55deg) rotateZ(335deg); } }
.invitation-portal .invitation-image { position:absolute;width:23%;left:-3%;top:25%;transform:perspective(1100px) rotateY(18deg) rotateZ(-10deg);opacity:.6;box-shadow:0 30px 70px var(--color-chat-shadow);animation:invitation-print 10s ease-in-out infinite; }
.invitation-portal .invitation-companion { width:16%;left:auto;right:-2%;top:18%;animation-delay:-5s;rotate:16deg; }
@keyframes invitation-print { 50% { transform:perspective(1100px) rotateY(-9deg) rotateZ(-6deg) translateY(-22px); } }
.invitation-portal .invitation-copy { position:relative;max-width:1000px;margin:auto;z-index:2; }
.invitation-eyebrow { font-size:9px;letter-spacing:.22em;margin:0 auto 2.8rem; }
.invitation-portal .invitation-copy h2 { font-size:clamp(4rem,8.3vw,9.5rem);text-shadow:0 10px 50px var(--color-chat-shadow); }
.invitation-portal .invitation-copy>p:not(.invitation-eyebrow) { margin:2rem auto;max-width:41ch;color:var(--color-paper); }
.invitation-sealed { display:inline-flex;align-items:center;gap:1.7rem;margin-top:2rem;text-align:left;min-height:100px; }
.invitation-sealed>span:last-child { display:grid;gap:.5rem;font-size:14px; }
.invitation-sealed small { font-size:9px;letter-spacing:.05em;opacity:.7; }
.invitation-sealed:hover .wax-seal { scale:1.09; }
.invitation-portal .invitation-signature { color:var(--color-light-accent);font-size:2rem;bottom:1.8rem; }
.wax-seal { display:inline-grid;place-items:center;position:relative;width:88px;height:88px;flex-shrink:0;isolation:isolate;background:radial-gradient(ellipse at 30% 20%,var(--color-wax-light),var(--color-wax) 43%,var(--color-wax-shadow));border-radius:46% 54% 47% 53% / 53% 43% 57% 47%;box-shadow:inset 1px 3px 4px var(--color-wax-light),inset -2px -5px 6px var(--color-wax-shadow),0 8px 18px var(--color-chat-shadow);transition:scale .5s; }
.wax-seal::before,.wax-seal::after { content:'';position:absolute;inset:6px;border:1px solid var(--color-wax-light);border-radius:50%;box-shadow:inset 0 2px 4px var(--color-wax-shadow);opacity:.6; }
.wax-seal::after { inset:13px;border-color:var(--color-wax-shadow);box-shadow:0 1px 1px var(--color-wax-light);opacity:.9; }
.wax-core { position:relative;z-index:1;width:69px;animation:wax-turn 26s linear infinite; }
.wax-core .brand-logo { width:100%;filter:grayscale(1) brightness(2.1);opacity:.9; }
@keyframes wax-turn { to { rotate:360deg; } }
.footer-atelier { position:relative;isolation:isolate;overflow:hidden;background:var(--color-forest);padding:5rem var(--gutter) 1.5rem;color:var(--color-paper); }
.footer-atelier::before { content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 80% 0%,var(--color-forest-raised),var(--color-forest) 65%); }
.footer-heading { display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1rem 3rem;align-items:end; }
.footer-kicker { grid-column:1/-1;font-size:10px;letter-spacing:.07em; }
.footer-hello { font-family:var(--font-display);font-style:italic;font-size:clamp(4.5rem,10vw,12rem);line-height:1.1;display:inline-block;width:fit-content;position:relative; }
.footer-hello-line { position:absolute;left:2%;right:4%;bottom:0;height:1px;background:var(--color-light-accent);transform-origin:left;animation:footer-signature 8s ease-in-out infinite; }
@keyframes footer-signature { 0%,100% { transform:scaleX(.15);opacity:.2; } 40%,70% { transform:scaleX(1);opacity:.7; } }
.footer-atelier .footer-statement { font-size:clamp(2rem,3vw,3.7rem);line-height:1.15;margin:0 0 .8rem;font-style:italic; }
.footer-atelier .footer-main { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,.8fr);gap:3rem;border-top:1px solid var(--color-light-line);padding-top:2rem;margin:3rem 0 2rem; }
.footer-nav { display:grid;font-size:11px;justify-items:start; }
.footer-nav a { min-height:36px; }
.footer-atelier .footer-contact { font-size:12px;display:grid;justify-items:start;gap:.5rem; }
.footer-atelier .footer-meta { margin:0;font-size:9px; }
.footer-watermark { font-family:var(--font-display);font-size:14.5vw;line-height:.9;letter-spacing:-.035em;white-space:nowrap;color:var(--color-light-line);opacity:.2;margin:3rem -.5vw -2.8vw;animation:footer-breath 12s ease-in-out infinite; }
@keyframes footer-breath { 50% { translate:1vw 0;opacity:.3; } }
.chat-widget { position:fixed;right:22px;bottom:20px;z-index:350; }
.chat-launcher { width:84px;height:84px;display:grid;place-items:center;border-radius:50%; }
.chat-launcher .wax-seal { width:80px;height:80px; }
.chat-launcher:hover .wax-seal { scale:1.08; }
.chat-launcher[aria-expanded=true] .wax-core { animation-play-state:paused; }
.chat-nudge { position:absolute;right:4px;bottom:103px;width:280px;padding:1.55rem 1.6rem 1.2rem;border:1px solid var(--color-chat-line);background:var(--color-chat-paper);color:var(--color-ink);box-shadow:0 12px 50px var(--color-chat-shadow);border-radius:2px;animation:nudge-arrive .7s var(--ease-out); }
@keyframes nudge-arrive { from { opacity:0;translate:0 12px; } to { opacity:1;translate:0 0; } }
.chat-nudge::after { content:'';position:absolute;right:25px;bottom:-8px;width:14px;height:14px;background:var(--color-chat-paper);border-right:1px solid var(--color-chat-line);border-bottom:1px solid var(--color-chat-line);rotate:45deg; }
.nudge-close { position:absolute;right:4px;top:3px;width:36px;height:36px;font-size:22px; }
.nudge-eyebrow { display:block;font-size:8px;letter-spacing:.14em;max-width:22ch; }
.chat-nudge p { font-family:var(--font-display);font-size:31px;line-height:1.05;margin:.8rem 0; }
.chat-nudge>span:not(.nudge-eyebrow) { display:block;font-size:11px;max-width:25ch; }
.nudge-open { font-size:11px;min-height:36px;border-bottom:1px solid var(--color-wax);margin-top:.6rem; }
.chat-panel { position:absolute;right:0;bottom:103px;width:410px;height:min(700px,calc(100svh - 145px));background:var(--color-chat-paper);color:var(--color-ink);border:1px solid var(--color-chat-line);box-shadow:0 20px 90px var(--color-chat-shadow);display:flex;flex-direction:column;overflow:hidden;animation:nudge-arrive .4s var(--ease-out); }
.chat-heading { flex-shrink:0;display:flex;align-items:center;gap:.8rem;padding:1rem 1.2rem;border-bottom:1px solid var(--color-chat-line);background:var(--color-paper-alt); }
.chat-heading .wax-seal { width:42px;height:42px; }.chat-heading .wax-core { width:32px;animation:none; }.chat-heading .wax-seal::after { inset:8px; }.chat-heading .wax-seal::before { inset:3px; }
.chat-heading h2 { font-family:var(--font-display);font-size:28px;line-height:1.1; }
.chat-heading p { font-size:9px;margin-top:.35rem; }
.chat-close { margin-left:auto;width:32px;height:40px;font-size:24px;flex-shrink:0; }
.chat-log { flex:1;overflow:auto;padding:1.2rem;min-height:80px;scroll-behavior:smooth; }
.chat-message { margin-bottom:1rem;animation:nudge-arrive .35s var(--ease-out); }
.chat-message small { display:block;font-size:8px;letter-spacing:.04em;margin-bottom:.3rem;opacity:.65; }
.chat-message p { font-size:12px;line-height:1.8;padding:.85rem 1rem;background:var(--color-paper-alt);border-radius:0 10px 10px 10px; }
.chat-couple { margin-left:2rem; }.chat-couple small { text-align:right; }.chat-couple p { background:var(--color-forest);color:var(--color-paper);border-radius:10px 0 10px 10px; }
.chat-options { display:flex;flex-wrap:wrap;gap:.45rem;padding:0 1.2rem 1rem;max-height:42svh;overflow:auto;flex-shrink:0; }
.chat-options button,.chat-options>a { font-size:10px;border:1px solid var(--color-chat-line);padding:.6rem .8rem;min-height:36px;text-align:left;border-radius:4px;background:var(--color-chat-paper);transition:background .25s,color .25s; }
.chat-options button:hover,.chat-options>a:hover { background:var(--color-forest);color:var(--color-paper); }
.chat-options select,.chat-country input { width:100%;min-height:40px;padding:.4rem;border:1px solid var(--color-chat-line);background:var(--color-chat-paper);font-size:12px; }
.chat-country { width:100%;display:grid;gap:.4rem;font-size:10px; }
.chat-composer { display:flex;gap:.5rem;border-top:1px solid var(--color-chat-line);padding:.75rem 1.2rem;flex-shrink:0; }
.chat-composer>input { min-width:0;flex:1;border:0;background:transparent;font-size:13px;min-height:40px; }
.chat-composer>button { padding:.5rem .8rem;background:var(--color-wax);color:var(--color-paper);font-size:10px;min-height:40px; }
.chat-error { font-size:10px;color:var(--color-error);padding:0 1.2rem;flex-shrink:0; }.chat-error:empty { display:none; }
.chat-bottom { display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.3rem 1.2rem;border-top:1px solid var(--color-chat-line);font-size:9px;flex-shrink:0; }.chat-bottom button,.chat-bottom a { min-height:32px;font-size:9px; }
.chat-progress { padding:.1rem 1.2rem .7rem;position:relative;flex-shrink:0; }.chat-progress span { display:block;height:2px;background:var(--color-wax);transition:width .6s var(--ease-out);margin-bottom:.5rem; }.chat-progress small { font-size:8px;letter-spacing:.04em; }
.chat-review { width:100%;font-size:11px; }.chat-review>div { padding:.5rem 0;border-bottom:1px solid var(--color-chat-line); }.chat-review dt { font-size:9px;opacity:.7; }.chat-review dd { margin:0;overflow-wrap:anywhere; }
.chat-consent { display:flex;gap:.5rem;font-size:10px;line-height:1.6;margin:.5rem 0; }.chat-consent input { flex-shrink:0;accent-color:var(--color-wax); }
@media(max-width:800px) { .footer-atelier .footer-main { grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem; }.footer-nav { grid-column:1/-1;display:flex;gap:1.5rem;flex-wrap:wrap; }.footer-heading { grid-template-columns:minmax(0,1fr);gap:1.5rem; }.footer-atelier .footer-statement { font-size:2rem; }.footer-atelier .footer-meta { flex-wrap:wrap;gap:.5rem 1rem; }.footer-watermark { font-size:17vw; } }
@media(max-width:640px) { .services-group { gap:1.5rem;padding-right:1.5rem; }.hero-letter-ink { animation-name:brand-tide-mobile; }.invitation-portal { min-height:95svh;padding:6rem var(--gutter) 5rem; }.invitation-portal .invitation-copy h2 { font-size:3.8rem; }.invitation-portal .invitation-image { width:33%;top:10%;left:-14%;opacity:.3; }.invitation-portal .invitation-companion { width:29%;right:-14%;left:auto;top:43%; }.invitation-orbit { width:170vw;height:170vw;left:-35%; }.invitation-sealed { gap:1rem; }.invitation-sealed>span:last-child { font-size:12px; }.invitation-eyebrow { font-size:8px;letter-spacing:.12em; }.invitation-portal .invitation-signature { font-size:1.4rem; }.footer-atelier .footer-main { grid-template-columns:minmax(0,1fr); }.footer-nav { grid-column:auto; }.footer-atelier { padding-top:3rem;padding-bottom:1.5rem; }.footer-watermark { font-size:17vw;margin-top:2rem; }.chat-widget { right:12px;bottom:14px; }.chat-launcher { width:72px;height:72px; }.chat-launcher .wax-seal { width:68px;height:68px; }.chat-launcher .wax-core { width:55px; }.chat-panel { width:calc(100vw - 24px);bottom:88px;height:calc(100svh - 120px); }.chat-nudge { width:250px;bottom:88px; }.chat-heading { padding:.8rem 1rem; }.chat-options { padding-inline:1rem; }.chat-log { padding:1rem; }.chat-composer { padding:.6rem 1rem; }.chat-bottom { padding-inline:1rem; } }
@keyframes brand-tide-mobile { 0%,65%,100% { transform:none; } 25% { transform:perspective(500px) translateY(-4px) rotateY(8deg); } 45% { transform:translateY(1px); } }
@media(prefers-reduced-motion:reduce) { .hero-letter-ink { animation:none!important; }.memory-ribbon .services-track { animation:none;transform:none; }.services-group:first-child { flex-wrap:wrap;justify-content:center;max-width:100vw;padding:0 1rem;gap:.5rem 1rem; }.services-group:nth-child(2) { display:none; }.invitation-portal .invitation-image,.invitation-orbit span { animation:none; }.footer-watermark { animation:none; } }
.motion-paused .hero-letter-ink { animation:none; }

.hero-bottom { right:calc(var(--gutter) + 88px); }
.chat-heading>div { min-width:0; }
@media(max-width:640px) { .chat-heading h2 { font-size:24px; }.hero-bottom { right:100px; } }

.invitation-portal .invitation-copy>.invitation-eyebrow { font-size:9px;max-width:none;line-height:1.7;margin:0 auto 2.8rem; }
@media(max-width:640px) { .invitation-portal .invitation-copy>.invitation-eyebrow { font-size:8px;max-width:30ch; } }

.chat-panel { height:min(560px,calc(100svh - 145px)); }
.chat-panel:has(.chat-progress:not([hidden])) { height:min(700px,calc(100svh - 145px)); }
.chat-open main *,.chat-open .site-footer * { animation-play-state:paused!important; }
.motion-paused .chat-panel,.motion-paused .chat-message,.motion-paused .chat-nudge { animation:none!important;opacity:1;translate:0 0; }
@media(max-width:640px) { .chat-panel { height:min(560px,calc(100svh - 120px)); }.chat-panel:has(.chat-progress:not([hidden])) { height:calc(100svh - 120px); } }

.scene-toggle { right:calc(var(--gutter) + 88px); }
@media(max-width:640px) { .scene-toggle { right:100px; } }

/* Keep the rotating logo on the wax face center, independently of implicit grid rows.
   Original alpha bounds: (13,20)-(345,100) in 375x114; compensate optical margins. */
.wax-seal>.wax-core { position:absolute;inset:0;width:100%;height:100%;display:grid;place-items:center;transform-origin:50% 50%; }
.wax-seal>.wax-core>.brand-logo { width:66%;height:auto;display:block;transform:translate(2.266667%,-2.631579%); }
/* Hallmark · personal LUM360 letter: P5 H5 E5 S5 R5 V5 · original gold artwork / atelier paper */
:root { --color-proposal-gold:oklch(67% .09 78);--color-proposal-gold-light:oklch(81% .08 82);--color-proposal-rule:oklch(67% .09 78 / .35);--color-proposal-paper:oklch(96% .017 86); }
.lum-proposal { padding:5rem var(--gutter) 6rem;position:relative;isolation:isolate;overflow:hidden;background:var(--color-proposal-paper);color:var(--color-ink); }
.proposal-symbol { position:absolute;top:16%;right:-28vw;width:75vw;opacity:.055;z-index:-1;pointer-events:none;rotate:var(--proposal-turn,0deg);transition:rotate .8s var(--ease-out); }
.proposal-symbol img { width:100%; }
.proposal-masthead { display:flex;justify-content:space-between;align-items:center;gap:2rem;border-bottom:1px solid var(--color-proposal-rule);padding-bottom:2rem; }
.proposal-lum-logo { width:210px;height:auto; }
.proposal-masthead>div { text-align:right;font-size:11px; }
.proposal-masthead>div>span { display:block;text-transform:uppercase;font-size:8px;letter-spacing:.14em;color:var(--color-muted);margin-bottom:.3rem; }
.proposal-intro { display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr);align-items:start;gap:7vw;padding:5rem 0 6rem; }
.proposal-greeting { font-family:var(--font-display);font-style:italic;font-size:2rem;margin-bottom:1.8rem; }
.proposal-letter h2 { font-size:clamp(3.8rem,6.2vw,7rem);line-height:1;max-width:13ch;margin-bottom:2.3rem; }
.proposal-letter>p:not(.proposal-greeting) { font-size:14px;line-height:1.95;max-width:56ch;margin-bottom:1.5rem; }
.proposal-letter>.proposal-lead { font-family:var(--font-display);font-size:clamp(1.6rem,2vw,2.3rem)!important;line-height:1.45!important;margin-bottom:1.8rem!important; }
.proposal-note { display:flex;align-items:start;gap:1.2rem;padding:1.5rem 0 0;border-top:1px solid var(--color-proposal-rule);margin-top:2.3rem; }
.proposal-note>span { font-size:27px;color:var(--color-proposal-gold);line-height:1; }
.proposal-note p { font-size:12px;line-height:1.9; }
.proposal-investment { padding:2.6rem;background:var(--color-forest);color:var(--color-paper);border:1px solid var(--color-proposal-gold);box-shadow:14px 20px 0 var(--color-orbit-soft);position:sticky;top:3rem; }
.proposal-price-logo { width:110px;height:auto;margin:0 auto 2.5rem; }
.proposal-kicker { display:block;font-size:9px;letter-spacing:.10em;text-transform:uppercase;line-height:1.7;margin-bottom:1.5rem; }
.proposal-investment .proposal-kicker { color:var(--color-proposal-gold-light);max-width:27ch; }
.proposal-usual { font-size:11px;line-height:1.9;color:var(--color-paper-alt);max-width:28ch;margin-bottom:2rem; }
.proposal-price { display:grid;gap:.7rem; }
.proposal-price strong { font-family:var(--font-display);font-weight:400;font-size:clamp(3.8rem,5.4vw,6.5rem);line-height:.9;letter-spacing:-.03em;white-space:nowrap; }
.proposal-price>span { font-size:13px;letter-spacing:.03em;color:var(--color-proposal-gold-light); }
.proposal-invoice { font-size:10px;margin-top:.75rem; }
.proposal-payment { border-top:1px solid var(--color-light-line);margin-top:2rem;padding-top:1.7rem; }
.proposal-payment h3 { font-family:var(--font-display);font-size:2rem;line-height:1.1;margin-bottom:1rem; }
.proposal-payment p { font-size:11px;line-height:1.9; }
.proposal-chapter { padding:4.5rem 0;border-top:1px solid var(--color-proposal-rule); }
.proposal-chapter-head { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:5vw;align-items:end;margin-bottom:3rem; }
.proposal-chapter-head>.proposal-kicker { grid-column:1/-1;margin-bottom:0; }
.proposal-chapter h3,.proposal-close h3 { font-family:var(--font-display);font-size:clamp(2.7rem,4.5vw,5rem);line-height:1.04;letter-spacing:-.02em; }
.proposal-chapter-head>p { font-size:13px;line-height:1.9;max-width:45ch; }
.proposal-benefits { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3.3rem; }
.proposal-benefit { padding-top:1.5rem;border-top:1px solid var(--color-line); }
.proposal-index { display:block;font-family:var(--font-display);font-style:italic;font-size:2rem;color:var(--color-proposal-gold);margin-bottom:1.2rem; }
.proposal-benefit h4,.proposal-month h4 { font-family:var(--font-display);font-weight:400;font-size:2rem;line-height:1.1;letter-spacing:-.02em;margin:0 0 1rem; }
.proposal-benefit p { font-size:12px;line-height:1.9; }
.proposal-stories { display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.4fr);gap:10vw;align-items:center; }
.proposal-story-number { font-family:var(--font-display);font-size:clamp(8rem,20vw,20rem);line-height:.8;color:var(--color-proposal-gold);letter-spacing:-.06em; }
.proposal-story-number>span { display:block;font-size:2rem;font-style:italic;letter-spacing:0;margin:1.3rem 0 0 1rem; }
.proposal-stories h3 { margin-bottom:2rem; }
.proposal-stories p:not(.proposal-kicker) { font-size:13px;line-height:1.9;margin-top:1.2rem; }
.proposal-stories blockquote { margin:2rem 0 0;font-family:var(--font-display);font-style:italic;font-size:2rem;line-height:1.2;max-width:28ch; }
.proposal-months { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3.5rem; }
.proposal-month { border-top:1px solid var(--color-proposal-gold);padding-top:2rem;position:relative; }
.proposal-month-marker { position:absolute;top:-4px;left:0;width:7px;height:7px;background:var(--color-proposal-gold);border-radius:50%; }
.proposal-month-label { font-size:10px;display:flex;justify-content:space-between;margin-bottom:1.5rem; }
.proposal-month-label>span { color:var(--color-muted);font-size:9px; }
.proposal-month>p:last-child { font-size:12px;line-height:1.9; }
.proposal-ai-note { max-width:85ch;font-size:11px;line-height:1.9;margin:3rem 0 0 auto;border-left:1px solid var(--color-proposal-gold);padding-left:1.4rem;color:var(--color-muted); }
.proposal-tools { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3.5rem; }
.proposal-tools>article { padding-top:1.5rem;border-top:1px solid var(--color-line); }
.proposal-tools h4 { font-weight:500;font-size:13px;margin:0 0 .9rem; }
.proposal-tools p { font-size:12px;line-height:1.9; }
.proposal-arrangements { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8vw; }
.proposal-arrangements h3 { font-size:2.6rem;margin-bottom:1.5rem; }
.proposal-arrangements p { font-size:13px;line-height:1.9; }
.proposal-close { text-align:center;border-top:1px solid var(--color-proposal-rule);padding:5rem 0 0;max-width:1000px;margin:auto; }
.proposal-close>p:not(.proposal-draft) { max-width:53ch;font-size:13px;line-height:1.9;margin:2rem auto; }
.proposal-whatsapp { background:var(--color-forest);color:var(--color-paper);margin-top:.7rem;border:1px solid var(--color-proposal-gold); }
.proposal-contact-note { display:block;font-size:9px;color:var(--color-muted);margin-top:.9rem; }
.proposal-signature { margin:3rem auto; }
.proposal-signature p { font-family:var(--font-display);font-size:1.7rem;font-style:italic;margin-bottom:1rem; }
.proposal-signature-logo { width:150px;height:auto;margin:auto; }
.proposal-draft { font-size:9px;line-height:1.8;max-width:75ch;margin:auto;color:var(--color-muted); }
.proposal-entered { animation:proposal-arrive .8s var(--ease-out) both; }
@keyframes proposal-arrive { from { opacity:.65;translate:0 14px; } to { opacity:1;translate:0 0; } }
.proposal-in-view .chat-widget:not(:has(.chat-panel:not([hidden]))) { visibility:hidden;pointer-events:none; }
@media(max-width:960px) { .proposal-intro { gap:4vw;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); }.proposal-investment { padding:2rem; }.proposal-price strong { font-size:4.6rem; }.proposal-benefits { gap:2rem; }.proposal-months,.proposal-tools { gap:2rem; }.proposal-masthead { align-items:flex-end; } }
@media(max-width:640px) { .lum-proposal { padding:3rem var(--gutter) 4rem; }.proposal-masthead { align-items:start;gap:1.3rem;flex-direction:column; }.proposal-masthead>div { text-align:left; }.proposal-lum-logo { width:180px; }.proposal-intro { grid-template-columns:minmax(0,1fr);gap:3.5rem;padding:3rem 0 3.5rem; }.proposal-letter h2 { font-size:3.9rem;max-width:13ch; }.proposal-greeting { font-size:1.7rem; }.proposal-letter>p:not(.proposal-greeting) { font-size:13px; }.proposal-investment { position:relative;top:auto;padding:2rem;box-shadow:7px 10px 0 var(--color-orbit-soft); }.proposal-price strong { font-size:5.4rem; }.proposal-chapter { padding:3rem 0; }.proposal-chapter-head { grid-template-columns:minmax(0,1fr);gap:1.4rem;margin-bottom:2rem; }.proposal-benefits,.proposal-months,.proposal-tools,.proposal-arrangements { grid-template-columns:minmax(0,1fr);gap:2.5rem; }.proposal-benefit { display:grid;grid-template-columns:30px minmax(0,1fr);gap:1rem; }.proposal-stories { grid-template-columns:minmax(0,1fr);gap:2.4rem; }.proposal-story-number { font-size:8rem;display:flex;align-items:end;gap:1.5rem; }.proposal-story-number>span { font-size:2rem;margin:0 0 .2rem; }.proposal-ai-note { margin-top:2rem; }.proposal-close { padding-top:3rem; }.proposal-close h3 { font-size:3.1rem; }.proposal-whatsapp { max-width:100%;padding-inline:1.25rem;font-size:11px; }.proposal-symbol { width:160vw;right:-110vw;top:15%; } }
@media(prefers-reduced-motion:reduce) { .proposal-entered { animation:none!important; }.proposal-symbol { rotate:0deg;transition:none; } }

/* All atmospheric decoration stays behind the photographic stage. */
.hero-stage>.memory-light { z-index:-1; }
