/* R3.1 — fitted architectural scenes and an understated, consistent control system. */
:root{--control-height:44px;--control-radius:4px;--control-border:#d5cbbb;--control-ink:#322c23;--focus:#b8955a;--shadow:0 1px 3px #35281709;--sans:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",Arial,sans-serif}
button,a,input,select,textarea{transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.material-gold,.material-glass,.cream-button,.guest-button,.watch-button{border-radius:var(--control-radius);min-height:var(--control-height);font:400 13px/1.4 var(--sans);letter-spacing:.045em;text-shadow:none;transform:none;filter:none}
.material-gold{background:linear-gradient(180deg,#d9c08d 0%,#cfb37d 12%,#c6a66c 86%,#bfa064 100%);border:1px solid #c4a46a;color:#252016;box-shadow:inset 0 1px 0 #f8ecd1b3,0 1px 2px #0000001a}
.material-gold:hover{background:linear-gradient(180deg,#e1c997,#d1b680 80%,#c9ad73);border-color:#ddc48f;box-shadow:inset 0 1px 0 #fff1cfb3,0 1px 2px #00000020;filter:none}
.material-gold:active{background:#ba995f;border-color:#af8c54;box-shadow:inset 0 1px 3px #51381526}
.material-glass{background:#141c20a6;backdrop-filter:blur(9px);border:1px solid #bcb7ab8c;box-shadow:inset 0 1px 0 #f4ead414;color:#eee8db}
.material-glass:hover{background:#283037c7;border-color:#ddd4c0c2;box-shadow:inset 0 1px 0 #f4ead41a}
.material-glass:active{background:#141a20e0;box-shadow:inset 0 1px 3px #0004}
.cream-button,.guest-button,.watch-button{background:#fcfaf6;border:1px solid #d5cbbb;color:#64502f;box-shadow:inset 0 1px 0 #fff;padding:11px 17px}
.cream-button:hover,.guest-button:hover,.watch-button:hover{background:#f2ede3;border-color:#bca478;box-shadow:inset 0 1px 0 #fff}
.cream-button:active,.guest-button:active,.watch-button:active{background:#eae3d5;box-shadow:inset 0 1px 2px #57462b12}
.watch-button.saved{background:#ece6d9;border-color:#bda982;color:#5c482a}
button:disabled{opacity:.44;filter:none;box-shadow:none}
.arrow-icon{display:block;width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.3;flex-shrink:0}
.language{border-radius:4px;background:#fffdf7b8;border:1px solid #bfa77f66;box-shadow:inset 0 1px 0 #ffffff6b;min-height:36px;padding:8px 12px;gap:9px}
.language select{font:12px var(--sans);letter-spacing:.02em;padding-right:22px;max-width:110px}
.language::after{content:'';width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);right:13px;top:13px}
.language .icon{width:16px;height:16px;stroke-width:1.4}
.welcome .language{background:#10191db8;color:#ece5d7;border-color:#aea28b80;box-shadow:inset 0 1px 0 #f1e5cb13;backdrop-filter:blur(8px)}
.welcome .language:hover{border-color:#cfb788}
.input{min-height:48px;border-radius:3px;background:#fffdf9;border:1px solid #d8d0c3;box-shadow:inset 0 1px 2px #33261505;font:14px/1.5 var(--sans);padding:12px 14px}
.input:hover{border-color:#baac93}.input:focus{border-color:#a88c58;outline:2px solid #b89a651a;outline-offset:0;box-shadow:none;background:#fffefa}.input::placeholder{color:#a6a096;font-size:12px}
.form-label{font-size:12px;letter-spacing:.03em;color:#5c5549;margin:21px 0 9px}
.form-primary{height:48px;margin-top:24px}.code-row{gap:9px}.code-row button{border-radius:3px;min-width:116px;font-size:12px}.form-help{font-size:11px;line-height:1.85;color:#8a8377}
.check-row input{appearance:none;width:15px;height:15px;min-width:15px;margin:4px 0 0;border:1px solid #b8aa94;background:#fffdfa;border-radius:2px;display:grid;place-content:center}
.check-row input:checked{background:#7d6945;border-color:#7d6945}.check-row input:checked::after{content:'';height:7px;width:4px;border-right:1.5px solid white;border-bottom:1.5px solid white;transform:rotate(45deg) translateY(-1px)}
.demo-code{background:#f5f0e6;border-color:#dbcfb9;border-radius:3px;font-size:12px;padding:12px 14px}.demo-code strong{font-family:ui-monospace,Consolas,monospace;letter-spacing:.18em;font-size:19px;font-weight:500}
/* Full-height source composition; the canvas extends peripheral reflections rather than cropping the scene. */
.welcome{height:100svh;min-height:640px;background:#10191e;overflow:hidden;align-items:initial;display:block}
.scene-stage{position:absolute;inset:0;z-index:-3;overflow:hidden;background:#10181d}
.scene-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.15s cubic-bezier(.35,0,.25,1);will-change:opacity;object-fit:contain}
.scene-canvas.visible{opacity:1}
.welcome::after{background:linear-gradient(90deg,#06101712,transparent 22%,#0d171f24 36%,#0a141b38 50%,#0d171f24 64%,transparent 78%,#06101712)}
.welcome-top{top:28px;right:34px;z-index:3}
.welcome-content{position:relative;width:min(690px,90vw);height:100%;min-height:640px;margin:auto;padding:0;transform:none!important;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:clamp(80px,11.5svh,180px)}
.welcome .brand-symbol{width:clamp(175px,22svh,252px);height:auto;filter:none}
.welcome .brand-name{font:400 clamp(40px,5.1svh,58px)/1.05 Georgia,serif;letter-spacing:.06em;margin-top:10px;color:#e5cfa5}
.welcome .brand-sub{font:12px/1.4 Georgia,serif;letter-spacing:.27em;color:#ece6da;margin-top:9px}
.welcome-rule{margin:23px auto 17px;width:38px;background:#a88c57;height:1px}
.welcome-tagline{font:10px/1.8 Georgia,serif;letter-spacing:.24em;color:#e8e2d8}
.welcome-mission{font:17px/1.8 var(--serif);letter-spacing:.035em;margin-top:29px;white-space:normal;color:#ebe6dc;text-wrap:balance;text-shadow:0 1px 3px #0003}
.welcome-english{font:9px/1.9 Georgia,serif;letter-spacing:.16em;margin-top:10px;color:#cecac1}
.welcome-actions{width:268px;gap:12px;margin-top:clamp(35px,6.5svh,92px)}
.welcome-actions button{height:48px;font:400 15px/1.3 var(--sans);letter-spacing:.15em;padding:0 21px;display:flex;align-items:center;justify-content:center;gap:37px}
.welcome-bottom{bottom:28px;left:50%;transform:translateX(-50%);gap:12px;height:28px;z-index:4}
.slide-dot{position:relative;width:45px;height:28px;background:none;border-radius:0;border:none;display:block;overflow:visible}
.slide-dot::before{content:'';position:absolute;left:0;right:0;height:2px;top:13px;background:#e6e0d22e}
.slide-dot::after{content:'';position:absolute;left:0;width:calc(var(--progress,0) * 100%);height:2px;top:13px;background:#d0af72;max-width:100%}
.slide-dot.active{background:none}.slide-dot.active::before{background:#e2c3875c}
.welcome-pause{position:static;display:flex!important;align-items:center;justify-content:center;gap:7px;width:auto;min-width:62px;height:28px;padding:0 5px;margin-left:9px;opacity:.85;color:#dfd8ca;font:10px/1 var(--sans);letter-spacing:.02em}
.welcome-pause .icon{width:12px;height:12px;stroke-width:1.5}.welcome-pause:hover{color:#fff1cb;opacity:1}
.scene-notice{position:absolute;bottom:65px;left:50%;transform:translateX(-50%);font-size:11px;color:#d2c4ad;text-align:center;max-width:80vw}
/* Authentication uses the same locked mark and the same un-cropped source. */
.auth-layout{grid-template-columns:1fr 1fr;background:#f8f6f0}
.auth-visual{min-height:100svh}.auth-visual::before{background:linear-gradient(90deg,#0911162b,#0a151c26)}
.auth-brand{padding:30px;position:relative}.auth-brand img{width:200px;filter:none}.auth-brand b{font-size:48px;margin-top:16px}.auth-brand span{font-size:11px;letter-spacing:.23em}.auth-brand p{font:13px var(--sans);letter-spacing:.12em;color:#ded7c9;margin-top:28px}
.auth-panel{padding:110px clamp(34px,5vw,104px) 45px}.auth-body{max-width:410px}.auth-body h1{font-size:32px;margin:18px 0 11px;letter-spacing:.02em}.auth-body .subtitle{font-size:12px;line-height:1.9;margin-bottom:28px}.auth-body .eyebrow{font-size:9px;color:#9d8c70;letter-spacing:.24em}
.auth-or{margin:23px 0 17px;color:#a59b8d}.auth-note{color:#969084;font-size:10px;line-height:1.9;margin-top:24px;padding-top:20px}.auth-switch{font-size:12px;line-height:1.8;margin-top:18px}
/* Homepage structure and photographic assets are preserved. Only the control treatment is changed. */
.site-header{background:linear-gradient(180deg,#fffcf7f5,#faf6eeeF);box-shadow:0 1px 0 #42361b06;border-bottom:1px solid #d9cfbb80}
.site-nav a{font:400 14px/1.3 var(--sans);letter-spacing:.025em;color:#3a3226}.site-nav a.active{color:#836031}.site-nav a:hover{color:#a57b3e}.site-nav a.active::after{height:1px;bottom:19px;background:#987239}
.account-button{border-color:#ad926b70;background:#282824;color:#f4efe2;box-shadow:inset 0 1px 0 #ffffff26}.account-button:hover{background:#454236;border-color:#ab956d}
.quotes{border-radius:5px;background:#fffefb;box-shadow:0 2px 8px #4731130b;border-color:#e6dfd3}
.quote-tile{border-radius:2px;transition:background-color .15s}.quote-tile:hover{background:#f3efe7}.quote-tile:active{background:#eae3d7}
.feature{background:#fffcf8;border-radius:4px;border-color:#e0d7c8;box-shadow:0 2px 4px #49351208;transition:border-color .16s,background-color .16s}
.feature:hover{background:#fffdf8;border-color:#b8a27b;box-shadow:0 2px 4px #49351210}.feature:active{background:#f0e9dd;box-shadow:inset 0 1px 2px #3f321411}
.feature h2{font-size:18px;letter-spacing:.01em}.feature p{color:#817a70;font:11px/1.65 var(--sans)}
.round-arrow{width:25px;height:25px;border-radius:3px;background:#faf7ef;border:1px solid #d8c8ab;box-shadow:inset 0 1px 0 #fff;color:#806235;font:16px/1 Arial,sans-serif}.round-arrow .arrow-icon{width:15px;height:15px}.feature:hover .round-arrow{border-color:#b49865;background:#eee3cd}
.institutions{border-radius:5px;background:#fffdfa;box-shadow:0 1px 4px #39280f07;border-color:#e4dacb}.institution-group{background:#f2eee5;border-radius:3px}.institution-link{border-radius:3px;background:#fffdfa;border-color:#e2d9c9;box-shadow:inset 0 1px 0 #fff}.institution-link:hover{border-color:#b6a17a;background:#f7f2e8;box-shadow:none}
.institution-heading button,.link-button{font:12px/1.5 var(--sans);padding:8px 1px;color:#8b693b;letter-spacing:.025em;border-bottom:1px solid transparent;border-radius:0}.institution-heading button:hover,.link-button:hover{border-color:#b89b68;color:#5c4529}
.tabs{gap:4px;border-bottom:1px solid #e4dcd0;padding-bottom:0}.tab{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;font:12px/1.5 var(--sans);padding:10px 15px;color:#837a6d}.tab:hover{background:#f3eee4}.tab.active{background:#f0e9dc;color:#73552c;border-color:#a28049;box-shadow:none}.chart-tools .tabs{border:0}.chart-tools .tab{padding:7px 10px}
.panel,.step,.news-card,.download-card,.member-head{border-radius:5px;box-shadow:0 1px 4px #42301108;background:#fffdfa;border-color:#e2d8c7}.member-head{background:#242c2c;color:#e5d2ab;border-color:#8b795e}
.badge,.status-pill{border-radius:3px;background:#f1ecdf;border-color:#d6c7aa;color:#89724f;box-shadow:none;font-size:10px}.case-row{border-radius:3px}.case-row:hover{background:#f6f0e6}.day span{background:#fcfaf5;border-color:#d5c6ab;box-shadow:none}.day.done span{background:#c9ad75;color:#2f271a;border-color:#bca16c;box-shadow:inset 0 1px 0 #eee0c5}
#toast{border-radius:4px;border:1px solid #a08c69;box-shadow:0 4px 14px #0002;background:#202725f5;font-size:12px}
dialog{border-radius:6px;box-shadow:0 12px 45px #0004;background:#fffdfa;border-color:#d2c4ab}.dialog-close{width:30px;height:30px;display:grid;place-items:center;border-radius:3px;color:#80735d}.dialog-close:hover{background:#f2eadb}
@media(min-width:2000px){.welcome-content{padding-top:clamp(135px,14svh,280px)}.welcome .brand-symbol{width:clamp(245px,16svh,325px)}.welcome .brand-name{font-size:66px}.welcome .brand-sub{font-size:16px}.welcome-mission{font-size:23px;margin-top:42px}.welcome-tagline{font-size:13px}.welcome-english{font-size:12px}.welcome-actions{width:340px;margin-top:clamp(56px,8svh,145px)}.welcome-actions button{height:57px;font-size:18px}.welcome .language{min-height:42px}.welcome .language select{font-size:14px}.welcome-bottom{bottom:40px}.welcome-pause{font-size:12px}.site-nav a{font-size:18px}}
@media(min-width:2600px){.feature h2{font-size:24px}.feature p{font-size:16px}.round-arrow{width:30px;height:30px}.site-nav a{font-size:21px}.auth-body{max-width:460px}.auth-body h1{font-size:38px}}
@media(max-height:800px) and (min-width:901px){.welcome{min-height:600px}.welcome-content{min-height:600px;padding-top:65px}.welcome .brand-symbol{width:175px}.welcome .brand-name{font-size:42px}.welcome .brand-sub{font-size:11px}.welcome-rule{margin:18px auto 14px}.welcome-tagline{font-size:9px}.welcome-mission{font-size:15px;margin-top:24px}.welcome-english{font-size:8px}.welcome-actions{margin-top:34px;width:250px;gap:10px}.welcome-actions button{height:44px;font-size:14px}.welcome-bottom{bottom:18px}}
@media(max-width:1200px){.site-nav{gap:20px}.site-nav a{font-size:13px}.feature h2{font-size:16px}.feature p{font-size:10px}}
@media(max-width:900px){.welcome{min-height:650px}.welcome-content{min-height:650px;padding-top:90px}.welcome .brand-symbol{width:200px}.welcome-actions{margin-top:48px}.auth-layout{grid-template-columns:.85fr 1fr}.auth-panel{padding:95px 28px 35px}.auth-brand img{width:150px}.auth-brand b{font-size:38px}.auth-brand span{font-size:9px}.auth-brand p{font-size:10px}.auth-brand{padding:15px}.site-nav a{padding:13px}.site-nav a.active::after{bottom:6px}.site-nav.open{background:#fffcf7;box-shadow:0 4px 9px #36251112}.feature h2{font-size:18px}.feature p{font-size:11px}}
@media(max-width:600px){.welcome{min-height:650px;height:100svh}.welcome-content{min-height:650px;height:100svh;padding:clamp(85px,13svh,135px) 14px 80px;justify-content:flex-start;width:100%}.welcome .brand-symbol{width:clamp(160px,24svh,205px)}.welcome .brand-name{font-size:42px;margin-top:9px}.welcome .brand-sub{font-size:10px;letter-spacing:.23em}.welcome-rule{margin:19px auto 15px}.welcome-tagline{font-size:8px;letter-spacing:.19em}.welcome-mission{font-size:13px;letter-spacing:0;margin-top:28px;max-width:96%}.welcome-english{font-size:8px;letter-spacing:.11em;margin-top:9px}.welcome-actions{width:238px;margin-top:auto;padding-top:30px;gap:11px}.welcome-actions button{height:46px;font-size:14px;padding:0 18px;gap:32px}.welcome-top{top:19px;right:19px}.welcome .language{min-height:31px;padding:6px 10px}.welcome .language select{font-size:10px}.welcome .language .icon{width:14px;height:14px}.language::after{top:11px;right:12px}.welcome-bottom{bottom:19px;height:26px;gap:9px}.welcome-pause{min-width:55px;font-size:9px;margin-left:4px}.slide-dot{width:29px}.auth-layout{display:block}.auth-visual{display:none}.auth-panel{padding:105px 25px 35px;min-height:100svh}.auth-tools{inset:25px 23px auto}.auth-body{max-width:400px;width:100%;margin:auto}.auth-body h1{font-size:30px}.auth-body .subtitle{font-size:12px}.auth-body .eyebrow{font-size:9px}.auth-note{padding-top:18px;margin-top:20px}.guest-button{font-size:12px}.form-primary{font-size:13px}.language{min-height:32px;padding:7px 9px}.language select{font-size:10px;padding-right:16px}.language .icon{width:14px;height:14px}.header-actions{gap:9px}.feature h2{font-size:17px}.feature p{font-size:10px;line-height:1.7}.feature .round-arrow{width:24px;height:24px;right:9px;top:34px}.account-button{width:30px;height:30px}.code-row button{min-width:106px;font-size:11px}.form-help{font-size:10px}.round-arrow .arrow-icon{width:14px;height:14px}.welcome::after{background:linear-gradient(90deg,#06101705,#0d171f16 40%,#0a141b24 50%,#06101705)}}
@media(prefers-reduced-motion:reduce){.scene-canvas{transition:none!important}.welcome-pause{display:flex!important}}
/* Keep the raster hero-edge's legacy ticker fragment outside the visible hero. */
.hero-edge{clip-path:inset(0 0 29px 0)}
.footer-values{background:#171b1b;border-top:1px solid #a58a585c;box-shadow:inset 0 1px 0 #ffffff08}

/* R3.2: compositing is driven by one incoming layer over an opaque base. */
.scene-canvas{transition:none!important;pointer-events:none}
/* No playback control strip, progress indicator, or hover-only substitute. */
.welcome-bottom,.slide-dot,.welcome-pause,.scene-notice{display:none!important}
