@font-face{font-family:"Zen Kaku Gothic New";font-style:normal;font-weight:500;font-display:swap;src:url("assets/zen-kaku-gothic-new-500.ttf") format("truetype")}
:root{--ink:#283479;--lavender:#a194df;--pink:#dc98aa;--paper:#fefbf7;--body:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;--heading:"Zen Kaku Gothic New",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.85 var(--body)}p,h1,h2{margin:0}a{color:inherit;text-decoration:none}img{display:block}h1,h2{font-family:var(--heading);font-weight:500;letter-spacing:.02em}
/* All coordinates refer to the approved 390px-wide first panel, not a viewport height. */
.page{position:relative;width:390px;min-height:2452px;margin:0 auto;background:radial-gradient(ellipse at 30% 42%,#fffdfa 0%,#fefbf7 60%,#fefbf7 100%);isolation:isolate}
.definitions{position:absolute;width:0;height:0}.header{position:absolute;inset:0 0 auto;height:150px}.brand{position:absolute;left:43px;top:49px;display:block;width:175px}.brand-community{display:block;font:400 19px/27px var(--body);letter-spacing:.025em}.brand-name{display:block;font:400 56px/51px Georgia,serif;letter-spacing:-.04em;color:var(--pink)}
.menu{position:absolute;left:320px;top:50px;z-index:5}.menu summary{list-style:none;width:30px;height:27px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer}.menu summary::-webkit-details-marker{display:none}.menu summary span{height:1px;width:30px;background:var(--ink)}.menu nav{position:absolute;right:0;top:40px;width:195px;padding:14px 18px;background:var(--paper);border:1px solid #e7dee6;font-size:14px;box-shadow:0 4px 14px #28347910}.menu nav a{display:block;padding:8px 0}.menu a:focus-visible,.brand:focus-visible,summary:focus-visible{outline:2px solid var(--pink);outline-offset:5px}
.hero h1{position:absolute;left:48px;top:177px;width:333px;font-size:45px;line-height:79px;letter-spacing:.02em}.hero-logo{position:absolute;left:43px;top:316px;width:320px;font:400 150px/150px Georgia,serif;letter-spacing:-.055em;color:var(--pink)}
.intro{position:absolute;left:43px;top:485px;width:325px;font-size:20px;line-height:36px;letter-spacing:0}
/* Official handwriting: retain the full transparent canvas; no rotation or cropping. */
.handwritten{position:absolute;height:auto;transform:none;filter:none;opacity:1}
.invitation{left:13px;top:552px;width:286px}
/* Width-only scaling: preserve every pixel and the original PNG aspect ratio. */
.poodle{position:absolute;right:9px;top:732px;width:330px;height:auto;max-width:calc(100% - 18px)}
.lets{left:-28px;top:979px;width:203px}
.periods{position:absolute;top:1204px;left:0;width:100%;height:200px;scroll-margin-top:24px}.period{position:absolute;left:0;width:100%;height:86px}.term{top:0}.recruit{top:113px}.badge{position:absolute;display:grid;place-items:center;isolation:isolate;font-size:24px;line-height:32px;white-space:nowrap}.badge:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 32% 25%,#fff0f6 0%,#fbe3ed 65%,#f9dfeb 100%);border-radius:48% 54% 43% 53% / 52% 39% 59% 47%;transform:rotate(-9deg)}.term .badge{left:38px;top:0;width:90px;height:77px}.recruit .badge{left:37px;top:0;width:118px;height:86px;font-size:21px}.recruit .badge:before{background:radial-gradient(ellipse at 22% 30%,#f8f5ff 0%,#eae3f6 64%,#e5ddf2 100%);transform:rotate(-5deg)}
.date-copy{position:absolute;left:144px;top:0}.recruit .date-copy{left:166px;top:9px}.year{font:400 21px/26px Georgia,serif;margin-left:3px}.date{display:flex;align-items:center;gap:7px;margin-top:-5px;white-space:nowrap;font:400 39.4px/47px Georgia,serif;letter-spacing:-.015em}.hyphen{font-size:25px;line-height:1;position:relative;top:-1px}.recruit .date{font-size:36.5px;gap:5px;margin-top:3px}
.about{position:absolute;top:1537px;left:0;width:100%;height:800px;scroll-margin-top:24px}.about-label{position:absolute;left:46px;top:2px;font-size:22px;line-height:34px;letter-spacing:.02em}.about h2{position:absolute;left:46px;top:47px;width:322px;font-size:35.5px;line-height:52px;letter-spacing:.02em}.about-body{position:absolute;left:46px;top:172px;width:314px;font-size:20px;line-height:32.5px;letter-spacing:0;line-break:strict}.about-body p+p{margin-top:12px}.ipad{position:absolute;left:52px;top:415px;width:300px;height:auto}
.decoration{pointer-events:none}.flower{position:absolute;pointer-events:none}.flower{left:32px;top:1980px;width:61px;height:64px}
.scroll{position:absolute;top:2341px;left:155px;width:80px;text-align:center;font-size:19px;line-height:30px;letter-spacing:.07em}.scroll span{display:block;width:1px;height:35px;background:#6e709c;margin:9px auto 0}
@media(max-width:389px){.page{zoom:calc(100vw / 390px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Poodle-inspired soft pink palette; geometry unchanged. */
.recruit .badge:before{background:radial-gradient(ellipse at 22% 30%,#fff4f4 0%,#f4dfe5 64%,#efd5df 100%)}
