@font-face{font-family:SourceHanSerif;src:url('/assets/fonts/LiujinArchiveSong.woff2?v=2.003-life-2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
/* 柳津县：宣纸、水墨与留白。功能布局继续复用style.css。 */
:root{--heading:SourceHanSerif,'Source Han Serif SC','Songti SC','SimSun',serif;--paper:#faf9f4;--cream:#f1f0e9;--ink:#2b2b2b;--muted:#6d6d6d;--red:#914837;--green:#3b3b3b;--blue:#606060;--line:#cecece;--shadow:0 4px 18px #30303008}
body{background:var(--cream);background-image:none;isolation:isolate}
body:before,body:after{content:'';position:fixed;z-index:-1;pointer-events:none;background-repeat:no-repeat;mix-blend-mode:multiply}
body:before{inset:0;background-image:url('/assets/art/ink-paper.webp');background-position:left top;background-size:1000px auto;opacity:.28}
body:after{right:0;bottom:0;width:60vw;height:70vh;background-image:url('/assets/art/ink-mist.webp');background-position:right bottom;background-size:cover;opacity:.13}
.masthead{min-height:108px}.brand{color:var(--ink);font-weight:400}.brand span{color:var(--muted)}
#nav{background:#faf9f477;border-color:var(--line);gap:35px}#nav a{padding:3px 2px}#nav a.active{color:var(--ink);box-shadow:0 2px var(--red)}
.paper,.family-card,.event{background:#faf9f4ec;border-color:var(--line);box-shadow:var(--shadow)}
.paper:before{border-color:#c2c2c24d}.section-title:after{background:#bdbdbd}.section-title h1,.section-title h2{color:var(--ink)}
.eyebrow{color:var(--muted);letter-spacing:2px}.section-title .serial{color:#737373}
.btn{background:var(--green);border-color:var(--green);box-shadow:none;color:#fafafa;transition:background-color .15s ease}
.btn:hover{background:#2c2c2c}.btn.red{background:var(--red);border-color:var(--red)}.btn.red:hover{background:#793d30}
.btn.secondary{background:#f8f8f880;color:var(--ink);border-color:#a5a5a5}.btn.secondary:hover{background:#e9e9e9}
input,select,textarea{background:#fcfcfc;border-color:#c2c2c2;color:var(--ink)}
input::placeholder,textarea::placeholder{color:#7f7f7f}label{color:#494949}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:4px}
.badge{color:#535353;border-color:#bcbcbc;background:#f0f0f075}.badge.red{color:var(--red);border-color:#b28276;background:transparent}
.notice{border-color:#838383;background:#d9d9d918;color:#666666}
.side-note{border-top:2px solid #777777;background:#f5f5f5d9}.side-note h2{color:var(--ink)}
.side-note .scene-side{border:0;mix-blend-mode:multiply;filter:grayscale(1);margin-top:28px;max-height:200px;object-fit:contain}
.side-note ul{color:#6b6b6b}.side-note img{mix-blend-mode:multiply}
.home-layout{gap:50px;grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr);margin-top:38px;align-items:center}
.home-scene{border:0;box-shadow:none;background:none;padding:0;overflow:visible}
.home-scene img{display:block;width:100%;height:auto;min-height:0;max-height:none;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(1)}
.scene-title{position:static;inset:auto;background:none;color:var(--ink);padding:25px 4px 0;justify-content:center;align-items:center;gap:22px}
.scene-title h1{font-size:58px;font-weight:400;letter-spacing:7px}.scene-title span{color:#686868;font-size:16px}
.home-layout .draw-intro{padding:34px}.draw-intro h2{color:var(--ink);font-size:28px}.draw-intro .eyebrow{font-size:11px}
.auth-layout{gap:38px;max-width:980px;align-items:center;margin-block:25px}
.auth-scene{min-height:520px;border:0;box-shadow:none;display:flex;align-items:center;overflow:visible;background:url('/assets/art/ink-paper.webp') center/cover}
.auth-scene img{position:static;inset:auto;width:100%;height:auto;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(1)}
.auth-box h1{color:var(--ink);font-weight:400}.auth-box .eyebrow{font-size:10px}
.family-card{border:1px solid #a8a8a8;padding:35px 46px 42px;outline:1px solid #cbcbcb;outline-offset:5px}
.family-card:after{background-image:url('/assets/art/ink-swallow.webp');width:115px;height:68px;right:-10px;bottom:-17px;opacity:.65;mix-blend-mode:multiply}
.family-card h2{color:var(--ink);font-weight:400}.family-row{border-color:#cacaca}.family-row dt{color:#5d5d5d}.family-tabs button.active{color:var(--ink);border-color:var(--red)}
.stamp{border-color:var(--red);color:var(--red);background:#faf9f4bd}
.event h2,.relation h3,.profile-relations h2{color:var(--ink)}
.option{background:#f8f8f870;border-color:#c4c4c4}.option b{color:#575757}button.option:hover{background:#e1e1e140;border-color:#858585}
.outcome{border-top-color:#ad7561}.outcome h3{color:#784b3b}.hook{color:#6f6f6f;border-color:#c8c8c8}
.empty{border-color:#c0c0c0;color:#707070}.empty .empty-scene{border:0;background:none;box-shadow:none;width:220px;height:108px;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(1)}
.tabs button{border-color:#c1c1c1;color:#666666}.tabs button.active{background:#464646;border-color:#464646;color:#fcfcfc}
.stat{background:#fafafac9;border-color:#c9c9c9}.stat strong{color:var(--ink)}
th{background:#e1e1e140;color:#555555}th,td{border-color:#c9c9c9}
pre{background:#ececec;color:#444444}.relation,.history-item{border-color:#c3c3c3}
.guide h2{color:var(--ink)}footer{border-color:#c6c6c6;color:#727272}
#toast{background:#444444;color:#fcfcfc}#toast.error{background:var(--red)}
dialog{background:#fafafa;border-color:#bcbcbc}dialog::backdrop{background:#29292999}#modal-content h2{color:var(--ink)}

body,button,input,select,textarea,table,.eyebrow,.section-title .serial,.event-top,.badge,.brand span,#account,.stat,footer{font-family:SourceHanSerif,'Source Han Serif SC','Songti SC','SimSun',serif}
.btn.red{background:#343434;border-color:#343434;color:#fafafa}.btn.red:hover{background:#202020;border-color:#202020}
button.small-link{color:#454545}.family-tabs button.active{border-color:#454545;color:#252525}
button:focus-visible{outline-color:#454545}input[type=checkbox]{accent-color:#343434}
.family-card:after,.side-note .scene-side[src*="ink-swallow"],.empty .empty-scene[src*="ink-swallow"]{mix-blend-mode:multiply;filter:grayscale(1) contrast(1.3)}

/* 完整呈现用户提供的横/竖版封面，画布与图片保持相同比例。 */
body.is-intro{overflow:hidden}body.is-intro>.masthead,body.is-intro>#nav,body.is-intro>footer{display:none}body.is-intro:before,body.is-intro:after{display:none}
body.is-intro #main{max-width:none;margin:0;height:100svh;height:100dvh;min-height:0;padding:0;overflow:hidden}
.intro-screen.intro-fullscreen{display:grid;place-items:center;position:relative;isolation:isolate;width:100%;height:100svh;height:100dvh;min-height:0;padding:0;margin:0;overflow:hidden;background:#f7f5ee}
.intro-screen.intro-fullscreen:before{display:none}
.intro-artwork{position:relative;width:100%;max-width:calc(100svh * 1672 / 941);max-width:calc(100dvh * 1672 / 941);aspect-ratio:1672 / 941;--enter-top:90.22%;--enter-width:12.3%;--enter-height:5.4%}
.intro-backdrop{position:absolute;inset:0;display:block;pointer-events:none}
.intro-backdrop img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;object-position:center}
/* 图片已有按钮边框和文字；只叠加透明、可聚焦的真实按钮，避免双重绘制。 */
.intro-artwork>.intro-enter{position:absolute;left:50%;top:var(--enter-top);transform:translate(-50%,-50%);z-index:1;width:var(--enter-width);height:var(--enter-height);min-width:160px;min-height:44px;margin:0;padding:0;appearance:none;background:transparent;border:0;border-radius:0;box-shadow:none;color:transparent;cursor:pointer}
.intro-artwork>.intro-enter:after{display:none}
.intro-artwork>.intro-enter:hover{background:#30302d08}
.intro-artwork>.intro-enter:focus-visible{outline:2px solid #4c4c48;outline-offset:3px;background:#faf9f220}
@media(max-aspect-ratio:1/1){.intro-artwork{max-width:calc(100svh * 852 / 1846);max-width:calc(100dvh * 852 / 1846);aspect-ratio:852 / 1846;--enter-top:92.63%;--enter-width:37%;--enter-height:4.1%}}
@media(forced-colors:active){.intro-artwork>.intro-enter{background:ButtonFace;color:ButtonText;border:1px solid ButtonText}.intro-enter>.sr-only{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}}

#nav a.active{box-shadow:0 2px #494949}
