body{margin:0;background:#FBF3EA;font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei","Noto Sans CJK TC","Source Han Sans TC","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;color:#2A1A1F}
a{color:#8C1D40}
a:hover{color:#5E1029}
button{font-family:inherit}
button:focus-visible{outline:3px solid #2A1A1F;outline-offset:3px}
@keyframes rise{0%{transform:translateY(0) rotate(0deg);opacity:0}
12%{opacity:.85}
100%{transform:translateY(-920px) rotate(28deg);opacity:0}}
.fh{position:absolute;bottom:-60px;animation:rise linear infinite}
.fh1{left:4%;width:22px;animation-duration:15s;animation-delay:0s}
.fh2{left:12%;width:14px;animation-duration:11s;animation-delay:3s}
.fh3{left:21%;width:30px;animation-duration:18s;animation-delay:6s}
.fh4{left:33%;width:16px;animation-duration:13s;animation-delay:1.5s}
.fh5{left:47%;width:12px;animation-duration:10s;animation-delay:8s}
.fh6{left:58%;width:26px;animation-duration:16s;animation-delay:4s}
.fh7{left:69%;width:14px;animation-duration:12s;animation-delay:9s}
.fh8{left:78%;width:34px;animation-duration:19s;animation-delay:2s}
.fh9{left:88%;width:18px;animation-duration:14s;animation-delay:5s}
.fh10{left:95%;width:12px;animation-duration:11s;animation-delay:7s}
@keyframes beat{0%,100%{transform:scale(1)}
14%{transform:scale(1.18)}
28%{transform:scale(1)}
42%{transform:scale(1.12)}}
.beat{animation:beat 1.6s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes bob{0%,100%{transform:translateY(0)}
50%{transform:translateY(-10px)}}
.bob{animation:bob 3.2s ease-in-out infinite}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}
to{opacity:1;transform:none}}
.enter{animation:fadeUp .6s cubic-bezier(.2,.7,.2,1) both}
.d1{animation-delay:.08s}
.d2{animation-delay:.16s}
.d3{animation-delay:.24s}
.d4{animation-delay:.32s}
.d5{animation-delay:.4s}
.d6{animation-delay:.48s}
@keyframes steam{0%{transform:translateY(6px);opacity:0}
50%{opacity:.9}
100%{transform:translateY(-10px);opacity:0}}
.steam{animation:steam 2.4s ease-in-out infinite}
.steam2{animation-delay:.8s}
.steam3{animation-delay:1.6s}
@keyframes flicker{0%,100%{opacity:1}
50%{opacity:.45}}
.flicker{animation:flicker 1.6s ease-in-out infinite}
.fk2{animation-delay:.5s}
.fk3{animation-delay:1s}
@keyframes sway{0%,100%{transform:rotate(-5deg)}
50%{transform:rotate(5deg)}}
.sway{animation:sway 3s ease-in-out infinite;transform-origin:50% 0;transform-box:fill-box}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}
95%{transform:scaleY(.1)}}
.blink{animation:blink 4s infinite;transform-origin:center;transform-box:fill-box}
@keyframes twinkle{0%,100%{opacity:.2;transform:scale(.7)}
50%{opacity:1;transform:scale(1)}}
.tw{animation:twinkle 2.2s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
.tw2{animation-delay:.7s}
.tw3{animation-delay:1.4s}
@keyframes letterIn{from{opacity:0;transform:translateY(90px) scale(.96)}
to{opacity:1;transform:none}}
.letterIn{animation:letterIn .9s cubic-bezier(.2,.7,.2,1) both}
@keyframes stampIn{0%{opacity:0;transform:scale(2.2) rotate(-24deg)}
70%{opacity:1;transform:scale(.92) rotate(-12deg)}
100%{opacity:1;transform:scale(1) rotate(-12deg)}}
.stampIn{animation:stampIn .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes burst{0%{opacity:1;transform:translate(-50%,-50%) scale(.3)}
100%{opacity:0;transform:translate(calc(-50% + var(--bx)),calc(-50% + var(--by))) scale(1.3)}}
.bh{position:absolute;left:50%;top:50%;width:28px;animation:burst 1.5s ease-out both}
.bh1{--bx:-260px;--by:-200px}
.bh2{--bx:240px;--by:-220px}
.bh3{--bx:-300px;--by:40px}
.bh4{--bx:310px;--by:20px}
.bh5{--bx:-180px;--by:230px}
.bh6{--bx:200px;--by:240px}
.bh7{--bx:-40px;--by:-280px}
.bh8{--bx:30px;--by:280px;animation-delay:.1s}
@keyframes wiggle{0%,100%{transform:rotate(0)}
25%{transform:rotate(-6deg)}
75%{transform:rotate(6deg)}}
.btn-yes{height:68px;padding:0 44px;border:3px solid #2A1A1F;border-radius:999px;background:#C73A62;color:#FFFFFF;font-size:26px;font-weight:700;letter-spacing:2px;cursor:pointer;box-shadow:0 6px 0 #2A1A1F;transition:transform .25s cubic-bezier(.3,1.4,.5,1),background .2s}
.btn-yes:hover{background:#A92E51}
.btn-yes:active{box-shadow:0 2px 0 #2A1A1F}
.btn-no{width:160px;height:68px;border:3px solid #2A1A1F;border-radius:999px;background:#FFFFFF;color:#2A1A1F;font-size:24px;font-weight:700;cursor:pointer;box-shadow:0 6px 0 #2A1A1F}
.no-float{position:absolute;z-index:5;transition:left .32s cubic-bezier(.3,1.5,.5,1),top .32s cubic-bezier(.3,1.5,.5,1);animation:wiggle .4s ease-in-out}
.btn-main{height:60px;padding:0 36px;border:3px solid #2A1A1F;border-radius:999px;background:#C73A62;color:#FFFFFF;font-size:20px;font-weight:700;cursor:pointer;box-shadow:0 5px 0 #2A1A1F;display:inline-flex;align-items:center;gap:10px}
.btn-main:hover{background:#A92E51}
.btn-main:disabled{background:#E8D9DC;color:#7A5C63;border-color:#B9A3A8;box-shadow:0 5px 0 #B9A3A8;cursor:not-allowed}
.btn-ghost{height:48px;padding:0 18px;border:0;background:transparent;color:#7A5C63;font-size:16px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border-radius:999px}
.btn-ghost:hover{color:#2A1A1F;background:#F3E3DA}
.nav-btn{width:44px;height:44px;border:2px solid #2A1A1F;border-radius:50%;background:#FFFFFF;cursor:pointer;display:flex;align-items:center;justify-content:center}
.nav-btn:disabled{opacity:.3;cursor:not-allowed}
.cal-day{position:relative;height:50px;border:0;border-radius:14px;background:transparent;font-size:19px;font-weight:500;color:#2A1A1F;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s}
.cal-day:hover:not(:disabled){background:#FBE3EA;transform:translateY(-2px)}
.cal-day.today{box-shadow:inset 0 0 0 2px #E9C3CD}
.cal-day.past{color:#C4B2B6;cursor:not-allowed}
.cal-day.sel{color:#FFFFFF;font-weight:700}
.cal-day.sel:hover{background:transparent}
.cal-heart{position:absolute;left:50%;top:50%;width:52px;height:52px;transform:translate(-50%,-48%);animation:pop .35s cubic-bezier(.3,1.6,.5,1) both}
@keyframes pop{from{transform:translate(-50%,-48%) scale(.2)}
to{transform:translate(-50%,-48%) scale(1)}}
.food{position:relative;border:3px solid #2A1A1F;border-radius:24px;background:#FFFFFF;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 12px 20px;box-shadow:0 6px 0 #2A1A1F;transition:transform .2s cubic-bezier(.3,1.4,.5,1),background .2s}
.food:hover{transform:translateY(-6px) rotate(-1deg)}
.food.sel{background:#FBE3EA;transform:translateY(-6px)}
.tab{width:100%;text-align:left;border:2px solid #E3D0C7;border-radius:16px;background:#FFFFFF;padding:12px 16px;cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:transform .15s,border-color .15s}
.tab:hover{transform:translateX(4px);border-color:#2A1A1F}
.tab.on{border-color:#C73A62;background:#FBE3EA;box-shadow:inset 4px 0 0 #C73A62}
.ruled{background-color:#FFFDF8;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 33px,#F1DDD4 33px,#F1DDD4 34px)}
.env-btn{border:0;background:transparent;padding:0;cursor:pointer;transition:transform .25s cubic-bezier(.3,1.4,.5,1)}
.env-btn:hover{transform:translateY(-8px) rotate(-1.5deg)}
html,body{min-height:100%}
body{overflow-x:hidden;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
@keyframes rise2{0%{transform:translateY(0) rotate(0deg);opacity:0}
12%{opacity:.85}
100%{transform:translateY(-118vh) rotate(28deg);opacity:0}}
.hearts{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.hearts .fh{animation-name:rise2}
main{position:relative;z-index:1}
.screen{min-height:100vh;min-height:100svh;box-sizing:border-box;padding:28px clamp(16px,5vw,72px) 32px;display:flex;flex-direction:column;gap:16px;max-width:1280px;margin:0 auto}
.serif{font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif}
.hand{font-family:"LXGW WenKai TC","Kaiti TC","BiauKai","DFKai-SB","KaiTi","STKaiti","Kaiti SC","Songti TC","SimSun",serif}
.hello{align-items:center;justify-content:center;gap:10px;text-align:center}
.mochi{width:clamp(150px,22vw,220px);height:auto}
.eyebrow{padding:6px 18px;border:2px solid #8C1D40;border-radius:999px;font-size:15px;font-weight:500;letter-spacing:3px;color:#8C1D40}
.hi{font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:clamp(30px,5vw,44px);font-weight:600;color:#8C1D40;margin-top:6px}
.q-row{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.q{margin:0;font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:clamp(34px,6.4vw,72px);font-weight:900;letter-spacing:2px;color:#2A1A1F;line-height:1.25}
.q-heart{width:clamp(36px,5vw,60px);height:clamp(36px,5vw,60px)}
.btn-row{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:30px;min-height:84px}
.tease{min-height:30px;font-size:17px;font-weight:500;color:#8C1D40}
.no-float{position:fixed}
.btn-yes{--g:1;position:relative;z-index:2;height:calc(68px * var(--g));padding:0 calc(44px * var(--g));font-size:calc(26px * var(--g));transition:height .4s cubic-bezier(.3,1.5,.5,1),padding .4s cubic-bezier(.3,1.5,.5,1),font-size .4s cubic-bezier(.3,1.5,.5,1),background .2s}
@keyframes ring{0%{box-shadow:0 6px 0 #2A1A1F,0 0 0 0 rgba(199,58,98,.5)}
100%{box-shadow:0 6px 0 #2A1A1F,0 0 0 26px rgba(199,58,98,0)}}
.btn-yes.hot{animation:ring 1.1s ease-out infinite}
.no-count{display:inline-flex;align-items:center;gap:8px;padding:6px 18px;border-radius:999px;background:#2A1A1F;color:#FFFFFF;font-size:15px;font-weight:700;letter-spacing:1px}
.no-count b{display:inline-block;min-width:1.1em;text-align:center;font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:26px;line-height:1;color:#F6A5BA;font-variant-numeric:tabular-nums}
@keyframes numpop{0%{transform:scale(2.4) rotate(-14deg);color:#FFD66B}
60%{transform:scale(.9) rotate(4deg)}
100%{transform:scale(1) rotate(0)}}
.no-count b.pop{animation:numpop .5s cubic-bezier(.3,1.8,.5,1)}
@keyframes shake{0%,100%{transform:translateX(0)}
20%{transform:translateX(-7px) rotate(-2deg)}
40%{transform:translateX(6px) rotate(2deg)}
60%{transform:translateX(-4px)}
80%{transform:translateX(3px)}}
.no-count.shake{animation:shake .45s ease-in-out}
@keyframes plus{0%{opacity:0;transform:translate(-50%,0) scale(.5)}
20%{opacity:1;transform:translate(-50%,-12px) scale(1.25)}
100%{opacity:0;transform:translate(-50%,-80px) scale(1)}}
.plus1{position:fixed;z-index:7;pointer-events:none;font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-weight:900;font-size:32px;color:#C73A62;text-shadow:2px 2px 0 #FFFFFF,-2px -2px 0 #FFFFFF,2px -2px 0 #FFFFFF,-2px 2px 0 #FFFFFF;animation:plus .9s ease-out forwards;white-space:nowrap}
.mochi .shock-only{opacity:0}
.mochi.shock .shock-only{opacity:1}
.mochi.shock .calm{opacity:0}
.mochi .mochi-body{transform-box:fill-box;transform-origin:50% 100%}
@keyframes jolt{0%{transform:none}
20%{transform:translateY(-16px) scale(1.07,.93)}
45%{transform:translateY(0) scale(.95,1.05) rotate(-5deg)}
70%{transform:rotate(4deg)}
100%{transform:none}}
.mochi.shock .mochi-body{animation:jolt .6s cubic-bezier(.3,1.6,.5,1)}
.mochi .excl{transform-box:fill-box;transform-origin:50% 100%}
@keyframes excl{0%{transform:scale(0) rotate(-35deg)}
100%{transform:scale(1) rotate(0)}}
.mochi.shock .excl{animation:excl .5s cubic-bezier(.3,1.9,.5,1)}
.nick-row{display:flex;align-items:baseline;gap:12px;margin-top:6px;padding:10px 16px;border-radius:12px;background:#FBE3EA}
.nick-label{flex-shrink:0;font-size:14px;font-weight:700;letter-spacing:2px;color:#8C1D40}
.nick-input{flex:1;min-width:0;border:0;border-bottom:2px dashed #C73A62;background:transparent;padding:4px 2px;font-family:"LXGW WenKai TC","Kaiti TC","BiauKai","DFKai-SB","KaiTi","STKaiti","Kaiti SC","Songti TC","SimSun",serif;font-size:21px;font-weight:700;color:#2A1A1F;border-radius:0}
.nick-input::placeholder{color:#B08A93;font-weight:400}
.nick-input:focus{outline:none;border-bottom:3px solid #8C1D40}
.nick-input:disabled{border-bottom-style:solid;border-bottom-color:transparent;color:#8C1D40;opacity:1;-webkit-text-fill-color:#8C1D40}
.nick-row.shake{animation:shake .45s ease-in-out}
.nick-hint{font-size:14px;font-weight:700;color:#A92E51}
.send-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;font-weight:500;color:#7A5C63}
.send-status.ok{color:#2F6B3A}
.send-status.err{color:#A92E51}
.send-status button{border:2px solid currentColor;background:#FFFFFF;color:inherit;border-radius:999px;padding:4px 14px;font:inherit;font-weight:700;cursor:pointer}
.topbar{display:flex;justify-content:space-between;align-items:center;min-height:48px;align-self:stretch}
.steps{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;letter-spacing:2px;color:#7A5C63}
.steps i{display:block;width:8px;height:8px;border-radius:4px;background:#E3D0C7}
.steps i.done{background:#C73A62}
.steps i.cur{width:28px;background:#C73A62}
.steps span{margin-left:6px}
.head{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.title-row{display:flex;align-items:center;justify-content:center;gap:16px}
.h2{margin:0;font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:clamp(36px,6vw,60px);font-weight:900;letter-spacing:4px;color:#2A1A1F;line-height:1.2}
.sub{margin:0;font-size:18px;color:#7A5C63}
.date-main{display:flex;justify-content:center;align-items:stretch;gap:36px;flex-wrap:wrap}
.card{background:#FFFFFF;border:3px solid #2A1A1F;border-radius:28px;box-shadow:0 8px 0 #2A1A1F;box-sizing:border-box}
.cal{width:min(620px,100%);padding:22px 28px;display:flex;flex-direction:column;gap:10px}
.cal-head{display:flex;justify-content:space-between;align-items:center}
.month{font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:26px;font-weight:900}
.wk,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.wk{font-size:14px;font-weight:500;color:#7A5C63;text-align:center}
.wk .we{color:#C73A62}
.cal-day{height:50px}
.blank{height:50px}
.pick{width:min(360px,100%);padding:26px 28px;background:#FBE3EA;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:12px}
.pick-label{font-size:15px;font-weight:700;letter-spacing:4px;color:#8C1D40}
.pick-box{display:flex;flex-direction:column;align-items:center;gap:10px}
.bigheart{position:relative;width:210px;height:200px}
.bigheart svg{width:210px;height:200px;display:block}
.bh-text{position:absolute;left:0;right:0;top:46px;display:flex;flex-direction:column;align-items:center;color:#FFFFFF;pointer-events:none}
.bh-m{font-size:18px;font-weight:700;letter-spacing:2px}
.bh-d{font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:68px;font-weight:900;line-height:1}
.bh-empty{position:absolute;left:0;right:0;top:70px;text-align:center;font-size:20px;font-weight:700;color:#8C1D40}
.pick-wd{font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:24px;font-weight:900}
.pick-hint{font-size:16px;color:#7A5C63;text-align:center}
.food-screen{align-items:center}
.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:#FFFFFF;border:2px solid #2A1A1F;border-radius:999px;font-size:16px;font-weight:500;color:#2A1A1F}
.foods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;width:min(980px,100%)}
.food{height:214px}
.food .art{width:150px;height:112px}
.fname{font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:26px;font-weight:900;color:#2A1A1F}
.ftag{font-size:15px;color:#7A5C63}
.badge{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:#C73A62;border:2px solid #2A1A1F;display:none;align-items:center;justify-content:center}
.food.sel .badge{display:flex}
.letter-main{display:flex;gap:44px;flex-grow:1}
.side{width:300px;flex-shrink:0;display:flex;flex-direction:column;gap:10px}
.side-h{margin:0;font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:32px;font-weight:900;line-height:1.3;color:#2A1A1F}
.side-p{margin:0 0 6px;font-size:15px;color:#7A5C63}
.tabs{display:flex;flex-direction:column;gap:10px}
.tab-l{font-size:17px;font-weight:700;color:#2A1A1F}
.tab-t{font-size:13px;color:#7A5C63}
.stage{flex-grow:1;position:relative;display:flex;align-items:center;justify-content:center;min-height:580px}
.env-wrap{display:flex;flex-direction:column;align-items:center;gap:18px}
.env-svg{width:min(440px,86vw);height:auto;display:block}
.env-cap{font-family:"LXGW WenKai TC","Kaiti TC","BiauKai","DFKai-SB","KaiTi","STKaiti","Kaiti SC","Songti TC","SimSun",serif;font-size:22px;color:#8C1D40;text-align:center}
.letter{position:relative;width:min(660px,100%);box-sizing:border-box;padding:34px 52px 26px;border:2px solid #E3CFC5;border-radius:10px;box-shadow:0 18px 40px rgba(42,26,31,.14);display:flex;flex-direction:column;gap:8px}
.seal{position:absolute;top:-24px;right:40px;width:64px;height:64px}
.l-head{display:flex;align-items:center;gap:12px}
.l-inv{font-size:12px;font-weight:700;letter-spacing:5px;color:#8C1D40}
.l-chip{padding:3px 12px;border-radius:999px;background:#FBE3EA;font-size:13px;font-weight:700;color:#8C1D40}
.l-body{font-family:"LXGW WenKai TC","Kaiti TC","BiauKai","DFKai-SB","KaiTi","STKaiti","Kaiti SC","Songti TC","SimSun",serif;font-size:19px;line-height:34px;white-space:pre-line;color:#2A1A1F;min-height:306px}
.l-sign{text-align:right;font-family:"LXGW WenKai TC","Kaiti TC","BiauKai","DFKai-SB","KaiTi","STKaiti","Kaiti SC","Songti TC","SimSun",serif;font-size:20px;font-weight:700;line-height:34px;color:#8C1D40}
.l-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;min-height:64px;flex-wrap:wrap}
.l-chips{display:flex;gap:8px;flex-wrap:wrap}
.l-chips span{padding:6px 14px;border:2px solid #2A1A1F;border-radius:999px;background:#FFFFFF;font-size:14px;font-weight:500}
.see-you{font-family:"LXGW WenKai TC","Kaiti TC","BiauKai","DFKai-SB","KaiTi","STKaiti","Kaiti SC","Songti TC","SimSun",serif;font-size:22px;font-weight:700;color:#8C1D40}
.stamp{position:absolute;right:56px;top:150px;width:140px;height:140px;border-radius:50%;border:5px double #C73A62;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#C73A62;background:rgba(255,253,248,.75);pointer-events:none}
.stamp .s1{font-size:12px;font-weight:700;letter-spacing:3px}
.stamp .s2{font-family:"Noto Serif TC","Songti TC","PMingLiU","Noto Serif CJK TC","Source Han Serif TC","Songti SC","SimSun","Noto Serif CJK SC",serif;font-size:28px;font-weight:900;letter-spacing:2px}
.stamp .s3{font-size:13px;font-weight:700}
.burst{position:absolute;inset:0;pointer-events:none}
@media (hover:none){.food:hover,.tab:hover,.env-btn:hover,.cal-day:hover:not(:disabled){transform:none}}
@media (max-width:760px){.screen{padding-top:16px;gap:14px}
.btn-row{gap:16px;margin-top:20px}
.btn-yes{height:calc(60px * var(--g));padding:0 calc(32px * var(--g));font-size:calc(22px * var(--g))}
.no-count{font-size:14px}
.btn-no{width:130px;height:60px;font-size:20px}
.title-row{gap:8px}
.title-row .sm{display:none}
.h2{letter-spacing:2px}
.sub{font-size:16px}
.date-main{gap:20px}
.cal{padding:16px 14px}
.cal-day,.blank{height:44px}
.cal-day{font-size:17px}
.cal-heart{width:44px;height:44px}
.pick{flex-direction:row;flex-wrap:wrap;justify-content:center;padding:20px}
.pick-label{width:100%;text-align:center}
.bigheart,.bigheart svg{width:150px;height:143px}
.bh-text{top:30px}
.bh-d{font-size:48px}
.bh-m{font-size:15px}
.bh-empty{top:48px;font-size:17px}
.foods{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.food{height:176px;padding:12px 8px 14px;gap:4px}
.food .art{width:118px;height:88px}
.fname{font-size:21px}
.ftag{font-size:13px}
.letter-main{flex-direction:column;gap:18px}
.side{width:100%}
.side-h{font-size:28px}
.tabs{flex-direction:row;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory}
.tabs .tab{flex:0 0 auto;width:auto;scroll-snap-align:start}
.stage{min-height:0;align-items:flex-start;padding-top:20px}
.letter{padding:30px 22px 20px}
.seal{right:20px}
.l-body{font-size:17px;line-height:32px;min-height:0}
.l-sign{font-size:18px;line-height:32px}
.ruled{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#F1DDD4 31px,#F1DDD4 32px)}
.stamp{position:relative;right:auto;top:auto;bottom:auto;margin:8px auto 0;width:112px;height:112px}
.stamp .s1{font-size:9px;letter-spacing:2px}
.stamp .s2{font-size:22px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}
.hearts{display:none}}
