
:root{--ink:#0c1719;--paper:#ebe6d8;--gold:#c7a777;--muted:#929e9b;--line:rgba(199,167,119,.25);--serif:"Songti SC","STSong","SimSun",serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--ink);color:var(--paper);font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button,a,input{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
button{color:inherit}
::selection{background:#98794b;color:white}
.wrap{width:min(1200px,88%);margin:auto}
.site-header{height:88px;position:absolute;inset:0 0 auto;z-index:10;border-bottom:1px solid var(--line);background:linear-gradient(#0b1518b3,transparent)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px}
.brand-name{font: bold 32px var(--serif);letter-spacing:3px}
.brand-seal{font:12px var(--serif);width:23px;border:1px solid #bd7259;color:#d0957b;padding:4px;line-height:1.15}
.brand small{display:block;font-size:8px;letter-spacing:4px;color:var(--gold);margin-top:4px}
.nav{display:flex;align-items:center;gap:36px}
.nav a{font-size:13px;letter-spacing:2px;color:#bdc4be}
.nav a:hover,.nav a.active{color:var(--gold)}
.nav .nav-play{border:1px solid var(--gold);padding:12px 24px;color:var(--gold)}
.hero{min-height:780px;height: min(900px,100svh);position:relative;overflow:hidden;background:#152326}
.landscape{position:absolute;right:0;top:0;width:65%;height:100%;object-fit:cover;object-position:50% 43%;opacity:.5;filter:saturate(.55)}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0c1719 2%,#0c1719e8 23%,#0c171938 65%),linear-gradient(0deg,#0c1719,transparent 30%);pointer-events:none}
.hero-character{position:absolute;right:0;bottom:6%;height:83%;width:62%;object-fit:contain;filter:drop-shadow(0 20px 40px #0007);z-index:1}
.hero-content{position:relative;z-index:2;padding-top:220px}
.eyebrow{font-size:10px;letter-spacing:4px;color:var(--gold);display:flex;align-items:center;gap:15px}
.eyebrow:before{content:"";width:32px;height:1px;background:var(--gold)}
h1,h2,h3,p{margin:0}
h1{font:normal clamp(58px,6.6vw,94px)/1.23 var(--serif);letter-spacing:8px;margin:26px 0}
h1 span{color:var(--gold)}
.hero-copy{line-height:2.2;color:#b6bfba;letter-spacing:2px}
.hero-actions{display:flex;gap:16px;margin-top:36px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:40px;padding:18px 29px;letter-spacing:3px;border:1px solid var(--gold);background:var(--gold);color:#172022;transition:background .2s,transform .2s}
.button:hover{background:#e0c497;transform:translateY(-2px)}
.button.secondary{background:transparent;color:var(--paper);border-color:#78847c66}
.button.secondary:hover{background:#ffffff0b}
.hero-meta{margin-top:25px;color:#748580;font-size:11px;letter-spacing:3px}
.hero-bottom{position:absolute;bottom:35px;left:6%;right:6%;display:flex;align-items:center;justify-content:space-between;z-index:3;color:#81908a;font-size:10px;letter-spacing:3px}
.hero-bottom span:last-child{writing-mode:vertical-rl}
.hero-label{position:absolute;right:6%;top:26%;writing-mode:vertical-rl;z-index:2;font:18px var(--serif);letter-spacing:7px;color:#e3dcc7}
.hero-label small{font:10px sans-serif;margin-right:12px;color:var(--gold)}
.intro-strip{display:grid;grid-template-columns:repeat(3,1fr);padding:32px 0;border-bottom:1px solid var(--line)}
.intro-strip>div{display:flex;gap:20px;align-items:center;justify-content:center;border-right:1px solid var(--line)}
.intro-strip>div:last-child{border:0}
.intro-strip b{font:28px var(--serif);color:var(--gold)}
.intro-strip h3{font:18px var(--serif);letter-spacing:3px}
.intro-strip p{font-size:11px;color:var(--muted);margin-top:7px;letter-spacing:1px}
.section{padding:90px 0}
.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:38px}
.section-head h2{font:38px var(--serif);letter-spacing:6px;margin-top:16px}
.section-head>p{color:var(--muted);font-size:12px;letter-spacing:2px}
.features{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:20px}
.feature{height:320px;position:relative;overflow:hidden;border:1px solid var(--line);background:#152123}
.feature img{width:100%;height:100%;object-fit:cover;transition:transform .6s;opacity:.7}
.feature:hover img{transform:scale(1.04)}
.feature:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 15%,#081114 95%)}
.feature-content{position:absolute;bottom:28px;left:26px;right:22px;z-index:1}
.feature-content small{font-size:10px;color:var(--gold);letter-spacing:2px}
.feature-content h3{font:26px var(--serif);letter-spacing:4px;margin:12px 0}
.feature-content p{font-size:12px;line-height:1.9;color:#a6b0aa}
.feature:nth-child(2) img{object-fit:contain;object-position:center 20px;background:#293333}
.feature:nth-child(3) img{object-fit:contain;padding:30px 30px 75px;background:#303029}
.characters-section{background:linear-gradient(110deg,#1b292b,#101b1e);border-block:1px solid var(--line)}
.character-stage{display:grid;grid-template-columns:1.2fr 1fr;min-height:480px;position:relative}
.character-art{height:480px;width:100%;object-fit:contain;filter:drop-shadow(0 15px 35px #0006)}
.character-info{align-self:center;padding:25px 0 25px 45px}
.character-info h3{font:48px var(--serif);letter-spacing:8px;margin:22px 0}
.character-info p{max-width:370px;line-height:2.2;color:#a6b2ac;letter-spacing:1px}
.character-number{font:italic 80px Georgia;color:#c7a77720;position:absolute;right:0;top:0}
.character-tabs{display:flex;gap:12px;margin-top:34px}
.character-tabs button{padding:12px 18px;border:1px solid var(--line);background:transparent;color:#98a49e;letter-spacing:2px}
.character-tabs button[aria-selected=true]{color:#e5ceb0;background:#c7a77713;border-color:var(--gold)}
.journey{display:flex;align-items:center;justify-content:space-between;padding:64px 0;gap:30px}
.journey h2{font:34px var(--serif);letter-spacing:5px;margin-bottom:15px}
.journey p{color:var(--muted);line-height:1.8}
.site-footer{padding:26px 0;border-top:1px solid var(--line);color:#687d77;font-size:11px;line-height:2}
.footer-inner{display:flex;justify-content:space-between;gap:20px}
.footer-inner a{color:var(--gold)}

/* Shared entry page */
.auth-page{min-height:100svh;background:#0c1719}
.auth-page .site-header{position:relative}
.app{position:fixed;inset:0;background:linear-gradient(90deg,#0c1719e8,#0c171982),url("image/0bd30299-da75-4938-be66-10e63d9afe68.ecf2e.png") center 48%/cover;opacity:.55;z-index:-1}
.auth-layout{min-height:calc(100svh - 160px);display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:80px;padding-block:55px}
.auth-story{position:relative;min-height:560px;display:flex;align-items:center}
.auth-art{position:absolute;width:100%;height:100%;object-fit:contain;opacity:.32;z-index:-1;right:-40px}
.auth-story h1{font-size:72px}
.auth-story p{color:#a8b5ad;letter-spacing:3px;line-height:2}
.m-pop-user{width:100%;max-width:430px;justify-self:end;background:linear-gradient(145deg,#1d2b2bf5,#101c1df5);border:1px solid #c7a7775c;padding:40px;box-shadow:0 25px 80px #0004;position:relative}
.m-pop-user:before{content:"";position:absolute;inset:6px;border:1px solid #c7a77718;pointer-events:none}
.m-pop-header{text-align:center;font:32px var(--serif);letter-spacing:5px}
.auth-subtitle{text-align:center;font-size:11px;letter-spacing:3px;color:var(--muted);margin:14px 0 28px}
.m-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:27px}
.m-tabs button{width:50%;border:0;background:transparent;color:#899993;padding:15px;font-size:15px;letter-spacing:4px;position:relative}
.m-tabs button.active{color:var(--gold)}
.m-tabs button.active:after{content:"";position:absolute;height:2px;background:var(--gold);bottom:-1px;left:20%;right:20%}
.field-label{display:block;font-size:12px;color:#b6c1b9;letter-spacing:2px;margin:18px 0 10px}
.form-input{position:relative}
.form-input .ico{position:absolute;left:15px;top:15px;color:#83958d;pointer-events:none}
.ico svg{width:18px;height:18px;fill:currentColor}
.form-input input{width:100%;height:50px;padding:0 16px 0 44px;border:1px solid #778b7738;border-radius:0;background:#08141577;color:var(--paper);font-size:14px;outline:none}
.form-input input:focus{border-color:var(--gold)}
.form-input input::placeholder{color:#687e76;font-size:12px}
.btn-submit{width:100%;height:52px;margin-top:30px;border:1px solid var(--gold);background:var(--gold);color:#142022;font-size:16px;letter-spacing:4px}
.btn-submit:hover{background:#dcc298}
.btn-submit:disabled{opacity:.6;cursor:wait}
.form-msg{color:#e4a491;min-height:23px;font-size:12px;text-align:center;margin-top:14px}
.auth-note{font-size:10px;line-height:1.9;color:#758b80;text-align:center;border-top:1px solid var(--line);padding-top:20px;margin-top:8px;letter-spacing:1px}
.auth-back{display:block;text-align:center;margin-top:20px;font-size:12px;letter-spacing:2px;color:var(--gold)}
.m-loading{display:none;position:fixed;inset:45% auto auto 50%;transform:translateX(-50%);z-index:300;padding:22px 35px;border:1px solid var(--gold);background:#142323;box-shadow:0 10px 50px #0009;color:var(--gold)}
.m-loading.show{display:block}
.m-toast{position:fixed;top:20px;left:50%;transform:translate(-50%,-150%);z-index:400;padding:16px 32px;background:#28463b;color:#eee;transition:transform .3s}
.m-toast.show{transform:translate(-50%,0)}
.m-toast.err{background:#72372e}
#gameFrame{display:none}
.auth-page .site-footer{position:relative}

@media(min-width:1600px){.hero-character{right:6%}
.hero-content{padding-top:250px}
}

@media(max-width:900px){.nav{gap:20px}
.hero-character{right:-18%;width:90%;opacity:.75}
.hero-content{padding-top:210px}
.hero-label{display:none}
.features{grid-template-columns:1fr 1fr}
.feature:first-child{grid-column:1/-1;height:280px}
.character-info{padding-left:20px}
.auth-layout{gap:30px}
.auth-story h1{font-size:52px}
.m-pop-user{padding:30px}
.auth-story{min-height:460px}
}

@media(max-width:600px){.wrap{width:88%}
.site-header{height:75px}
.brand-name{font-size:26px}
.nav a:not(.nav-play){display:none}
.nav .nav-play{padding:10px 14px;font-size:11px}
.hero{height:820px;min-height:760px;max-height:none}
.landscape{width:100%;opacity:.4}
.hero:after{background:linear-gradient(0deg,#0c1719,transparent 70%),linear-gradient(90deg,#0c1719b0,transparent)}
.hero-character{width:118%;height:59%;bottom:3%;right:-25%;opacity:.78}
.hero-content{padding-top:135px}
h1{font-size:60px;letter-spacing:5px;margin:22px 0}
.hero-copy{font-size:12px}
.hero-actions{gap:10px;margin-top:28px}
.button{padding:15px 20px;gap:20px;font-size:12px}
.hero-meta{font-size:9px;letter-spacing:2px}
.hero-bottom{bottom:24px;font-size:8px}
.hero-bottom span:last-child{display:none}
.intro-strip{padding:25px 0}
.intro-strip>div{gap:0;display:block;text-align:center}
.intro-strip b{display:none}
.intro-strip h3{font-size:15px;letter-spacing:1px}
.intro-strip p{font-size:9px;letter-spacing:0}
.section{padding:56px 0}
.section-head{margin-bottom:28px}
.section-head h2{font-size:30px}
.section-head>p{display:none}
.features{grid-template-columns:1fr}
.feature:first-child{grid-column:auto;height:280px}
.feature{height:280px}
.character-stage{grid-template-columns:1fr}
.character-art{height:360px}
.character-info{padding:0 0 10px}
.character-info h3{font-size:36px;margin:15px 0}
.character-info p{font-size:12px}
.character-tabs{margin-top:25px;gap:8px}
.character-tabs button{padding:12px 15px}
.character-number{font-size:65px}
.journey{align-items:start;flex-direction:column;padding:45px 0}
.journey h2{font-size:27px}
.journey p{font-size:12px}
.footer-inner{display:block;font-size:10px}
.footer-inner>p+ p{margin-top:10px}
.auth-layout{grid-template-columns:1fr;gap:26px;padding-block:35px;min-height:calc(100svh - 160px)}
.auth-story{min-height:0;text-align:center;justify-content:center}
.auth-story .eyebrow{justify-content:center}
.auth-story h1{font-size:37px;letter-spacing:4px;margin:15px 0 0}
.auth-story h1 br{display:none}
.auth-story h1 span{margin-left:8px}
.auth-story p,.auth-art{display:none}
.m-pop-user{justify-self:center;padding:28px;max-width:400px}
.m-pop-header{font-size:27px}
.auth-subtitle{margin:12px 0 15px}
.auth-page .site-footer{text-align:center}
.auth-page .nav-play{display:block}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{transition:none!important;animation:none!important}
}


.m-toast{visibility:hidden}
.m-toast.show{visibility:visible}
.button{white-space:nowrap}
.brand{flex-shrink:0}
.nav-play{white-space:nowrap}
@media(max-width:600px){.hero-character{height:49%;bottom:5%}
.brand small{font-size:7px;letter-spacing:2px}
.header-inner{gap:12px}
.hero-actions .button{padding:15px 16px;gap:13px}
.character-info,.character-stage>*{min-width:0}
.character-tabs button{white-space:nowrap;padding:12px 10px}
.auth-story h1{font-size:clamp(28px,9.4vw,37px)}
}
@media(max-width:360px){.brand-name{font-size:23px}
.brand{gap:7px}
.nav .nav-play{padding:10px;font-size:10px}
.hero-content h1{font-size:55px}
.hero-actions{gap:8px}
}


/* Refined composition and full artwork collection. */
.hero-bottom>span:first-child{display:flex;align-items:center;gap:16px}
.hero-bottom>span:first-child:after{content:"";width:60px;height:1px;background:var(--line)}

.character-visual{min-width:0;height:480px;display:flex;align-items:center;justify-content:center;overflow:hidden}

.character-art{flex-shrink:0;transition:opacity .2s}
.character-art[data-art="2"]{height:640px;width:100%;transform:translateY(-30px)}

.character-tabs{flex-wrap:wrap;gap:10px}
.character-tabs button{padding:12px 15px;font-size:12px}

.scroll-section{background:#101a1c}
.scroll-layout{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:stretch}

.story-painting{position:relative;min-height:475px;overflow:hidden;border:1px solid var(--line);background:#2a1c14}
.story-painting>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;opacity:.8}
.story-painting:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#130f0def,transparent 80%)}
.story-painting>div{position:absolute;z-index:1;bottom:35px;left:35px;right:25px}
.story-painting h3{font:36px/1.5 var(--serif);letter-spacing:5px;margin:12px 0}
.story-painting div>p:last-child{color:#b7aea0;line-height:2;font-size:12px}

.portrait-scrolls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-items:stretch}
.portrait-scrolls figure{position:relative;margin:0;min-width:0;overflow:hidden;background:linear-gradient(#1a252526,#14202199),url("image/1a448ebc-78ac-4815-9718-75f20cb99bfa.a2f6d.png") center/100% 100% no-repeat;border-top:1px solid #c4a57570}
.portrait-scrolls figure:nth-child(2){margin-top:35px}
.portrait-scrolls figure:nth-child(1),.portrait-scrolls figure:nth-child(3){margin-bottom:35px}
.portrait-scrolls img{position:absolute;inset:0;width:100%;height:85%;object-fit:contain;object-position:center top}
.portrait-scrolls figcaption{position:absolute;inset:auto 0 0;padding:24px 10px;text-align:center;background:linear-gradient(transparent,#0c1719 40%)}
.portrait-scrolls figcaption span{font:20px var(--serif);letter-spacing:3px;display:block}
.portrait-scrolls small{display:block;margin-top:12px;color:var(--gold);font-size:10px;letter-spacing:3px}

.treasure-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line);padding:32px 0}
.treasure-grid article{text-align:center;border-right:1px solid var(--line);padding:10px 15px 18px}
.treasure-grid article:last-child{border:0}
.treasure-image{height:145px;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse,#c7a77713,transparent 65%)}
.treasure-image img{width:120px;height:120px;object-fit:contain;filter:drop-shadow(0 12px 15px #0004)}
.treasure-grid h3{font:23px var(--serif);letter-spacing:3px;margin:18px 0 12px}
.treasure-grid p{font-size:12px;line-height:1.8;color:var(--muted)}

.journey{border-top:1px solid var(--line)}
.nav{gap:28px}
.nav a[aria-current]{color:var(--gold)}
.auth-page .nav a.active{color:#bdc4be}

@media(min-width:601px) and (max-width:1050px){.hero-character{right:-20%;opacity:.55}
.hero:after{background:linear-gradient(90deg,#0c1719 0%,#0c171999 35%,transparent),linear-gradient(0deg,#0c1719,transparent 30%)}
.nav{gap:16px}
.nav a{letter-spacing:1px}
.nav a[href$="#treasures"]{display:none}
.scroll-layout{gap:25px}
.portrait-scrolls{gap:8px}
.character-info{padding-left:10px}
.character-info h3{font-size:38px}
.auth-layout{grid-template-columns:1fr 1fr;gap:25px}
.auth-story h1{font-size:44px}
}

@media(max-width:600px){.hero{height:890px;min-height:890px}
.hero-content{padding-top:130px}
.hero-character{bottom:32px;right:-13%;width:110%;height:400px;opacity:.9}
.hero:after{background:linear-gradient(0deg,#0c1719,transparent 48%),linear-gradient(90deg,#0c171988,transparent)}
.hero-meta{margin-top:20px}
.hero-bottom{bottom:20px}
.hero-bottom>a{display:none}
.character-visual{height:360px}
.character-art[data-art="2"]{height:490px;transform:translateY(-24px)}
.character-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
.character-tabs button{padding:14px 8px}
.character-info h3{font-size:34px}
.scroll-layout{grid-template-columns:1fr;gap:28px}
.story-painting{min-height:410px}
.story-painting>div{left:24px;bottom:25px}
.story-painting h3{font-size:30px}
.portrait-scrolls{height:365px;gap:10px}
.portrait-scrolls figcaption{padding:20px 3px}
.portrait-scrolls figcaption span{font-size:16px;letter-spacing:2px}
.portrait-scrolls small{font-size:9px;letter-spacing:1px}
.treasure-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:15px 0}
.treasure-grid article{padding:14px 8px 22px}
.treasure-grid article:nth-child(2){border-right:0}
.treasure-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}
.treasure-image{height:125px}
.treasure-image img{width:100px;height:100px}
.treasure-grid h3{font-size:20px;letter-spacing:2px}
.treasure-grid p{font-size:10px}
.section-head h2{font-size:27px;letter-spacing:3px;line-height:1.5}
.journey h2{font-size:26px;letter-spacing:2px}
.intro-strip h3{font-size:13px}
.intro-strip p{line-height:1.8;padding-inline:5px}
.footer-inner{line-height:2.2}
.hero-content .eyebrow{font-size:9px;letter-spacing:3px}
}

.landscape{-webkit-mask-image:linear-gradient(90deg,transparent,#000 25%);mask-image:linear-gradient(90deg,transparent,#000 25%)}
@media(max-width:600px){.hero-character{height:350px}.landscape{-webkit-mask-image:none;mask-image:none}}
