:root { --paper:#f4eddf; --wine:#651c21; --ink:#35261f; --gold:#d5b47a; }
@font-face {font-family:BaiDouDisplay;src:url('assets/brand-display.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap;}
.finale-lockup h1 {font-family:BaiDouDisplay,"Noto Serif TC",serif;font-weight:500;font-size:clamp(38px,4.8vw,76px);letter-spacing:.14em;text-indent:.14em;line-height:1.55;}
.brand-loader {position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;color:#d5b47a;pointer-events:none;transition:opacity .25s ease,visibility .25s;}
.brand-loader img {width:110px;height:auto;filter:brightness(0) saturate(100%) invert(78%) sepia(32%) saturate(635%) hue-rotate(359deg) brightness(91%) contrast(87%);}
.loading-orbit {width:24px;height:24px;border:1px solid #d5b47a30;border-top-color:#d5b47a;border-radius:50%;animation:loading-orbit 1.6s linear infinite;}
.loading-caption {font:12px/1.6 sans-serif;letter-spacing:.2em;}
@keyframes loading-orbit {to{transform:rotate(360deg)}}
html[data-hero="ready"] .brand-loader,html[data-hero="fallback"] .brand-loader,html[data-film="finished"] .brand-loader {opacity:0;visibility:hidden;}
@media(prefers-reduced-motion:reduce){.loading-orbit{animation:none}.brand-loader{transition:none}}
html,body { height:auto; overflow-x:clip; overflow-y:auto; }
html[data-film="playing"],html[data-film="playing"] body { overflow:hidden; height:100%; }
.experience { height:100svh; min-height:420px; }
.hero-canvas {opacity:0;transform-origin:50% 50%;}
.fallback-nut {opacity:0;}
.experience::before { inset:-30%; background:radial-gradient(ellipse at 20% 35%,#681d2b 0,transparent 46%),radial-gradient(ellipse at 80% 65%,#4b111d 0,transparent 48%),radial-gradient(ellipse at 55% 15%,#36101c 0,transparent 55%),#16090e; opacity:.96; animation:brand-flow 18s ease-in-out infinite alternate; }
.experience::after { inset:-25%; background:radial-gradient(ellipse at 70% 20%,#b65d5140 0,transparent 40%),radial-gradient(ellipse at 30% 75%,#881c324d 0,transparent 48%),radial-gradient(ellipse at center,#15080c88 0,transparent 62%); opacity:.8; animation:brand-flow-light 23s ease-in-out infinite alternate; }
@keyframes brand-flow {0% {transform:translate(-7%,-4%) rotate(-9deg) scale(1.04)}50% {transform:translate(5%,3%) rotate(5deg) scale(1.12)}100% {transform:translate(8%,-3%) rotate(14deg) scale(1.02)}}
@keyframes brand-flow-light {0% {transform:translate(7%,4%) rotate(8deg);opacity:.55}50% {transform:translate(-4%,-5%) rotate(-6deg);opacity:.85}100% {transform:translate(-8%,5%) rotate(-15deg);opacity:.65}}
.festival-art {position:absolute;inset:0;pointer-events:none;overflow:hidden;}
.festival-art img {position:absolute;display:block;object-fit:contain;mix-blend-mode:screen;pointer-events:none;}
.illustrated-moon {position:absolute;width:clamp(130px,20vw,280px);aspect-ratio:1;border-radius:50%;right:7%;top:6%;background:#c4a758;opacity:.72;animation:moon-drift 14s ease-in-out infinite alternate;}
.rabbit-runner {position:absolute;width:var(--rabbit-size);height:var(--rabbit-size);left:24px;animation:none;}
.festival-art .illustrated-rabbit {display:block;width:100%;height:100%;position:static;background:#b59968;mask:url('assets/rabbit-resting.png') center/contain no-repeat;mask-mode:luminance;opacity:.18;animation:none;}
@keyframes moon-drift {from {transform:translate(0,0) rotate(-9deg)}to {transform:translate(-25px,25px) rotate(9deg)}}
html[data-page-hidden="true"] .festival-art * {animation-play-state:paused;}
@media(max-width:700px) {.illustrated-moon{width:125px;top:6%;right:6%;opacity:.7}.rabbit-runner{--rabbit-size:94px;bottom:10%}}
@media(prefers-reduced-motion:reduce) {.festival-art *{animation:none!important}}
.brand-established {margin:5px 0 12px;color:#c6ab79;font:12px/1.5 Georgia,serif;letter-spacing:.22em;text-indent:.22em;}
.skip-film { position:absolute; z-index:5; left:50%; transform:translateX(-50%); bottom:max(22px,env(safe-area-inset-bottom)); min-height:44px; padding:8px 20px; color:#dbccb7; background:transparent; border:0; font:13px/1.5 sans-serif; letter-spacing:.12em; cursor:pointer; }
.skip-film[hidden],.scroll-cue[hidden],.gift-options[hidden] {display:none;}
.scroll-cue {position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;min-height:44px;color:#d8c49f;font:12px/1.5 sans-serif;letter-spacing:.2em;text-decoration:none;}
.scroll-cue svg {width:24px;height:24px;}
html[data-hero="fallback"] .fallback-nut {display:none;}
html[data-film="finished"] .fallback-nut,html[data-film="finished"] .hero-canvas {visibility:hidden;}
.brand-strip {display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:30px max(5vw,24px);background:#381316;color:#e5cda3;text-align:center;font:clamp(15px,1.25vw,21px)/1.9 "Noto Serif TC","PMingLiU",serif;letter-spacing:.08em;}
.brand-strip p {margin:3px 0;}
.brand-strip>div+div {border-left:1px solid #b8996355;padding-left:48px;}
.gifts {position:relative;isolation:isolate;background:var(--paper);color:var(--ink);padding:150px max(6vw,24px) 52px;scroll-margin-top:20px;}
.gifts {background:radial-gradient(ellipse 410px 330px at 5% 4%,#e8d4a45c,transparent 75%),linear-gradient(115deg,#f6efe2,#f4eddf 48%,#eee4d2);}
.gift-atmosphere {position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;}
.gift-atmosphere::before {content:"";position:absolute;inset:0;background:url('assets/paper-grain.svg') repeat;opacity:.075;mix-blend-mode:multiply;}
.botanical {position:absolute;width:320px;height:360px;background:url('assets/mid-autumn-lines.svg') center/contain no-repeat;opacity:.24;}
.botanical-right {right:-115px;top:240px;}
.botanical-left {left:-110px;bottom:35px;transform:scaleX(-1);}
.gifts .illustrated-moon {box-shadow:0 0 60px 24px #d3b77525; background:radial-gradient(circle at 32% 28%,#dec990,#c5a966);}
.gift-photo {box-shadow:0 10px 28px -20px #5c342950;}
.gifts .festival-art {height:100%;z-index:-1;}
.gifts .illustrated-moon {width:180px;top:20px;left:3%;right:auto;opacity:.45;animation:none;}
.gifts .rabbit-runner {--rabbit-size:160px;top:123px;left:calc(50% + 160px);height:100px;bottom:auto;mix-blend-mode:normal;}
.gifts h2 {font:400 clamp(34px,3.3vw,52px)/1.4 "Noto Serif TC","PMingLiU",serif;letter-spacing:.24em;text-indent:.24em;text-align:center;margin:0 0 40px;}
.gift-grid {max-width:1200px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,7vw,104px);}
@media(min-width:701px) {
  .replay-button {top:calc(100% - 8px);left:50%;transform:translateX(-50%);}
  .gift-grid {position:relative;}
  .gift-grid::after {content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background:#b5996840;pointer-events:none;}
}
.gift {min-width:0;display:flex;flex-direction:column;text-align:center;}
.gift-photo {display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;}
.gift-kind {margin:24px 0 8px;font:12px/1.5 sans-serif;letter-spacing:.18em;color:#80674a;}
.gift h3 {margin:0;font:400 clamp(21px,2vw,30px)/1.5 "Noto Serif TC","PMingLiU",serif;letter-spacing:.035em;}
.gift-range {margin:12px 0;color:var(--wine);font:clamp(23px,2.3vw,33px)/1.5 Georgia,serif;font-variant-numeric:tabular-nums;}
.gift-range small {font:14px sans-serif;color:#725847;}
.gift-description {max-width:440px;align-self:center;margin:0 0 24px;font:14px/1.9 sans-serif;color:#746353;}
.gift-options {display:flex;justify-content:center;align-items:end;gap:12px;margin-top:auto;}
.gift-options label {display:flex;flex-direction:column;gap:8px;text-align:left;min-width:0;font:12px/1.5 sans-serif;color:#786046;}
.gift-options select {width:100%;min-height:46px;max-width:100%;padding:8px 28px 8px 10px;border:0;border-bottom:1px solid #af9878;border-radius:0;background:#eae0ce;color:var(--ink);font:14px/1.5 sans-serif;color-scheme:light;}
.gift[data-product="small"] .gift-options label:first-child {flex:2;}
.gift[data-product="small"] .gift-options label:last-child {flex:1;min-width:90px;}
.gift-quote {min-height:48px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:4px 12px;margin:12px 0;color:var(--wine);font:16px/1.6 sans-serif;}
.gift-quote small {font-size:12px;color:#746353;}
.order-link {display:flex;align-items:center;justify-content:center;gap:28px;align-self:center;min-height:52px;width:min(100%,320px);padding:12px 20px;background:var(--wine);color:#fff4df;text-decoration:none;font:16px/1.5 "Noto Serif TC","PMingLiU",serif;letter-spacing:.1em;transition:background .2s;}
.order-link:hover {background:#812c30;}
.order-link svg {width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.25;}
.price-note {max-width:850px;margin:38px auto 12px;color:#796b59;font:12px/1.9 sans-serif;text-align:center;}
.bulk-deadline {margin:22px 0 4px;text-align:center;color:var(--wine);font:15px/1.8 sans-serif;letter-spacing:.04em;}
.custom-link {display:block;width:fit-content;margin:0 auto;min-height:44px;padding:10px 0;color:var(--wine);font:14px/1.7 sans-serif;text-underline-offset:5px;}
.site-footer {padding:56px max(6vw,28px) 20px;background:#291416;color:#e5cda3;font:14px/1.8 sans-serif;}
.footer-main {max-width:1200px;margin:auto;display:grid;grid-template-columns:.8fr 1.4fr 1fr;gap:48px;}
.footer-brand {text-align:center;}
.footer-brand .brand-watermark {width:150px;height:auto;margin:0 auto 16px;}
.footer-brand p {margin:0 0 8px;font:18px/1.8 "PMingLiU",serif;letter-spacing:.25em;}
.footer-brand small {font:11px Georgia,serif;letter-spacing:.18em;}
.site-footer h2 {font:18px/1.5 "PMingLiU",serif;letter-spacing:.12em;margin:0 0 16px;color:#e7c98e;}
.site-footer a {color:inherit;text-decoration:none;}
.site-footer a:hover {color:#fff1d4;text-decoration:underline;text-underline-offset:5px;}
.footer-contact address {font-style:normal;}
.footer-contact dl {margin:0;}
.footer-contact dl>div {display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:baseline;}
.footer-contact dt {color:#b89b71;font-size:12px;}
.footer-contact dd {margin:0;overflow-wrap:anywhere;}
.footer-contact dd a {display:inline-flex;align-items:center;min-height:44px;}
.footer-business {margin:18px 0 0;color:#bfa888;font-size:12px;}
.footer-links {display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px;}
.footer-links a {display:flex;align-items:center;min-height:44px;}
.footer-bottom {max-width:1200px;margin:36px auto 0;padding-top:18px;border-top:1px solid #c6ab7933;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#bfa888;font-size:12px;}
.footer-bottom nav {display:flex;flex-wrap:wrap;gap:0 20px;}
.footer-bottom nav a {display:flex;align-items:center;min-height:44px;}
@media(max-width:900px) {.footer-main{grid-template-columns:1fr 1.5fr;gap:32px}.footer-nav{grid-column:1/-1}.footer-links{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px) {.site-footer{padding:40px 32px 20px}.footer-main{grid-template-columns:1fr;gap:32px}.footer-brand .brand-watermark{width:125px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:8px}.footer-bottom nav{gap:0 16px}.footer-links{font-size:13px}}
.chamber-benefits {padding:58px 28px;background:#e9dfcf;color:var(--ink);text-align:center;}
.chamber-names {margin:0 0 20px;color:#796044;font:15px/1.8 sans-serif;letter-spacing:.09em;}
.chamber-names span {margin:0 16px;color:#ae9778;}
.chamber-benefits h2 {margin:0 0 26px;font:400 clamp(26px,3vw,36px)/1.5 "Noto Serif TC","PMingLiU",serif;letter-spacing:.12em;}
.chamber-benefits .order-link {margin-inline:auto;}
button:focus-visible,a:focus-visible,select:focus-visible {outline:2px solid #b18c4d;outline-offset:5px;}
@media(max-width:700px) { .brand-strip{grid-template-columns:1fr;gap:15px;padding:25px 20px;font-size:14px;letter-spacing:.02em}.brand-strip>div+div{border-left:0;border-top:1px solid #b8996333;padding:15px 0 0}.gifts{padding:40px 22px}.gifts h2{margin-bottom:28px}.gift-grid{grid-template-columns:1fr;gap:56px}.gift h3{font-size:24px}.gift-range{font-size:28px}.gift-kind{margin-top:20px}.gift-description{margin-bottom:18px}.gift-options{width:100%}.gift-options label{flex:1}.scroll-cue{bottom:16px}.gift-quote{margin:10px 0}.price-note{text-align:left} }
@media(prefers-reduced-motion:reduce) {.experience::before,.experience::after{animation:none}.order-link{transition:none}}
@media(max-width:700px) {
  .gifts {padding-top:132px;padding-inline:clamp(28px,8.2vw,44px);}
  .gifts .festival-art {height:205px;}
  .gifts .illustrated-moon {width:132px;top:16px;right:auto;left:-22px;opacity:.5;animation:none;}
  .gifts .rabbit-runner {--rabbit-size:104px;top:111px;left:auto;right:18px;height:80px;}
  .gifts .illustrated-rabbit {opacity:.32;}
  .gifts .illustrated-moon {top:-8px;}
  .botanical {width:250px;height:280px;opacity:.16;}
  .botanical-right {right:-115px;top:560px;}
  .botanical-left {left:-120px;bottom:70px;}
  .gifts h2 {font-size:30px;line-height:1.4;letter-spacing:.12em;text-indent:0;text-align:left;padding-right:82px;margin-bottom:30px;}
}
.gift-options {flex-direction:column;align-items:stretch;gap:16px;}
@media(max-width:700px) {
  .gift-grid {gap:40px;}
  .gift-grid > .gift + .gift {border-top:1px solid #b5996840;padding-top:40px;}
}
.quantity-group {margin:0;padding:0;border:0;min-width:0;width:100%;}
.quantity-group legend {padding:0;margin-bottom:8px;text-align:left;color:#786046;font:12px/1.5 sans-serif;}
.quantity-rail {--selected:0;--columns:4;position:relative;display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));padding:4px;background:#e6dac6;border-radius:999px;isolation:isolate;}
.quantity-indicator {position:absolute;z-index:-1;left:4px;top:4px;bottom:4px;width:calc((100% - 8px)/var(--columns));border-radius:999px;background:var(--wine);transform:translateX(calc(var(--selected)*100%));transition:transform .25s ease;}
.gift h3 {margin-bottom:18px;}
.gift-options .quantity-rail label {position:relative;display:grid;place-items:center;min-height:44px;cursor:pointer;color:#674e3c;font:14px/1.4 sans-serif;text-align:center;}
.quantity-rail input {position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.gift .gift-options .quantity-rail label {min-width:0;flex:none;}
.quantity-rail label:has(input:checked) {color:#fff4df;}
.quantity-rail label:has(input:focus-visible) {outline:2px solid #b18c4d;outline-offset:2px;border-radius:999px;}
.gift-discount {display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 18px;font:13px/1.5 sans-serif;color:#786046;}
.gift-discount strong {padding:5px 12px;border-radius:999px;background:#e8d8bc;color:var(--wine);font-size:13px;letter-spacing:.04em;}
@media(prefers-reduced-motion:reduce){.quantity-indicator{transition:none}}
