:root{color-scheme:dark;--white:#fff9ee;--soft:#e3e6e6bb;--px:0px;--py:0px;--tx:0px;--ty:0px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#101b23}body{color:var(--white);font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible{outline:2px solid #fff9ee;outline-offset:7px}button,a{-webkit-tap-highlight-color:transparent}::selection{background:#e3b48a;color:#182834}.world{position:fixed;inset:-24px;overflow:hidden;transform:translate3d(var(--px),var(--py),0);transition:transform 1.8s cubic-bezier(.2,.7,.2,1);pointer-events:none}.scene{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transition:opacity 1.8s ease;animation:drift 35s ease-in-out infinite alternate;will-change:transform}.scene-coast{background-image:url('/assets/coast.jpg');background-position:56% 50%}.scene-city{background-image:url('/assets/city.jpg')}.scene.active{opacity:1}.shade{position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,#07111b80 0%,#07111b20 25%,#07111b3d 50%,#07111b38 68%,#07111bd4 100%)}.grain{position:fixed;inset:0;pointer-events:none;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.8' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.frame{position:fixed;inset:20px;border:1px solid #ffffff20;pointer-events:none}.page{position:relative;min-height:100svh;padding:0 5%;display:grid;grid-template-rows:110px minmax(430px,1fr) 95px 64px;overflow:hidden}.header{display:flex;align-items:center;justify-content:space-between;gap:20px;animation:appear 1.2s .1s both}.identity{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:3px;font-weight:600}.identity img{border-radius:50%;filter:saturate(.7);border:1px solid #ffffff55}.identity-caption{font-size:8px;letter-spacing:2px;font-weight:400;color:var(--soft);display:block;margin-top:6px}.local-time{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:1.6px;color:var(--soft);position:absolute;left:50%;transform:translateX(-50%)}.local-time time{font-variant-numeric:tabular-nums;margin-left:5px}.live-dot{width:4px;height:4px;border-radius:50%;background:#e5d4a8;box-shadow:0 0 12px #e5d4a8aa}.header-link{font-size:9px;letter-spacing:2px;display:flex;gap:20px;align-items:center}.header-link span{font-size:16px}.header-link:hover{color:#e8c6a5}.main{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 0 65px;transform:translate3d(var(--tx),var(--ty),0);transition:transform 2s cubic-bezier(.2,.7,.2,1)}.intro{display:flex;align-items:center;gap:16px;font-size:8px;letter-spacing:4px;animation:appear 1.5s .2s both;text-shadow:0 1px 12px #0008}.intro-line{width:26px;height:1px;background:#fff9ee77}h1{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:400;line-height:1.08;font-size:clamp(130px,19vw,300px);letter-spacing:-.075em;margin:5px 0 5px;padding-right:.12em;position:relative;text-shadow:0 4px 60px #05121c24}.letter{display:inline-block;animation:letter-in 1.8s cubic-bezier(.15,.65,.15,1) both}.letter:nth-child(2){animation-delay:.08s}.letter:nth-child(3){animation-delay:.16s}.letter:nth-child(4){animation-delay:.24s}.letter:nth-child(5){animation-delay:.32s}.letter:nth-child(6){animation-delay:.4s}.name-dot{color:#e6ba96;display:inline-block;animation:letter-in 1.8s .48s both}.motto{font-size:13px;letter-spacing:5px;font-weight:300;margin:14px 0 0;text-shadow:0 2px 15px #000;animation:appear 1.6s .65s both}.motto-divider{margin-right:5px}.main-links{display:flex;align-items:center;gap:29px;margin-top:46px;animation:appear 1.6s .9s both}.main-links a{display:flex;align-items:center;gap:25px;font-size:11px;letter-spacing:1.5px;padding:9px 0;position:relative}.main-links a::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:#fff9ee;transform:scaleX(0);transform-origin:left;transition:transform .4s}.main-links a:hover::after{transform:scaleX(1)}.link-arrow{font-size:17px;transition:transform .3s}.main-links a:hover .link-arrow{transform:translate(3px,-3px)}.nav-divider{height:12px;width:1px;background:#ffffff55}.scene-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;animation:appear 1.6s 1.1s both}.scene-description{display:flex;gap:20px;align-items:center}.scene-index{font-family:Georgia,serif;font-size:38px;font-style:italic;font-weight:400;color:#fff9eeaa;line-height:1;border-right:1px solid #ffffff35;padding-right:20px}.scene-name{display:block;font-size:11px;font-weight:300;letter-spacing:2px}.scene-location{display:block;font-size:7px;letter-spacing:2.4px;margin-top:9px;color:var(--soft)}.scene-controls{display:flex;align-items:center;gap:30px}.scene-choices{display:flex;gap:18px}.scene-choice{padding:12px 0;border:0;background:none;display:flex;align-items:center;gap:10px;cursor:pointer;font-size:9px;letter-spacing:1px;color:#ffffff66;transition:color .3s}.scene-choice:hover,.scene-choice.selected{color:var(--white)}.choice-line{display:block;width:24px;height:1px;background:currentColor;transition:width .5s}.selected .choice-line{width:58px}.motion-toggle{height:28px;width:28px;display:grid;place-items:center;background:transparent;border:1px solid #ffffff44;border-radius:50%;cursor:pointer}.motion-toggle:hover{background:#ffffff15}.play-icon{display:none}.paused .pause-icon{display:none}.paused .play-icon{display:block}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff26;color:#e2e6e7a1;font-size:8px;letter-spacing:.7px;animation:appear 1.6s 1.2s both}.signature{white-space:nowrap}.footer-separator{padding:0 10px;color:#ffffff44}.registrations{display:flex;align-items:center;gap:20px}.registrations a{display:flex;align-items:center;gap:5px;transition:color .2s}.registrations a:hover{color:#fff9ee}.paused .scene{animation-play-state:paused}.paused .world,.paused .main{transform:none!important}.paused .letter,.paused .name-dot,.paused .intro,.paused .header,.paused .motto,.paused .main-links,.paused .scene-bar,.paused .footer{animation:none}
@keyframes drift{from{transform:scale(1.015)}to{transform:scale(1.10)}}@keyframes appear{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes letter-in{from{opacity:0;transform:translateY(45px) rotate(6deg);filter:blur(8px)}to{opacity:1;transform:translateY(0) rotate(0);filter:blur(0)}}
@media(min-width:1600px){.page{grid-template-rows:130px minmax(500px,1fr) 110px 75px}.main{padding-bottom:100px}}
@media(max-width:700px){.frame{inset:12px}.page{padding:0 7%;grid-template-rows:90px minmax(370px,1fr) 105px 82px}.identity{font-size:10px;gap:10px}.identity-caption{font-size:7px;letter-spacing:1px}.identity img{width:28px;height:28px}.local-time{left:auto;right:7%;transform:none;top:38px;font-size:8px;gap:6px}.local-time>span:not(.live-dot){display:none}.local-time time{margin:0}.header-link{display:none}.main{padding:48px 0 62px}.intro{font-size:6px;letter-spacing:2.5px;gap:11px}.intro-line{width:18px}h1{font-size:31vw;margin:19px 0 15px;letter-spacing:-.08em}.motto{font-size:10px;letter-spacing:2px;line-height:2.4;margin-top:0}.main-links{gap:20px;margin-top:30px}.main-links a{font-size:10px;letter-spacing:1px;gap:12px}.scene-description{gap:12px}.scene-index{font-size:28px;padding-right:12px}.scene-name{font-size:9px;letter-spacing:1px}.scene-location{font-size:6px;letter-spacing:1.2px;margin-top:7px}.scene-controls{gap:16px}.scene-choices{gap:9px}.scene-choice{gap:6px;font-size:8px}.choice-line{width:12px}.selected .choice-line{width:25px}.motion-toggle{width:25px;height:25px}.footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:9px;font-size:7px;letter-spacing:.2px}.registrations{gap:6px 12px;flex-wrap:wrap}.registrations img{width:10px;height:10px}.scene-coast{background-position:43% 50%}}
@media(max-width:380px){.scene-name{font-size:8px}.scene-location{font-size:5px}.scene-controls{gap:10px}.scene-choice{gap:4px}.selected .choice-line{width:16px}.motto{letter-spacing:1px}.main-links{gap:15px}.intro{letter-spacing:1.8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.world,.main{transform:none!important}}

/* Random scene and quotation */
.scene-description{min-width:0;flex:1}.quote-copy{min-width:0;max-width:700px}.scene-name{line-height:1.8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.scene-location{line-height:1.5;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-controls{flex-shrink:0}.shuffle-button{border:0;background:none;padding:12px 0;font-size:10px;letter-spacing:1px;cursor:pointer;color:#fff9eec0;display:flex;align-items:center;gap:14px}.shuffle-button span{font-size:22px;transition:transform .5s}.shuffle-button:hover span{transform:rotate(120deg)}.shuffle-button:hover{color:#fff9ee}@media(max-width:700px){.page{grid-template-rows:90px minmax(370px,1fr) minmax(105px,auto) 82px}.scene-bar{gap:14px;padding:12px 0}.scene-description{gap:8px}.scene-index{padding-right:8px}.scene-name{font-size:10px;letter-spacing:.5px}.scene-location{font-size:8px;letter-spacing:.3px}.scene-controls{gap:12px}.shuffle-button{font-size:9px;gap:7px}.shuffle-button span{font-size:19px}.quote-copy{max-width:100%}}

/* Expanded photo collection: maintain contrast over bright landscapes. */
.shade{background:radial-gradient(ellipse at center,#07111b40,transparent 70%),linear-gradient(180deg,#07111b80 0%,#07111b35 25%,#07111b40 50%,#07111b38 68%,#07111bd4 100%)}

/* Opening: a brief typographic reveal followed by a split curtain. */
.opening-screen{position:fixed;inset:0;z-index:100;overflow:hidden;isolation:isolate;animation:opening-finish .01s 2.6s forwards}
.opening-curtain{position:absolute;top:0;bottom:0;width:50.2%;background:#0c141a;will-change:transform}.curtain-left{left:0;animation:curtain-left 1.1s 1.3s cubic-bezier(.76,0,.24,1) both}.curtain-right{right:0;animation:curtain-right 1.1s 1.3s cubic-bezier(.76,0,.24,1) both}
.opening-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#b48f5a12,transparent 56%);animation:opening-fade .45s 1.2s both;pointer-events:none}
.opening-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:30px;animation:opening-out .6s 1.2s both;pointer-events:none}
.opening-eyebrow{font-size:8px;letter-spacing:4px;color:#e7cdb39c;animation:appear .7s .05s both}
.opening-name{font-family:Georgia,'Times New Roman',serif;font-size:clamp(75px,10vw,160px);font-style:italic;line-height:1.3;letter-spacing:-.07em;padding-right:.1em;margin:9px 0 0;white-space:nowrap}
.opening-name span,.opening-name i{display:inline-block;animation:opening-letter .85s cubic-bezier(.16,1,.3,1) both}.opening-name span:nth-child(2){animation-delay:.07s}.opening-name span:nth-child(3){animation-delay:.14s}.opening-name span:nth-child(4){animation-delay:.21s}.opening-name span:nth-child(5){animation-delay:.28s}.opening-name span:nth-child(6){animation-delay:.35s}.opening-name i{color:#e6ba96;font-style:inherit;animation-delay:.42s}
.opening-rule{width:180px;height:1px;background:linear-gradient(90deg,transparent,#e6ba96,transparent);margin:10px 0 24px;transform:scaleX(0);animation:opening-rule 1.1s .1s both}
.opening-caption{font-size:10px;letter-spacing:3px;font-weight:300;color:#fff9ee99;animation:appear .7s .45s both}
.opening-skip{position:absolute;right:5%;bottom:43px;background:transparent;border:0;color:#fff9ee88;cursor:pointer;padding:12px 0;font-size:10px;letter-spacing:2px;animation:opening-fade .2s 2.1s both}.opening-skip span{margin-left:15px}.opening-skip:hover{color:#fff9ee}
.opening .page .header,.opening .page .intro,.opening .page .letter,.opening .page .name-dot,.opening .page .motto,.opening .page .main-links,.opening .page .scene-bar,.opening .page .footer{animation-play-state:paused}
@keyframes opening-letter{from{opacity:0;transform:translateY(30px);filter:blur(10px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes opening-rule{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes opening-out{to{opacity:0;transform:scale(1.12);filter:blur(5px)}}
@keyframes opening-fade{to{opacity:0}}
@keyframes curtain-left{to{transform:translateX(-101%)}}@keyframes curtain-right{to{transform:translateX(101%)}}
@keyframes opening-finish{to{visibility:hidden;pointer-events:none}}
@media(max-width:700px){.opening-name{font-size:24vw}.opening-eyebrow{font-size:6px;letter-spacing:3px}.opening-caption{font-size:9px;letter-spacing:1.5px}.opening-skip{right:7%;bottom:30px}.opening-rule{width:130px}}
@media(prefers-reduced-motion:reduce){.opening-screen{display:none}}
