/* V2: immersive photographic banner and a consistent reading hierarchy. */
:root{--serif:'Songti TC','Noto Serif CJK TC','PMingLiU',serif;--banner:#c5c7c4}
body{font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.top-note{font-size:11px;letter-spacing:1.5px;height:30px}
header{height:86px;border-bottom:0}
.brand>span{font-size:33px}.brand small{font-size:9px;letter-spacing:3.5px}
nav{font-size:14px;gap:34px}.nav-cta{padding:11px 21px}
.hero.hero-banner{position:relative;display:flex;align-items:center;isolation:isolate;max-width:none;width:100%;height:calc(100svh - 116px);min-height:620px;max-height:850px;margin:0;padding:55px 6% 100px;background:var(--banner);overflow:hidden;gap:0}
.hero-banner .hero-visual{position:absolute;inset:0 0 0 40%;z-index:-1;overflow:hidden;transform:translateY(var(--banner-y,0px));}
.hero-banner .hero-visual img{width:100%;height:100%;object-fit:cover;object-position:50% 52%;mask-image:linear-gradient(to right,transparent 0%,#000 22%);}
.hero-banner .hero-copy{position:relative;max-width:610px;width:49%;z-index:2;padding-bottom:10px}
.hero-banner .eyebrow{font-size:11px;letter-spacing:3px;color:#514345;margin-bottom:27px;font-weight:500}
.hero-banner h1{font:500 clamp(52px,5.05vw,81px)/1.32 var(--serif);letter-spacing:.055em;color:#38282d;text-wrap:balance}
.hero-banner h1 span{display:block;white-space:nowrap;color:inherit}
.hero-banner .hero-english{font:italic clamp(20px,2vw,29px)/1.5 Georgia,serif;color:#573d45;margin-top:14px;letter-spacing:-.3px}
.hero-banner .hero-description{font-size:15px;line-height:2;letter-spacing:.03em;color:#493d40;margin:28px 0 30px;max-width:390px}
.hero-banner .hero-actions{display:flex;flex-direction:row;align-items:center;gap:29px}
.hero-banner .button{font-size:14px;padding:17px 23px;gap:35px}.hero-banner .text-link{font-size:13px;color:#38282d}
.hero-banner .banner-footer{position:absolute;bottom:0;left:6%;right:6%;height:80px;display:flex;align-items:center;gap:40px;z-index:3;border-top:1px solid #38282d35}
.hero-banner .location-line{margin:0;gap:9px;font-size:11px;color:#40353a;letter-spacing:.08em}.location-divider{margin:0 8px;color:#695c60}
.hero-banner .banner-caption{margin-left:auto;display:flex;flex-direction:column;font-size:12px;color:#38282d;line-height:1.9;background:#c5c7c4de;padding:5px 12px}
.banner-series{font-size:8px;letter-spacing:2px}
.hero-banner .hero-controls{position:static;display:flex;gap:16px;align-items:center;color:#38282d}
.hero-banner .hero-controls button{border:1px solid #695c60;width:44px;height:44px;background:#c5c7c4de;transition:background .2s}
.hero-banner .hero-controls button:hover{background:var(--paper)}.hero-banner .hero-controls span{font-size:10px;letter-spacing:2px;white-space:nowrap;background:#c5c7c4de;padding:3px}
.collection-intro{padding:43px 6%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}
.collection-intro p{font:22px/1.7 var(--serif);letter-spacing:.07em}.collection-intro p>span{color:var(--pink)}.collection-intro>span{font-size:9px;letter-spacing:2px;color:var(--muted)}
h2{font:500 clamp(34px,3.2vw,49px)/1.45 var(--serif);letter-spacing:.045em;text-wrap:balance}
.eyebrow{font-size:11px;font-weight:500;letter-spacing:2.2px;margin-bottom:20px}
.section{padding-top:100px;padding-bottom:100px}
.section-heading{margin-bottom:44px;align-items:end}.section-heading>p{font-size:15px;line-height:1.95}.section-heading .eyebrow{margin-bottom:19px}
.tabs button{font-size:16px;padding-bottom:20px}.tabs button small{font:12px/1.7 Georgia,serif;margin-top:5px}
.cake-caption strong{font-size:18px;letter-spacing:.025em}.cake-note{font-size:13px;line-height:1.8;margin-top:6px}.cake-caption>span{font-size:9px;letter-spacing:1px}
.gallery-foot{font-size:12px;line-height:1.9;margin-top:36px}
.sizes-intro>p:last-child,.policy-intro>p:not(.eyebrow){font-size:15px;line-height:2}
.serving strong{font-size:27px}.serving>span:not(.plate){font-size:14px}.serving small,.size-note{font-size:12px;line-height:1.85}
.flavour-title{font-size:25px}.flavour-note p{font-size:14px;line-height:1.9}.flavour-note a{font-size:14px}
summary{font-size:18px;padding:26px 0}details p{font-size:15px;line-height:2}.lead-time p{font-size:13px;line-height:1.9}
.inquiry-copy h2{font-size:clamp(34px,3vw,46px);line-height:1.55;letter-spacing:.04em}.inquiry-copy>p:not(.eyebrow){font-size:15px;line-height:2}
.contact-detail small{font-size:12px;line-height:1.9;max-width:330px}.contact-detail>span{font-size:11px}
legend{font-size:26px}legend span{font-size:10px}label{font-size:14px}label span{font-size:11px}input,select{font-size:14px;height:48px}
.field-hint,.field-error,.privacy-note{font-size:12px;line-height:1.9}.copy-button{font-size:13px}#form-status{font-size:13px}.send-button{font-size:14px}
footer>div{font-size:13px}footer small{font-size:12px}
@media(min-width:1800px){.hero-banner .hero-copy{margin-left:calc((100vw - 1600px)/2)}.hero-banner .hero-visual{left:43%}}
@media(max-width:1050px){header{height:80px}.hero.hero-banner{height:calc(100svh - 110px);min-height:650px;max-height:820px;padding:50px 5% 110px}.hero-banner .hero-copy{width:53%;max-width:500px}.hero-banner .hero-visual{left:39%}.hero-banner h1{font-size:clamp(44px,5.6vw,59px);letter-spacing:.03em}.hero-banner .hero-description{font-size:14px;max-width:290px}.hero-banner .hero-actions{gap:20px;align-items:flex-start;flex-direction:column}.hero-banner .banner-footer{left:5%;right:5%;gap:20px}.hero-banner .banner-caption{font-size:10px}.hero-banner .location-line{font-size:10px;letter-spacing:0}.hero-banner .hero-controls{gap:10px}.section-heading>p{font-size:13px}.inquiry-copy h2{font-size:34px}.flavour-note p{font-size:13px}.form-row{grid-template-columns:1fr}}
@media(max-width:700px){
 header{height:72px;border-bottom:0}.top-note{height:27px;font-size:10px}.brand>span{font-size:28px}.brand small{font-size:8px}nav{top:72px;font-size:15px}.menu-toggle{font-size:13px}
 .hero.hero-banner{height:calc(100svh - 99px);min-height:710px;max-height:820px;display:block;padding:0;background:#c6c8c5}
 .hero-banner .hero-visual{inset:0 0 auto;height:59%;transform:none!important}
 .hero-banner .hero-visual img{object-fit:cover;object-position:50% 53%;mask-image:linear-gradient(to bottom,#000 67%,transparent 99%)}
 .hero-banner .hero-copy{position:absolute;left:7%;right:7%;bottom:83px;padding:0;max-width:none;width:auto}
 .hero-banner .eyebrow{font-size:9px;letter-spacing:2.2px;margin-bottom:14px}
 .hero-banner h1{font-size:clamp(38px,10vw,48px);line-height:1.28;letter-spacing:.06em}
 .hero-banner .hero-english{font-size:20px;margin-top:10px;line-height:1.45}
 .hero-banner .hero-description{font-size:13px;line-height:1.95;max-width:none;margin:19px 0 21px;letter-spacing:0}
 .hero-banner .hero-actions{flex-direction:row;align-items:center;gap:20px}.hero-banner .button{padding:14px 18px;font-size:13px;gap:21px}.hero-banner .text-link{font-size:12px}
 .hero-banner .banner-footer{left:7%;right:7%;height:66px;gap:12px}.hero-banner .banner-caption{display:none}.hero-banner .location-line{font-size:9px;gap:5px;letter-spacing:0;line-height:1.8;max-width:130px;flex-wrap:wrap}.location-divider{margin:0 2px}.hero-banner .hero-controls{margin-left:auto;gap:10px}.hero-banner .hero-controls button{width:38px;height:38px;min-width:38px;min-height:38px}.hero-banner .hero-controls span{font-size:9px}
 .collection-intro{padding:28px 7%;display:block}.collection-intro p{font-size:16px;line-height:1.8;letter-spacing:.02em}.collection-intro>span{display:block;margin-top:10px;font-size:8px;letter-spacing:1.8px}
 .section{padding:64px 6%}h2{font-size:32px;line-height:1.5;letter-spacing:.025em}.eyebrow{font-size:9px;letter-spacing:1.9px}.section-heading .eyebrow{margin-bottom:15px}.section-heading>p{font-size:14px;line-height:1.9;margin-top:17px}.section-heading{margin-bottom:28px}
 .tabs{gap:8px}.tabs button{font-size:12px;padding:12px 0 15px}.tabs button small{font-size:9px!important;letter-spacing:0}
 .cake-caption strong{font-size:14px;line-height:1.65;letter-spacing:0}.cake-note{font-size:12px;line-height:1.8;margin-top:5px}.gallery-grid{gap:28px 14px}.gallery-foot{font-size:12px;line-height:1.9;margin-top:28px}
 .sizes-intro>p:last-child,.policy-intro>p:not(.eyebrow){font-size:14px;line-height:1.95}.serving strong{font-size:23px}.serving>span:not(.plate){font-size:12px}.serving small{font-size:11px}.size-note{font-size:12px;text-align:left}.flavour-title{font-size:24px}.flavour-note p{font-size:14px}.flavour-note a{font-size:14px}
 .policy-intro h2 br{display:block}.lead-time p{font-size:12px}.lead-time{gap:22px}summary{font-size:16px;padding:23px 0}details p{font-size:14px;line-height:2}
 .inquiry-copy h2{font-size:32px;line-height:1.5;letter-spacing:.015em}.inquiry-copy>p:not(.eyebrow){font-size:14px}.contact-detail small{font-size:12px}.inquiry-paper{padding:27px 22px}legend{font-size:24px}legend span{font-size:9px}input,select{font-size:16px;height:49px}label{font-size:14px}.send-button{font-size:13px;gap:12px}.copy-button{font-size:13px}.privacy-note{font-size:11px}.field-hint,.field-error{font-size:12px}footer>div{font-size:12px}footer small{font-size:10px}
}
@media(max-width:375px){.hero.hero-banner{min-height:680px}.hero-banner h1{font-size:37px}.hero-banner .hero-copy{bottom:83px}.hero-banner .hero-description{font-size:12px}.hero-banner .button{font-size:12px;padding:14px 14px;gap:18px}.hero-banner .hero-actions{gap:16px}.hero-banner .text-link{font-size:11px}.hero-banner .hero-controls{gap:7px}.hero-banner .location-line{font-size:8px;max-width:120px}.tabs button{font-size:11px}.tabs button small{font-size:8px!important}.inquiry-paper{padding:25px 18px}h2{font-size:29px}.inquiry-copy h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.hero-banner .hero-visual{transform:none!important}}
/* Tall character sculptures retain their complete topper and cake board. */
.hero-banner .hero-visual img[data-framing="full"]{object-fit:contain;object-position:center;mask-image:linear-gradient(to right,transparent 13%,#000 27%,#000 73%,transparent 87%)}
@media(max-width:700px){.hero-banner .hero-visual img[data-framing="full"]{mask-image:linear-gradient(to right,transparent 8%,#000 19%,#000 81%,transparent 92%),linear-gradient(to bottom,#000 72%,transparent 100%);mask-composite:intersect}}
