*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px;overflow-x:clip}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:2;font-weight:400}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold-strong);outline-offset:5px}figure,p,h1,h2,h3{margin:0}h2{font-family:var(--serif);font-weight:400;letter-spacing:.13em;line-height:1.8}img{display:block;width:100%;height:100%;object-fit:cover}.shell{width:calc(100% - 112px);max-width:1180px;margin-inline:auto}.site-header{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:auto;padding:34px 56px}.brand{display:flex;align-items:center;gap:18px;font-family:var(--display);font-size:27px;letter-spacing:.15em}.brand small{display:block;font:11px var(--serif);letter-spacing:.18em;margin-top:4px}.knot-icon{display:block;width:48px;height:48px;background:var(--gold-strong);mask:url('assets/platinum/knot.svg') center/contain no-repeat}.site-header>p{font-size:12px;letter-spacing:.12em;color:var(--text-secondary);text-align:right;line-height:1.9}.site-header>p span{display:block}.hero{position:relative;display:grid;grid-template-columns:35% 65%;padding-top:30px;align-items:center}.hero-copy{padding:0 50px 0 10px}.overline{font-size:12px;letter-spacing:.3em;color:var(--gold-strong);margin-bottom:30px}.hero h1{font:48px/1.65 var(--display);letter-spacing:.12em;writing-mode:vertical-rl;min-height:335px;margin-left:22px}.hero h1 span{display:block}.hero-names{display:flex;gap:15px;align-items:center;margin-top:32px;font-family:var(--serif);font-size:21px;letter-spacing:.15em}.hero-names i{font-style:normal;font-size:12px;color:var(--text-secondary)}.hero-date{margin-top:15px;font-size:11px;letter-spacing:.14em;color:var(--text-secondary);line-height:2.1}.hero-date span{color:var(--gold-strong)}.hero-photo{position:relative;aspect-ratio:1.05;padding:0 0 30px 0}.hero-photo img{object-position:center 43%;border-radius:0}.hero-photo:before{content:'';position:absolute;inset:16px -16px 46px 16px;border:1px solid var(--line);z-index:-1}.hero-photo figcaption{position:absolute;bottom:0;right:0;font-size:11px;letter-spacing:.18em;color:var(--text-secondary)}.photo-seal{position:absolute;right:-17px;bottom:65px;background:var(--bg);color:var(--gold-strong);font:32px var(--display);padding:11px;border:1px solid var(--gold);outline:1px solid var(--line);outline-offset:5px}.hero-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:38px 0 36px;margin-top:20px;font-size:11px;letter-spacing:.14em;color:var(--text-secondary)}.hero-bottom a{display:flex;align-items:center;gap:20px}.hero-bottom b{font-size:20px;font-weight:400;color:var(--gold-strong)}.chapter-nav{display:grid;grid-template-columns:repeat(5,1fr);border-block:1px solid var(--line);padding:19px 0}.chapter-nav a{display:flex;align-items:center;justify-content:center;gap:15px;border-right:1px solid var(--line);font-size:13px;letter-spacing:.12em}.chapter-nav a:last-child{border:0}.chapter-nav a span{font-family:var(--display);font-size:24px;color:var(--gold-strong)}.greeting{padding:125px 45px 110px;display:grid;grid-template-columns:55px 1fr .9fr;gap:45px;align-items:center}.section-label{align-self:start;display:flex;flex-direction:column;align-items:center;gap:22px}.section-label span{writing-mode:vertical-rl;font-size:13px;letter-spacing:.3em;color:var(--gold-strong)}.section-label i{height:80px;width:1px;background:var(--line)}.greeting h2{font-size:31px;margin-bottom:30px}.greeting-copy>p{font-size:13px;line-height:2.4;margin:20px 0;color:var(--text-secondary)}.signature{font-family:var(--display);font-size:23px;letter-spacing:.12em;margin-top:26px}.signature span{font-family:var(--serif);font-size:15px;color:var(--gold);padding:0 12px}.greeting-photo{aspect-ratio:.88;align-self:end;position:relative}.greeting-photo img{object-position:center}.greeting-photo:after{content:'';position:absolute;inset:-12px 12px 12px -12px;border:1px solid var(--line);z-index:-1}.mizuhiki-break{height:58px;width:78%;max-width:780px;margin:0 auto;background:var(--gold);mask:url('assets/wa/cord-gold.svg') center/100% 58px no-repeat}.section{padding-block:100px}.section-heading{text-align:center;margin-bottom:50px}.chapter{font-family:var(--display);font-size:24px;color:var(--gold-strong);margin-bottom:12px}.section-heading h2{font-size:34px}.section-heading>p:last-child:not(.chapter){font-size:12px;color:var(--text-secondary);letter-spacing:.09em;margin-top:15px}.seat-panel{display:grid;grid-template-columns:1fr 1fr;gap:65px;background:var(--paper);padding:50px;border:1px solid var(--line)}.search-column{display:flex;flex-direction:column;justify-content:center}.search-column label{font-size:12px;letter-spacing:.12em;margin-bottom:14px}.search-box{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--gold-strong);padding:10px 0}.search-symbol{width:14px;height:14px;border:1px solid var(--gold-strong);border-radius:50%;position:relative;flex-shrink:0}.search-symbol:after{content:'';position:absolute;width:6px;height:1px;right:-5px;bottom:-2px;transform:rotate(45deg);background:var(--gold-strong)}input{width:100%;border:0;background:transparent;padding:5px;font-size:13px;outline:none!important}input::placeholder{color:var(--text-secondary)}#clear{border:0;background:transparent;font-size:25px;cursor:pointer}#search-status{min-height:26px;font-size:12px;padding-top:8px;color:var(--gold-strong)}.seat-hint{display:flex;align-items:center;gap:18px;margin-top:24px}.seat-hint .nav-symbol{width:34px;height:34px}.seat-hint p{font-size:12px;color:var(--text-secondary);line-height:2.2}.floorplan{background:var(--surface);padding:35px;text-align:center}.couple-seat{display:inline-block;border:1px solid var(--line);padding:8px 35px;font-size:12px;letter-spacing:.2em;background:var(--paper)}.map-note{font-size:11px;color:var(--text-secondary);margin-top:35px}.table-map{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:25px}.table-map:empty{height:40px}.table-circle{border:1px solid var(--gold);background:var(--paper);color:var(--gold-strong);aspect-ratio:1;border-radius:50%;cursor:pointer}.table-circle.match{background:var(--gold-strong);color:var(--paper)}.table-circle.dim{opacity:.35}.table-card{padding:24px;margin-top:16px;border:1px solid var(--line)}.table-card h3{font:22px var(--serif);color:var(--gold-strong);margin-bottom:15px}.table-card small{font-size:11px;margin-left:6px}.guest-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.guest{font-size:12px;padding:5px}.guest.hit{background:var(--surface)}.album{background:var(--surface);padding-block:88px}.album-inner{display:grid;grid-template-columns:1.15fr 1fr;gap:90px;align-items:center}.album-photo{aspect-ratio:1.1;position:relative}.album-photo img{object-position:center 37%}.album-photo figcaption{position:absolute;bottom:-32px;font-size:11px;letter-spacing:.12em;color:var(--text-secondary)}.album-copy h2{font-size:36px;margin:10px 0 25px}.album-copy>p:not(.chapter){font-size:13px;line-height:2.5;color:var(--text-secondary)}.button,.pending-label{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;border:1px solid var(--gold-strong);padding:15px 22px;color:var(--gold-strong);font-size:12px;margin-top:26px;background:var(--paper)}.pending-label{border-color:var(--line);color:var(--text-secondary);font-size:12px}.button:hover{background:var(--gold-strong);color:var(--paper)}.album-copy small{display:block;margin-top:13px;font-size:10px;color:var(--text-secondary)}.profiles{display:grid;grid-template-columns:1fr 1fr;max-width:820px;margin:auto;gap:90px}.portrait-frame{position:relative;width:100%;max-width:280px;margin-inline:auto;aspect-ratio:3/5}.portrait-frame:after{content:'';position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--line);z-index:-1}.portrait-frame>span{position:absolute;left:-12px;top:25px;writing-mode:vertical-rl;letter-spacing:.35em;font-size:12px;color:var(--gold-strong);padding:16px 9px;background:var(--bg)}.groom-photo{object-position:14% center}.bride-photo{object-position:83.333% center}.profiles h3{font-family:var(--display);font-weight:400;font-size:31px;letter-spacing:.15em;margin:40px 0 15px}.profile-details{font-size:12px;color:var(--text-secondary)}.profile-row{padding-block:15px;border-bottom:1px solid var(--line)}.profile-row dt{font-size:10px;letter-spacing:.15em}.profile-row dd{margin:5px 0 0;color:var(--ink)}.menu-section{background:var(--surface);margin-top:55px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;max-width:1000px}.menu-title h2{font-size:34px}.menu-title>p:last-of-type{font-size:13px;color:var(--text-secondary);line-height:2.3;margin-top:22px}.menu-motif{display:block;width:160px;height:55px;margin-top:40px;background:var(--gold);mask:url('assets/wa/cord-gold.svg') center/contain no-repeat}.menu-paper{background-color:var(--paper);padding:50px 36px;position:relative;min-height:370px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 10px 30px color-mix(in srgb,var(--ink) 5%,transparent)}.menu-paper:after{content:'';position:absolute;inset:12px;border:1px solid var(--line);pointer-events:none}.menu-paper-top{display:flex;gap:24px;font-family:var(--display);font-size:31px;color:var(--gold-strong);margin-bottom:38px}.menu-note{font-size:11px;letter-spacing:.08em;color:var(--text-secondary);text-align:center;line-height:2}.menu-paper .pending{font-size:13px;text-align:center;color:var(--text-secondary)}.course{padding:22px 0;border-bottom:1px solid var(--line)}.course h3{font-weight:400;font-size:18px;color:var(--gold-strong)}.course p{font-size:12px;line-height:2}.drink-list{max-width:820px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:40px 70px}.drink-list article{border-bottom:1px solid var(--line);padding-bottom:20px}.drink-list h3{font-size:20px;font-weight:400;color:var(--gold-strong)}.drink-list p{font-size:12px;color:var(--text-secondary);line-height:2}.drink-list>.pending{grid-column:1/-1;text-align:center;padding:35px;border-block:1px solid var(--line)}footer{text-align:center;padding:75px 24px 155px;background:var(--paper)}footer .knot-icon{margin:0 auto 25px;width:55px;height:55px}footer>p{font-family:var(--display);font-size:29px;letter-spacing:.12em;margin-bottom:27px}footer>div{font-size:15px;letter-spacing:.17em}footer small{display:block;margin-top:18px;font-size:11px;line-height:2.1;color:var(--text-secondary)}footer>a{display:block;font-size:10px;letter-spacing:.18em;color:var(--gold-strong);margin-top:34px}.bottom-nav{position:fixed;z-index:20;bottom:20px;left:50%;transform:translateX(-50%);display:flex;width:420px;max-width:calc(100% - 26px);padding:8px;background:var(--paper);border:1px solid var(--line);box-shadow:0 5px 30px color-mix(in srgb,var(--ink) 8%,transparent)}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px;line-height:1.4;letter-spacing:.06em;padding:5px 0;color:var(--text-secondary)}.bottom-nav a.active{color:var(--gold-strong);background:var(--surface)}.nav-symbol{display:block;width:24px;height:24px;background:currentColor;mask-size:contain;mask-position:center;mask-repeat:no-repeat}.seating-symbol{mask-image:url('assets/wa/nav-seating.svg')}.album-symbol{mask-image:url('assets/wa/nav-album.svg')}.couple-symbol{mask-image:url('assets/wa/nav-couple.svg')}.food-symbol{mask-image:url('assets/wa/nav-food.svg')}.drinks-symbol{mask-image:url('assets/wa/nav-drinks.svg')}[hidden]{display:none!important}
@media(max-width:760px){.shell{width:calc(100% - 44px)}.site-header{padding:25px 22px}.brand{font-size:21px;gap:10px}.brand .knot-icon{width:34px;height:34px}.brand small{font-size:9px}.site-header>p{font-size:9px;letter-spacing:.04em}.hero{grid-template-columns:1fr;padding-top:22px}.hero-copy{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.overline{font-size:10px;letter-spacing:.25em;grid-column:1/-1;margin-bottom:23px}.hero h1{font-size:34px;min-height:252px;margin:0 0 22px;grid-row:2/5;grid-column:1;justify-self:center;line-height:1.8}.hero-names{writing-mode:vertical-rl;grid-column:2;grid-row:2;align-self:center;justify-self:center;font-size:21px;margin:3px 0 0;gap:12px}.hero-names i{font-size:11px}.hero-date{grid-column:2;grid-row:3/5;font-size:9px;line-height:2;letter-spacing:.05em;text-align:center;align-self:end;margin-bottom:35px}.hero-photo{aspect-ratio:1.12;padding-bottom:26px;margin:10px 0 0}.hero-photo img{object-position:center 42%}.hero-photo:before{inset:10px -8px 36px 8px}.hero-photo figcaption{font-size:9px;letter-spacing:.06em}.photo-seal{right:-6px;bottom:48px;font-size:23px;padding:7px;outline-offset:3px}.hero-bottom{padding:25px 0 23px;margin-top:12px;font-size:9px;letter-spacing:.03em}.hero-bottom a{gap:10px}.chapter-nav{padding:16px 0;gap:0}.chapter-nav a{flex-direction:column;font-size:11px;gap:5px;letter-spacing:.04em}.chapter-nav a span{font-size:22px}.greeting{padding:72px 0 65px;grid-template-columns:26px 1fr;gap:20px}.section-label{gap:18px}.section-label span{font-size:11px}.section-label i{height:60px}.greeting h2{font-size:26px;letter-spacing:.07em;margin-bottom:25px}.greeting-copy>p{font-size:12px;line-height:2.5;margin:18px 0}.signature{font-size:22px}.greeting-photo{grid-column:2;aspect-ratio:1.35;margin-top:30px;width:calc(100% - 10px);justify-self:end}.greeting-photo img{object-position:center 56%}.greeting-photo:after{inset:-8px 8px 8px -8px}.mizuhiki-break{height:45px;mask-size:100% 45px;width:85%}.section{padding-block:70px}.section-heading{margin-bottom:32px}.section-heading h2{font-size:28px;letter-spacing:.08em}.chapter{font-size:23px;margin-bottom:8px}.section-heading>p:last-child:not(.chapter){font-size:10px;letter-spacing:.04em;line-height:2.2}.seat-panel{grid-template-columns:1fr;gap:25px;padding:24px 19px}.search-column label{font-size:11px}.search-box input{font-size:12px}.seat-hint{margin-top:18px}.seat-hint p{font-size:11px}.floorplan{padding:24px}.table-map{gap:12px}.map-note{font-size:10px}.album{padding-block:60px}.album-inner{grid-template-columns:1fr;gap:60px}.album-photo{aspect-ratio:1.2;order:1}.album-copy{order:0;padding:0 12px}.album-copy h2{font-size:31px;margin:5px 0 20px}.album-copy>p:not(.chapter){font-size:12px}.album-photo figcaption{font-size:10px;bottom:-29px}.button,.pending-label{font-size:11px;padding:13px 18px}.profiles{gap:32px}.portrait-frame{aspect-ratio:3/5}.portrait-frame:after{inset:8px -8px -8px 8px}.portrait-frame>span{left:-8px;top:18px;font-size:10px;padding:12px 5px}.profiles h3{font-size:26px;margin-top:28px;letter-spacing:.08em}.profile-details{font-size:11px;line-height:2.2}.profile-row dd{font-size:11px}.menu-section{margin-top:20px;padding-block:60px}.menu-grid{grid-template-columns:1fr;gap:32px}.menu-title{padding:0 12px}.menu-title h2{font-size:30px}.menu-title>p:last-of-type{font-size:12px;margin-top:18px}.menu-motif{display:none}.menu-paper{min-height:310px;padding:40px 25px}.menu-paper-top{font-size:29px;gap:25px;margin-bottom:30px}.menu-note{font-size:10px}.drink-list{grid-template-columns:1fr;gap:25px}.drink-list>.pending{font-size:11px;padding:28px 10px}footer{padding-top:60px}footer>p{font-size:25px;letter-spacing:.04em}footer small{font-size:10px}.bottom-nav{bottom:calc(10px + env(safe-area-inset-bottom));padding:6px}.bottom-nav a{font-size:10px;gap:5px}.nav-symbol{width:23px;height:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* CC0 paper-fiber photograph, used at restrained opacity only on paper surfaces. */
.menu-paper:before{content:'';position:absolute;inset:0;background:url('assets/platinum/paper-fiber.jpg') center/512px 300px repeat;opacity:.2;pointer-events:none;mix-blend-mode:multiply}.menu-paper>*{position:relative}.greeting-photo{aspect-ratio:1.35}.hero-photo{aspect-ratio:.93}.hero-photo img{object-position:center 28%}.album-photo{aspect-ratio:.86}.album-photo img{object-position:center 25%}@media(max-width:760px){.hero-photo{aspect-ratio:.95}.greeting-photo{aspect-ratio:1.5}.album-photo{aspect-ratio:.9}}

/* White, luminous gold and small auspicious vermilion accents for a joyful day. */
.site-header{border-top:5px solid var(--gold)}
.knot-icon{background:var(--vermilion)}
.hero{isolation:isolate}
.hero-copy{position:relative}
.hero-copy:before{content:'';position:absolute;left:-46px;top:38px;width:160px;height:160px;border-radius:50%;background:var(--surface);z-index:-1}
.hero h1{color:var(--ink)}
.overline{color:var(--vermilion)}
.hero-photo:before{border-color:var(--gold);border-width:2px}
.photo-seal{background:var(--vermilion);color:var(--paper);border-color:var(--vermilion);outline-color:var(--gold)}
.chapter-nav{background:var(--surface);border-block-color:var(--gold)}
.chapter-nav a span{color:var(--vermilion)}
.greeting-photo:after,.portrait-frame:after{border-color:var(--gold)}
.signature span{color:var(--vermilion)}
.mizuhiki-break{background:linear-gradient(90deg,var(--gold) 0 45%,var(--vermilion) 45% 55%,var(--gold) 55% 100%)}
.section-heading .chapter,.album-copy .chapter,.menu-title .chapter{color:var(--vermilion)}
.section-heading h2:after{content:'';display:block;width:48px;height:3px;background:var(--gold);margin:22px auto 0}
.seat-panel{border-top:3px solid var(--gold)}
.floorplan{background:var(--surface)}
.album{background:var(--sakura);border-block:1px solid var(--line)}
.album-copy h2{color:var(--ink)}
.album-copy .pending-label{border-color:var(--gold)}
.portrait-frame>span{background:var(--surface)}
.menu-section{background:var(--surface);border-block:1px solid var(--line)}
.menu-paper{border-top:3px solid var(--gold)}
.menu-paper-top{color:var(--vermilion)}
footer{background:var(--surface);border-top:3px solid var(--gold)}
.bottom-nav{border-top:2px solid var(--gold)}
.bottom-nav a.active{color:var(--vermilion);background:var(--sakura)}
@media(max-width:760px){.hero-copy:before{left:4px;top:47px;width:140px;height:140px}.section-heading h2:after{margin-top:17px;width:40px}.site-header{border-top-width:4px}}
/* A bounded paper-fold welcome, then an unobtrusive companion at the margin. */
.welcome-screen{display:none;position:fixed;inset:0;z-index:50;background:var(--paper);pointer-events:none;place-content:center;justify-items:center;opacity:0}
.has-welcome .welcome-screen{display:grid;opacity:1;animation:welcome-safety .6s 3.8s forwards}
.welcome-done .welcome-screen{display:grid;opacity:0;visibility:hidden;transition:opacity .8s,visibility 0s .8s}
.welcome-screen>p{font-family:var(--display);font-size:22px;letter-spacing:.18em;color:var(--gold-strong);margin-top:130px}
.fold-scene{position:absolute;left:50%;top:50%;width:110px;height:110px;transform:translate(-50%,-50%);perspective:500px}
.fold-paper{position:absolute;inset:0;background:var(--gold);opacity:0;transform-origin:center}
.fold-square{background:var(--sakura);border:1px solid var(--vermilion);animation:fold-square .65s ease-in-out both}
.fold-triangle{clip-path:polygon(0 100%,50% 0,100% 100%);animation:fold-triangle .65s .5s ease-in-out both}
.fold-diamond{background:var(--vermilion);clip-path:polygon(50% 0,83% 50%,50% 100%,17% 50%);animation:fold-diamond .65s 1s ease-in-out both}
.fold-bird-base{clip-path:polygon(50% 0,71% 48%,100% 85%,50% 65%,0 85%,29% 48%);animation:fold-diamond .6s 1.5s ease-in-out both}
.wedding-crane{--crane-y:28vh;--crane-tilt:-9deg;position:fixed;width:54px;height:54px;right:12px;top:var(--crane-y);z-index:51;pointer-events:none;opacity:.84;transform:rotate(var(--crane-tilt));transition:top 1.2s ease-out,right 1.2s ease-in-out,transform 1.2s ease-in-out,width 1.2s,height 1.2s,opacity .7s}
.crane-shape{display:block;width:100%;height:100%;background:var(--vermilion);mask:url('assets/celebration/origami-crane.svg') center/contain no-repeat}
.has-welcome .wedding-crane{right:calc(50% - 65px);top:calc(50% - 65px);width:130px;height:130px;transform:rotate(0);animation:crane-unfold .65s 1.8s both}
@keyframes fold-square{0%{opacity:1;transform:rotate(-12deg) scale(.85)}70%{opacity:1;transform:rotate(0) rotateX(28deg)}100%{opacity:0;transform:rotateX(70deg)}}
@keyframes fold-triangle{0%{opacity:0;transform:rotateX(-55deg)}25%,75%{opacity:1}100%{opacity:0;transform:rotateY(65deg)}}
@keyframes fold-diamond{0%{opacity:0;transform:rotateY(-60deg) scale(.8)}25%,70%{opacity:1;transform:rotateY(0) scale(1)}100%{opacity:0;transform:scale(.9)}}
@keyframes crane-unfold{from{opacity:0;transform:scale(.6) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes welcome-safety{to{opacity:0;visibility:hidden}}
@media(max-width:760px){.wedding-crane{width:28px;height:28px;right:0;opacity:.62}.has-welcome .wedding-crane{width:110px;height:110px;right:calc(50% - 55px);top:calc(50% - 55px)}.welcome-screen>p{font-size:20px}}
@media(prefers-reduced-motion:reduce){.welcome-screen,.has-welcome .welcome-screen{display:none!important}.fold-paper{animation:none!important}.wedding-crane,.has-welcome .wedding-crane{animation:none!important;transition:none!important;right:12px;top:28vh;width:40px;height:40px;transform:none;opacity:.7}@media(max-width:760px){.wedding-crane,.has-welcome .wedding-crane{right:0;width:26px;height:26px}}}

/* Original Japanese play patterns: broad clouds, seigaiha and a ceremonial fan. */
.ornament{display:block;position:absolute;pointer-events:none;background:var(--gold);mask-position:center;mask-repeat:no-repeat;mask-size:contain}
.hero-cloud{width:260px;height:80px;left:-38px;top:6px;opacity:.42;mask-image:url('assets/celebration/kasumi-cloud-mask.svg');z-index:-1}
.hero-medallion{width:210px;height:210px;left:-92px;bottom:0;opacity:.7;mask-image:url('assets/celebration/wave-medallion-mask.svg');z-index:-1}
.hero-photo img{position:relative}
.album{position:relative;isolation:isolate;background:repeating-linear-gradient(90deg,var(--sakura) 0 40px,var(--paper) 40px 43px)}
.album-inner{position:relative;z-index:1}
.album-copy{background:var(--paper);padding:42px 35px;border-top:3px solid var(--gold)}
.album-cloud{right:2%;top:28px;width:290px;height:88px;opacity:.45;mask-image:url('assets/celebration/kasumi-cloud-mask.svg')}
.mizuhiki-break{mask-image:url('assets/celebration/mizuhiki-divider-mask.svg');height:88px;mask-size:contain;max-width:500px;width:70%}
.menu-motif{background:var(--gold);mask:url('assets/celebration/fan-mask.svg') center/contain no-repeat;width:180px;height:140px;opacity:.75}
footer{position:relative;isolation:isolate}
.footer-cloud{left:6%;top:44px;width:240px;height:73px;opacity:.42;mask-image:url('assets/celebration/kasumi-cloud-mask.svg');z-index:-1}
.fold-scene{width:180px;height:150px}
.fold-paper{background:none!important;border:0;clip-path:none!important}
.fold-paper svg,.crane-shape svg{display:block;width:100%;height:100%}
.fold-square{animation:fold-square .8s ease-in-out both}
.fold-triangle{animation:fold-triangle .8s .6s ease-in-out both}
.fold-diamond{animation:fold-diamond .8s 1.2s ease-in-out both}
.crane-shape{background:none;mask:none}
.wedding-crane{width:64px;height:54px;opacity:1}
.has-welcome .wedding-crane{width:180px;height:150px;right:calc(50% - 90px);top:calc(50% - 75px)}
@media(max-width:760px){.hero-cloud{width:170px;height:52px;left:4px;top:5px;opacity:.4}.hero-medallion{width:120px;height:120px;left:-19px;bottom:8px}.album-copy{padding:28px 22px}.album-cloud{width:180px;height:55px;top:12px;right:0}.mizuhiki-break{height:64px;width:80%}.footer-cloud{width:150px;height:45px;left:0;top:30px}.wedding-crane{width:30px;height:25px;right:0;opacity:.85}.has-welcome .wedding-crane{width:160px;height:134px;right:calc(50% - 80px);top:calc(50% - 67px)}}
@media(prefers-reduced-motion:reduce){.has-welcome .wedding-crane{width:64px;height:54px;right:12px;top:28vh}@media(max-width:760px){.has-welcome .wedding-crane{width:30px;height:25px;right:0;top:28vh}}}

/* The two lead photographs trade places with face-safe focal points. */
.hero-photo img{object-position:52% center}
.greeting-photo img{object-position:center 23%}
/* Independent inner motion keeps the scroll-follow rotation smooth. */
.wedding-crane{width:102px;height:85px;right:12px;z-index:19}
.welcome-done .crane-shape{animation:crane-float 5.8s ease-in-out infinite;transform-origin:50% 58%}
@keyframes crane-float{
  0%,100%{transform:translate(0,3px) rotate(-3deg)}
  25%{transform:translate(-2px,-4px) rotate(0deg)}
  50%{transform:translate(0,-9px) rotate(3deg)}
  75%{transform:translate(2px,-3px) rotate(0deg)}
}
@media(max-width:760px){
  .wedding-crane{width:50px;height:41.25px;right:8px}
  .greeting-photo img{object-position:center 23%}
}
@media(prefers-reduced-motion:reduce){
  .wedding-crane,.has-welcome .wedding-crane{width:102px;height:85px;right:12px;top:28vh;transform:none;transition:none!important}
  .crane-shape,.welcome-done .crane-shape{animation:none!important;transform:none}
  @media(max-width:760px){.wedding-crane,.has-welcome .wedding-crane{width:50px;height:41.25px;right:8px}}
}
/* A single shared-vertex paper mesh makes each fold legible before its handoff. */
.welcome-screen{pointer-events:auto}
.has-welcome .welcome-screen{animation:none}
.welcome-done .welcome-screen{pointer-events:none;transition:opacity .65s ease,visibility 0s .65s}
.welcome-screen>p{margin-top:190px}
#welcome-skip{border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text-secondary);font:12px var(--body);letter-spacing:.1em;padding:10px 4px;margin-top:16px;cursor:pointer}
#welcome-skip:disabled{cursor:default;border-color:transparent}
.fold-scene{width:240px;height:200px}
.has-welcome .wedding-crane{width:240px;height:200px;right:calc(50% - 120px);top:calc(50% - 100px);animation:none;transform:none;opacity:1;z-index:51}
.has-welcome.has-origami-motion .wedding-crane{opacity:0}
.welcome-done .fold-scene{visibility:hidden}
.welcome-done .wedding-crane{opacity:1;transition:top 1.2s ease-out,right 1.2s ease-in-out,transform 1.2s ease-in-out,width 1.2s,height 1.2s}
.welcome-done:not(.welcome-settled) .wedding-crane{z-index:51}
.welcome-done:not(.welcome-settled) .crane-shape{animation:none}
@media(max-width:760px){
  .fold-scene{width:216px;height:180px}
  .has-welcome .wedding-crane{width:216px;height:180px;right:calc(50% - 108px);top:calc(50% - 90px)}
  .welcome-screen>p{margin-top:170px}
}
@media(prefers-reduced-motion:reduce){
  .has-welcome .welcome-screen{display:grid!important;animation:none}
  .welcome-done .welcome-screen{display:grid!important;transition:opacity .2s,visibility 0s .2s}
  .wedding-crane,.welcome-done .wedding-crane{transition:none!important;transform:none}
  .welcome-done .wedding-crane{top:var(--crane-y)}
}
/* Reserve the entire folding canvas before the caption and ready-state control. */
.welcome-screen>p{position:absolute;top:calc(50% + 124px);left:0;width:100%;margin:0;text-align:center;line-height:1.8}
#welcome-skip{position:absolute;top:calc(50% + 180px);left:50%;transform:translateX(-50%);margin:0;white-space:nowrap}
@media(max-width:760px){
  .welcome-screen>p{top:calc(50% + 114px);margin:0}
  #welcome-skip{top:calc(50% + 164px)}
}

/* Licensed original mizuhiki: retain the white interwoven cords and crossings. */
.knot-icon{background:transparent url('assets/sourced/ume-mizuhiki.svg') center/contain no-repeat;mask:none}
.mizuhiki-break{background:transparent url('assets/sourced/awaji-divider.svg') center/contain no-repeat;mask:none}
.menu-motif{mask-image:url('assets/sourced/sensu.svg')}

/* Keep words and names intact as the invitation adapts to small phones. */
.phrase{display:inline-block;white-space:nowrap}
time .date-year,time .date-day{display:inline-block;white-space:nowrap}
.site-header>p time span{display:inline-block}
.hero h1 span,.hero-names>span,.hero-names>i,.signature,.profiles h3{white-space:nowrap}
.search-column,.search-box,.profiles>article,.greeting-copy,.album-copy{min-width:0}
.search-box input{min-width:0;flex:1}
.seat-hint .nav-symbol{flex-shrink:0}
.bottom-nav a,.chapter-nav a{white-space:nowrap;min-width:0}
@media(max-width:760px){
 .site-header{gap:12px}.brand{flex-shrink:0}.site-header>p{font-size:10px}
 .hero h1{min-height:9.3em;height:auto}
 .hero-names{min-height:250px;flex-wrap:nowrap}.hero-names>span,.hero-names>i{flex-shrink:0}
 .hero-date{font-size:11px}.hero-date time .date-year,.hero-date time .date-day{display:block}
 .hero-date time{display:inline-block}.hero-date br{display:none}.hero-date>span{display:block}
 .greeting{grid-template-columns:22px minmax(0,1fr);gap:16px}
 .greeting-copy>p,.album-copy>p:not(.chapter){font-size:13px}
 .section-heading>p:last-child:not(.chapter),.seat-hint p,.map-note,.menu-note,.album-copy small{font-size:12px}
 .search-box input{font-size:16px}.search-column label{font-size:12px}
 .seat-hint{gap:10px}.seat-hint p{flex:1;min-width:0}
 .pending-label{display:block;text-align:center;max-width:100%;font-size:12px}
 .album-copy{padding-inline:18px}
 .welcome-screen>p{white-space:nowrap}
 footer>p .phrase{white-space:nowrap}
}
@media(max-width:400px){
 .site-header>p time span{display:block}
 .greeting h2{font-size:24px}
 .seat-panel{padding-inline:15px}.floorplan{padding-inline:16px}
 .seat-hint{align-items:flex-start}.seat-hint .nav-symbol{width:26px;height:26px}
 footer>p{font-size:24px}.profiles h3{font-size:25px}
}
/* On phones, reveal the names only after the crane reaches its resting margin. */
@keyframes hero-copy-reveal{from{opacity:0}to{opacity:1}}
@media(max-width:760px){
 .has-welcome .hero-copy{opacity:0}
 .welcome-done .hero-copy{animation:hero-copy-reveal .3s ease-out 1.25s both}
}
@media(max-width:760px) and (prefers-reduced-motion:reduce){
 .welcome-done .hero-copy{animation:none;opacity:1}
}
