/* Riverside identity, composed as one balanced group. */
html{scrollbar-gutter:stable}.intro-preparing{overflow:hidden}.intro-preparing .header,.intro-preparing .hero-content,.intro-preparing .hero-bottom{opacity:0}.intro-has-flight .header .logo-crop img,.intro-has-flight .header .logo-crop:before{opacity:0!important}
.cham-intro{--ink:#294b60;--intro-gutter:max(clamp(24px,5vw,80px),calc((100vw - 1560px)/2));position:fixed;inset:0;z-index:100000;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:64px minmax(0,1fr) 64px;row-gap:16px;padding:24px var(--intro-gutter);background:#f7efe5;color:var(--ink);contain:layout paint}
.cham-intro-paper{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 75% 62%,#e6b18d42,transparent 62%),linear-gradient(135deg,#f8f1e7,#ede0d0);opacity:0;animation:paper-warmth 3.8s ease forwards}
.cham-intro-corner{position:absolute;left:var(--intro-gutter);top:30px;font:600 9px/1.6 'Be Vietnam Pro',sans-serif;letter-spacing:.19em;animation:label-arrive .7s .1s ease both}.cham-intro-corner span{display:block;font-size:7px;letter-spacing:.13em;margin-top:6px;color:#829096}.cham-intro-location{position:absolute;right:var(--intro-gutter);top:30px;font:8px/1.8 'Be Vietnam Pro',sans-serif;letter-spacing:.18em;text-align:right;animation:label-arrive .7s .1s ease both}
.cham-intro-composition{grid-row:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(32px,4.5vw,76px);align-items:center;align-self:center;min-width:0;width:100%;max-width:1560px;margin:auto}
.cham-intro-signature{min-width:0;max-width:460px;text-align:left;animation:signature-arrive 1.2s .7s cubic-bezier(.2,.65,.3,1) both}.cham-intro-signature img{display:block;width:min(100%,420px);height:auto;aspect-ratio:3;object-fit:contain;filter:url(#logo-alpha) brightness(0) saturate(100%) invert(24%) sepia(16%) saturate(1210%) hue-rotate(159deg)}.cham-intro-signature p{font:400 clamp(24px,2.7vw,38px)/1.45 'Lora',serif;letter-spacing:-.035em;margin:24px 0 0 4%;color:#526b76}
.cham-intro-landscape{display:block;min-width:0;width:100%;height:auto;aspect-ratio:1080/380;max-height:460px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);animation:landscape-settle 3.5s cubic-bezier(.2,.7,.3,1) both}.cham-intro-watermark{display:none}
.cham-intro-landscape path[pathLength]{stroke-dasharray:1;stroke-dashoffset:1;animation:ink-draw 2.1s cubic-bezier(.22,.6,.35,1) both}.cham-distant path{animation-delay:.08s!important}.cham-town path{animation-delay:.26s!important}.cham-bridge path{animation-delay:.48s!important}.cham-bridge path[fill]{fill-opacity:0;animation:ink-draw 2.1s .48s cubic-bezier(.22,.6,.35,1) both,ink-fill 1.3s 1.05s ease forwards}.cham-water-fill{opacity:0;animation:ink-fill 2.4s .7s ease forwards}.cham-water-lines{transform-origin:center;opacity:0;animation:water-arrive 1s 1.3s ease forwards,water-drift 2.4s 2.3s ease-in-out infinite alternate}.cham-lamps{opacity:0;animation:ink-fill 1.2s 1.9s ease forwards}
.cham-intro-caption{grid-row:3;align-self:center;justify-self:start;font:9px/1.8 'Be Vietnam Pro',sans-serif;letter-spacing:.045em;color:#7b898b;max-width:calc(100% - 130px);animation:label-arrive 1s 1.8s ease both}.cham-intro-skip{position:absolute;right:var(--intro-gutter);bottom:34px;display:flex;gap:18px;align-items:center;background:#faf6efb3;color:var(--ink);border:1px solid #294b6026;border-radius:30px;padding:11px 16px;font:10px 'Be Vietnam Pro',sans-serif;cursor:pointer;z-index:4;transition:background .2s}.cham-intro-skip .ui-icon{width:14px;height:14px}.cham-intro-skip:hover{background:#ead7c2}.cham-intro-skip:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.cham-intro:not(.is-playing) *{animation-play-state:paused!important}
.cham-intro.leaving{opacity:0;transform:translate3d(0,-8px,0);transition:opacity 1.25s cubic-bezier(.25,.6,.2,1),transform 1.25s cubic-bezier(.25,.6,.2,1);pointer-events:none;will-change:transform,opacity}.cham-intro.leaving .cham-intro-signature p,.cham-intro.leaving .cham-intro-caption,.cham-intro.leaving .cham-intro-corner,.cham-intro.leaving .cham-intro-location,.cham-intro.leaving .cham-intro-skip{opacity:0;transition:opacity .4s}.intro-logo-flight{object-fit:contain;will-change:transform;max-width:none}
.intro-revealing .header{animation:handoff-header 1.2s ease both}.intro-revealing .hero-content>.eyebrow{animation:handoff-content 1s .2s cubic-bezier(.22,.7,.2,1) both}.intro-revealing .hero-content>h1{animation:handoff-content 1.1s .28s cubic-bezier(.22,.7,.2,1) both}.intro-revealing .hero-content>p{animation:handoff-content 1s .42s cubic-bezier(.22,.7,.2,1) both}.intro-revealing .hero-actions{animation:handoff-content .95s .5s cubic-bezier(.22,.7,.2,1) both}.intro-revealing .hero-bottom{animation:handoff-header 1s .4s ease both}
@keyframes ink-draw{to{stroke-dashoffset:0}}@keyframes ink-fill{to{fill-opacity:1;opacity:1}}@keyframes paper-warmth{to{opacity:1}}@keyframes label-arrive{from{opacity:0}to{opacity:1}}@keyframes signature-arrive{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}@keyframes landscape-settle{from{transform:translate3d(0,10px,0)}to{transform:none}}@keyframes water-arrive{to{opacity:.7}}@keyframes water-drift{from{transform:translate3d(-3px,0,0)}to{transform:translate3d(3px,0,0)}}@keyframes handoff-header{from{opacity:0}to{opacity:1}}@keyframes handoff-content{from{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:none}}
@media(max-width:800px){.cham-intro{--intro-gutter:24px;grid-template-rows:48px minmax(0,1fr) 48px;row-gap:12px;padding-top:20px;padding-bottom:20px}.cham-intro-composition{grid-template-columns:1fr;gap:28px;max-width:600px}.cham-intro-signature{justify-self:center;text-align:center;max-width:100%}.cham-intro-signature img{width:min(290px,82vw);margin:auto}.cham-intro-signature p{font-size:clamp(21px,5.6vw,30px);margin:16px auto 0}.cham-intro-landscape{width:100%;max-height:250px}.cham-intro-corner{top:23px;font-size:8px}.cham-intro-corner span{font-size:6px}.cham-intro-location{top:23px;font-size:7px}.cham-intro-caption{font-size:7px;max-width:calc(100% - 112px)}.cham-intro-skip{bottom:26px;font-size:9px;padding:10px 13px}}
@media(max-width:360px){.cham-intro{--intro-gutter:20px}.cham-intro-composition{gap:22px}.cham-intro-signature img{width:240px}.cham-intro-signature p{font-size:21px;margin-top:12px}.cham-intro-caption{max-width:165px;line-height:1.7}}
@media(orientation:landscape) and (max-height:550px){.cham-intro{--intro-gutter:clamp(24px,4vw,56px);grid-template-rows:36px minmax(0,1fr) 36px;padding-top:14px;padding-bottom:14px;row-gap:8px}.cham-intro-composition{max-width:1300px;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px}.cham-intro-signature{text-align:left;justify-self:stretch}.cham-intro-signature img{width:min(100%,270px);margin:0}.cham-intro-signature p{font-size:clamp(17px,2.5vw,26px);line-height:1.4;margin:12px 0 0 4%}.cham-intro-landscape{max-height:230px}.cham-intro-corner,.cham-intro-location{top:16px}.cham-intro-corner span{display:none}.cham-intro-caption{font-size:7px;max-width:calc(100% - 120px)}.cham-intro-skip{bottom:16px}}
@media(prefers-reduced-motion:reduce){.cham-intro,.intro-logo-flight{display:none}.intro-preparing .header,.intro-preparing .hero-content,.intro-preparing .hero-bottom{opacity:1}.intro-revealing *{animation:none!important}}
/* A single illustrated title scene, rather than two isolated columns. */
.cham-intro-composition{grid-template-columns:minmax(0,1fr);gap:20px;max-width:1400px;justify-items:center}.cham-intro-signature{width:100%;max-width:none;text-align:center;animation:signature-arrive 1.05s .55s cubic-bezier(.2,.7,.2,1) both}.cham-intro-signature img{width:clamp(270px,30vw,460px);max-width:100%;margin:auto}.cham-intro-signature p{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;font-size:clamp(21px,2vw,28px);line-height:1.5;letter-spacing:-.03em;margin:12px auto 0;color:#5e747c}.cham-intro-signature p span{display:block;animation:intro-phrase 1s 1.15s cubic-bezier(.2,.7,.2,1) both}.cham-intro-signature p span+span{animation-delay:1.32s}
.cham-intro-stage{width:100%;height:clamp(230px,32vw,500px);max-height:min(44svh,calc(100svh - 430px));position:relative;overflow:hidden;isolation:isolate}.cham-intro-landscape{width:100%;height:100%;aspect-ratio:auto;max-height:none;max-width:none;margin:auto;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);animation:landscape-settle 3.8s cubic-bezier(.2,.7,.3,1) both}.cham-intro-paper{background:radial-gradient(ellipse at 50% 70%,#e3ac8155,transparent 58%),linear-gradient(160deg,#faf5ed,#eee0ce)}
.cham-intro-landscape path[pathLength]{animation-duration:1.8s}.cham-distant path{animation-delay:.05s!important}.cham-town path{animation-delay:.3s!important}.cham-bridge path{animation-delay:.62s!important}.cham-bridge path[fill]{animation:ink-draw 1.8s .62s cubic-bezier(.22,.6,.35,1) both,ink-fill 1.5s 1.2s ease forwards}.cham-lamp-glow{opacity:0;animation:lamp-light 1.8s 1.75s ease both}.cham-lamp-glow circle{transform-box:fill-box;transform-origin:center;animation:lamp-breathe 2.5s 2.1s ease-in-out infinite alternate}.cham-lamp-glow circle:nth-child(2){animation-delay:2.25s}.cham-lamp-glow circle:nth-child(3){animation-delay:2.4s}.cham-lamp-glow circle:nth-child(4){animation-delay:2.55s}.cham-reflections{opacity:0;transform-origin:center;animation:reflection-arrive 1.1s 2s both,reflection-drift 3s 2.2s ease-in-out infinite alternate}.cham-lamps{animation-delay:1.65s}.cham-water-lines{animation:water-arrive 1.2s 1.55s ease forwards,water-drift 3.4s 2.1s ease-in-out infinite alternate}
@keyframes intro-phrase{from{opacity:0;transform:translate3d(0,9px,0)}to{opacity:1;transform:none}}@keyframes lamp-light{to{opacity:.85}}@keyframes lamp-breathe{from{transform:scale(.85)}to{transform:scale(1.15)}}@keyframes reflection-arrive{to{opacity:.55}}@keyframes reflection-drift{from{transform:translate3d(-3px,0,0) scaleX(.98)}to{transform:translate3d(3px,0,0) scaleX(1.02)}}
@media(max-width:800px){.cham-intro-composition{gap:20px;max-width:650px}.cham-intro-signature img{width:min(290px,78vw)}.cham-intro-signature p{flex-direction:column;gap:2px;font-size:clamp(21px,5vw,27px);margin-top:12px}.cham-intro-stage{height:220px;max-height:30svh}.cham-intro-landscape{width:165%;height:100%;max-height:none;margin-left:-32.5%}}
@media(max-width:360px){.cham-intro-composition{gap:16px}.cham-intro-signature img{width:240px}.cham-intro-signature p{font-size:21px}.cham-intro-stage{height:180px;max-height:29svh}}
@media(orientation:landscape) and (max-height:550px){.cham-intro-composition{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;max-width:1300px}.cham-intro-signature{text-align:left}.cham-intro-signature img{width:min(100%,270px);margin:0}.cham-intro-signature p{justify-content:flex-start;flex-direction:column;gap:0;font-size:clamp(17px,2.5vw,26px);margin:12px 0 0 4%}.cham-intro-stage{height:230px;max-height:55svh}.cham-intro-landscape{width:100%;height:100%;margin:0}}
@media(prefers-reduced-motion:reduce){.cham-intro *{animation:none!important}}
