/* 私人放映：暖黑、银灰、照片色影；粒子保持原有配置。 */
:root{--ink:#e9e5dd;--paper:#171816;--muted:#b8b5aa}
body{background:#171816;color:var(--ink)}
body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.masthead{border-color:#e9e5dd24;background:#141512;color:#ded9cf}.wordmark{font-size:20px;letter-spacing:.12em}.edition{font-size:10px;letter-spacing:.25em}.header-link{font-size:12px}
.hero{position:relative;isolation:isolate;max-width:none;min-height:calc(100svh - 78px);padding:55px max(6%,calc((100vw - 1260px)/2)) 70px;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:10%;overflow:hidden}
.hero:before{content:'';position:absolute;inset:-60px;z-index:-2;background:url('assets/DSC_5696-small.jpg') center 35% / cover;filter:blur(60px);opacity:.18}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#12141020,#121410bf)}
.hero-portrait{max-width:480px;width:100%;justify-self:center}.cover-photo{box-shadow:0 30px 90px #0006;border:1px solid #ffffff20}.cover-index{font-size:10px;color:#c1bbae;letter-spacing:.22em;margin-top:19px}
.title-block{padding:10px 0}.title-block>.overline{color:#cfbd95;font-size:11px;letter-spacing:.32em}h1{font-size:clamp(62px,7vw,108px);line-height:1.3}.english-title{font-size:10px;letter-spacing:.3em;color:#b4b0a5;margin:25px 0 34px}.cast{font-size:21px;letter-spacing:.18em}.cast i{color:#cfbd95}.hero-invitation{border-color:#e9e5dd28;margin-top:30px}.hero-invitation p{color:#cbc7be;font-size:16px}.hero-date{color:#b9b4a6;font-size:11px;letter-spacing:.06em}
.enter-film{display:flex;align-items:center;justify-content:space-between;gap:25px;border:1px solid #d3c3a282;background:#ded2b6;color:#24271e;padding:14px 24px;margin:26px 0 0;font-size:13px;letter-spacing:.1em;min-height:50px}.enter-film:hover{background:#eee2c8}.title-block .music-entry{background:#292c24;color:#e7d8b9;border-color:#d4c29980;font-size:12px;margin-top:18px}
.section-pad{padding:100px max(8%,calc((100vw - 1180px)/2))}.chapter{border-color:#e9e5dd35;font-size:10px;letter-spacing:.18em;color:#b5b1a5}
.prologue{background:#dcdcd5;color:#252a24;--muted:#535a50}.prologue .chapter{color:#51594d;border-color:#303a3240}.prologue .photo-caption{color:#51594d}.prologue .editorial-mark{color:#84917c}.portrait-story{gap:14%;margin-top:65px}.story-image{max-width:450px}.story-text p{color:#464e42}.photo{box-shadow:0 16px 60px #0002}.photo img{transition:transform 1.8s ease}.photo:hover img{transform:scale(1.025)}
.reel-divider{display:flex;min-height:270px;padding:80px 24px;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:#131511}.reel-divider small{font:10px Georgia,serif;letter-spacing:.25em;color:#9ba28f}.reel-divider p{font:22px/2 var(--serif);letter-spacing:.15em;color:#deddd1;margin:20px 0 0}
.green-chapter{position:relative;isolation:isolate;overflow:hidden;background:#13231b;color:#e0e6d9}.green-chapter:before{content:'';position:absolute;inset:-60px;z-index:-1;background:linear-gradient(#15271cee,#13241bdd),url('assets/DSC_5401-small.jpg') center / cover;filter:blur(20px)}.green-chapter .overline,.green-chapter figcaption{color:#b4c3ac}.green-title{padding:70px 0 60px}.green-title h2{font-size:clamp(34px,4vw,52px)}.green-ending{font-size:21px;color:#c5cfbb}
.joy{background:radial-gradient(ellipse at 80% 20%,#39352b66,transparent 60%),#191a17}.joy-heading h2 span{color:#c8baa0}.joy-heading p{color:#b3b1a5}.joy-photos{gap:7%}.joy-photos figure:nth-child(2){margin-top:90px}.joy figcaption{color:#b5b1a6;font-size:11px}
.invitation{background:#d8d7ce;color:#242a23;--muted:#535b4f}.invitation .chapter{color:#535b4f;border-color:#303a3240}.invitation-heading .overline{color:#636548}.ticket{background:#eeeade;box-shadow:0 24px 70px #242a2321;border:1px solid #62644a36}.ticket-names{letter-spacing:.08em}.ticket-kicker{font-size:10px;letter-spacing:.16em}.ticket-stub:before,.ticket-stub:after{background:#d8d7ce}.navigate{background:#283024;color:#f1eee0;border-color:#283024}.navigate:hover{background:#434d38}
.rsvp{display:grid;grid-template-columns:1fr 1fr;gap:12%;background:#1b1e18;padding-top:95px;padding-bottom:100px}.rsvp .overline{color:#c7b891}.rsvp h2{font-size:40px;margin-bottom:22px}.rsvp-intro{color:#b4b8aa;font-size:14px;max-width:340px}.rsvp-card{border:1px solid #b9c2a338;padding:30px;background:#ffffff03}.rsvp-fields{margin:0 0 25px}.rsvp-fields div{display:flex;justify-content:space-between;padding:19px 0;border-bottom:1px solid #b9c2a32b;gap:20px}.rsvp-fields dt{font-size:16px}.rsvp-fields dd{margin:0;color:#b0b8a2;font-size:12px}.rsvp-link{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#ded3b7;color:#242b1f;font-size:14px;min-height:52px}.rsvp-link[aria-disabled=true]{background:#34392d;color:#b8bda9;cursor:default}.rsvp-note{font-size:12px;line-height:1.9;color:#b2b8a7;margin:16px 0 0}
.closing{background:#11130f;color:#e9e5da;padding-top:90px}.closing .overline{font-size:10px;letter-spacing:.25em;color:#a5ad94}.closing-title{font-size:60px}.closing-title span{color:#c4b694}.credits{margin:40px auto 50px;max-width:420px}.credits div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #ffffff14;gap:30px}.credits dt{color:#a4ac98;font-size:12px}.credits dd{margin:0;font-size:15px;font-family:var(--serif)}.closing-bottom{color:#a1aa92;font-size:10px}.draft-note{font-size:10px!important}
.film-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:#d7c59a;z-index:12;pointer-events:none}.js-motion .reveal{transform:translateY(12px);transition:opacity 1.3s ease,transform 1.3s ease}
@media(max-width:760px){.masthead{height:58px;padding:0 20px}.edition{font-size:8px;letter-spacing:.12em}.header-link{font-size:11px}.wordmark{font-size:17px}.hero{display:block;padding:26px 22px 45px;min-height:auto}.hero-portrait{max-width:430px}.cover-index{position:static;font-size:9px;color:#b7b2a5;margin-top:12px;letter-spacing:.15em}.title-block{padding:37px 4px 0}.title-block>.overline{font-size:10px;margin-bottom:19px}h1{font-size:clamp(42px,12vw,68px);white-space:nowrap}h1 br{display:none}h1>span{margin-left:0}.english-title{font-size:9px;letter-spacing:.18em;margin:14px 0 25px}.cast{font-size:21px}.hero-invitation{margin-top:25px}.hero-invitation p{font-size:15px}.hero-date{font-size:10px}.enter-film{width:100%;margin-top:22px;padding:14px 18px}.section-pad{padding:62px 24px}.chapter{font-size:9px;letter-spacing:.05em}.chapter>span:last-child{font-size:9px}.portrait-story{margin-top:35px;gap:38px}.story-text{padding:0 3px}h2{font-size:33px}.photo-caption,figcaption{font-size:11px}.reel-divider{min-height:225px;padding:60px 24px}.reel-divider p{font-size:19px;letter-spacing:.07em}.reel-divider small{font-size:9px}.green-title{padding:43px 0 36px}.green-title h2{font-size:34px}.green-ending{font-size:19px}.joy-heading{padding:37px 0 28px}.joy-heading h2{font-size:34px}.joy-heading p{font-size:15px}.joy-photos{gap:36px}.joy-photos figure:nth-child(2){margin-top:0}.invitation{padding:62px 20px}.ticket-kicker{font-size:9px;letter-spacing:.07em}.rsvp{display:block;padding:65px 24px}.rsvp h2{font-size:33px}.rsvp-card{margin-top:30px;padding:21px}.rsvp-intro{font-size:14px}.rsvp-fields dt{font-size:15px}.rsvp-fields dd{font-size:11px}.closing{padding-top:70px}.closing-title{font-size:48px}.credits{margin:28px auto 40px}.closing-bottom{font-size:9px}}
/* 实际生成的玻璃折光背景：保留照片原色，光影只作用于页面底层。 */
.hero:before{inset:0;background:url('assets/cinema-silver.webp') center 48% / cover;filter:none;opacity:1}
.hero:after{background:linear-gradient(90deg,#12151212 10%,#11141070 55%,#111410c4)}
.title-block{text-shadow:0 2px 16px #0009}
.enter-film,.music-entry{text-shadow:none}
.prologue{background:linear-gradient(#e3e4d8d9,#e3e4d8c2),url('assets/cinema-silver.webp') center / cover}
.reel-divider{background:linear-gradient(#111611b3,#111611c2),url('assets/cinema-jade.webp') center 60% / cover}
.green-chapter:before{inset:0;background:linear-gradient(#10211738,#10211766),url('assets/cinema-jade.webp') center / cover;filter:none}
.green-title,.green-ending{text-shadow:0 2px 15px #08130d}
.joy{background:linear-gradient(#14171391,#141713b8),url('assets/cinema-silver.webp') center / cover}
.invitation{background:linear-gradient(#e0dfd1bf,#e0dfd1de),url('assets/cinema-silver.webp') center 70% / cover}
.ticket{background:#efebdff5}.ticket-stub:before,.ticket-stub:after{display:none}
.rsvp{background:linear-gradient(#121b12a6,#121b12bd),url('assets/cinema-jade.webp') center 55% / cover}
.rsvp-card{background:#172017d9}
.closing{background:linear-gradient(#0d160dc2,#0d160dd9),url('assets/cinema-jade.webp') center bottom / cover}
@media(max-width:760px){.hero:before{background-position:35% top}.hero:after{background:linear-gradient(#1114100d 25%,#1114108c 62%,#111410bf)}.prologue,.invitation{background-position:25% center}.green-chapter:before{background-position:22% center}}
.joy,.closing{position:relative;isolation:isolate;overflow:hidden}
.cinema-caustic{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;mix-blend-mode:screen;opacity:.32}
.cinema-caustic:before,.cinema-caustic:after{content:'';position:absolute;width:150%;height:70%;left:-35%;top:8%;border-radius:48%;border:2px solid #f6edd095;box-shadow:0 0 22px 3px #f3dfab55,inset 0 0 28px #d0e7dc40;transform:rotate(-32deg);animation:refracted-light 22s ease-in-out infinite alternate;animation-delay:var(--light-delay,0s)}
.cinema-caustic:after{top:38%;left:-10%;height:48%;border-width:1px;opacity:.7;animation-duration:29s;animation-direction:alternate-reverse}
@keyframes refracted-light{from{transform:translate(-7%,-9%) rotate(-32deg) scale(.93)}to{transform:translate(9%,13%) rotate(-18deg) scale(1.12)}}
.ticket{position:relative;isolation:isolate;overflow:hidden}
.ticket-sheen{position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(ellipse 280px 220px at var(--light-x,50%) var(--light-y,30%),#fff9dc66,transparent 75%);opacity:0;transition:opacity .5s ease;mix-blend-mode:soft-light}
@media(hover:hover) and (pointer:fine){.ticket:hover .ticket-sheen{opacity:1}}
.light-paused .cinema-caustic:before,.light-paused .cinema-caustic:after{animation-play-state:paused}
@media(max-width:760px){.cinema-caustic{opacity:.25}.cinema-caustic:before,.cinema-caustic:after{width:210%;left:-75%;height:45%}}
@media(prefers-reduced-motion:reduce){.photo img{transition:none}.photo:hover img{transform:none}.js-motion .reveal{transition:none}.cinema-caustic:before,.cinema-caustic:after{animation:none}.ticket-sheen{display:none}}
