@charset "UTF-8";
:root{color-scheme:light;--ink:#553a32;--muted:#947168;--pink:#d9657e;--pink-dark:#b94461;--cream:#fff7ec;--line:#edb2a4;font-family:"Microsoft JhengHei","PingFang TC","Noto Sans TC",sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer}button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #8d4945;outline-offset:5px}button:disabled{cursor:wait}svg{display:block;width:100%;height:100%}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.icon{width:28px;height:28px;flex:0 0 auto}.outline{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}
.cottage{min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(365px,35%)}
.room{min-height:720px;height:100svh;position:sticky;top:0;isolation:isolate;overflow:hidden;background:#efd9b8}
.room-picture,.room-picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 57%}.room:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#683d2118,transparent 25%,transparent 80%,#d99f6733)}.room-picture{z-index:-2}.room-brand{position:absolute;left:30px;top:28px;display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);background:#fff9e9e8;border:1px solid #fffaf2;padding:11px 20px 11px 13px;border-radius:15px;box-shadow:0 3px 14px #79543813}.brand-icon{width:33px;height:33px;fill:#cb7c6e;transform:rotate(-12deg)}.room-brand strong{font-size:18px;letter-spacing:3px;font-weight:700}.room-brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:4px;color:#9d7767}
.cat-space{position:absolute;bottom:9%;left:50%;width:65%;max-width:670px;transform:translateX(-50%)}.cat-button{display:block;width:100%;padding:0;border:0;background:transparent;position:relative;transform-origin:50% 90%;filter:drop-shadow(0 12px 7px #69472b20)}.cat-button img{display:block;width:100%;height:auto;user-select:none}.cat-button:hover{transform:translateY(-3px)}.cat-button:focus-visible{outline-offset:8px;border-radius:45%}.cat-button.petted{animation:happy-cat .65s ease-in-out}.drawn-heart{position:absolute;font-family:Georgia,serif;font-size:62px;line-height:1;color:#ed7f94;text-shadow:2px 0 #fffaf2,-2px 0 #fffaf2,0 2px #fffaf2,0 -2px #fffaf2;pointer-events:none}.heart-left{left:13%;top:10%;transform:rotate(-21deg)}.heart-right{right:2%;top:34%;transform:rotate(18deg);font-size:52px}.cat-speech{position:absolute;left:50%;bottom:50%;transform:translateX(-50%);text-align:center;max-width:calc(100% - 40px);width:max-content;background:#fffcf3ed;border:1px solid #e9b6a5;border-radius:22px;padding:13px 21px;font-size:14px;letter-spacing:1px;box-shadow:0 5px 20px #79502b10;margin:0;transition:opacity .2s}.cat-speech:after{content:"";position:absolute;bottom:-7px;left:49%;width:12px;height:12px;transform:rotate(45deg);background:#fffcf3;border-right:1px solid #e9b6a5;border-bottom:1px solid #e9b6a5}.floating-heart{position:absolute;z-index:4;color:#e76e87;font-size:30px;pointer-events:none;animation:float-heart 1.2s ease-out both;filter:drop-shadow(0 1px 1px #fff)}.image-error{position:absolute;inset:auto 20px 20px;background:var(--cream);padding:18px;border-radius:16px;z-index:5}.image-error button{background:white;border:1px solid var(--line);padding:8px 14px;border-radius:20px;margin-left:10px}
.companion{display:flex;flex-direction:column;justify-content:center;position:relative;isolation:isolate;padding:46px 7.5% 26px;background:radial-gradient(ellipse at 0 0,#fce5d3aa,transparent 55%),radial-gradient(ellipse at 100% 90%,#ffe3ce80,transparent 50%),#fff8ef}.companion:before{content:"";position:absolute;inset:11px;z-index:-1;pointer-events:none;border:1px solid #efd4c088;border-radius:12px}.welcome{position:relative;padding:0 0 28px 8px}.eyebrow{font:10px Georgia,serif;letter-spacing:3px;color:#b18170}.welcome h1{font-family:"DFKai-SB","BiauKai","KaiTi",serif;font-weight:500;font-size:clamp(34px,3.2vw,52px);line-height:1.45;letter-spacing:4px;margin:16px 0 13px}.welcome h1>span{display:inline-block;color:#e28790;transform:rotate(-14deg);margin-left:8px;font-family:Georgia,serif;font-size:.7em}.welcome p{font-size:14px;line-height:2;letter-spacing:2px;color:#96776a;margin:0}.tiny-flower{color:#d9a879;position:absolute;right:9%;bottom:40px;font-size:39px;transform:rotate(14deg)}
.main-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 48px}.pill{border-radius:999px;min-height:60px;display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 17px;font-weight:700;letter-spacing:1px;font-size:15px;border:1.5px solid transparent;box-shadow:0 5px 0 #dab79a17;transition:transform .15s,background .15s;white-space:nowrap}.pill:hover{transform:translateY(-2px)}.pill:active{transform:translateY(1px)}.primary{background:linear-gradient(160deg,#e9899a,#d35875);color:white;border-color:#fff7f1;box-shadow:0 0 0 1px #edbdb3,0 6px 12px #bf6a5510}.primary .paw{fill:currentColor;width:26px;height:26px}.secondary{background:#fffdfa91;border-color:#b9796f}.button-heart{font:23px Georgia,serif}.button-heart.filled{color:#ec8c97;font-size:18px}.secondary .icon{width:24px;height:24px}
.appointment{display:flex;position:relative;align-items:center;gap:19px;text-align:left;background:#fffdf5b5;border:1.5px solid #edb9a7;border-radius:25px;padding:30px 20px;width:100%;box-shadow:0 0 0 5px #fffaf2,0 0 0 6px #f1c4b4,0 8px 15px #d9a17a0f;transition:background .15s}.appointment:after{content:"";position:absolute;inset:7px;border:1px solid #f4d4c4;border-radius:18px;pointer-events:none}.appointment:hover{background:#fffdf9}.peeking-cat{position:absolute;width:77px;height:50px;right:15px;top:-41px;z-index:1}.peeking-cat i{position:absolute;right:-6px;top:7px;font-size:14px;font-style:normal;color:#e18b8c;transform:rotate(20deg)}.appointment-copy{flex:1}.appointment-copy strong{display:block;font-size:16px;line-height:1.8;letter-spacing:1px;font-weight:700}.appointment-copy>span{display:block;font-size:12px;line-height:1.9;letter-spacing:.5px;margin-top:7px;color:#947164}.mobile-break{display:none}.appointment-arrow{width:15px;height:15px;color:#bd8c77}.calendar-doodle{flex:0 0 52px;display:block;position:relative;width:52px;height:59px;border:2px solid #bd7867;background:repeating-linear-gradient(0deg,transparent 0 15px,#eedace 15px 16px),repeating-linear-gradient(90deg,#fff5e6 0 15px,#eedace 15px 16px);border-radius:5px;transform:rotate(-11deg);box-shadow:-5px 4px #dfb398}.calendar-doodle:before{content:"";position:absolute;top:0;left:0;right:0;height:14px;background:#e5a69b;border-radius:3px 3px 0 0}.calendar-doodle svg{position:absolute;left:11px;bottom:6px;width:30px;height:30px;fill:#ec8b92}.calendar-rings:before,.calendar-rings:after{content:"";position:absolute;top:-8px;width:4px;height:14px;border:2px solid #9f6254;border-radius:9px;z-index:1;background:#f9e0ca}.calendar-rings:before{left:10px}.calendar-rings:after{right:10px}
.little-links{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:28px}.little-links button{background:#fffaf5;border:1.3px solid #deb2a2;min-height:83px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:11px 5px;font-size:12px;font-weight:700;letter-spacing:.5px;box-shadow:0 4px #e5c5a61a;transition:background .15s,transform .15s}.little-links button:hover{background:#fff0e7;transform:translateY(-2px)}.little-links .icon{width:26px;height:26px}.calendar-icon{color:#ac6f60}.book-icon{color:#a56b62}.cat-icon{fill:#77524a;stroke:#77524a}.cat-icon path+path{stroke:#fff7e9;stroke-width:2.5}
dialog{width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:1px solid #edc6b2;border-radius:28px;padding:0;background:#fff9ef;color:var(--ink);box-shadow:0 22px 80px #51352933;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#3f271855;backdrop-filter:blur(5px)}.dialog-content{position:relative;padding:36px 30px 30px}.close-button{position:absolute;right:12px;top:12px;background:#f6e8da;border:0;border-radius:50%;font-size:26px;font-weight:400;width:44px;height:44px;line-height:1}.dialog-flower{font-size:36px;color:#cba478}.dialog-eyebrow{font-size:10px;letter-spacing:2px;color:#ac8572;margin:15px 0 10px}h2{font-family:"DFKai-SB","BiauKai","KaiTi",serif;font-size:28px;letter-spacing:1px;line-height:1.5;margin:0 0 20px;font-weight:500}#dialog-body p,.form-description{font-size:14px;line-height:1.9;color:#8b6b5d}#dialog-body ul{padding-left:22px;font-size:14px;line-height:1.9;color:#8b6b5d}#dialog-body li{margin:12px 0}#dialog-body .preview-note{padding:14px;background:#f5e9dc;border-radius:12px;font-size:12px}.dialog-done{width:100%;margin-top:26px}.identity-paw{width:38px;height:38px;fill:#d98a8d;transform:rotate(-10deg)}.form-description{margin:-7px 0 24px}.dialog-content label{display:block;font-size:13px;font-weight:700;letter-spacing:1px;margin-bottom:9px}input{width:100%;padding:14px 16px;border:1px solid #d9b2a0;border-radius:12px;background:#fffefa;color:var(--ink);font-size:16px;outline-offset:3px}input:focus{outline:2px solid #cd8e80}input::placeholder{color:#bba797}.input-note{font-size:11px;line-height:1.9;color:#ac8c7c}.form-error{color:#ac3f53;font-size:12px;min-height:17px;margin:8px 0 16px}#identity-form .primary{width:100%;min-height:54px}.forget-button{display:block;margin:18px auto 0;border:0;background:none;color:#987266;font-size:12px;text-decoration:underline;text-underline-offset:4px;min-height:44px}.screen-reader{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body.modal-open{overflow:hidden}
@keyframes happy-cat{0%,100%{transform:scale(1)}35%{transform:translateY(-6px) rotate(-1.5deg) scale(1.025)}65%{transform:translateY(-3px) rotate(1deg)}}@keyframes float-heart{0%{opacity:0;transform:translateY(0) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translateY(-120px) rotate(18deg) scale(1.1)}}
@media(min-width:1500px){.companion{padding-left:11%;padding-right:11%}.welcome{padding-bottom:36px}.main-actions{margin-bottom:55px}.appointment{padding:35px 25px}.little-links{margin-top:32px}.room{min-height:800px}.cat-speech{bottom:53%}}
@media(max-width:1190px) and (min-width:1050px){.companion{padding-left:6%;padding-right:6%}.pill{padding:12px 10px;font-size:14px;gap:7px}.appointment{gap:13px;padding:25px 16px}.appointment-copy strong{font-size:14px}.calendar-doodle{flex-basis:43px;width:43px;height:52px}.calendar-doodle svg{left:7px;width:26px}.appointment-arrow{display:none}}
@media(max-width:1049px){.cottage{display:block}.room{position:relative;height:min(73svh,760px);min-height:530px}.room-picture img{object-position:50% 57%}.room-brand{top:22px;left:24px}.cat-space{width:51%;max-width:490px;bottom:8%}.cat-speech{bottom:49%}.companion{padding:30px 38px 24px;display:grid;grid-template-columns:1fr 1fr;column-gap:35px;align-items:center}.companion:before{display:none}.welcome{grid-column:1;grid-row:1 / 3;padding:15px 0 15px 10px}.welcome h1{font-size:38px;letter-spacing:4px}.tiny-flower{right:8%;bottom:28px}.main-actions{grid-column:2;margin:10px 0 38px;gap:12px}.appointment{grid-column:2}.little-links{grid-column:1 / -1;display:flex;justify-content:center;margin:28px 0 0;gap:16px}.little-links button{flex:1;max-width:235px;min-height:58px;border-radius:99px;flex-direction:row;gap:10px;font-size:14px;padding:12px}.little-links .icon{width:25px;height:25px}.peeking-cat{width:66px;top:-36px}.pill{font-size:14px;min-height:56px;padding:11px 13px}.appointment{padding:24px 18px;gap:16px}.appointment-arrow{display:none}}
@media(max-width:599px){.room{height:65svh;min-height:440px;max-height:650px}.room-picture img{object-position:50% 51%}.room-brand{left:16px;top:max(16px,env(safe-area-inset-top));gap:8px;padding:9px 12px;border-radius:12px}.brand-icon{width:25px;height:25px}.room-brand strong{font-size:14px;letter-spacing:2px}.room-brand small{font-size:8px;letter-spacing:1px;margin-top:3px}.cat-space{bottom:10%;width:72%;max-width:380px}.cat-speech{font-size:12px;padding:11px 15px;letter-spacing:.5px;bottom:47%;max-width:88%;line-height:1.7}.heart-left{font-size:44px;left:7%;top:4%}.heart-right{font-size:38px;right:-2%;top:34%}.companion{display:flex;flex-direction:column;gap:0;padding:0 21px max(25px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 0 0,#f9dfc9aa,transparent 58%),radial-gradient(ellipse at 90% 80%,#ffead3,transparent 65%),#fff8ee}.companion:after{content:"";position:absolute;top:-27px;left:0;right:0;height:28px;background:linear-gradient(0deg,#faeddf,transparent);pointer-events:none}.welcome{display:none}.main-actions{width:100%;margin:-5px 0 47px;gap:10px;position:relative;z-index:1}.pill{min-height:54px;font-size:17px;letter-spacing:1px;padding:11px 13px;gap:9px;border-width:1.5px}.primary .paw{width:27px;height:27px}.secondary .icon{width:24px;height:24px}.button-heart{font-size:25px}.button-heart.filled{font-size:19px}.appointment{border-radius:23px;padding:25px 19px;min-height:133px;gap:19px}.appointment:after{inset:6px;border-radius:17px}.appointment-copy strong{font-size:17px;letter-spacing:.8px;line-height:1.7}.appointment-copy>span{font-size:13px;line-height:1.8;letter-spacing:.4px;margin-top:6px}.calendar-doodle{flex-basis:55px;width:55px;height:61px}.calendar-doodle svg{width:31px;height:31px}.peeking-cat{width:78px;height:50px;top:-40px;right:12px}.little-links{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:26px}.little-links button{padding:13px 4px;min-height:76px;flex-direction:column;gap:8px;border-radius:22px;font-size:12px;letter-spacing:.5px;max-width:none}.little-links .icon{width:25px;height:25px}.dialog-content{padding:30px 24px 25px}h2{font-size:26px}}
@media(max-width:359px){.companion{padding-left:16px;padding-right:16px}.pill{font-size:15px;gap:7px;padding:11px}.primary .paw{width:24px}.button-heart{font-size:22px}.appointment{gap:14px;padding:24px 15px}.appointment-copy strong{font-size:15px}.appointment-copy>span{font-size:12px}.calendar-doodle{flex-basis:46px;width:46px;height:54px}.calendar-doodle svg{left:7px}.mobile-break{display:block}.little-links{gap:6px}.little-links button{font-size:11px;letter-spacing:0}}
@media(max-height:550px) and (min-width:600px){.room{height:100svh;min-height:360px}.cat-space{width:39%;bottom:10%}.cat-speech{bottom:53%;font-size:12px}.companion{padding-top:26px;padding-bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.cat-button:hover,.pill:hover,.little-links button:hover{transform:none}.floating-heart{display:none}}
.cat-space .cat-speech{bottom:calc(100% + 22px);max-width:min(430px,calc(100vw - 40px))}
.cat-button .cat-roll-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;visibility:visible;opacity:0;pointer-events:none}
.cat-button.belly-up #cat-image{opacity:0}
.cat-button.belly-up .cat-roll-image{opacity:1}
.cat-button.petted{animation-duration:.24s}
@media(min-width:1050px){.cat-space{width:56%;bottom:12%}}

/* Illustrated information buttons, arranged like the supplied reference. */
.room-brand strong{font-size:17px;letter-spacing:2px;white-space:nowrap}
.companion{container-type:inline-size}
.little-links{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin-top:30px;margin-bottom:22px}
.little-links button{flex:none;max-width:none;min-width:0;min-height:53px;padding:10px 7px;flex-direction:row;gap:6px;border:1.2px solid #d78c7b;border-radius:999px;background:linear-gradient(155deg,#fffdf9,#fff3ed);box-shadow:inset 0 0 0 2px #fffdf6,0 4px 0 #e9be9d26;font-family:"DFKai-SB","BiauKai","KaiTi",serif;font-weight:700;font-size:clamp(10px,3.15cqw,14px);letter-spacing:.3px;white-space:nowrap;color:#422d29}
.little-links .illustrated-icon{display:block;flex:0 0 auto;width:clamp(23px,7.8cqw,34px);height:clamp(23px,7.8cqw,34px);object-fit:contain}
.little-links button:hover{background:#fff3eb}
.little-links:before,.little-links:after{content:"♥";position:absolute;top:-15px;pointer-events:none;color:#ee9b9b;font-size:15px;line-height:1;transform:translateX(-50%)}
.little-links:before{left:33.333%}.little-links:after{left:66.666%}
.nav-paw{position:absolute;width:20px;height:20px;fill:#e5b49a;pointer-events:none;z-index:-1}
.nav-paw-left{left:-14px;top:-10px;transform:rotate(-30deg)}.nav-paw-right{right:-11px;bottom:-17px;transform:rotate(25deg)}
.little-links button{font-family:"Microsoft JhengHei","PingFang TC","Noto Sans TC",sans-serif;font-weight:900;font-synthesis:weight;font-size:clamp(11px,3.4cqw,15px)}
@media(max-width:1049px){.little-links{gap:12px;margin-top:30px;margin-bottom:5px}.little-links button{font-size:17px;min-height:59px;gap:10px;padding:11px 13px}.little-links .illustrated-icon{width:34px;height:34px}}
@media(max-width:599px){.room-brand strong{font-size:14px;letter-spacing:1px}.room-brand{padding:12px 13px}.little-links{gap:7px;margin-top:28px;margin-bottom:9px}.little-links button{min-height:49px;padding:8px 5px;gap:4px;font-size:clamp(10px,3.4cqw,13px);letter-spacing:0}.little-links .illustrated-icon{width:clamp(22px,7.6cqw,29px);height:clamp(22px,7.6cqw,29px)}.companion{padding-bottom:max(26px,env(safe-area-inset-bottom))}}

/* Main actions: slim visible capsules with a full-height touch target. */
.main-actions{container-type:inline-size;position:relative;grid-template-columns:1.04fr 1fr;gap:9px;width:calc(100% - 14px);align-self:center;justify-self:center}
.main-actions .pill{display:flex;min-height:44px;height:auto;min-width:0;width:100%;padding:0;border:0;background:none;box-shadow:none;letter-spacing:normal;transform:none;color:inherit}
.main-actions .action-face{display:flex;align-items:center;justify-content:center;gap:clamp(5px,2.1cqw,11px);width:100%;height:clamp(34px,10.3cqw,56px);border-radius:999px;padding:0 clamp(8px,3cqw,15px);font-family:"Microsoft JhengHei","PingFang TC","Noto Sans TC",sans-serif;font-size:clamp(14px,5.3cqw,27px);font-weight:700;font-synthesis:weight;line-height:1;white-space:nowrap;pointer-events:none;transition:filter .15s,transform .15s}
.main-actions .primary .action-face{color:#fffaf8;background:linear-gradient(170deg,#ef86a1 0%,#e56b8c 48%,#d95175 100%);border:1.7px solid #fffdf9;box-shadow:0 0 0 1px #dfa99b,0 4px 9px #d48d6420,inset 0 1px 5px #fff5}
.main-actions .secondary .action-face{color:#260f12;background:linear-gradient(160deg,#fffefc,#fff7f5);border:1.4px solid #ae665c;box-shadow:inset 0 0 0 1.5px #fffdfb,0 4px 9px #d48d6418}
.main-actions .action-label{letter-spacing:.08em;flex:0 0 auto}
.main-actions .action-paw{fill:currentColor;width:1.5em;height:1.5em;flex:0 0 auto;transform:rotate(-7deg)}
.main-actions .action-cat{width:1.5em;height:1.5em;object-fit:contain;flex:0 0 auto}
.main-actions .action-heart{width:.93em;height:1.15em;flex:0 0 auto;transform:rotate(10deg);stroke-width:2.2}
.main-actions .action-heart.filled{fill:url(#action-heart-pink);transform:rotate(-6deg);stroke:none;width:1em}
.action-rays{position:absolute;top:50%;width:clamp(14px,5.1cqw,28px);height:clamp(34px,11cqw,56px);fill:none;stroke:#9e3b58;stroke-width:4.4;stroke-linecap:round;filter:drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff);pointer-events:none;overflow:visible}
.action-rays-left{right:calc(100% - 3px);transform:translateY(-50%)}.action-rays-right{left:calc(100% - 3px);transform:translateY(-50%) scaleX(-1)}
.main-actions .pill:hover .action-face{filter:brightness(1.035)}.main-actions .pill:active .action-face{transform:translateY(1px)}
@media(max-width:599px){.main-actions{width:86.5vw;max-width:100%;gap:clamp(6px,1.7vw,10px)}}
@media(max-width:359px){.main-actions{width:calc(100% - 10px);gap:7px}.main-actions .action-face{font-size:14px;gap:5px;padding:0 6px}.main-actions .action-label{letter-spacing:.03em}}
@media(prefers-reduced-motion:reduce){.main-actions .pill:active .action-face{transform:none}}

/* Appointment invitation, laid out to match the illustrated reference. */
.appointment{container-type:inline-size;display:block;aspect-ratio:3.65;width:100%;min-height:0;padding:0;gap:0;align-self:center;border:1px solid #ffb4a7;border-radius:clamp(20px,5cqw,30px);background:linear-gradient(145deg,#fffaf4f5,#fff9f0e8);box-shadow:0 0 0 3px #fffaf5,0 0 0 4px #ffd0c3,0 5px 10px #e3b18e12;isolation:isolate}
.appointment:after{display:none}
.appointment-inner-frame{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#ffb5aa;stroke-width:.8;pointer-events:none;z-index:-1}
.appointment-inner-frame path{vector-effect:non-scaling-stroke}
.appointment-calendar{position:absolute;left:4.9%;top:23%;width:19.2%;height:65%;object-fit:contain;pointer-events:none}
.appointment-peeking-cat{position:absolute;right:5%;top:-8%;width:19%;height:44.5%;object-fit:contain;pointer-events:none;z-index:1}
.appointment .appointment-copy{position:absolute;left:29%;right:3%;top:37.5%;display:block;color:#250c0e;font-family:"Microsoft JhengHei","PingFang TC","Noto Sans TC",sans-serif;font-synthesis:weight}
.appointment .appointment-copy strong{font-size:clamp(14px,4.2cqw,24px);font-weight:900;line-height:1.4;letter-spacing:.035em;white-space:nowrap}
.appointment .appointment-copy>.appointment-subtitle{display:flex;align-items:center;gap:.3em;color:#2b1113;font-size:clamp(11px,3.55cqw,21px);font-weight:700;line-height:1.4;letter-spacing:.035em;margin-top:.28em;white-space:nowrap}
.appointment-love{width:1.12em;height:1.12em;flex:0 0 auto;stroke-width:2.5}
.appointment-hearts{position:absolute;inset:0;pointer-events:none}
.card-heart{position:absolute;width:2.7%;height:auto;aspect-ratio:1;fill:url(#action-heart-pink)}
.heart-calendar-top{left:22%;top:13%;transform:rotate(-10deg)}.heart-calendar-right{left:24%;top:34%;width:2.4%;transform:rotate(17deg)}.heart-calendar-left{left:2.2%;top:51%;width:2.5%;transform:rotate(-22deg)}
.heart-cat-left{right:23.4%;top:8%;width:2.6%;transform:rotate(-24deg)}.heart-cat-top{right:9.3%;top:-7%;width:1.7%;transform:rotate(18deg)}.heart-cat-right{right:2.6%;top:16%;width:2.5%;transform:rotate(20deg)}
@media(max-width:599px){.appointment{width:calc(100vw - 16px);max-width:none;aspect-ratio:3.65}.main-actions{margin-bottom:32px}.little-links{margin-top:23px}}
@media(max-width:359px){.appointment .appointment-copy strong{font-size:13px;letter-spacing:0}.appointment .appointment-copy>.appointment-subtitle{font-size:10.5px;letter-spacing:0}}

/* Crossfade decoded kitten poses without moving the character. */
.cat-button,.cat-button:hover,.cat-button.petted{transform:none;animation:none}.cat-button #cat-image{opacity:1}.cat-button.petting-transition #cat-image,.cat-button.petting-transition .cat-roll-image{transition:opacity 280ms cubic-bezier(.25,.1,.25,1)}
