:root{--ink:#2d201c;--muted:#89756a;--paper:#f4ecdc;--paper2:#efe3cf;--red:#8e3028;--red2:#b14d40;--gold:#b69762;--line:#d9cbb5;--green:#65745b;--shadow:0 18px 48px #39221916}*{box-sizing:border-box}body{margin:0;background:#e9dfce;color:var(--ink);font-family:"Noto Serif SC","Songti SC","STSong","SimSun",Georgia,serif;min-height:100vh}.paper-texture{position:fixed;inset:0;pointer-events:none;opacity:.19;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}.topbar{height:66px;padding:0 clamp(18px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:#f5ecdc;border-bottom:1px solid #d5c7b1;position:relative;z-index:1}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;letter-spacing:.14em;font-weight:700}.brand-seal{width:31px;height:31px;background:var(--red);color:#f8eddb;display:grid;place-items:center;border-radius:3px;font-size:17px}.top-meta{display:flex;align-items:center;gap:16px;color:#8d7767;font-size:12px;letter-spacing:.09em}.divider{height:14px;width:1px;background:var(--line)}.icon-btn,.subtle-btn,.modal-close{border:0;background:none;color:var(--red);font:inherit;cursor:pointer}.icon-btn{font-size:21px;width:36px;height:36px}.app-shell{max-width:1450px;margin:0 auto;min-height:calc(100vh - 112px);padding:24px clamp(16px,4vw,58px) 32px;position:relative}.hidden{display:none!important}footer{height:46px;padding:0 clamp(18px,5vw,72px);border-top:1px solid #d5c7b1;background:#f2e9da;color:#9a8778;display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.07em}footer>span:first-child{color:var(--red);font-weight:700}.footer-right{margin-left:auto}.intro-screen{min-height:calc(100vh - 160px);display:grid;grid-template-columns:.9fr 1.1fr;background:#f4ecdc;box-shadow:var(--shadow);overflow:hidden}.intro-copy{padding:clamp(42px,8vw,110px) 8% 50px 12%;display:flex;align-items:flex-start;flex-direction:column;justify-content:center}.eyebrow{margin:0 0 15px;color:var(--red);font-size:11px;letter-spacing:.23em;font-weight:700}.intro-copy h1{font-weight:500;font-size:clamp(48px,6.8vw,82px);line-height:1.28;letter-spacing:.12em;margin:0 0 22px}.intro-copy h1 em,.setup-head h2 em,.game-heading h2 em{font-style:normal;color:var(--red)}.intro-lede{line-height:2.1;color:#66544a;font-size:15px}.intro-rule{height:1px;background:var(--line);width:190px;margin:23px 0 15px;position:relative}.intro-rule span{position:absolute;left:50%;top:-13px;transform:translateX(-50%);background:#f4ecdc;color:var(--gold);padding:0 10px}.intro-note{font-size:12px;color:#958173;line-height:2}.primary-btn{border:0;background:var(--red);color:#fff2df;padding:14px 23px;font:600 14px "Noto Serif SC",serif;letter-spacing:.16em;cursor:pointer;box-shadow:4px 4px 0 #d3bf9c;transition:.2s}.primary-btn:hover{background:#71251f;transform:translateY(-2px);box-shadow:4px 6px 0 #d3bf9c}.primary-btn span{margin-left:20px}.intro-copy .primary-btn{margin-top:21px}.intro-art{position:relative;overflow:hidden;min-height:530px;background:linear-gradient(180deg,#c7b9a2 0%,#ded0b8 47%,#b89e7c 100%)}.intro-art:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f4ecdc 0%,transparent 22%),linear-gradient(0deg,#4d4035aa,transparent 47%)}.moon{position:absolute;width:138px;height:138px;border-radius:50%;background:#efe3c8;right:23%;top:12%;box-shadow:0 0 55px #f8eac577}.palace{position:absolute;bottom:0;left:15%;width:70%;height:42%;background:#40342e;clip-path:polygon(0 29%,12% 29%,12% 20%,29% 20%,29% 7%,50% 0,71% 7%,71% 20%,88% 20%,88% 29%,100% 29%,100% 100%,0 100%);display:flex;justify-content:space-evenly;align-items:flex-end;padding:0 7%}.palace i{width:8%;height:74%;background:linear-gradient(90deg,#782f27,#a34235 60%,#58261f);border:2px solid #bb8c52;border-bottom:0}.roof{position:absolute;height:50px;background:#57352e;filter:drop-shadow(0 5px 4px #47372c66)}.roof-one{width:77%;bottom:43%;left:11%;clip-path:polygon(0 100%,9% 48%,38% 48%,50% 0,62% 48%,91% 48%,100% 100%,90% 88%,10% 88%)}.roof-two{width:49%;bottom:57%;left:25%;height:58px;clip-path:polygon(0 100%,10% 54%,38% 54%,50% 0,62% 54%,90% 54%,100% 100%,90% 88%,10% 88%)}.lantern{position:absolute;top:27%;width:45px;height:70px;background:#a93c2d;border:2px solid #d0aa70;border-radius:14px 14px 8px 8px;box-shadow:0 0 30px #ffcd7c77}.lantern:before,.lantern:after{content:"";position:absolute;left:50%;width:1px;background:#d4ad71}.lantern:before{height:18px;top:-18px}.lantern:after{height:18px;bottom:-19px}.lantern b{display:block;color:#f3d8a4;text-align:center;font-size:22px;margin-top:14px}.lantern-a{left:21%}.lantern-b{right:17%;top:34%;transform:scale(.77)}.branch{position:absolute;color:#715a43;letter-spacing:.18em;font-size:25px;opacity:.8}.branch-a{right:-2%;top:16%;transform:rotate(16deg)}.branch-b{left:0;bottom:38%;transform:rotate(-23deg)}.vertical-title{position:absolute;right:6%;top:10%;writing-mode:vertical-rl;color:#684f3c;letter-spacing:.34em;font-size:13px}.setup-screen,.game-screen{background:#f4ecdc;box-shadow:var(--shadow);min-height:calc(100vh - 160px);padding:clamp(25px,4vw,54px)}.setup-head{text-align:center;margin-bottom:31px}.setup-head h2,.game-heading h2{font-size:clamp(26px,3vw,38px);font-weight:500;letter-spacing:.08em;margin:0 0 9px}.setup-head>p:last-child{font-size:13px;color:var(--muted)}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;max-width:940px;margin:0 auto}.setup-card,.panel{background:#f8f2e7;border:1px solid var(--line);box-shadow:0 5px 14px #39221908}.setup-card{padding:19px 22px;min-height:115px}.setup-card label,.card-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;letter-spacing:.08em}.name-row{display:flex;gap:8px;margin-top:12px}.name-row input{background:transparent;border:0;border-bottom:1px solid #bda98b;padding:8px 2px;flex:1;outline:none;color:var(--ink);font:16px inherit}.subtle-btn{border:1px solid var(--line);padding:5px 10px;font-size:11px}.setup-card small,.small-copy{display:block;color:#9b8877;font-size:11px;margin-top:8px}.stamp{color:var(--red);border:1px solid #bd8c7c;padding:2px 7px;font-size:9px;letter-spacing:.1em}.family-value{font-size:19px;color:var(--red);margin-top:11px}.stat-list{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px;margin-top:14px}.stat-row{display:grid;grid-template-columns:38px 1fr 24px;align-items:center;gap:7px;font-size:11px}.stat-row .bar,.favor-meter{height:5px;background:#e4d8c4;overflow:hidden}.stat-row .bar i,.favor-meter span{height:100%;display:block;background:linear-gradient(90deg,#bb8c54,#8e3028);transition:width .45s}.stat-row strong{font-weight:500;text-align:right;color:#765f4f}.skill-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:15px}.skill-chip{border:1px solid #e2d4c0;padding:5px 8px;display:flex;justify-content:space-between;font-size:10px;color:#765f4f}.skill-chip b{font-weight:500;color:var(--red)}.setup-bottom{max-width:940px;margin:24px auto 0;display:flex;align-items:center;justify-content:space-between;color:#988474;font-size:11px}.game-screen{padding:23px clamp(15px,2.3vw,32px) 30px}.game-heading{display:flex;align-items:center;justify-content:space-between;padding:0 5px 18px;border-bottom:1px solid var(--line)}.game-heading .eyebrow{margin-bottom:7px}.game-heading h2{font-size:27px}.turn-badge{border:1px solid #cbb99c;padding:8px 13px;color:#8e7863;font-size:11px;letter-spacing:.08em}.turn-badge b{color:var(--red);font-size:15px}.dashboard{display:grid;grid-template-columns:minmax(170px, .76fr) minmax(360px,2fr) minmax(190px,.86fr);gap:14px;padding-top:15px}.left-column,.center-column,.right-column{display:flex;flex-direction:column;gap:12px;min-width:0}.panel{padding:15px}.profile-card{text-align:center;padding:17px 14px 15px}.portrait{height:94px;width:94px;border:1px solid #bfa981;border-radius:50%;margin:0 auto 9px;display:grid;place-items:center;position:relative;background:radial-gradient(circle,#f6e9ce,#e5d1af);color:var(--red);font-size:39px}.portrait:before{content:"";position:absolute;inset:6px;border:1px dashed #bda579;border-radius:50%}.portrait i{position:absolute;right:-1px;bottom:2px;color:#b69762;font-size:18px;font-style:normal}.profile-name{font-size:18px;letter-spacing:.18em}.profile-rank{display:inline-block;margin-top:7px;background:#8e3028;color:#faeddb;font-size:10px;padding:4px 11px;letter-spacing:.12em}.profile-family{font-size:10px;color:#958171;margin-top:7px}.profile-divider{height:1px;background:#e1d5c2;margin:14px 7px 10px}.favor-label{font-size:11px;color:#977e5c;letter-spacing:.16em;margin-bottom:7px}.favor-meter{position:relative;height:8px}.favor-meter span{background:linear-gradient(90deg,#b89456,#a24134)}.favor-meter b{position:absolute;top:-4px;right:3px;font-size:9px;color:#fff}.hidden-label{display:block;font-size:9px;color:#aa9682;margin-top:6px}.panel-title{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;letter-spacing:.09em;color:#674e40;margin-bottom:12px}.panel-title>span{color:#b69867}.compact-panel{padding:13px}.live-stat-list{display:flex;flex-direction:column;gap:8px}.live-stat{display:grid;grid-template-columns:34px 1fr 23px;align-items:center;gap:7px;font-size:10px}.live-stat .bar{height:4px;background:#e7dece}.live-stat .bar i{height:100%;display:block;background:#a84437}.live-stat b{text-align:right;font-weight:500;color:#876b55}.rumor-list{max-height:104px;overflow:auto}.rumor-item{font-size:10px;line-height:1.7;color:#806a59;border-bottom:1px dashed #e5dac9;padding:5px 0}.empty-note{font-size:10px;color:#ae9c89}.story-panel{height:330px;display:flex;flex-direction:column;padding:0;overflow:hidden}.story-top{display:flex;justify-content:space-between;padding:12px 17px;border-bottom:1px solid #e2d7c6;font-size:10px;color:#997f64;letter-spacing:.1em}.story-log{padding:14px 18px 22px;overflow:auto;line-height:1.9;font-size:12px;color:#68544a;flex:1}.story-entry{margin:0 0 11px}.story-entry time{color:#aa8a62;font-size:10px;margin-right:8px}.story-entry strong{color:#8e3028;font-weight:600}.story-entry.event{padding-left:11px;border-left:2px solid #bd9a64}.event-box{margin:0 17px 13px;padding:11px 13px;background:#efe4d1;border-left:2px solid var(--gold);font-size:11px;line-height:1.7}.actions-panel{padding:14px}.panel-title small{font-weight:400;letter-spacing:0;color:#9b8877;margin-left:7px}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.action-card{min-height:94px;border:1px solid #e0d3bf;background:#f7f0e4;color:#49352c;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px 11px;cursor:pointer;transition:.18s;font-family:inherit}.action-card:hover,.action-card.selected{border-color:#ad755f;background:#f2e6d4;transform:translateY(-2px)}.action-icon{color:#a14b3f;font-size:17px;height:24px}.action-card b{font-size:11px;letter-spacing:.05em}.action-card small{font-size:9px;color:#998575;line-height:1.5;margin-top:4px}.danger-card .action-icon{color:#72534a}.turn-footer{display:flex;justify-content:space-between;align-items:center;color:#a08d7a;font-size:10px;padding:0 3px}.next-btn{border:0;background:var(--red);color:#fff0dc;font:12px "Noto Serif SC",serif;letter-spacing:.12em;padding:10px 14px;cursor:pointer}.next-btn:disabled{background:#c6b8a4;cursor:not-allowed}.next-btn span{margin-left:9px}.court-list{display:flex;flex-direction:column;gap:5px;max-height:210px;overflow:auto}.court-person{display:flex;align-items:center;gap:8px;padding:6px 5px;border-bottom:1px dashed #e4d8c6;cursor:pointer}.court-person:hover{background:#f1e7d7}.mini-portrait{width:27px;height:27px;flex:0 0 27px;border-radius:50%;display:grid;place-items:center;background:#e7d4b7;color:#923f34;font-size:12px;border:1px solid #d1bc9b}.court-info{min-width:0;flex:1}.court-info b{display:block;font-size:10px;font-weight:600}.court-info small{display:block;color:#9a8675;font-size:8px;margin-top:2px}.court-tag{font-size:8px;color:#a34438;white-space:nowrap}.skill-live-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.skill-live{font-size:9px;display:flex;justify-content:space-between;color:#806b58}.skill-live b{font-weight:500;color:#a34538}.objective-panel{font-size:10px;color:#8d7966;line-height:1.8}.modal-backdrop{position:fixed;inset:0;background:#2015119c;z-index:5;display:grid;place-items:center;padding:18px}.choice-modal{position:relative;width:min(470px,100%);padding:30px;background:#f7f0e4;box-shadow:0 20px 70px #160e0b55}.modal-close{position:absolute;top:10px;right:13px;font-size:24px}.choice-modal h3{font-size:22px;font-weight:500;margin:0 0 8px}.choice-modal>p:not(.eyebrow){font-size:12px;line-height:1.8;color:#8b7767}.modal-choices{display:flex;flex-direction:column;gap:8px;margin-top:18px}.choice-btn{padding:11px 13px;text-align:left;border:1px solid #ddcfbb;background:#f5ead8;color:#594239;font:12px "Noto Serif SC",serif;cursor:pointer}.choice-btn:hover{border-color:#a44a3d;background:#eee0cd}.choice-btn small{display:block;color:#9b8877;margin-top:4px}.toast{position:fixed;z-index:7;bottom:64px;left:50%;transform:translateX(-50%);background:#3d2a22;color:#f6e9d4;padding:11px 18px;box-shadow:0 8px 22px #0003;font-size:11px;animation:toast .25s ease}@keyframes toast{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}@media(max-width:950px){.dashboard{grid-template-columns:180px 1fr}.right-column{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr}.court-list{max-height:130px}}@media(max-width:650px){.topbar{height:58px}.intro-screen{grid-template-columns:1fr}.intro-art{min-height:270px;grid-row:1}.intro-copy{padding:34px 9% 40px}.intro-copy h1{font-size:55px}.vertical-title{font-size:10px}.setup-grid{grid-template-columns:1fr}.setup-bottom{align-items:flex-start;gap:14px;flex-direction:column}.setup-bottom .primary-btn{align-self:stretch}.dashboard{grid-template-columns:1fr}.left-column{display:grid;grid-template-columns:1fr 1fr}.profile-card{grid-row:span 2}.right-column{grid-column:auto;grid-template-columns:1fr 1fr}.objective-panel{grid-column:1/-1}.story-panel{height:300px}.game-heading h2{font-size:21px}.action-grid{grid-template-columns:repeat(2,1fr)}.footer-right{display:none}footer{justify-content:center}.turn-footer{align-items:flex-start;gap:10px}.turn-footer span{max-width:55%;line-height:1.6}}
