/* Shared paper typography and motion. Loaded after each page's layout rules. */
@font-face{font-family:"ZaiZai Display";src:url('/cloud/fonts/FZLangKJW.ttf') format('truetype');font-display:swap}
:root{--sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;--serif:"ZaiZai Display",STKaiti,KaiTi,serif;--press:120ms;--change:200ms;--enter:280ms;--motion:cubic-bezier(.22,1,.36,1)}
body{font-family:var(--sans);font-size:17px;line-height:1.65}
button,input,textarea,select{font-family:var(--sans);font-size:16px}
h1,h2,h3,.brand,.brand-cn,.seal,.loader-mark{font-family:var(--serif);font-weight:400}
.brand-en,small,.eyebrow{font-family:var(--sans)}
.loader-mark{font-family:var(--serif);line-height:1;transform:none}
.loader{animation-duration:1.5s;background-image:linear-gradient(to bottom right,transparent calc(50% - 40px),rgba(255,249,238,.5) 50%,transparent calc(50% + 40px))}
.dish-card h2,.food-info strong,.condiment-card strong,.order-pick strong,.order-row strong,.order-dish strong{font-family:var(--sans);font-weight:600}
.dish-card h2{font-size:22px;line-height:1.4}
.dish-meta,.dish-card p{font-size:14px;line-height:1.5}
.detail-header h1{font-size:clamp(30px,4vw,48px);line-height:1.3;overflow-wrap:anywhere}
.menu-heading h1,.page-heading h1,.condiments-heading h1{font-size:clamp(30px,4vw,48px);line-height:1.3}
.button,.primary-nav button,.text-button{font-family:var(--sans);font-weight:600}
.order-selection-summary,.order-fact strong,.cooking-facts dd{font-family:var(--sans)}
.field>span,.sort-field>span,.filter-group label,.attribute-panes label>span,.condiments-tools label{font-size:15px;font-weight:600}
.recipe-sheet,.form-paper,.order-detail,.prep-group{background-image:none}
.recipe-columns,.steps-list,.prep-task-detail{font-size:18px;line-height:1.75}
.ingredient-list dd,.cooking-facts dd,.order-selection-summary{font-variant-numeric:tabular-nums}
.condiment-card p,.account-actions>span,.chapter-top,.chapter-bottom,.food-info small,.plate small{font-size:14px}
.dish-card,.order-pick,.order-row{box-shadow:0 3px 12px rgba(63,41,35,.06)}
.button,.dish-card,.order-pick,.order-row,.dipping-cell,.material-tabs button,.primary-nav button,.chapter-tabs a,.prep-task{transition:transform var(--press) var(--motion),background-color var(--change),border-color var(--change),box-shadow var(--change),color var(--change)}
.dish-card-visual img{transition:transform var(--enter) var(--motion)}
.dish-card:hover{transform:none}
@media(hover:hover){.dish-card:hover{transform:translateY(-2px)}.dish-card:hover .dish-card-visual img{transform:scale(1.02);filter:none}}
.button:active,.dish-card:active{transform:scale(.99)}
.order-pick:has(input:checked){border-color:var(--brand);background:#f3e3d3;box-shadow:inset 3px 0 var(--brand)}
.order-pick input,.prep-check input{accent-color:var(--brand)}
.prep-task.is-complete{background:rgba(53,106,69,.035)}
.prep-task.is-complete .prep-task-detail{color:var(--muted)}
.dipping-cell.just-filled strong{animation:paper-content-in var(--change) var(--motion)}
.dipping-cell.filled{background:#efddc7;box-shadow:inset 0 2px 8px #60352d10}
.dipping-cell strong{font-family:var(--sans);font-weight:600;overflow-wrap:anywhere}
dialog[open]{animation:paper-content-in var(--enter) var(--motion)}
dialog[open]::backdrop{animation:paper-backdrop-in var(--change) ease-out}
.order-step:not([hidden]){animation:paper-step-in var(--enter) var(--motion)}
#order-dialog[data-direction="back"] .order-step{--step-offset:-12px}
.content-view:not([hidden]),.chapter-tabs a[aria-current=page]{animation:paper-content-in var(--change) var(--motion)}
.toast.order-success{background:var(--paper-raised);color:var(--brand);border:1px solid var(--brand);padding-left:82px;min-height:68px;display:flex;align-items:center}
.toast.order-success:before{content:"已下单";font:22px/1.2 var(--serif);position:absolute;left:12px;top:14px;border:2px solid var(--brand);padding:5px;transform:rotate(-6deg);animation:paper-stamp-in var(--enter) var(--motion)}
.frame-wrap.ready iframe{animation:paper-content-in var(--enter) var(--motion)}
@keyframes paper-content-in{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes paper-step-in{from{opacity:.4;transform:translateX(var(--step-offset,12px))}to{opacity:1;transform:none}}
@keyframes paper-stamp-in{from{opacity:0;transform:scale(1.15) rotate(-6deg)}to{opacity:1;transform:scale(1) rotate(-6deg)}}
@keyframes paper-order-highlight{from{background:#ead8c6}to{background:var(--paper-raised)}}
@media(max-width:767px){body{font-size:17px}.dish-card h2{font-size:21px}.detail-header h1{font-size:32px}.recipe-columns,.steps-list,.prep-task-detail{font-size:18px}.order-step{--step-offset:6px}#order-dialog[data-direction="back"] .order-step{--step-offset:-6px}.toast.order-success{bottom:calc(88px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.dish-card:hover,.button:active,.dish-card:active{transform:none}}
