/* MAISON YUMI — Japanese edition · editorial mobile refinement */
:root{--paper:#fcf7f2;--ink:#48263b;--pink:#b43c65;--green:#547260;--line:#e8d3d1;--jp-sans:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic','Meiryo',sans-serif;--jp-serif:'Hiragino Mincho ProN','Yu Mincho','Hiragino Mincho Pro',serif}
html{font-size:16px;scroll-padding-top:88px}body{font-family:var(--jp-sans);font-feature-settings:'palt' 1;line-break:strict;overflow-wrap:anywhere;background-image:radial-gradient(#d4a5af1f .65px,transparent .65px);background-size:7px 7px}p{line-height:1.9}h1,h2,h3,h4{font-feature-settings:'palt' 1;word-break:keep-all;overflow-wrap:anywhere}em{font-style:normal}
.gate h1,.hero h1,.letter-frame h2,.section h2,.footer h2,.wish-card h2,.fortune-section h2,.day h3,.ticket h3{font-family:var(--jp-serif);font-weight:500;letter-spacing:-.05em}
.gate h1{font-size:clamp(38px,6vw,66px);line-height:1.32;letter-spacing:-.06em}.gate .eyebrow{font-size:9px;letter-spacing:1.55px}.gate-copy>p{font-size:13px;line-height:1.9}.gate .btn{line-height:1.5}.gate-art:after{content:'YUMI ♡ OCTOBER 12 · 2026';font-size:9px;letter-spacing:1px}
.countdown strong{font-family:Georgia,serif}.countdown span{font-size:11px;letter-spacing:.04em}
.brand{letter-spacing:-.045em}.eyebrow{font-family:var(--jp-sans);font-weight:650;letter-spacing:.12em}.links a{font-family:var(--jp-sans);font-size:11px;letter-spacing:.02em}
.hero h1{font-size:clamp(40px,6vw,68px);letter-spacing:-.06em;line-height:1.37}.hero h1 em{font-style:normal;display:block}.hero-copy{font-size:14px;line-height:1.95}.hero .pill{font-size:11px;letter-spacing:.025em}
.letter-frame h2{font-size:clamp(30px,5vw,47px);line-height:1.45;letter-spacing:-.05em}.letter-frame p{font-family:var(--jp-sans);font-size:14px;line-height:2.15;letter-spacing:.02em}.letter-signature{font-family:var(--jp-serif);font-style:normal;font-size:19px}.letter-label{letter-spacing:.15em}
.wish-card h2{font-size:clamp(30px,5vw,42px);line-height:1.5}.wish-card .btn{min-height:51px;font-size:12px}
.birthday-ribbon{font-size:10px;letter-spacing:.1em;padding:17px 14px;line-height:1.85}
.section-heading h2{font-size:clamp(30px,5.5vw,49px);line-height:1.4;letter-spacing:-.055em}.section .small{font-size:13px;line-height:1.9}.book-count{font-family:var(--jp-serif);font-size:17px;line-height:1.4}.ticket h3{font-size:clamp(19px,3.9vw,25px);line-height:1.36;letter-spacing:-.04em;margin:9px 0 6px}.ticket p{font-size:12px;line-height:1.78}.ticket-top{padding-bottom:9px}.ticket-bottom .text-btn{font-size:11px;min-height:43px;font-weight:700;padding:10px 12px}.ticket-bottom span{font-size:9px;letter-spacing:.015em}.ticket-no{font-size:9px}.ticket.is-stamped .text-btn{opacity:.75}
.book-note{font-size:12px;line-height:1.8}.moment-garden p{font-size:12px}.moment-stamps button{min-width:37px;min-height:42px}
.game-tabs button{font-size:12px;font-weight:700;padding-inline:3px;line-height:1.3;min-height:52px}.game-instructions{font-size:13px;line-height:1.8}.game-status{font-size:12px;line-height:1.8}.game-score>div>span,.game-score span{font-size:11px}.game-panel .btn{font-size:12px}
.journey-stop{font-family:var(--jp-sans)}.journey-stop span{font-size:11px}.journey-stop small{font-size:9px}.journey-detail{font-size:13px;line-height:1.8}.calendar-panel h3{font-family:var(--jp-serif)}.calendar-grid .weekday{font-size:11px}.day h3{font-size:27px;letter-spacing:-.03em}.day-sub{font-size:11px;letter-spacing:.07em}.event{grid-template-columns:66px minmax(0,1fr);gap:14px}.event time{font-size:11px;line-height:1.5;letter-spacing:.015em}.event h4{font:500 17px/1.5 var(--jp-serif)}.event p{font-size:12px;line-height:1.85}
.footer h2{font-size:clamp(30px,6vw,43px);line-height:1.45}.footer p{font-size:13px;line-height:1.95}.secret-entry button{font-family:var(--jp-serif);font-size:19px;font-style:normal;font-weight:600}.footer small{font-size:10px;letter-spacing:.08em}.mobile-dock a{font-family:var(--jp-sans);font-size:11px;font-weight:650;gap:4px}.mobile-dock a b{line-height:1.1}.mobile-dock a:focus-visible{border-radius:10px}
.preview-form label{font-size:12px}.preview-form input{font-family:var(--jp-sans)}.preview-dialog p{line-height:1.8}dialog h2{font-family:var(--jp-serif);font-size:27px}dialog p{font-size:13px;line-height:1.85}
/* Love fortune: paper envelope / tactile but restrained */
.fortune-section{max-width:680px;margin:11px auto 46px;padding:24px;position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;background:linear-gradient(155deg,#fffdfa 5%,#faedf0 80%);border:1px solid #e8cdd2;border-radius:26px;box-shadow:0 13px 38px #743e5610;overflow:hidden}
.fortune-section:before{content:'';position:absolute;inset:12px;border:1px solid #e9d3d1;border-radius:18px;pointer-events:none;opacity:.7}
.fortune-envelope{position:relative;margin:10px 0 20px;width:126px;height:89px;border-radius:5px 5px 9px 9px;border:1px solid #dfa2b2;background:linear-gradient(152deg,#f7dde3 0%,#f6ced9 100%);box-shadow:0 8px 0 -5px #b8888f,0 12px 28px #7d426025;transform:rotate(-7deg);transition:transform .35s var(--out)}
.fortune-envelope:before{content:'';position:absolute;inset:0;clip-path:polygon(0 0,50% 55%,100% 0);background:#ffe7e9;border-bottom:1px solid #ce91a4}
.fortune-envelope:after{content:'';position:absolute;inset:0;clip-path:polygon(0 100%,50% 41%,100% 100%);background:#fae5e8}
.fortune-envelope__seal{position:absolute;z-index:2;top:35px;left:49px;border-radius:50%;height:29px;width:29px;display:grid;place-items:center;background:#ab4464;color:#fff8f5;font:19px Georgia,serif;box-shadow:0 2px 8px #5d203a33}
.fortune-envelope__stamp{position:absolute;left:8px;bottom:6px;z-index:3;color:#8c5d6b;font:8px Georgia,serif;letter-spacing:1px}
.fortune-inner{width:100%;position:relative;z-index:1}.fortune-section .eyebrow{color:#9e6b7b;font-size:10px;letter-spacing:.14em}.fortune-section h2{margin:7px 0 11px;font-size:clamp(30px,6vw,41px);line-height:1.4}.fortune-section h2 em{color:var(--pink)}.fortune-copy{font-size:13px;line-height:1.9;color:#806275;margin:0 auto 22px}.fortune-paper{background:#fffdf9;border:1px solid #e7ccd1;border-radius:16px;box-shadow:0 5px 18px #6234490b;padding:21px 20px 19px;margin:0 auto 19px;max-width:460px;min-height:146px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative}.fortune-paper:before{content:'✧';position:absolute;top:10px;right:16px;color:#bb939d;font-size:16px}.fortune-paper__kicker{font-size:10px;letter-spacing:.12em;color:#a67887}.fortune-paper strong{font:600 clamp(16px,3.7vw,20px)/1.55 var(--jp-serif);color:#8d3455}.fortune-paper p{font-size:12px;line-height:1.8;color:#795d6c;margin:0;max-width:310px}.fortune-paper.revealed{animation:fortune-open .45s var(--out) both}.fortune-btn{font-size:13px}.fortune-small{font-size:10px;color:#987d86;margin:14px 0 3px;line-height:1.7}
@keyframes fortune-open{0%{opacity:.5;transform:translateY(9px) scale(.97)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media (hover:hover) and (pointer:fine){.fortune-section:hover .fortune-envelope{transform:rotate(-4deg) translateY(-3px)}}
@media(max-width:750px){
 .gate{gap:19px;padding:24px 21px 46px}.gate-art{max-width:225px;margin:0 auto}.gate h1{font-size:clamp(36px,9.3vw,48px);margin:13px 0}.gate-copy>p{font-size:12px;line-height:1.8}.gate .countdown{margin:16px auto 12px}.countdown span{font-size:10px}.gate .eyebrow{font-size:9px}.gate .btn{min-height:51px}
 nav{padding:12px 15px}.brand{font-size:19px}.links{gap:8px}.links a:nth-child(1),.links a:nth-child(2){display:none}.links a{font-size:10px}.nav-ticket{padding:10px}
 .hero{padding:45px 17px 30px}.hero h1{font-size:clamp(36px,9.5vw,50px);line-height:1.37;letter-spacing:-.06em}.hero-copy{font-size:13px}.hero .pill{font-size:10px}
 .letter-section{padding:0 16px 22px}.letter-frame{padding:35px 20px}.letter-frame h2{font-size:32px}.letter-frame p{font-size:13px;line-height:2.05}.wish-card{margin:10px 16px 25px}.wish-card h2{font-size:31px}
 .fortune-section{margin:0 16px 35px;padding:20px 17px 25px}.fortune-envelope{width:115px;height:79px;margin-top:12px}.fortune-envelope__seal{left:43px;top:31px}.fortune-section h2{font-size:31px}.fortune-paper{padding:18px 12px;min-height:138px}.fortune-paper p{font-size:12px}
 .section{padding:55px 17px}.section-heading h2{font-size:clamp(29px,7.6vw,39px)}.section-heading .small{font-size:12px}.ticket{grid-template-columns:minmax(115px,35%) minmax(0,1fr)}.ticket h3{font-size:19px;line-height:1.35}.ticket p{font-size:11.5px;line-height:1.65}.ticket .coupon-picture{min-height:202px}.ticket-no{font-size:8px}.ticket-top{padding:15px 12px 7px}.ticket-bottom{padding:4px 12px 12px}.ticket-bottom span{font-size:8px}.ticket-bottom .text-btn{font-size:10px;min-height:41px;padding:9px 10px}
 .game-tabs button{font-size:11px;min-height:49px}.calendar-grid .weekday{font-size:10px}.day h3{font-size:24px}.event h4{font-size:17px}.footer h2{font-size:35px}.footer p{font-size:12px}
}
@media(max-width:365px){.ticket{grid-template-columns:107px minmax(0,1fr)}.ticket .coupon-picture{min-height:218px}.ticket h3{font-size:18px}.ticket p{font-size:11px}.ticket-bottom .text-btn{font-size:10px}.gate h1{font-size:35px}.section-heading h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.fortune-paper.revealed{animation:none!important}.fortune-envelope{transition:none!important}}
body.paused .fortune-paper.revealed{animation:none!important}
/* Floating petals never enlarge the page on narrow phones. */
.ambience{width:100vw;max-width:100%;overflow:clip;contain:paint;pointer-events:none}
/* Nine stamps remain comfortably tappable even on 320px iPhones. */
.moment-stamps{display:flex;grid-template-columns:none;gap:6px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#e3c2ce transparent;padding:2px 3px 10px;max-width:100%;-webkit-overflow-scrolling:touch}
.moment-stamps button{flex:0 0 43px;min-width:43px;min-height:48px;scroll-snap-align:start}
