/* V77 — a passing breeze at the beginning; “see you tomorrow” at the end. */
.logo-finale{height:260svh;min-height:1500px}
.finale-mark{top:28%;width:clamp(116px,11.5vw,148px)}
.finale-eyebrow{top:13%;color:#61746a;font-size:9px;letter-spacing:.3em}
.finale-light{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 110%,#ffe8cc8a 0%,#fff4e84a 34%,#fff0 67%);opacity:var(--finale-warm,1);transform:translateY(calc((1 - var(--finale-warm,1))*12%))}
.finale-memory{position:absolute;top:41%;left:5%;width:90%;color:#294438;opacity:0;transform:translateY(var(--finale-memory-lift,0px));pointer-events:none}
.finale-memory p{font:500 clamp(44px,7.6vw,104px)/1.45 'Noto Serif JP',serif;letter-spacing:-.06em}
.finale-memory>span{display:block;margin-top:24px;font-size:clamp(12px,1.25vw,16px);letter-spacing:.14em;color:#52685b}
.finale-heading{position:absolute;top:45%;left:5%;width:90%;color:#233d32;font:500 clamp(38px,min(5.2vw,9.2svh),70px)/1.42 'Noto Serif JP',serif;letter-spacing:-.045em}
.finale-heading>span{display:block}
.finale-wish{position:absolute;top:73%;left:5%;width:90%;font:400 clamp(12px,1.05vw,15px)/2 'Noto Sans JP',sans-serif;letter-spacing:.10em;color:#54665d}
.finale-wish>span{display:block}
.finale-copy{top:87%;color:#233d32}
.finale-copy>.finale-invitation{margin-top:0;color:#53675b;font-size:11px;letter-spacing:.06em}
.finale-choreographed .finale-memory{opacity:var(--finale-memory,0)}
.finale-choreographed .finale-wish>span:first-child{opacity:var(--finale-line-0,0);transform:translateY(calc((1 - var(--finale-line-0,0))*9px))}
.finale-choreographed .finale-wish>span:last-child{opacity:var(--finale-line-1,0);transform:translateY(calc((1 - var(--finale-line-1,0))*9px))}
.finale-choreographed .finale-heading>span:first-child{opacity:var(--finale-line-2,0);transform:translateY(calc((1 - var(--finale-line-2,0))*14px))}
.finale-choreographed .finale-heading>span:last-child{opacity:var(--finale-line-3,0);transform:translateY(calc((1 - var(--finale-line-3,0))*14px))}
.finale-choreographed .finale-copy>.finale-invitation{opacity:var(--finale-line-4,0);transform:translateY(calc((1 - var(--finale-line-4,0))*8px))}
.finale-copy:focus-visible{outline:2px solid #b95436;outline-offset:12px;border-radius:4px}
.finale-copy:focus-visible>.finale-invitation{opacity:1;transform:none}
.finale-choreographed .finale-copy{pointer-events:none}
.finale-choreographed .finale-inviting .finale-copy,.finale-copy:focus-visible{pointer-events:auto}
@media(max-width:540px){
 .logo-finale{height:240svh;min-height:1400px}
 .finale-mark{top:28%;width:112px}.finale-eyebrow{top:15%}
 .finale-memory{top:43%}.finale-memory p{font-size:clamp(42px,11.8vw,60px)}.finale-memory>span{margin-top:22px;font-size:12px}
 .finale-heading{top:46%;font-size:clamp(36px,10.4vw,46px);line-height:1.55}
 .finale-wish{top:70%;font-size:12px;letter-spacing:.07em}.finale-copy{top:85%}.finale-copy>.finale-invitation{font-size:10px;margin-top:0}
}
