@font-face{font-family:KeyuSerif;src:url('assets/keyu-title.ttf') format('truetype');font-style:normal;font-weight:600 700;font-display:swap}
:root{--u:1px;--vh:100vh;--gold:#d9bd89;--ivory:#f7f0e3;--muted:#b8cadd;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#041329}body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;color:var(--ivory);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}p,h1,h2,figure{margin:0}button,svg,img{-webkit-user-select:none;user-select:none}img{display:block;max-width:100%}.invitation{position:relative;width:100%;max-width:520px;height:var(--vh);margin:0 auto;overflow:hidden;background:#061c3c;isolation:isolate;touch-action:pan-x pinch-zoom}.pages{position:absolute;inset:0;will-change:transform;transition:transform .86s cubic-bezier(.65,0,.18,1)}.pages.is-dragging{transition:none}.page{position:relative;width:100%;height:var(--vh);overflow:hidden;isolation:isolate}.texture,.shade,.light{position:absolute;pointer-events:none;z-index:-1}.texture{inset:-3%;background-image:url('assets/blue-mineral.webp');background-size:cover;background-position:center;transform-origin:center;animation:mineral-flow 22s ease-in-out infinite alternate}.shade{inset:0;background:linear-gradient(180deg,rgba(1,15,34,.05) 0%,rgba(3,21,46,.05) 33%,rgba(3,19,42,.2) 61%,rgba(2,16,37,.68) 89%,rgba(2,15,34,.5) 100%)}.light{inset:-40%;opacity:.23;background:linear-gradient(115deg,transparent 36%,rgba(125,202,255,.2) 43%,transparent 51%);mix-blend-mode:screen;animation:light-flow 19s ease-in-out infinite alternate}.page-content{position:absolute;top:calc(var(--safe-top) + 32 * var(--u));bottom:calc(var(--safe-bottom) + 83 * var(--u));left:calc(30 * var(--u));right:calc(30 * var(--u));display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:calc(43 * var(--u))}.logo{width:calc(139 * var(--u));height:auto;filter:drop-shadow(0 2px 8px rgba(0,0,0,.14))}.edition{padding-top:calc(4 * var(--u));font-size:calc(11 * var(--u));letter-spacing:calc(1.5 * var(--u));color:#c2d4e5;white-space:nowrap;padding-right:calc(36 * var(--u))}.edition>span{color:var(--gold);margin:0 calc(3 * var(--u))}.cover-hero{display:flex;flex:1;min-height:0;flex-direction:column;justify-content:center;align-items:center;padding:calc(12 * var(--u)) 0 calc(25 * var(--u))}.eyebrow{display:flex;align-items:center;justify-content:center;gap:calc(12 * var(--u));font-family:Georgia,'Times New Roman',serif;font-size:calc(10 * var(--u));color:var(--gold);letter-spacing:calc(2.3 * var(--u));line-height:1.5}.fine-line{height:1px;width:calc(24 * var(--u));background:linear-gradient(90deg,transparent,var(--gold));opacity:.65}.fine-line:last-child{transform:rotate(180deg)}.invitation-title{font-family:KeyuSerif,'Songti SC','STSong',serif;font-weight:700;font-size:calc(64 * var(--u));line-height:1.3;letter-spacing:calc(12 * var(--u));margin:calc(14 * var(--u)) calc(-12 * var(--u)) 0 0;white-space:nowrap;background:linear-gradient(135deg,#fff4d9 5%,#f1d7a6 45%,#c7a56b 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 4px 26px rgba(0,10,27,.12)}.cover-theme{font-family:KeyuSerif,'Songti SC','STSong',serif;font-weight:600;font-size:calc(43 * var(--u));line-height:1.32;letter-spacing:calc(5 * var(--u));margin:calc(14 * var(--u)) calc(-5 * var(--u)) calc(17 * var(--u)) 0;white-space:nowrap}.title-line{display:block;background:linear-gradient(145deg,#fffaf1 4%,#f4ecdb 45%,#c4d6e7 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-rule{display:flex;align-items:center;gap:calc(13 * var(--u));font-family:Georgia,serif;font-size:calc(8 * var(--u));letter-spacing:calc(2 * var(--u));color:var(--gold)}.hero-rule i{height:1px;width:calc(30 * var(--u));background:var(--gold);opacity:.5}.hero-subtitle{margin-top:calc(21 * var(--u));font-size:calc(15 * var(--u));letter-spacing:calc(1.2 * var(--u));color:#e0e9f0;line-height:1.7;white-space:nowrap}.event-details{position:relative;flex-shrink:0;background:linear-gradient(110deg,rgba(17,49,81,.64),rgba(5,25,51,.48));border-top:1px solid rgba(217,189,137,.6);border-bottom:1px solid rgba(217,189,137,.4);padding:0 calc(15 * var(--u));backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.event-details:before,.event-details:after{content:'';position:absolute;width:calc(5 * var(--u));height:calc(5 * var(--u));background:var(--gold);transform:rotate(45deg);top:calc(-3 * var(--u));opacity:.8}.event-details:before{left:0}.event-details:after{right:0}.event{display:flex;align-items:center;gap:calc(17 * var(--u));min-height:calc(97 * var(--u));padding:calc(15 * var(--u)) 0}.event+.event{border-top:1px solid rgba(180,199,214,.18)}.event-kind{width:calc(49 * var(--u));flex-shrink:0;display:flex;flex-direction:column;gap:calc(7 * var(--u));color:var(--gold)}.event-kind>span{font-family:'Songti SC','STSong',serif;font-size:calc(22 * var(--u));letter-spacing:calc(2 * var(--u));white-space:nowrap}.event-kind small{font-family:Georgia,serif;font-size:calc(7 * var(--u));letter-spacing:calc(.45 * var(--u));white-space:nowrap;opacity:.8}.event-copy{flex:1;min-width:0}.event-date{font-size:calc(14 * var(--u));font-variant-numeric:tabular-nums;line-height:1.6;white-space:nowrap;color:#fff6e7;letter-spacing:calc(.1 * var(--u))}.event-date b{font-size:calc(15 * var(--u));font-weight:500;margin-left:calc(3 * var(--u));color:var(--gold)}.event-address{margin-top:calc(4 * var(--u));font-size:calc(12 * var(--u));line-height:1.75;color:#cad9e8;overflow-wrap:anywhere;word-break:normal}.address-tail{display:inline-block;white-space:nowrap}
.letter .texture{transform:rotate(180deg) scale(1.15);animation-name:letter-flow;opacity:.86}.letter .shade{background:linear-gradient(180deg,rgba(3,24,50,.15),rgba(4,24,48,.38) 25%,rgba(2,21,45,.72) 52%,rgba(2,20,43,.45) 83%,rgba(2,18,39,.35))}.letter-content{left:calc(35 * var(--u));right:calc(35 * var(--u))}.letter-heading{margin-top:calc(58 * var(--u))}.letter-heading .eyebrow{justify-content:flex-start;font-size:calc(9 * var(--u));letter-spacing:calc(2 * var(--u))}.section-title{font-family:KeyuSerif,'Songti SC',serif;font-size:calc(45 * var(--u));font-weight:600;line-height:1.5;letter-spacing:calc(5 * var(--u));margin-top:calc(10 * var(--u))}.section-rule{display:flex;align-items:center;gap:calc(7 * var(--u));margin-top:calc(13 * var(--u))}.section-rule span{width:calc(65 * var(--u));height:1px;background:linear-gradient(90deg,var(--gold),rgba(217,189,137,.15))}.section-rule i{height:calc(4 * var(--u));width:calc(4 * var(--u));background:var(--gold);transform:rotate(45deg)}.letter-body{margin-top:calc(30 * var(--u));font-size:calc(15 * var(--u));letter-spacing:calc(.4 * var(--u));line-height:2.05;color:#d9e3ec}.letter-body>p+p{margin-top:calc(19 * var(--u))}.letter-body strong{font-weight:500;color:#eed5a8}.letter-body .letter-lead{font-family:KeyuSerif,'Songti SC',serif;font-size:calc(22 * var(--u));letter-spacing:calc(1.8 * var(--u));line-height:1.75;color:var(--ivory);margin-bottom:calc(22 * var(--u))}.letter-body .letter-closing{font-family:KeyuSerif,'Songti SC',serif;font-size:calc(19 * var(--u));line-height:1.9;letter-spacing:calc(1.1 * var(--u));color:var(--ivory);margin-top:calc(23 * var(--u))}.signature{margin-top:auto;padding-top:calc(24 * var(--u));text-align:right}.signature-line{display:block;width:calc(35 * var(--u));height:1px;margin:0 0 calc(12 * var(--u)) auto;background:var(--gold);opacity:.75}.signature p{font-size:calc(12 * var(--u));color:#c5d4e4;line-height:1.7;letter-spacing:calc(.4 * var(--u))}.signature p>span{display:block;font-family:'Songti SC',serif;font-size:calc(15 * var(--u));color:var(--gold);letter-spacing:calc(4 * var(--u));margin-top:calc(4 * var(--u))}
.about .texture{background-position:62% center;transform:scale(1.14);animation-name:about-flow}.about .shade{background:linear-gradient(180deg,rgba(3,20,44,.05),rgba(3,20,44,.1) 23%,rgba(3,20,44,.4) 39%,rgba(3,20,44,.45) 100%)}.about-heading{margin-top:calc(41 * var(--u))}.about-heading .eyebrow{justify-content:flex-start;font-size:calc(8 * var(--u));letter-spacing:calc(1.6 * var(--u))}.about-title{font-family:KeyuSerif,'Songti SC',serif;font-weight:600;font-size:calc(34 * var(--u));letter-spacing:calc(2.2 * var(--u));line-height:1.5;margin-top:calc(13 * var(--u))}.about-title>span{display:block}.about-title>span:last-child{color:#e1c998}.showroom{margin-top:calc(25 * var(--u));position:relative}.photo-window{overflow:hidden;aspect-ratio:1.78;border:1px solid rgba(196,217,233,.42);padding:calc(4 * var(--u));background:rgba(200,221,239,.045);box-shadow:0 12px 35px rgba(0,9,23,.23)}.photo-window img{width:100%;height:100%;object-fit:cover;object-position:50% 53%;filter:saturate(.85);transform:scale(1.04);transition:transform 5s cubic-bezier(.2,.6,.3,1)}.is-active .photo-window img{transform:scale(1)}.showroom:after{content:'';position:absolute;top:calc(-4 * var(--u));left:calc(-4 * var(--u));width:calc(25 * var(--u));height:calc(25 * var(--u));border-left:1px solid var(--gold);border-top:1px solid var(--gold);pointer-events:none}.showroom figcaption{display:flex;align-items:center;margin-top:calc(10 * var(--u));font-size:calc(10 * var(--u));letter-spacing:calc(.4 * var(--u));color:#bfcfe0;gap:calc(6 * var(--u))}.caption-dot{height:calc(3 * var(--u));width:calc(3 * var(--u));background:var(--gold);transform:rotate(45deg)}.caption-en{margin-left:auto;font-family:Georgia,serif;font-size:calc(7 * var(--u));letter-spacing:calc(.9 * var(--u));color:#98afc3}.about-description{font-size:calc(14 * var(--u));line-height:1.95;letter-spacing:calc(.4 * var(--u));color:#d1dce8;margin-top:calc(22 * var(--u));max-width:100%}.products{display:grid;grid-template-columns:.95fr 1.05fr;margin-top:calc(20 * var(--u));column-gap:calc(13 * var(--u));border-top:1px solid rgba(188,208,223,.27)}.product{display:flex;align-items:center;gap:calc(9 * var(--u));font-size:calc(13 * var(--u));letter-spacing:calc(.3 * var(--u));color:#e1e7ed;min-height:calc(48 * var(--u));border-bottom:1px solid rgba(188,208,223,.2);padding:calc(9 * var(--u)) 0;line-height:1.6}.product-num{align-self:center;font-family:Georgia,serif;font-size:calc(10 * var(--u));font-style:italic;color:var(--gold);opacity:.8}.product-break{display:none}.about-ending{font-family:'Songti SC',serif;font-size:calc(15 * var(--u));letter-spacing:calc(2.5 * var(--u));color:var(--gold);margin-top:auto;padding-top:calc(22 * var(--u));text-align:center}
.gold-dust{position:absolute;inset:0;z-index:3;pointer-events:none;width:100%;height:100%;opacity:.65}.motion-toggle{position:absolute;top:calc(var(--safe-top) + 35 * var(--u));right:calc(21 * var(--u));z-index:8;width:32px;height:32px;border:1px solid rgba(202,218,232,.3);border-radius:50%;display:grid;place-items:center;background:rgba(7,29,55,.25)}.motion-toggle svg{width:14px;height:14px;fill:none;stroke:#cad8e7;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.motion-toggle .play-icon{display:none}.motion-toggle[aria-pressed=true] .pause-icon{display:none}.motion-toggle[aria-pressed=true] .play-icon{display:block}.page-footer{position:absolute;left:calc(30 * var(--u));right:calc(30 * var(--u));bottom:calc(var(--safe-bottom) + 20 * var(--u));height:calc(44 * var(--u));display:flex;align-items:center;justify-content:space-between;z-index:8}.page-count{display:flex;align-items:baseline;gap:calc(7 * var(--u));font-family:Georgia,serif;font-size:calc(15 * var(--u));letter-spacing:calc(1 * var(--u));color:var(--gold)}.page-count i{width:calc(17 * var(--u));height:1px;background:rgba(217,189,137,.5);transform:rotate(-35deg);align-self:center}.page-total{font-size:calc(10 * var(--u));color:#829bb2}.turn-cue{position:absolute;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:calc(4 * var(--u));min-width:80px;min-height:44px;padding:2px 12px 0;justify-content:center;white-space:nowrap}.turn-cue svg{width:calc(21 * var(--u));height:calc(15 * var(--u));stroke:var(--gold);stroke-width:1.1;fill:none;animation:cue-float 2.7s ease-in-out infinite}.turn-cue span{font-size:calc(9 * var(--u));letter-spacing:calc(2 * var(--u));color:#b5c6d6}.page-indicators{display:flex;align-items:center;gap:0;margin-right:-10px}.page-indicators button{display:grid;place-items:center;width:24px;height:44px;padding:10px 7px}.page-indicators button>span{display:block;width:calc(4 * var(--u));height:calc(4 * var(--u));background:#7890a9;opacity:.65;border-radius:50%;transition:height .5s,background .5s,opacity .5s}.page-indicators .is-current>span{height:calc(15 * var(--u));border-radius:5px;background:var(--gold);opacity:1}.enter{opacity:0;transform:translate3d(0,calc(19 * var(--u)),0)}.is-active .enter{animation:enter-up 1s cubic-bezier(.2,.7,.25,1) var(--delay,.2s) both}.is-leaving .enter{opacity:1;transform:none;animation:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;clip:rect(0,0,0,0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}.motion-paused .texture,.motion-paused .light,.motion-paused .turn-cue svg{animation-play-state:paused}.motion-paused .enter{animation-duration:.01s;animation-delay:0s}.noscript-note{position:fixed;bottom:0;padding:10px;background:#071d3e;color:white;z-index:50;font-size:12px}
@keyframes enter-up{from{opacity:0;transform:translate3d(0,calc(19 * var(--u)),0)}to{opacity:1;transform:translate3d(0,0,0)}}@keyframes mineral-flow{from{transform:scale(1.025) translate3d(0,0,0)}to{transform:scale(1.075) translate3d(-.7%,.5%,0)}}@keyframes letter-flow{from{transform:rotate(180deg) scale(1.15) translate3d(0,0,0)}to{transform:rotate(180deg) scale(1.2) translate3d(.5%,-.5%,0)}}@keyframes about-flow{from{transform:scale(1.14) translate3d(-1%,0,0)}to{transform:scale(1.2) translate3d(0,.6%,0)}}@keyframes light-flow{from{transform:translate3d(-9%,-4%,0);opacity:.13}to{transform:translate3d(9%,5%,0);opacity:.3}}@keyframes cue-float{0%,100%{transform:translateY(2px);opacity:.55}50%{transform:translateY(-2px);opacity:1}}
@media(min-width:600px){body{background:radial-gradient(ellipse at 50% 45%,#183653,#030e1d 75%)}.invitation{max-width:430px;box-shadow:0 0 100px rgba(0,0,0,.6);border-left:1px solid rgba(180,209,234,.08);border-right:1px solid rgba(180,209,234,.08)}}
/* Compact screens retain readable body copy and a deliberately cropped photograph. */
.invitation{padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}
.photo-window{height:calc(185 * var(--u));aspect-ratio:auto}
.is-compact .letter-heading{margin-top:calc(35 * var(--u))}.is-compact .letter-body{margin-top:calc(24 * var(--u))}.is-compact .about-ending{display:none}
.page:not(.is-active):not(.is-leaving) .texture,.page:not(.is-active):not(.is-leaving) .light{animation-play-state:paused}
@media(max-height:760px){.letter-heading{margin-top:calc(35 * var(--u))}.letter-body{margin-top:calc(24 * var(--u));font-size:max(13px,calc(15 * var(--u)));line-height:1.9}.letter-body>p+p{margin-top:calc(15 * var(--u))}.letter-body .letter-lead{margin-bottom:calc(16 * var(--u));font-size:calc(21 * var(--u))}.letter-body .letter-closing{margin-top:calc(18 * var(--u))}.signature{padding-top:calc(15 * var(--u))}.about-heading{margin-top:calc(28 * var(--u))}.about-description{font-size:max(12px,calc(14 * var(--u)));margin-top:calc(16 * var(--u))}.about-ending{display:none}.showroom{margin-top:calc(21 * var(--u))}.products{margin-top:calc(16 * var(--u))}.product{font-size:max(11px,calc(13 * var(--u)))}.showroom figcaption{font-size:max(8px,calc(10 * var(--u)))}}
@media(max-width:360px){.event-date{font-size:max(11px,calc(14 * var(--u)))}.event-address{font-size:max(11px,calc(12 * var(--u)))}.product-break{display:block}.letter-body{letter-spacing:0}.caption-en{font-size:6px}.edition{letter-spacing:1px}}
.event{min-height:calc(110 * var(--u))}.event-message{margin-top:calc(7 * var(--u));font-family:'Songti SC','STSong',serif;font-size:max(11px,calc(14 * var(--u)));letter-spacing:calc(1 * var(--u));line-height:1.6;color:var(--gold);white-space:nowrap}.event-message span{margin:0 calc(3 * var(--u));opacity:.6}
/* The showroom is followed by four concise editorial product introductions. */
.about-content>header,.about-content>.about-heading,.about-content>.showroom,.about-content>.about-description,.about-content>.product-introductions{flex-shrink:0}
.about-content .about-heading{margin-top:calc(25 * var(--u))}.about-title{font-size:calc(31 * var(--u));line-height:1.4;margin-top:calc(10 * var(--u))}.about-content .showroom{margin-top:calc(17 * var(--u))}.about-content .photo-window{height:calc(119 * var(--u))}.about-content .photo-window img{object-position:50% 54%}.about-content .showroom figcaption{margin-top:calc(7 * var(--u))}.about-content .about-description{font-size:max(12px,calc(13 * var(--u)));line-height:1.85;margin-top:calc(16 * var(--u))}
.product-introductions{display:grid;grid-template-columns:1fr 1fr;gap:calc(19 * var(--u)) calc(18 * var(--u));margin-top:calc(20 * var(--u))}.product-entry{min-width:0;border-top:1px solid rgba(217,189,137,.4);padding-top:calc(11 * var(--u))}.product-entry h3{display:flex;align-items:baseline;gap:calc(8 * var(--u));margin:0;font-size:max(13px,calc(15 * var(--u)));font-weight:500;line-height:1.65;letter-spacing:calc(.5 * var(--u));color:#ead1a3}.product-entry p{margin-top:calc(6 * var(--u));font-size:max(12px,calc(13 * var(--u)));font-weight:400;line-height:1.85;letter-spacing:calc(.15 * var(--u));color:#cbd8e5;overflow-wrap:break-word}
@media(max-height:700px){.about-content .about-heading{margin-top:calc(19 * var(--u))}.about-content .photo-window{height:calc(105 * var(--u))}.about-content .about-description{margin-top:calc(12 * var(--u))}.product-introductions{margin-top:calc(16 * var(--u));row-gap:calc(15 * var(--u))}.product-entry{padding-top:calc(9 * var(--u))}.product-entry p{line-height:1.75;margin-top:calc(5 * var(--u))}}
@media(prefers-reduced-motion:reduce){.texture,.light,.turn-cue svg{animation:none!important}.is-active .enter{animation:none;opacity:1;transform:none}.pages{transition-duration:.1s}.photo-window img{transition:none}.gold-dust{display:none}}
@media(orientation:landscape) and (max-height:520px){.invitation{max-width:330px}.page-content{bottom:calc(var(--safe-bottom) + 65 * var(--u))}.letter-heading{margin-top:calc(16 * var(--u))}.letter-body{font-size:calc(14 * var(--u))}.letter-body>p+p{margin-top:calc(10 * var(--u))}.signature{display:none}}
html.no-js,html.no-js body{height:auto;overflow:auto}.no-js .invitation{height:auto;overflow:visible;touch-action:auto}.no-js .pages{position:relative}.no-js .page{min-height:780px}.no-js .enter{opacity:1;transform:none}.no-js .page-footer,.no-js .motion-toggle{display:none}
