:root{--paper:#f2efe7;--ink:#17231f;--muted:#667065;--line:#d8d1c3;--wood:#9d6235;--wood-dark:#59331f;--jade:#176b5c;--cinnabar:#9b3d32;--gold:#d4a64f;--stage:#e5dfd2;--white:#fff}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(circle at 20% 12%, #d4a64f2e, transparent 26%), radial-gradient(circle at 88% 4%, #176b5c24, transparent 24%), linear-gradient(90deg, #492f1e09 1px, transparent 1px), linear-gradient(0deg, #492f1e09 1px, transparent 1px), var(--paper);background-size:auto,auto,40px 40px,40px 40px,auto;margin:0;font-family:Noto Serif CJK SC,Noto Serif CJK TC,Songti SC,SimSun,serif}.book-shell{max-width:1080px;margin:0 auto;padding:22px 20px 64px}.books-nav{flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0 18px;font-size:.86rem;display:flex}.books-nav .nav-label{color:var(--muted);letter-spacing:.28em}.books-nav a{color:var(--wood-dark);border:1px solid var(--line);background:#ffffff8c;border-radius:999px;padding:5px 14px;text-decoration:none}.books-nav a:hover{border-color:var(--cinnabar);color:var(--cinnabar)}.books-nav a.active{background:var(--cinnabar);border-color:var(--cinnabar);color:var(--white)}.book-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:20px;padding-bottom:16px;display:flex}.book-header .eyebrow{color:var(--cinnabar);letter-spacing:.34em;margin:0 0 6px;font-size:.82rem}.book-header h1{letter-spacing:.12em;margin:0;font-size:1.7rem}.book-header .author{color:var(--muted);margin:6px 0 0;font-size:.85rem}.backend-badge{border:1px solid var(--line);color:var(--muted);background:#fff9;border-radius:999px;padding:4px 12px;font-size:.74rem}.backend-badge[data-state=on]{border-color:var(--jade);color:var(--jade)}.method-note{border:1px solid var(--line);border-left:4px solid var(--gold);color:var(--muted);background:#ffffff9e;border-radius:10px;margin:0 0 22px;padding:12px 16px;font-size:.88rem;line-height:1.8}.cast-layout{grid-template-columns:minmax(260px,380px) 1fr;align-items:start;gap:22px;display:grid}@media (width<=860px){.cast-layout{grid-template-columns:1fr}}.cast-panel{background:var(--stage);border:1px solid var(--line);text-align:center;border-radius:14px;padding:22px;position:sticky;top:16px}.dice-row{justify-content:center;gap:18px;min-height:96px;margin:14px 0 20px;display:flex}.die{border:2px solid var(--wood-dark);background:var(--white);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;width:88px;height:88px;font-size:1.9rem;line-height:1.15;transition:transform .18s;display:flex;box-shadow:0 6px 14px #17231f2e,inset 0 0 18px #59331f24}.die small{color:var(--muted);letter-spacing:.2em;margin-top:2px;font-size:.66rem}.die.father{background:linear-gradient(150deg, #f4d489, var(--gold))}.die.rolling{animation:.42s linear infinite die-roll}@keyframes die-roll{0%{transform:rotate(0)translateY(0)}25%{transform:rotate(9deg)translateY(-7px)}50%{transform:rotate(0)translateY(0)}75%{transform:rotate(-9deg)translateY(-7px)}to{transform:rotate(0)translateY(0)}}.question-input{border:1px solid var(--line);background:var(--white);width:100%;color:var(--ink);border-radius:8px;margin-bottom:12px;padding:9px 12px;font-family:inherit;font-size:.9rem}.cast-button{background:var(--cinnabar);color:var(--white);letter-spacing:.3em;cursor:pointer;border:0;border-radius:999px;padding:11px 38px 11px 42px;font-family:inherit;font-size:1.02rem;box-shadow:0 4px 10px #9b3d3252}.cast-button:hover,.cast-button:focus-visible{background:#833229}.cast-button:disabled{opacity:.55;cursor:wait}.cast-hint{color:var(--muted);margin:12px 0 0;font-size:.78rem;line-height:1.7}.history-box{text-align:left;color:var(--muted);margin-top:18px;font-size:.78rem}.history-box h3{letter-spacing:.22em;color:var(--wood-dark);margin:0 0 6px;font-size:.8rem}.history-box ol{margin:0;padding-left:18px}.history-box li{margin-bottom:3px}.result-panel{border:1px solid var(--line);background:#ffffffb8;border-radius:14px;min-height:300px;padding:24px 26px}.result-placeholder{color:var(--muted);text-align:center;letter-spacing:.2em;padding:80px 0}.result-head{border-bottom:1px dashed var(--line);flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:14px;padding-bottom:12px;display:flex}.result-head .syllables{color:var(--cinnabar);font-size:1.45rem}.result-head h2{letter-spacing:.14em;margin:0;font-size:1.5rem}.result-head .positions{color:var(--muted);font-size:.88rem}.result-head .epithet{color:var(--jade);border:1px solid;border-radius:999px;margin-left:auto;padding:3px 12px;font-size:.84rem}.result-intro{margin:0 0 14px;line-height:2}.aspects-table{border-collapse:collapse;width:100%;font-size:.92rem}.aspects-table th,.aspects-table td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:9px 12px;line-height:1.85}.aspects-table th{width:8.5em;color:var(--wood-dark);white-space:nowrap;background:#d4a64f1f;font-weight:600}.result-closing{border-left:4px solid var(--jade);background:#176b5c12;border-radius:8px;margin:14px 0 0;padding:12px 16px;font-size:.92rem;line-height:1.95}.result-notes{color:var(--muted);margin:12px 0 0;font-size:.8rem;line-height:1.8}.verse-text p{margin:0 0 4px;font-size:.98rem;line-height:2.1}.review-flag{color:var(--muted);margin-top:16px;font-size:.74rem}.browse-section{margin-top:40px}.browse-section h2{letter-spacing:.24em;border-left:4px solid var(--cinnabar);padding-left:12px;font-size:1.1rem}.combo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.combo-grid button{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff9;border-radius:10px;padding:10px 8px;font-family:inherit;line-height:1.5}.combo-grid button:hover{border-color:var(--cinnabar)}.combo-grid button.active{border-color:var(--cinnabar);background:#9b3d3214}.combo-grid .combo-syll{color:var(--cinnabar);font-size:1.02rem;display:block}.combo-grid .combo-name{font-size:.9rem}.combo-grid .combo-pos{color:var(--muted);font-size:.74rem}footer.book-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:46px;padding-top:14px;font-size:.76rem;line-height:1.8}
