@charset "UTF-8";
:root{--blue:#245bb0;--deep:#244e87;--sky:#b9ddea;--paper:#fcf8ef;--yellow:#f3d269;--pink:#eed6d0;--ink:#244d77;--body:'Zen Maru Gothic','Hiragino Maru Gothic ProN',Meiryo,sans-serif;--hand:'Klee One','Hiragino Maru Gothic ProN',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;font-weight:500;line-height:1.9;overflow-x:clip}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #df7533;outline-offset:6px}img{display:block;height:auto}.header img,.hero img,.welcome img,.playbook img,.chapter img,.closing img,.story-modal img,#photo-dialog img{width:100%;object-fit:cover}p,h1,h2,h3{margin:0}button{border:0}em{font-style:normal}.handwritten{font-family:var(--hand);font-weight:600}.eyebrow{font-family:var(--body);font-size:12px;letter-spacing:.16em;font-weight:700}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:#fff;z-index:100}.skip:focus{top:20px}.header{position:absolute;top:0;left:0;right:0;padding:31px 3.8%;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;z-index:10;color:var(--blue)}.brand{display:block;text-align:center}.brand>span{font-family:Georgia,serif;display:block;font-size:24px;line-height:1.08;letter-spacing:.06em}.brand>small{font-size:12px;display:block;margin-top:10px;letter-spacing:.15em}.header-right{display:flex;align-items:center;gap:28px;font-size:14px}.header-label{writing-mode:vertical-rl;letter-spacing:.18em;position:absolute;right:43px;top:152px}.index-button{display:flex;align-items:center;gap:16px;border-bottom:1px solid #245bb060;padding:3px 0 11px}.index-button>span{font-size:24px;font-weight:500;line-height:1}.hero{position:relative;min-height:800px;height:100svh;max-height:1080px;overflow:hidden;background:var(--sky);isolation:isolate}.hero-world{position:absolute;inset:0;background-position:center bottom;background-size:cover;z-index:-2;transform-origin:center bottom;will-change:transform}.hero-copy{text-align:center;padding:124px 160px 0;position:relative;z-index:2}.hero-copy .eyebrow{font-size:12px;letter-spacing:.18em;margin-bottom:13px}.hero h1{font-family:var(--hand);font-size:clamp(45px,5vw,79px);line-height:1.45;letter-spacing:.12em;font-weight:600;color:var(--blue);transform:rotate(-3deg)}.hero h1>span{display:block}.hero-sub{font-size:14px;font-weight:700;letter-spacing:.08em;margin-top:20px}.hero-memory{position:absolute;width:min(50vw,790px);height:39%;bottom:7.5%;left:25%;transform:rotate(-5deg);border:7px solid var(--paper);border-radius:48% 52% 43% 57% / 47% 37% 63% 53%;overflow:hidden;box-shadow:0 9px 0 #234e6b12;isolation:isolate}.hero-memory>img{height:100%;object-position:center 51%;transform:scale(1.04)}.memory-caption{position:absolute;bottom:20px;left:50%;transform:translateX(-50%) rotate(5deg);padding:7px 18px;border-radius:40%;color:var(--blue);background:var(--paper);font-family:var(--hand);font-size:16px;white-space:nowrap}.hero-aside{position:absolute;left:7%;bottom:33%;font-size:clamp(14px,1.5vw,21px);line-height:1.9;transform:rotate(-11deg)}.hero-volume{position:absolute;bottom:36px;right:4%;font-size:12px;line-height:1.8;letter-spacing:.08em;color:var(--deep)}.scroll-invite{position:absolute;bottom:28px;left:4%;display:flex;gap:14px;align-items:center;font-size:12px;letter-spacing:.15em;z-index:3}.scroll-line{display:block;font-size:28px;animation:scroll-cue 2s ease-in-out infinite}.welcome{position:relative;padding:170px 22% 115px;min-height:720px;isolation:isolate}.welcome:before{content:'';position:absolute;left:-5%;top:-50px;width:110%;height:90px;background:var(--paper);border-radius:50% 50% 0 0 / 100% 100% 0 0;z-index:-1}.welcome-words{text-align:center;position:relative;z-index:1}.welcome .eyebrow{font-size:12px;margin-bottom:23px}.welcome h2{font-size:clamp(29px,3vw,44px);line-height:1.8;letter-spacing:.07em}.welcome-words>p:not(.eyebrow){font-size:16px;line-height:2.35;margin-top:27px}.welcome-sign{display:inline-block;font-size:21px;margin-top:39px;transform:rotate(-4deg);border-bottom:2px solid #eab844;padding-bottom:7px}.welcome-photo{position:absolute;width:22%;max-width:340px;will-change:translate}.welcome-photo img{aspect-ratio:1;border-radius:47% 53% 63% 37% / 62% 42% 58% 38%}.welcome-photo>span{display:block;font-size:18px;text-align:center;margin-top:15px}.welcome-left{left:-3%;top:25%;transform:rotate(-14deg)}.welcome-right{right:-3%;top:50%;transform:rotate(13deg)}.playbook{position:relative;padding:20px 8% 100px;max-width:1500px;margin:auto;text-align:center}.playbook>.eyebrow{font-size:14px;letter-spacing:.1em}.index-links{display:flex;justify-content:space-between;gap:22px;margin-top:35px}.index-links>a{flex:1;position:relative;padding:23px 12px 19px;border:1px solid #245bb03c;border-radius:48% 52% 47% 53% / 53% 42% 58% 47%;font-size:16px;font-weight:700;transition:background .25s,transform .25s}.index-links>a:nth-child(2){transform:rotate(3deg)}.index-links>a:nth-child(3){transform:rotate(-3deg)}.index-links>a>span{display:block;font-family:Georgia,serif;font-size:22px;font-style:italic;margin-bottom:2px}.index-links small{font-size:12px;letter-spacing:.12em;display:block;margin-top:5px}.index-links>a:hover{background:var(--yellow);transform:translateY(-8px) rotate(-3deg)}.chapter{position:relative;isolation:isolate;scroll-margin-top:0}.chapter-inner{max-width:1440px;margin:auto;padding:120px 8% 150px;display:grid;grid-template-columns:1fr 1.25fr;gap:7%;align-items:center;min-height:880px}.chapter-text{position:relative;z-index:2}.chapter-label{display:flex;align-items:center;gap:16px;font-size:12px;letter-spacing:.11em;margin-bottom:24px}.chapter-label>span{font:italic 30px Georgia,serif}.chapter h2{font-size:clamp(32px,3.15vw,49px);line-height:1.6;font-weight:900;letter-spacing:.025em}.chapter h2 em{position:relative;display:inline-block}.chapter h2 em:after{content:'';height:10px;background:#f3d269bb;position:absolute;bottom:6px;left:-2%;width:104%;z-index:-1;transform:rotate(-2deg)}.chapter-note{font-size:18px;margin-top:19px;letter-spacing:.04em}.body-copy{font-size:16px;line-height:2.3;margin-top:29px}.chapter-art{position:relative;min-width:0}.photo-open{cursor:zoom-in;padding:0;background:none;display:block;position:relative}.photo-open>img{height:100%;transition:transform .7s cubic-bezier(.2,.65,.2,1)}.photo-open:hover>img{transform:scale(1.045)}.main-photo{width:100%;aspect-ratio:.99;overflow:hidden}.organic{border-radius:48% 52% 44% 56% / 39% 36% 64% 61%;transform:rotate(6deg)}.dog-art .main-photo img{object-position:50% center;transform:scale(1.07) rotate(-6deg)}.dog-art .main-photo:hover img{transform:scale(1.12) rotate(-6deg)}.dog-chapter{background:#e2eee7}.dog-chapter:before,.dog-chapter:after{content:'';position:absolute;left:-4%;width:108%;height:80px;border-radius:50%;background:#e2eee7;z-index:-1}.dog-chapter:before{top:-39px}.dog-chapter:after{bottom:-32px}.inset-photo{position:absolute;width:38%;aspect-ratio:1;overflow:hidden;border:6px solid var(--paper);border-radius:50%;bottom:-45px;left:-35px;transform:rotate(-10deg)}.dog-art .inset-photo img{object-position:39% center}.art-note{position:absolute;right:4%;bottom:-53px;font-size:20px;transform:rotate(-8deg)}.big-word{position:absolute;pointer-events:none;font-size:clamp(47px,6vw,88px);font-weight:900;line-height:1;letter-spacing:-.055em;color:transparent;-webkit-text-stroke:1px currentColor;opacity:.3;white-space:nowrap}.dog-art .big-word{top:-55px;left:-22px;transform:rotate(-9deg);color:#5e816c;-webkit-text-fill-color:transparent}.penguin-chapter{background:var(--blue);color:var(--paper);padding-top:20px}.penguin-chapter .chapter-inner{grid-template-columns:1.25fr 1fr;padding-top:165px;padding-bottom:155px;gap:11%}.penguin-chapter h2{font-size:clamp(39px,4.2vw,66px);line-height:1.5}.penguin-chapter h2 em:after{background:#6090d9;bottom:10px}.penguin-art .main-photo{aspect-ratio:.91;border-radius:48% 52% 37% 63% / 58% 42% 58% 42%;transform:rotate(-6deg);border:7px solid #ffffff20}.penguin-art .main-photo img{object-position:48% center;transform:scale(1.1) rotate(6deg)}.penguin-art .main-photo:hover img{transform:scale(1.15) rotate(6deg)}.penguin-speech{position:absolute;top:-40px;left:8%;transform:rotate(-12deg);font-size:23px;color:var(--paper)}.penguin-art .big-word{color:#fff;-webkit-text-fill-color:transparent;bottom:-72px;left:7%;font-size:clamp(45px,6vw,88px);transform:rotate(5deg)}details{margin-top:29px;border-bottom:1px solid #244d7750;max-width:410px}summary{cursor:pointer;list-style:none;font-size:14px;padding:13px 0;display:flex;align-items:center;justify-content:space-between;gap:15px}summary::-webkit-details-marker{display:none}summary span{font-family:sans-serif;font-size:23px;transition:transform .3s}details[open] summary span{transform:rotate(45deg)}.story-extra{padding:6px 0 20px}.story-extra>p{font-size:14px;line-height:2;margin-bottom:14px}.story-extra>.photo-open{width:100%;border-radius:14px;overflow:hidden}.story-extra>.photo-open img{aspect-ratio:1.5}.story-extra>.photo-open>span{position:absolute;bottom:8px;right:8px;background:var(--paper);color:var(--blue);font-size:12px;padding:3px 10px;border-radius:20px}.penguin-chapter details{border-color:#fcf8ef70}.party-chapter{background:var(--yellow);color:#684b27}.party-chapter:before{content:'';position:absolute;left:0;right:0;top:-45px;height:75px;border-radius:55% 45% 0 0 / 100% 100% 0 0;background:var(--yellow)}.party-chapter .chapter-inner{gap:10%;padding-top:160px;padding-bottom:160px}.party-chapter h2{font-size:clamp(30px,3vw,45px)}.party-chapter h2 em:after{background:#fdf7e8a0}.party-chapter .body-copy{color:#684b27}.party-stack{position:relative;padding-top:30%;padding-bottom:11%}.party-stack .photo-open{overflow:hidden;border:9px solid var(--paper);box-shadow:0 12px 20px #69471616}.stack-back{width:88%;aspect-ratio:1.3;position:absolute!important;top:-20px;left:0;transform:rotate(-14deg)}.stack-front{width:100%;aspect-ratio:1.3;transform:rotate(7deg);z-index:1}.party-speech{position:absolute;right:5px;bottom:10px;font-size:22px;transform:rotate(7deg)}.party-art .big-word{top:-85px;left:8%;color:#ae7521;-webkit-text-fill-color:transparent;opacity:.55;transform:rotate(-8deg)}.halloween-chapter{background:#f1d8d3;color:#713e37;padding:120px 8% 135px}.halloween-chapter:before{content:'';background:#f1d8d3;position:absolute;top:-40px;left:-5%;height:70px;width:110%;border-radius:50%}.halloween-title{text-align:center}.halloween-title .chapter-label{justify-content:center}.halloween-title h2{font-size:clamp(32px,3.7vw,54px)}.halloween-title h2 em:after{background:#f7e9b4}.halloween-collage{position:relative;width:min(1080px,90%);margin:54px auto 45px;padding-right:18%;padding-bottom:4%}.halloween-main{width:100%;overflow:hidden;border-radius:44% 56% 43% 57% / 28% 35% 65% 72%;aspect-ratio:1.65;transform:rotate(-3deg)}.halloween-small{width:34%;aspect-ratio:1;position:absolute;right:-2%;bottom:0;border:7px solid var(--paper);border-radius:50%;overflow:hidden;transform:rotate(9deg)}.sweets-speech{position:absolute;right:-9%;top:14%;font-size:22px;transform:rotate(9deg)}.halloween-bottom{max-width:740px;display:flex;gap:9%;margin:auto;align-items:flex-start}.halloween-bottom .body-copy{margin:0;flex:1}.halloween-bottom details{margin:0;flex:1}.closing{position:relative;isolation:isolate;text-align:center;background:var(--sky);min-height:780px;padding:125px 8% 300px;overflow:hidden}.closing:before{content:'';position:absolute;top:-40px;left:-5%;width:110%;height:70px;border-radius:50%;background:#f1d8d3}.closing-world{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center bottom;opacity:.85}.closing h2{font-size:clamp(38px,5vw,67px);line-height:1.6;transform:rotate(-3deg);letter-spacing:.1em;margin-top:17px}.closing>p:not(.eyebrow){margin-top:27px;font-size:16px}.back-to-play{display:inline-flex;gap:35px;align-items:center;background:var(--paper);padding:13px 26px;border:1px solid var(--blue);border-radius:50px;margin-top:25px;font-size:14px;transition:transform .3s}.back-to-play:hover{transform:rotate(-3deg) translateY(-3px)}.lp-footer{position:relative;background:var(--paper);padding:35px 5% 38px;display:flex;justify-content:space-between;align-items:center;gap:35px}.lp-footer>a{font-family:Georgia,serif;font-size:22px;white-space:nowrap}.lp-footer p{font-size:12px;color:#5d6b72;line-height:1.9}.motion-toggle{padding:9px 13px;white-space:nowrap;border:1px solid #245bb03c;border-radius:30px;background:none;font-size:12px;cursor:pointer}.penguin-guide{display:none;position:fixed;right:20px;bottom:20px;width:120px;z-index:15;filter:drop-shadow(0 5px 3px #0000000a);transition:opacity .3s,transform .5s}.guide-illustration{display:block;width:100%;height:135px;background-size:contain;background-repeat:no-repeat;background-position:center;animation:waddle 3.6s ease-in-out infinite}.guide-bubble{position:absolute;bottom:125px;right:13px;background:var(--paper);border:1px solid #245bb030;min-width:140px;text-align:center;padding:9px 12px;white-space:nowrap;font-size:14px;border-radius:45% 55% 48% 52% / 55% 60% 40% 45%;transform:rotate(-6deg)}.guide-bubble:after{content:'';position:absolute;bottom:-6px;right:25px;width:11px;height:11px;background:var(--paper);border-right:1px solid #245bb030;border-bottom:1px solid #245bb030;transform:rotate(45deg)}.penguin-guide:hover{transform:translateY(-7px)}dialog{max-width:min(1000px,92vw);width:100%;padding:49px 16px 15px;background:var(--paper);color:var(--ink);border:0;border-radius:15px;box-shadow:0 15px 90px #0005}dialog::backdrop{background:#173756c9;backdrop-filter:blur(8px)}#dialog-photo{max-height:74svh;object-fit:contain;min-height:150px}.dialog-close{position:absolute;right:15px;top:8px;background:none;font-size:14px;cursor:pointer;display:flex;gap:10px;align-items:center}.dialog-close>span{font-size:26px;font-family:sans-serif}#photo-caption{text-align:center;font-family:var(--hand);font-size:17px;margin:12px 4px 2px}body.dialog-open{overflow:hidden}.reveal-enabled .chapter-text,.reveal-enabled .chapter-art,.reveal-enabled .halloween-title,.reveal-enabled .halloween-collage{transition:opacity .9s,translate 1s cubic-bezier(.22,.61,.36,1)}.reveal-enabled .not-yet{opacity:0;translate:0 35px}.paused *, .paused *:before,.paused *:after{animation-play-state:paused!important}.paused .not-yet{opacity:1;translate:0 0}
@keyframes scroll-cue{50%{transform:translateY(6px)}}@keyframes waddle{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(4deg) translateY(-7px)}}
@media(min-width:1500px){.hero-copy{padding-top:140px}.hero-memory{width:48%;left:26%;height:41%;bottom:6%}.hero-aside{left:9%}.hero h1{font-size:78px}}
@media(max-width:1100px){.hero{min-height:760px}.hero-copy{padding:125px 90px 0}.hero h1{font-size:56px}.hero-memory{width:59%;left:20.5%;height:38%;bottom:7%}.hero-aside{font-size:16px;left:3%;bottom:29%}.chapter-inner{padding-left:6%;padding-right:6%;gap:6%;min-height:780px}.chapter h2{font-size:34px}.chapter-note{font-size:16px}.penguin-chapter .chapter-inner{gap:8%}.body-copy{font-size:15px}.welcome{padding-left:21%;padding-right:21%}.welcome-photo{width:23%}.index-links{gap:15px}.index-links>a{font-size:14px}.sweets-speech{right:-10%;font-size:18px}.penguin-guide{width:93px;right:10px}.guide-illustration{height:105px}.guide-bubble{bottom:99px;right:2px;font-size:12px;min-width:125px}.lp-footer{gap:23px}.lp-footer>a{font-size:18px}.halloween-chapter{padding-left:6%;padding-right:6%}}
@media(max-width:760px){html{scroll-padding-top:15px}.header{padding:23px 6%}.brand>span{font-size:20px}.brand>small{font-size:12px;letter-spacing:.11em;margin-top:7px}.header-right{font-size:12px}.header-label{display:none}.index-button{gap:10px;padding-bottom:8px}.index-button>span{font-size:21px}.hero{height:94svh;min-height:740px;max-height:1000px}.hero-copy{padding:140px 20px 0}.hero-copy .eyebrow{font-size:12px;letter-spacing:.14em;margin-bottom:17px}.hero h1{font-size:clamp(37px,8.5vw,60px);line-height:1.55;letter-spacing:.06em}.hero-sub{font-size:12px;letter-spacing:0;margin-top:17px}.hero-memory{width:80%;left:10%;height:31%;bottom:16%;border-width:5px;transform:rotate(-5deg)}.memory-caption{font-size:12px;padding:5px 13px;bottom:13px}.hero-aside{font-size:14px;bottom:9%;left:10%;transform:rotate(-7deg)}.hero-volume{display:none}.hero-world{background-size:auto 100%;background-position:50% bottom}.scroll-invite{left:6%;bottom:16px;font-size:12px;gap:9px}.scroll-line{font-size:24px}.welcome{padding:97px 7% 90px;min-height:0}.welcome h2{font-size:29px;line-height:1.8;letter-spacing:0}.welcome .eyebrow{font-size:12px;letter-spacing:.1em;margin-bottom:23px}.welcome-words>p:not(.eyebrow){font-size:15px;line-height:2.4;margin-top:24px}.welcome-sign{font-size:18px;margin-top:28px}.welcome-photo{display:none}.playbook{padding:0 8% 83px}.playbook>.eyebrow{font-size:12px;letter-spacing:.01em}.index-links{display:grid;grid-template-columns:1fr 1fr;gap:20px 15px;margin-top:27px}.index-links>a{font-size:14px;padding:16px 5px 19px}.index-links>a>span{font-size:22px}.index-links small{font-size:12px;letter-spacing:.05em}.chapter-inner{display:flex;flex-direction:column;padding:75px 8% 95px;gap:54px;min-height:0;align-items:stretch}.chapter-label{font-size:12px;margin-bottom:16px;gap:12px}.chapter-label>span{font-size:26px}.chapter h2{font-size:clamp(31px,7.8vw,44px);line-height:1.65;letter-spacing:0}.chapter h2 em:after{height:8px;bottom:7px}.chapter-note{font-size:17px;margin-top:13px}.body-copy{font-size:16px;line-height:2.2;margin-top:22px}.chapter-text{max-width:520px;width:100%;margin:auto}.chapter-art{width:100%;max-width:520px;margin:auto}.main-photo{aspect-ratio:1.15}.dog-art{margin-bottom:20px}.dog-art .big-word{top:-32px;left:3%;font-size:51px}.inset-photo{left:-10px;bottom:-30px;width:35%;border-width:5px}.art-note{font-size:17px;right:0;bottom:-34px}.penguin-chapter .chapter-inner{display:flex;flex-direction:column-reverse;padding-top:85px;padding-bottom:100px;gap:65px}.penguin-chapter h2{font-size:48px;line-height:1.45}.penguin-chapter h2 br{display:none}.penguin-art .main-photo{aspect-ratio:1.09}.penguin-speech{font-size:19px;top:-31px;left:12%}.penguin-art .big-word{font-size:52px;bottom:-39px;left:7%}.party-chapter .chapter-inner{padding-top:87px;padding-bottom:106px;gap:90px}.party-chapter h2{font-size:32px}.party-art .big-word{font-size:62px;top:-57px;left:4%}.party-stack .photo-open{border-width:6px}.stack-back{width:87%;top:-10px;left:4%}.stack-front{width:95%;margin-left:3%}.party-speech{font-size:18px;bottom:0;right:0}.halloween-chapter{padding:74px 8% 88px}.halloween-title{text-align:left}.halloween-title .chapter-label{justify-content:flex-start}.halloween-title h2{font-size:32px}.halloween-title h2 em{display:block}.halloween-title .chapter-note{font-size:16px}.halloween-collage{width:100%;margin-top:37px;margin-bottom:28px;padding-right:0;padding-bottom:26%}.halloween-main{aspect-ratio:1.13;border-radius:40% 60% 45% 55% / 25% 26% 74% 75%}.halloween-small{width:44%;right:-3%;bottom:0;border-width:5px}.sweets-speech{top:auto;bottom:7%;left:0;right:auto;font-size:16px;transform:rotate(-7deg)}.halloween-bottom{display:block}.halloween-bottom details{margin-top:18px}.closing{min-height:740px;padding:107px 6% 310px}.closing h2{font-size:42px;letter-spacing:.05em}.closing>p:not(.eyebrow){font-size:14px}.closing-world{background-size:auto 100%}.back-to-play{font-size:14px;gap:23px;padding:11px 22px}.penguin-guide{width:74px;bottom:8px;right:6px}.guide-illustration{height:88px}.guide-bubble{right:4px;bottom:82px;font-size:12px;min-width:116px;padding:8px}.penguin-guide.at-footer{opacity:0;pointer-events:none}.lp-footer{display:block;padding:31px 7% 30px}.lp-footer>a{font-size:21px}.lp-footer p{font-size:12px;margin-top:17px;line-height:1.9}.motion-toggle{margin-top:20px;font-size:12px}.story-extra>p{font-size:14px}summary{font-size:14px}dialog{max-width:94vw;padding:47px 10px 15px}#photo-caption{font-size:15px}#dialog-photo{max-height:70svh}}
@media(max-width:360px){.hero h1{font-size:34px}.hero-sub{font-size:12px}.welcome h2{font-size:25px}.chapter h2{font-size:30px}.chapter-note{font-size:15px}.penguin-chapter h2{font-size:42px}.index-links>a{font-size:13px}.halloween-title h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-enabled .not-yet{opacity:1;translate:0 0}}
.hero-world,.closing-world{background-image:url('assets/seaside-wedding-hero.jpg')}.penguin-guide{display:block}.guide-illustration{background-image:url('assets/penguin-ring-guide.png')}
.hero-memory{transform:translate(var(--move-x,0px),var(--move-y,0px)) rotate(calc(-5deg + var(--move-r,0deg)));transition:transform .8s cubic-bezier(.2,.65,.2,1)}
.paused{scroll-behavior:auto}.paused .hero-memory{transition:none}
@media(min-width:761px){.hero-copy h1>span:first-child{animation:opening-copy .85s both}.hero-copy h1>span:last-child{animation:opening-copy .85s .12s both}.hero-memory{animation:opening-photo 1.4s .1s both}}
@keyframes opening-copy{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}@keyframes opening-photo{from{opacity:0;scale:.94}to{opacity:1;scale:1}}
@media(max-width:760px){.penguin-guide{width:57px;right:3px}.guide-illustration{height:73px}.guide-bubble{font-size:12px;min-width:110px;bottom:70px;right:0}.body-copy{font-size:16px}}

/* Repeating curved silhouettes keep the boundaries fluid at every screen size. */
.wavy-section{--wave-width:360px;--wave-height:80px;position:relative;isolation:isolate}
.welcome{--surface:var(--paper)}
.playbook{--surface:#eaf1f5;background:var(--surface);max-width:none;padding:35px 8% 135px}
.playbook .index-links{max-width:1250px;margin-left:auto;margin-right:auto}
.dog-chapter{--surface:#e2eee7}.penguin-chapter{--surface:var(--blue)}
.party-chapter{--surface:var(--yellow)}.halloween-chapter{--surface:#f1d8d3}
.closing{--surface:var(--sky);overflow:visible}.lp-footer.wavy-section{--surface:var(--paper)}
.wavy-section::before{content:'';position:absolute;left:0;right:0;top:calc(1px - var(--wave-height));bottom:auto;width:100%;height:var(--wave-height);border-radius:0;background:var(--surface);z-index:-1;pointer-events:none;-webkit-mask-image:url('assets/section-wave.svg');mask-image:url('assets/section-wave.svg');-webkit-mask-size:var(--wave-width) var(--wave-height);mask-size:var(--wave-width) var(--wave-height);-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;animation:wave-drift 24s linear infinite}
.dog-chapter::after{content:none}
.penguin-chapter::before,.halloween-chapter::before,.lp-footer.wavy-section::before{animation-direction:reverse;animation-duration:29s}
.closing-world{overflow:hidden}.welcome-words,.playbook>.eyebrow,.index-links,.halloween-title,.halloween-bottom,.closing>p,.closing>h2,.closing>a{position:relative;z-index:1}
@keyframes wave-drift{to{-webkit-mask-position:var(--wave-width) 0;mask-position:var(--wave-width) 0}}

/* Only selected phrases move; the accessible label remains a single sentence. */
.text-highlight{display:inline-block;position:relative}
.motion-letter{display:inline-block;transform-origin:50% 85%;animation-duration:4.8s;animation-timing-function:cubic-bezier(.25,.7,.35,1);animation-iteration-count:infinite;animation-delay:calc(var(--letter-index) * 85ms);animation-play-state:paused}
.text-highlight.is-active .motion-letter{animation-play-state:running}
[data-text-motion="ripple"] .motion-letter{animation-name:letter-ripple}
[data-text-motion="float"] .motion-letter{animation-name:letter-float;animation-duration:5.5s}
[data-text-motion="pop"] .motion-letter{animation-name:letter-pop;animation-duration:4.6s}
[data-text-motion="cheers"] .motion-letter{animation-name:letter-cheers;animation-duration:4.8s}
.chapter h2 em.text-highlight::after{transform:rotate(-2deg) scaleX(1);transform-origin:left;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal-enabled .not-yet em.text-highlight::after{transform:rotate(-2deg) scaleX(0)}
@keyframes letter-ripple{0%,12%,40%,100%{transform:translateY(0) rotate(0)}24%{transform:translateY(-.13em) rotate(-3deg)}32%{transform:translateY(.025em) rotate(1deg)}}
@keyframes letter-float{0%,12%,50%,100%{transform:translateY(0)}30%{transform:translateY(-.09em)}}
@keyframes letter-pop{0%,12%,44%,100%{transform:translateY(0) scale(1)}24%{transform:translateY(-.12em) scale(1.08)}33%{transform:translateY(.025em) scale(.99)}}
@keyframes letter-cheers{0%,12%,46%,100%{transform:rotate(0) translateY(0)}23%{transform:rotate(-6deg) translateY(-.06em)}33%{transform:rotate(4deg) translateY(-.025em)}}
@media(max-width:760px){.wavy-section{--wave-width:220px;--wave-height:52px}.playbook{padding-top:25px;padding-bottom:105px}.motion-letter{animation-duration:5.5s}.text-highlight{max-width:100%}}
.paused .motion-letter{animation:none!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.wavy-section::before,.motion-letter{animation:none!important}.motion-letter{transform:none!important}.chapter h2 em.text-highlight::after{transition:none;transform:rotate(-2deg)}}

/* Non-uniform wave lengths and phases make each scene's shoreline different. */
.wavy-section{--wave-width:1120px;--wave-height:105px;--wave-speed:9s}
.playbook{--wave-width:930px;--wave-height:86px;--wave-speed:7.5s}
.dog-chapter{--wave-width:1270px;--wave-height:112px;--wave-speed:10s}
.penguin-chapter{--wave-width:1010px;--wave-height:125px;--wave-speed:8s}
.party-chapter{--wave-width:1360px;--wave-height:98px;--wave-speed:10.5s}
.halloween-chapter{--wave-width:890px;--wave-height:118px;--wave-speed:8.5s}
.closing{--wave-width:1200px;--wave-height:94px;--wave-speed:9s}
.lp-footer.wavy-section{--wave-width:1040px;--wave-height:78px;--wave-speed:9.5s}
.wavy-section::before{animation-duration:var(--wave-speed);-webkit-mask-image:url('assets/section-wave.svg?v=4');mask-image:url('assets/section-wave.svg?v=4');animation-delay:-3s}
.penguin-chapter::before{animation-delay:-5s}.halloween-chapter::before{animation-delay:-1s}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.silhouette-pattern{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;opacity:.10;color:var(--blue)}
.pattern-stamp{position:absolute;display:block;left:var(--stamp-x);top:var(--stamp-y);width:var(--stamp-size);height:var(--stamp-size);background:currentColor;transform:translate(-50%,-50%) rotate(var(--stamp-angle));-webkit-mask-image:url('assets/wedding-silhouettes.png');mask-image:url('assets/wedding-silhouettes.png');-webkit-mask-size:200% 200%;mask-size:200% 200%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-mode:alpha;animation:stamp-drift 9s ease-in-out infinite;animation-delay:var(--stamp-delay);animation-play-state:paused}
.icon-paw{-webkit-mask-position:0 0;mask-position:0 0}.icon-penguin{-webkit-mask-position:100% 0;mask-position:100% 0}.icon-cheers{-webkit-mask-position:0 100%;mask-position:0 100%}.icon-pumpkin{-webkit-mask-position:100% 100%;mask-position:100% 100%}
.hero .silhouette-pattern{opacity:.065}.welcome .silhouette-pattern{opacity:.075}
.dog-chapter .silhouette-pattern{color:#396d50;opacity:.13}.penguin-chapter .silhouette-pattern{color:#fcf8ef;opacity:.12}
.party-chapter .silhouette-pattern{color:#92602b;opacity:.11}.halloween-chapter .silhouette-pattern{color:#985047;opacity:.12}
.closing-world{z-index:-2}.closing .silhouette-pattern{opacity:.065}
.is-in-view .pattern-stamp{animation-play-state:running}
.pattern-stamp:nth-child(even){animation-direction:reverse;animation-duration:11s}
@keyframes stamp-drift{0%,100%{translate:0 0;rotate:-3deg}50%{translate:7px -13px;rotate:4deg}}

/* Organic photo frames breathe while captions gently sway in the sea breeze. */
.chapter .main-photo,.halloween-main{animation:photo-outline 11s ease-in-out infinite;animation-play-state:paused;box-shadow:0 15px 35px #183b6410}
.is-in-view .main-photo,.is-in-view .halloween-main{animation-play-state:running}
.penguin-art .main-photo{animation-delay:-5s;animation-direction:reverse}
.halloween-main{animation-delay:-3s;animation-duration:14s}
.chapter .art-note,.chapter .penguin-speech,.chapter .party-speech,.chapter .sweets-speech{animation:caption-sway 5.5s ease-in-out infinite;animation-play-state:paused;transform-origin:50% 80%}
.is-in-view .art-note,.is-in-view .penguin-speech,.is-in-view .party-speech,.is-in-view .sweets-speech{animation-play-state:running}
.index-links>a{background:#ffffff48;box-shadow:0 7px 0 #245bb008;transition:background .3s,transform .3s,box-shadow .3s}
.index-links>a:hover{box-shadow:0 13px 18px #245bb018}
.photo-open:focus-visible{outline-offset:9px}
@keyframes photo-outline{0%,100%{border-radius:48% 52% 44% 56% / 39% 36% 64% 61%}50%{border-radius:40% 60% 53% 47% / 53% 46% 54% 47%}}
@keyframes caption-sway{0%,100%{rotate:-2deg;translate:0 0}50%{rotate:2deg;translate:0 -5px}}
@media(max-width:760px){
 .wavy-section{--wave-width:740px;--wave-height:70px;--wave-speed:8s}
 .dog-chapter{--wave-width:830px;--wave-height:76px;--wave-speed:8.5s}
 .penguin-chapter{--wave-width:650px;--wave-height:84px;--wave-speed:7.5s}
 .party-chapter{--wave-width:920px;--wave-height:70px;--wave-speed:9s}
 .halloween-chapter{--wave-width:700px;--wave-height:80px;--wave-speed:8s}
 .pattern-stamp{width:calc(var(--stamp-size) * .7);height:calc(var(--stamp-size) * .7)}
 .silhouette-pattern{opacity:.075}.chapter .silhouette-pattern{opacity:.09}
 .welcome .text-highlight{font-size:clamp(22px,6vw,29px)}
}
@media(prefers-reduced-motion:reduce){.pattern-stamp,.chapter .main-photo,.halloween-main,.chapter .art-note,.chapter .penguin-speech,.chapter .party-speech,.chapter .sweets-speech{animation:none!important}.index-links>a{transition:none}}

/* Keep every opening caption above the highest possible wave crest. */
.hero{height:calc(100svh + 140px);min-height:930px;max-height:1250px}
.hero-memory{bottom:155px}.scroll-invite{bottom:125px}.hero-volume{bottom:128px}
.header-label{display:none}
.story-trigger{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:32px;max-width:410px;width:100%;padding:14px 17px 14px 19px;background:#ffffff48;border:1px solid currentColor;border-radius:28px 32px 27px 24px;font-size:14px;line-height:1.7;text-align:left;cursor:pointer;transition:translate .25s,box-shadow .25s,background .25s}
.story-trigger:hover{translate:0 -3px;background:#ffffff7a;box-shadow:0 7px 18px #163c6b10}
.trigger-mark{display:grid;place-items:center;flex-shrink:0;width:29px;height:29px;border-radius:50%;background:currentColor;font-size:0}
.trigger-mark::after{content:'↗';font-size:18px;color:var(--surface)}
.penguin-chapter .story-trigger{background:#ffffff0c;border-color:#ffffff80}.penguin-chapter .story-trigger:hover{background:#ffffff20}
.halloween-bottom>.story-trigger{margin:0;flex:1;align-self:center}
.story-modal{--modal-ink:#3c644d;--modal-base:#f9f7ed;--modal-accent:#dcebdd;--modal-backdrop:#27473cb8;width:min(1000px,92vw);max-width:1000px;max-height:90svh;padding:0;background:var(--modal-base);color:var(--modal-ink);border:1px solid #ffffffb8;border-radius:30px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;box-shadow:0 30px 100px #13395655}
.story-modal::backdrop{background:var(--modal-backdrop);backdrop-filter:blur(7px)}
.theme-penguin{--modal-ink:#245bb0;--modal-base:#f3f8fb;--modal-accent:#d3e8f3;--modal-backdrop:#173e71b8}
.theme-party{--modal-ink:#80502a;--modal-base:#fffaf0;--modal-accent:#f6dfa0;--modal-backdrop:#5d441eb8}
.theme-halloween{--modal-ink:#6a3b57;--modal-base:#fcf3ed;--modal-accent:#f0d5cf;--modal-backdrop:#48253fb8}
.modal-bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 22px;background:var(--modal-base);border-bottom:1px solid #244d7715}
.modal-bar>span{font-size:12px;letter-spacing:.13em;font-weight:700}
.story-close{display:flex;align-items:center;gap:10px;min-height:38px;padding:3px 12px;border-radius:30px;border:1px solid #244d7733;background:none;cursor:pointer;font-size:14px;line-height:1}
.story-close>span{font-family:sans-serif;font-size:26px;font-weight:400}.story-close:hover{background:var(--modal-accent)}
.modal-layout{display:grid;grid-template-columns:46% 54%;min-height:555px}
.modal-visual{position:relative;isolation:isolate;background:var(--modal-accent);padding:78px 27px 82px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.modal-visual::after{content:'';position:absolute;right:-1px;top:0;bottom:0;width:24px;background:var(--modal-base);clip-path:polygon(100% 0,55% 0,65% 8%,35% 18%,65% 31%,25% 46%,50% 57%,20% 72%,55% 86%,40% 100%,100% 100%);z-index:2}
.modal-photo{width:100%;aspect-ratio:1.08;border:6px solid var(--modal-base);border-radius:45% 55% 42% 58% / 40% 36% 64% 60%;overflow:hidden;transform:rotate(-5deg);box-shadow:0 12px 22px #244d7712;z-index:1}
.modal-photo img{object-position:center}.theme-dog .modal-photo img{object-position:40% center}.theme-penguin .modal-photo{transform:rotate(4deg)}.theme-party .modal-photo{border-radius:18px;transform:rotate(-6deg);aspect-ratio:1.08}.theme-halloween .modal-photo{border-radius:50% 50% 42% 58%;transform:rotate(4deg)}
.modal-zoom{position:absolute;bottom:18px;left:50%;transform:translateX(-50%) rotate(5deg);padding:5px 12px;border-radius:30px;background:var(--modal-base);white-space:nowrap;font-size:12px}
.modal-photo-note{position:relative;z-index:2;font-size:19px;line-height:1.6;text-align:center;transform:rotate(-7deg);margin-bottom:27px}
.modal-photo-sign{position:relative;z-index:2;font-size:17px;line-height:1.8;text-align:center;transform:rotate(3deg);margin-top:30px}
.modal-story{padding:38px 34px 30px}.modal-story .eyebrow{font-size:12px;letter-spacing:.13em}.modal-story h2{font-size:31px;line-height:1.65;letter-spacing:.01em;margin-top:12px}.modal-lead{font-size:16px;line-height:2;margin-top:19px}
.modal-ideas{list-style:none;padding:0;margin:27px 0 0}.modal-ideas li{display:flex;gap:13px;padding:18px 0;border-top:1px solid #244d7726}.idea-number{font:italic 21px Georgia,serif;padding-top:4px;opacity:.65}.modal-ideas h3{font-size:16px;font-weight:700;line-height:1.7;margin:0 0 7px}.modal-ideas p{font-size:14px;line-height:1.95}.modal-sample-note{font-size:12px;line-height:1.8;opacity:.75;margin-top:14px}
.modal-decoration{position:absolute;inset:0;pointer-events:none;z-index:0}.modal-motif{position:absolute;width:74px;height:74px;background:var(--modal-ink);opacity:.16;-webkit-mask-image:url('assets/wedding-silhouettes.png');mask-image:url('assets/wedding-silhouettes.png');-webkit-mask-size:200% 200%;mask-size:200% 200%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;left:calc(5% + var(--motif-order) * 19%);bottom:calc(8px + var(--motif-order) * 14px);transform:rotate(calc(-22deg + var(--motif-order) * 10deg))}
.modal-motif:nth-child(even){bottom:auto;top:calc(8px + var(--motif-order) * 18px)}
.story-modal[open]{animation:story-arrive .45s cubic-bezier(.2,.7,.25,1)}
.story-modal[open] .modal-photo{animation:story-photo-arrive .65s cubic-bezier(.22,.8,.25,1)}
.theme-dog[open] .modal-motif{animation:paw-arrive 1.8s both;animation-delay:calc(var(--motif-order) * .15s)}
.modal-penguin{position:absolute;width:92px;height:auto;bottom:13px;right:28px;z-index:3;transform:rotate(-5deg)}.theme-penguin .modal-decoration{z-index:2}
.theme-penguin[open] .modal-penguin{animation:penguin-hello 1.1s cubic-bezier(.2,.7,.3,1) both}
.theme-penguin[open] .modal-motif{animation:modal-bob 4s ease-in-out infinite;animation-delay:calc(var(--motif-order) * -.7s)}
.cheers-bubble{position:absolute;width:calc(6px + var(--bubble-order) * 2px);height:calc(6px + var(--bubble-order) * 2px);left:calc(7% + var(--bubble-order) * 14%);bottom:-20px;border:1px solid #a9713880;border-radius:50%;background:#fff8;opacity:0}
.theme-party[open] .cheers-bubble{animation:cheers-rise 4s ease-out infinite;animation-delay:calc(var(--bubble-order) * .38s)}
.theme-party[open] .modal-motif{animation:toast-sway 3s ease-in-out infinite;animation-delay:calc(var(--motif-order) * -.4s)}
.party-confetti{position:absolute;top:-12px;left:calc(3% + var(--confetti-order) * 12%);width:6px;height:12px;background:#b66b4b;border-radius:2px;opacity:0}.party-confetti:nth-child(3n){background:#6a3b57}.party-confetti:nth-child(3n + 1){background:#e9b447}
.theme-halloween[open] .party-confetti{animation:confetti-fall 3.5s ease-out both;animation-delay:calc(var(--confetti-order) * .12s)}
.theme-halloween[open] .modal-motif{animation:modal-bob 4.2s ease-in-out infinite;animation-delay:calc(var(--motif-order) * -.6s)}
@keyframes story-arrive{from{translate:0 24px;scale:.97}to{translate:0 0;scale:1}}
@keyframes story-photo-arrive{from{scale:.94;rotate:-3deg}to{scale:1;rotate:0}}
@keyframes paw-arrive{0%{opacity:0;scale:.5}40%{opacity:.24;scale:1.12}100%{opacity:.16;scale:1}}
@keyframes penguin-hello{from{translate:85px 15px;rotate:15deg}60%{translate:-7px -3px;rotate:-5deg}to{translate:0 0;rotate:0}}
@keyframes modal-bob{50%{translate:0 -12px;rotate:7deg}}
@keyframes cheers-rise{0%{opacity:0;translate:0 0}15%{opacity:.65}85%{opacity:.4}100%{opacity:0;translate:12px -500px}}
@keyframes toast-sway{50%{rotate:12deg;translate:0 -5px}}
@keyframes confetti-fall{0%{opacity:0;translate:0 0;rotate:0}10%{opacity:.7}80%{opacity:.6}100%{opacity:0;translate:25px 500px;rotate:240deg}}
@media(max-width:760px){
 .hero{height:calc(94svh + 130px);min-height:870px;max-height:1130px}.hero-memory{bottom:210px;height:31%}.hero-aside{bottom:145px}.scroll-invite{bottom:100px}
 .story-trigger{margin-top:26px;padding:12px 14px 12px 17px;font-size:14px}.halloween-bottom>.story-trigger{margin-top:24px}
 .story-modal{width:94vw;max-width:94vw;max-height:92svh;border-radius:23px}.modal-bar{padding:9px 14px}.modal-bar>span{font-size:12px}.story-close{font-size:12px;min-height:36px}
 .modal-layout{display:flex;flex-direction:column;min-height:0}.modal-visual{padding:29px 30px 38px;min-height:300px}.modal-visual::after{left:0;right:0;bottom:-1px;top:auto;width:100%;height:20px;clip-path:polygon(0 100%,0 55%,12% 30%,23% 65%,39% 20%,56% 70%,70% 30%,89% 60%,100% 35%,100% 100%)}
 .modal-photo{width:82%;max-width:330px;aspect-ratio:1.5}.theme-party .modal-photo{aspect-ratio:1.5}.modal-photo-note{font-size:17px;margin-bottom:18px}.modal-photo-sign{font-size:15px;margin-top:20px}.modal-zoom{bottom:10px}
 .modal-story{padding:24px 23px 28px}.modal-story h2{font-size:28px}.modal-lead{font-size:16px;line-height:2}.modal-lead br{display:none}.modal-ideas{margin-top:23px}.modal-ideas p{font-size:14px}.modal-penguin{width:65px;right:16px;bottom:12px}.modal-motif{width:58px;height:58px}.modal-sample-note{font-size:12px}
}
.paused .story-modal,.paused .story-modal *{animation:none!important}
@media(prefers-reduced-motion:reduce){.story-modal,.story-modal *{animation:none!important}.story-trigger{transition:none}}

/* Keep off-canvas illustration and rotated photos from widening the document. */
html{width:100%;max-width:100%;overflow-x:clip}
body{position:relative;width:100%;max-width:100%;min-width:0;overflow-x:clip}
main{position:relative;min-width:0;width:100%;max-width:100%;overflow-x:clip}
.header{inset:0 0 auto;width:100%;max-width:100%;padding:30px clamp(24px,4.5vw,76px);box-sizing:border-box}
.brand{display:block;flex:0 1 240px;min-width:0;text-align:left}
.site-logo{display:block;width:100%;height:auto;object-fit:contain}
.brand .site-logo{width:240px;max-width:100%;height:auto}
.header-right{flex-shrink:0}.footer-logo{display:block;flex:0 0 230px}.footer-logo .site-logo{width:230px;max-width:100%}
.chapter-inner{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}
.penguin-chapter .chapter-inner{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.chapter-text,.modal-story,.modal-visual{min-width:0}
.welcome-left{left:1%;width:20%}.welcome-right{right:1%;width:20%}
.hero-aside{left:clamp(24px,5vw,80px);max-width:19%;font-size:clamp(14px,1.4vw,21px)}
.hero-copy{padding-left:clamp(24px,9vw,160px);padding-right:clamp(24px,9vw,160px)}
.hero-copy h1,.chapter h2{overflow-wrap:anywhere}
@media(max-width:1100px){.lp-footer{flex-wrap:wrap}.footer-logo{flex-basis:200px}.footer-logo .site-logo{width:200px}}
@media(max-width:760px){
 .header{padding:23px 22px;gap:20px}.brand{flex-basis:165px}.brand .site-logo{width:165px}
 .header-right{font-size:12px}.index-button{gap:8px}.index-button>span{font-size:19px}
 .hero-copy{padding-left:20px;padding-right:20px}.hero-aside{left:9%;max-width:65%;font-size:14px}
 .footer-logo{width:200px}.footer-logo .site-logo{width:200px}
}
@media(max-width:380px){.header{gap:14px;padding-left:18px;padding-right:18px}.brand{flex-basis:145px}.index-button{font-size:12px;gap:7px}}

/* Two illustrated beer mugs lean in, meet, and bounce apart together. */
.theme-party .modal-visual{padding-top:42px;padding-bottom:28px}
.theme-party .modal-motif{display:none}
.theme-party .modal-photo-sign{margin-top:24px}
.beer-toast{position:relative;flex:0 0 155px;width:240px;max-width:100%;height:155px;margin:8px auto 0;z-index:2}
.beer-mug{position:absolute;width:98px;height:120px;bottom:22px;transform-origin:50% 90%;filter:drop-shadow(0 4px 2px #7549170d)}
.beer-mug img{height:100%;width:100%;object-fit:contain}
.beer-mug-left{left:calc(50% - 102px);transform:translateX(6px) rotate(10deg)}
.beer-mug-left img{transform:scaleX(-1)}
.beer-mug-right{right:calc(50% - 102px);transform:translateX(-6px) rotate(-10deg)}
.toast-spark{position:absolute;top:0;left:50%;translate:-50% 0;font-size:35px;line-height:1;color:#ad7728;opacity:0}
.toast-caption{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:16px;line-height:1.7;letter-spacing:.1em}
.theme-party[open] .beer-mug-left{animation:beer-clink-left 3.6s cubic-bezier(.3,.7,.4,1) infinite}
.theme-party[open] .beer-mug-right{animation:beer-clink-right 3.6s cubic-bezier(.3,.7,.4,1) infinite}
.theme-party[open] .toast-spark{animation:beer-clink-spark 3.6s ease-out infinite}
@keyframes beer-clink-left{0%,12%,72%,100%{transform:translateX(-14px) rotate(-9deg)}32%,38%{transform:translateX(6px) rotate(10deg)}46%{transform:translateX(0) rotate(5deg)}54%{transform:translateX(3px) rotate(8deg)}}
@keyframes beer-clink-right{0%,12%,72%,100%{transform:translateX(14px) rotate(9deg)}32%,38%{transform:translateX(-6px) rotate(-10deg)}46%{transform:translateX(0) rotate(-5deg)}54%{transform:translateX(-3px) rotate(-8deg)}}
@keyframes beer-clink-spark{0%,26%,57%,100%{opacity:0;scale:.55}33%{opacity:1;scale:1.2}44%{opacity:.7;scale:1}}
@media(max-width:760px){.theme-party .modal-visual{padding-top:30px;padding-bottom:23px}.theme-party .modal-photo-sign{margin-top:17px}.beer-toast{margin-top:6px;flex-basis:135px;height:135px}.beer-mug{width:88px;height:105px}.beer-mug-left{left:calc(50% - 96px)}.beer-mug-right{right:calc(50% - 96px)}.toast-caption{font-size:15px}}
.paused .beer-mug,.paused .toast-spark{animation:none!important}
@media(prefers-reduced-motion:reduce){.beer-mug,.toast-spark{animation:none!important}}

/* Four real stories share the opening scene as a floating photo collage. */
.hero{height:auto;min-height:max(840px,100svh);max-height:none;padding:114px 0 185px}
.hero-copy{padding:0 22px;text-align:center}
.hero-copy .eyebrow{margin-bottom:10px;font-size:12px;letter-spacing:.16em}
.hero h1{font-size:clamp(43px,4.6vw,68px);line-height:1.38;letter-spacing:.075em;transform:rotate(-3deg)}
.hero h1>.text-highlight{width:max-content;max-width:95%;margin:auto;isolation:isolate}
.hero h1>.text-highlight::after{content:'';position:absolute;left:-3%;right:-3%;bottom:8%;height:25%;background:#f5d254;z-index:-1;border-radius:45% 55% 40% 50%;transform:rotate(-2deg);opacity:.82}
.hero-sub{font-size:14px;margin-top:16px;letter-spacing:.05em}
.hero-gallery{position:relative;width:min(1290px,90%);height:clamp(300px,26vw,390px);margin:30px auto 0;isolation:isolate}
.hero-gallery .hero-memory{left:23%;top:6%;bottom:auto;width:37%;height:86%;z-index:2;border-width:6px;box-shadow:0 12px 25px #153f631e}
.hero-gallery .hero-memory>img{object-position:center 48%}
.hero-gallery .memory-caption{font-size:14px;bottom:17px;padding:6px 15px;max-width:92%;white-space:normal;text-align:center;line-height:1.65}
.hero-snapshot{display:block;position:absolute;overflow:hidden;border:6px solid var(--paper);box-shadow:0 13px 28px #153f6320;transition:filter .3s,box-shadow .3s;animation:collage-float 6s ease-in-out infinite;animation-play-state:paused;will-change:translate}
.hero.is-in-view .hero-snapshot{animation-play-state:running}
.hero-snapshot>img{height:100%;width:100%;object-fit:cover;transition:scale .55s}
.hero-snapshot:hover>img{scale:1.065}.hero-snapshot:hover{z-index:5;box-shadow:0 18px 34px #153f6330}
.hero-snapshot-penguin{left:0;top:0;width:28%;height:73%;border-radius:48% 52% 38% 62% / 45% 34% 66% 55%;transform:rotate(-10deg);animation-delay:-1.8s;z-index:1}
.hero-snapshot-penguin>img{object-position:45% center}
.hero-snapshot-party{right:0;top:0;width:33%;height:68%;border-radius:18px 23px 16px 27px;transform:rotate(8deg);animation-delay:-3s;z-index:1}
.hero-snapshot-halloween{left:57%;bottom:-1%;width:28%;height:63%;border-radius:21px 27px 18px 25px;transform:rotate(-8deg);animation-delay:-4.5s;z-index:3}
.snapshot-caption{position:absolute;left:50%;bottom:12px;translate:-50% 0;border-radius:40% 45% 40% 50%;background:var(--paper);padding:6px 14px;white-space:nowrap;color:var(--blue);font-size:16px;line-height:1.7;box-shadow:0 2px 0 #153f6308}
.hero-snapshot-party .snapshot-caption{background:#f9dc78}.hero-snapshot-halloween .snapshot-caption{background:#f5dbd7}
.snapshot-number{position:absolute;top:10px;left:12px;font:italic 18px Georgia,serif;background:var(--paper);color:var(--blue);border-radius:50%;width:29px;height:29px;display:grid;place-items:center}
.hero-party-seal{position:absolute;right:-1%;top:-31px;width:104px;height:104px;display:flex;align-items:center;justify-content:center;background:#f4d05d;border:1px dashed #b58933;border-radius:50%;box-shadow:0 0 0 6px #f4d05d;color:#674822;z-index:4;text-align:center;font-size:17px;line-height:1.65;transform:rotate(12deg);animation:seal-sway 5s ease-in-out infinite}
.hero .hero-aside{position:relative;left:auto;bottom:auto;width:auto;max-width:none;text-align:center;font-size:19px;line-height:1.8;transform:rotate(-2deg);margin:18px 22px 0}
.hero-aside>span{display:inline-block;margin-left:10px;font-size:16px}
.hero .scroll-invite{bottom:125px;left:4%;font-size:12px}.hero .hero-volume{bottom:128px;right:4%;font-size:12px}
.hero-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.hero-confetti>i{position:absolute;left:var(--confetti-x);top:var(--confetti-y);width:9px;height:19px;background:var(--confetti-color);border-radius:2px;transform:rotate(var(--confetti-r));opacity:.85;animation:hero-confetti-dance 5.5s ease-in-out infinite;animation-delay:var(--confetti-delay)}
.hero-confetti>i:nth-child(3n){width:13px;height:13px;border-radius:50%;background:none;border:3px solid var(--confetti-color)}
.hero-confetti>i:nth-child(3n + 1){width:7px;height:15px}
.hero .silhouette-pattern{opacity:.10}
@keyframes collage-float{0%,100%{translate:0 0}50%{translate:0 -10px}}
@keyframes seal-sway{0%,100%{rotate:-4deg;translate:0 0}50%{rotate:4deg;translate:0 -4px}}
@keyframes hero-confetti-dance{0%,100%{translate:0 -7px;rotate:-14deg}50%{translate:12px 12px;rotate:32deg}}
@media(min-width:1500px){.hero{padding-top:127px}.hero-gallery{margin-top:29px;height:365px}.hero h1{font-size:68px}}
@media(max-width:1000px) and (min-width:761px){.hero-gallery{width:88%;height:310px}.hero-party-seal{width:87px;height:87px;font-size:15px}.snapshot-caption{font-size:14px;padding:5px 10px}.hero-gallery .memory-caption{font-size:12px}.hero-aside>span{display:block;margin-left:0}.hero .hero-aside{margin-top:23px}}
@media(max-width:760px){
 .hero{height:auto;min-height:max(800px,100svh);max-height:none;padding:108px 0 170px}
 .hero h1{font-size:clamp(34px,8.7vw,51px);line-height:1.42;letter-spacing:.04em}
 .hero-copy{padding:0 17px}.hero-copy .eyebrow{font-size:12px;letter-spacing:.03em;margin-bottom:12px}
 .hero-sub{font-size:12px;letter-spacing:0;margin:15px 8px 0;line-height:1.85}
 .hero-gallery{width:88%;height:330px;margin-top:29px}
 .hero-gallery .hero-memory{left:1%;top:46%;width:54%;height:51%;border-width:4px}
 .hero-gallery .memory-caption{font-size:12px;padding:4px 7px;bottom:8px;line-height:1.5;width:90%;max-width:90%}
 .hero-snapshot{border-width:4px}
 .hero-snapshot-penguin{left:0;top:0;width:47%;height:49%;transform:rotate(-8deg)}
 .hero-snapshot-party{right:0;top:1%;width:51%;height:46%;transform:rotate(7deg)}
 .hero-snapshot-halloween{left:auto;right:0;bottom:1%;width:47%;height:45%;transform:rotate(-7deg)}
 .snapshot-caption{bottom:7px;padding:4px 8px;font-size:12px;max-width:95%;line-height:1.5}
 .snapshot-number{top:6px;left:8px;font-size:15px;width:24px;height:24px}
 .hero-party-seal{top:40%;right:calc(50% - 35px);width:66px;height:66px;box-shadow:0 0 0 3px #f4d05d;font-size:12px;line-height:1.55}
 .hero .hero-aside{font-size:16px;margin:21px 18px 0;line-height:1.9}
 .hero-aside>span{display:block;margin-left:0;font-size:14px}
 .hero .scroll-invite{bottom:100px;left:7%;font-size:12px}.hero-volume{display:none}
 .hero-confetti>i{width:6px;height:13px}.hero-confetti>i:nth-child(3n){width:10px;height:10px;border-width:2px}
}
@media(max-width:360px){.hero h1{font-size:33px}.hero-gallery{height:300px}.hero-copy .eyebrow{font-size:12px;letter-spacing:0}.hero .hero-aside{font-size:15px}.hero-aside>span{font-size:13px}}
.paused .hero-snapshot,.paused .hero-party-seal,.paused .hero-confetti>i{animation:none!important}
@media(prefers-reduced-motion:reduce){.hero-snapshot,.hero-party-seal,.hero-confetti>i{animation:none!important}}

/* Let the opening photographs speak; keep the sea-side copy legible. */
.hero .hero-aside,.hero .scroll-invite,.hero .hero-volume{color:#fff;text-shadow:0 2px 3px #143f68b3,0 5px 14px #12365399}
.hero::after{content:'';position:absolute;inset:48% 0 0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,transparent 20%,#163e681a 62%,#153b6840 100%)}
.hero .hero-aside{margin-top:30px}
.hero-gallery .hero-memory{box-shadow:0 14px 30px #153f6329}
.hero-gallery a:focus-visible{outline:4px solid #fff;outline-offset:7px;z-index:6;box-shadow:0 0 0 11px #245bb0}
.hero-gallery .hero-memory>img{transition:scale .55s}

/* Carry the chapter colors into the navigation and detail controls. */
.index-links>a:nth-child(1){--index-accent:#dcebdd;--index-icon:0 0}
.index-links>a:nth-child(2){--index-accent:#cce4f5;--index-icon:100% 0}
.index-links>a:nth-child(3){--index-accent:#f8dc81;--index-icon:0 100%}
.index-links>a:nth-child(4){--index-accent:#f0d0cc;--index-icon:100% 100%}
.index-links>a{background:var(--index-accent);border-color:#245bb02b;isolation:isolate;overflow:hidden}
.index-links>a::before{content:'';position:absolute;inset:50% auto auto 50%;width:clamp(90px,10vw,145px);aspect-ratio:1;transform:translate(-50%,-50%) rotate(-12deg);background:currentColor;opacity:.09;z-index:-1;pointer-events:none;-webkit-mask-image:url('assets/wedding-silhouettes.png');mask-image:url('assets/wedding-silhouettes.png');-webkit-mask-size:200% 200%;mask-size:200% 200%;-webkit-mask-position:var(--index-icon);mask-position:var(--index-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.story-trigger{box-shadow:0 4px 0 #163c6b0a;transition:translate .25s,box-shadow .25s,background .25s}
.trigger-mark{transition:rotate .25s}
.modal-ideas li{border-top-style:dashed}
.modal-sample-note{padding-top:15px;border-top:1px solid #244d771a}
.motion-toggle{min-height:44px;transition:background .25s}
@media(hover:hover) and (pointer:fine){
 .index-links>a:hover{background:var(--index-accent);box-shadow:0 12px 22px #245bb016}
 .hero-gallery .hero-memory:hover>img{scale:1.045}
 .story-trigger:hover .trigger-mark{rotate:45deg}
 .motion-toggle:hover{background:#eaf1f5}
}
@media(max-width:760px){.hero .hero-aside{margin-top:27px}.hero-gallery{width:86%}}
@media(prefers-reduced-motion:reduce){.hero-gallery .hero-memory>img,.trigger-mark,.story-trigger,.motion-toggle{transition:none}}



/* ==========================================================================
   STORY 02 PENGUIN MODAL ILLUSTRATION SIZING & POSITIONING
   ========================================================================== */
.modal-penguin,
img.modal-penguin,
.theme-penguin .modal-penguin,
.modal-visual .modal-penguin {
  position: absolute !important;
  width: 92px !important;
  max-width: 92px !important;
  height: auto !important;
  bottom: 13px !important;
  right: 28px !important;
  left: auto !important;
  top: auto !important;
  z-index: 10 !important;
  transform: rotate(-5deg) !important;
  pointer-events: none !important;
  display: block !important;
}
@media (max-width: 768px) {
  .modal-penguin,
  img.modal-penguin,
  .theme-penguin .modal-penguin,
  .modal-visual .modal-penguin {
    width: 65px !important;
    max-width: 65px !important;
    right: 16px !important;
    bottom: 12px !important;
  }
}

/* ==========================================================================
   RECOMMENDED FAIR DATE BADGE (MATCHING STANDARD PAGES)
   ========================================================================== */
.cmnArea .fair_contents .fair_date,
.fair_date {
  color: #fff !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 80px !important;
  height: 100px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 6px 4px !important;
  box-sizing: border-box !important;
  z-index: 2 !important;
  text-align: center !important;
}
.cmnArea .fair_contents .fair_date span,
.fair_date span {
  font-size: 11px !important;
  line-height: 1.2 !important;
  font-family: Oswald, sans-serif !important;
  letter-spacing: 0.08em !important;
  color: #fff !important;
  display: block !important;
  margin-bottom: 2px !important;
  font-weight: 400 !important;
}
.cmnArea .fair_contents .fair_date p,
.fair_date p {
  font-size: 38px !important;
  line-height: 1 !important;
  margin: 0 0 2px 0 !important;
  font-family: Oswald, sans-serif !important;
  font-weight: 500 !important;
  color: #fff !important;
  display: block !important;
}
.cmnArea .fair_contents .fair_date small,
.fair_date small {
  font-size: 11px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.1em !important;
  display: block !important;
  border-top: 1px solid rgba(255,255,255,0.7) !important;
  width: 80% !important;
  text-align: center !important;
  padding-top: 3px !important;
  color: #fff !important;
  font-family: "メイリオ", Meiryo, sans-serif !important;
  font-weight: 400 !important;
}
.fair_date.date_saturday {
  background: rgba(2,98,164,0.85) !important;
}
.fair_date.date_holiday {
  background: rgba(228,46,93,0.85) !important;
}
.fair_date.date_weekday {
  background: rgba(53,53,53,0.85) !important;
}

/* ==========================================================================
   FOOTER CTA SECTION BACKGROUND COLORS & SPACING
   ========================================================================== */
#recommend_fair.cmnArea,
.fair_sec.cmnArea,
.cmnArea #main_fair {
  background: #f6fbfe !important;
  padding: 60px 5% !important;
}
#main_plan.cmnArea,
.plan_sec.cmnArea,
.cmnArea #main_plan {
  background: #ffffff !important;
  padding: 80px 0 60px !important;
}
#main_report.cmnArea,
.report_sec.cmnArea,
.cmnArea #main_report {
  background: #ffffff !important;
  padding: 60px 5% 100px !important;
}

/* ==========================================================================
   VISIT RESERVATION SECTION (#form)
   ========================================================================== */
#form.story_reservation_sec,
#form {
  background: #ffffff !important;
  padding: 90px 5% 80px !important;
  position: relative !important;
  z-index: 2 !important;
}
#form .formArea {
  max-width: 960px !important;
  margin: 0 auto !important;
}
#form .cmn_ttl_h2_under {
  text-align: center !important;
  margin-bottom: 30px !important;
}
#form .cmn_ttl_h2_under h2 {
  font-size: 2.8rem !important;
  font-weight: 700 !important;
  color: #333 !important;
  letter-spacing: 0.1em !important;
}
#form .form_txt {
  text-align: center !important;
  font-size: 1.4rem !important;
  line-height: 1.8 !important;
  margin-bottom: 35px !important;
  color: #555 !important;
}
#form .form_box {
  background: #fcfaf7 !important;
  border: 1px solid #e8e2d8 !important;
  padding: 40px 45px !important;
  border-radius: 8px !important;
  margin-bottom: 40px !important;
}
#form dl {
  display: flex !important;
  align-items: center !important;
  padding: 16px 0 !important;
  border-bottom: 1px solid #eee !important;
  margin: 0 !important;
}
#form dt {
  width: 200px !important;
  flex-shrink: 0 !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  color: #333 !important;
}
#form dt .must {
  color: #e42e5d !important;
  margin-left: 4px !important;
  font-weight: bold !important;
}
#form dd {
  flex: 1 !important;
  margin: 0 !important;
}
#form input[type="text"],
#form input[type="tel"],
#form input[type="email"],
#form input[type="date"],
#form select,
#form textarea {
  width: 100% !important;
  padding: 12px 14px !important;
  border: 1px solid #ccc !important;
  border-radius: 4px !important;
  font-size: 1.4rem !important;
  box-sizing: border-box !important;
  background: #fff !important;
  font-family: inherit !important;
}
#form textarea {
  resize: vertical !important;
}
#form .form_time_wrap {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
#form .form_time_wrap .selectbox {
  width: 130px !important;
}
#form .form_time_wrap .time_unit {
  font-size: 1.4rem !important;
  color: #333 !important;
  font-weight: 500 !important;
}
#form .form_tel_notice_box {
  padding: 12px 0 16px 200px !important;
}
#form .form_tel_notice {
  font-size: 1.3rem !important;
  color: #666 !important;
  margin: 0 !important;
  line-height: 1.6 !important;
}
#form .form_tel_notice a {
  color: #206696 !important;
  text-decoration: underline !important;
  font-weight: 700 !important;
}
#form .form_tel_notice a:hover {
  opacity: 0.8 !important;
}
#form .form_privacy {
  text-align: center !important;
  font-size: 1.3rem !important;
  line-height: 1.8 !important;
  margin: 30px 0 25px !important;
  color: #666 !important;
}
#form .form_privacy a {
  color: #206696 !important;
  text-decoration: underline !important;
}
#form .form_btn {
  text-align: center !important;
  margin-top: 30px !important;
}
#form .form_chk {
  background: #b18d42 !important;
  color: #fff !important;
  font-size: 1.6rem !important;
  font-weight: 700 !important;
  padding: 16px 50px !important;
  border-radius: 50px !important;
  border: none !important;
  cursor: pointer !important;
  transition: opacity 0.3s !important;
  display: inline-block !important;
}
#form .form_chk:hover {
  opacity: 0.85 !important;
}
#form .form_attention {
  display: flex !important;
  gap: 15px !important;
  align-items: flex-start !important;
  background: #f9f9f9 !important;
  padding: 20px 25px !important;
  border-radius: 6px !important;
  font-size: 1.2rem !important;
  color: #777 !important;
  line-height: 1.7 !important;
}
#form .form_attention ul {
  padding-left: 18px !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  #form {
    padding: 50px 4% 60px !important;
  }
  #form .form_box {
    padding: 25px 15px !important;
  }
  #form dl {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 14px 0 !important;
  }
  #form dt {
    width: 100% !important;
    margin-bottom: 8px !important;
  }
  #form dd {
    width: 100% !important;
  }
  #form .form_tel_notice_box {
    padding: 8px 0 15px 0 !important;
  }
  #form .form_time_wrap .selectbox {
    width: 100px !important;
  }
}

/* ==========================================================================
   100% AUTHENTIC THEME FOOTER (#footer & #copyright)
   ========================================================================== */
#footer {
  background: #539ccf !important;
  position: relative !important;
  z-index: 2 !important;
  padding: 50px 5% 30px !important;
  color: #fff !important;
  display: block !important;
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", sans-serif !important;
  font-size: 13px !important;
}
#footer a {
  color: #fff !important;
  text-decoration: none !important;
}
#footer .footerArea {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}
#footer .f_info {
  margin-right: 120px !important;
  text-align: center !important;
}
#footer .f_logo {
  margin-bottom: 20px !important;
}
#footer .f_logo img {
  width: 200px !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
}
#footer .f_info p {
  font-size: 16px !important;
  margin-bottom: 10px !important;
  color: #fff !important;
}
#footer .f_address {
  margin-bottom: 30px !important;
}
#footer .f_address address {
  font-style: normal !important;
  margin-bottom: 5px !important;
  font-size: 13px !important;
  color: #fff !important;
}
#footer .f_address a {
  color: #fff !important;
  text-decoration: underline !important;
  font-size: 13px !important;
}
#footer .f_tel a {
  font-size: 26px !important;
  font-family: Oswald, sans-serif !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 10px !important;
}
#footer .f_tel dl {
  font-size: 13px !important;
  margin-bottom: 15px !important;
}
#footer .f_tel dl:last-child {
  margin-bottom: 0 !important;
}
#footer .f_tel dl dt {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 6px !important;
}
#footer .f_tel dl dt::before,
#footer .f_tel dl dt::after {
  content: "" !important;
  border-top: 1px solid #fff !important;
  width: 20px !important;
}
#footer .f_tel dl dt::before {
  margin-right: 12px !important;
}
#footer .f_tel dl dt::after {
  margin-left: 12px !important;
}
#footer .f_link {
  max-width: 650px !important;
}
#footer .f_menu {
  display: flex !important;
  flex-flow: row wrap !important;
  margin-bottom: 25px !important;
  padding: 0 !important;
  list-style: none !important;
}
#footer .f_menu li {
  margin-bottom: 15px !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}
#footer .f_menu li:not(:last-child) {
  margin-right: 15px !important;
}
#footer .f_menu li:not(:last-child)::after {
  content: "/" !important;
  margin-left: 15px !important;
}
#footer .f_menu li a:hover {
  text-decoration: underline !important;
  opacity: 0.7 !important;
}
#footer .f_btn {
  display: flex !important;
  max-width: 510px !important;
  margin: 0 auto !important;
  justify-content: space-between !important;
}
#footer .f_btn .cmn_btn a {
  border: 1px solid #fff !important;
  color: #fff !important;
  background: transparent !important;
  width: 140px !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: Oswald, sans-serif !important;
  font-size: 13px !important;
  border-radius: 0 !important;
}
#footer .f_btn .cmn_btn a:hover {
  background: #fff !important;
  color: #539ccf !important;
}
#footer #copyright,
#copyright {
  background: #539ccf !important;
  text-align: center !important;
  font-size: 13px !important;
  letter-spacing: 0.2rem !important;
  padding: 40px 0 10px !important;
  color: #fff !important;
  display: block !important;
  opacity: 1 !important;
  transform: none !important;
}
#footer #copyright p,
#copyright p {
  color: #fff !important;
  font-size: 13px !important;
  margin: 0 !important;
}
#footer .sa {
  opacity: 1 !important;
  transform: none !important;
}

/* ==========================================================================
   FOOTER RESPONSIVE ADJUSTMENTS (SP / TABLET)
   ========================================================================== */
@media screen and (max-width: 1194px) {
  #footer .f_info {
    width: 250px !important;
    margin-right: 80px !important;
  }
  #footer .f_link {
    width: calc(100% - 330px) !important;
  }
}
@media screen and (max-width: 1024px) {
  #footer {
    padding-bottom: 100px !important;
    margin-bottom: 0 !important;
  }
  #footer .f_info {
    margin-right: 0 !important;
    margin-bottom: 30px !important;
  }
}
@media screen and (max-width: 768px) {
  #footer {
    padding: 50px 5% 95px !important;
  }
  #footer .footerArea {
    flex-direction: column !important;
    white-space: normal !important;
  }
  #footer .f_info {
    width: 100% !important;
    margin-right: 0 !important;
    margin-bottom: 35px !important;
  }
  #footer .f_logo img {
    width: 180px !important;
  }
  #footer .f_link {
    width: 100% !important;
    max-width: 100% !important;
  }
  #footer .f_menu,
  #footer .f_menu.pc {
    display: none !important;
  }
  #footer .f_btn {
    display: flex !important;
    justify-content: center !important;
    gap: 16px !important;
    max-width: 320px !important;
    width: 100% !important;
    margin: 0 auto !important;
  }
  #footer .f_btn .cmn_btn {
    flex: 1 !important;
    max-width: 150px !important;
  }
  #footer .f_btn .cmn_btn a {
    width: 100% !important;
    height: 44px !important;
    font-size: 13px !important;
  }
  #footer #copyright,
  #copyright {
    padding: 35px 0 10px !important;
    font-size: 11px !important;
    letter-spacing: 0.1em !important;
  }
  #footer #copyright p,
  #copyright p {
    font-size: 11px !important;
  }
}

/* Hide Renewal Popup and floating side banner on Story LP */
.side_fixed, .side_fixed_none, .remodal[data-remodal-id="modal"] {
  display: none !important;
}

/* ==========================================================================
   FLOATING PENGUIN POSITIONING (SHIFTED LEFT TO AVOID OVERLAPPING SIDE BUTTONS)
   ========================================================================== */
.penguin-guide {
  position: fixed !important;
  right: 85px !important;
  bottom: 25px !important;
  width: 110px !important;
  z-index: 15 !important;
  filter: drop-shadow(0 5px 3px rgba(0,0,0,0.08)) !important;
  transition: opacity .3s, transform .5s !important;
}
.penguin-guide:hover {
  transform: translateY(-7px) !important;
}
@media (max-width: 1200px) {
  .penguin-guide {
    right: 80px !important;
    width: 95px !important;
  }
}
@media (max-width: 1024px) {
  .penguin-guide {
    right: 15px !important;
    bottom: 80px !important;
    width: 65px !important;
  }
  .guide-illustration {
    height: 80px !important;
  }
  .guide-bubble {
    bottom: 82px !important;
    right: 0 !important;
    font-size: 11px !important;
    min-width: 105px !important;
    padding: 6px 8px !important;
  }
}
@media (max-width: 640px) {
  .penguin-guide {
    right: 10px !important;
    bottom: 75px !important;
    width: 55px !important;
  }
  .guide-illustration {
    height: 70px !important;
  }
  .guide-bubble {
    bottom: 72px !important;
    font-size: 11px !important;
    min-width: 95px !important;
    padding: 5px 8px !important;
  }
}
