@font-face{font-family:HarborSerif;src:url('fonts/serif.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:HarborSans;src:url('fonts/sans.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--paper:#f7f3e9;--ink:#253936;--sea:#173c42;--dim:#59675d;--rule:#c9cabc;--gold:#d9ad61;--soft:#e9eadd;--error:#973d2f;--display:HarborSerif,'PMingLiU',serif;--body:HarborSans,'Microsoft JhengHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.75}button,input{font:inherit}button,a,input{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #bd7435;outline-offset:4px}::selection{background:#d5b878;color:#173c42}[hidden]{display:none!important}
.cover{max-width:1360px;margin:auto;background:var(--sea);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:320px;overflow:hidden}.cover-copy{padding:52px 0 46px clamp(24px,6vw,80px);z-index:1}h1{font-family:var(--display);font-size:clamp(48px,5.7vw,80px);font-weight:600;letter-spacing:.08em;margin:0 0 18px;line-height:1.2}.subtitle{font-family:var(--display);font-size:clamp(17px,1.6vw,22px);line-height:1.8;margin:0 0 24px}.cover-note{font-size:14px;color:#c5d3c7;margin:0}.coast{display:block;width:100%;height:auto;min-width:0}
main{max-width:1190px;margin:auto;padding:0 42px 70px}.chapters{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--rule);padding:23px 0;margin-bottom:42px}.chapters button{color:var(--dim);font-size:15px;border:0;background:none;padding:8px 13px;border-radius:4px}.chapters button[aria-current=step]{background:var(--sea);color:var(--paper)}.chapters button:disabled{color:#70786e;opacity:.62}.chapters button:not(:disabled):hover{box-shadow:inset 0 -2px var(--sea)}
.reading-layout{display:grid;grid-template-columns:minmax(0,690px) minmax(240px,1fr);gap:64px;align-items:start}article{min-width:0}.scene-time{font-size:14px;color:var(--dim);font-variant-numeric:tabular-nums;margin:0 0 8px}h2{font-family:var(--display);font-size:34px;font-weight:600;letter-spacing:.03em;line-height:1.45;margin:0 0 28px}.prose{font-size:18px;line-height:1.95}.prose p{margin:0 0 1.25em;overflow-wrap:anywhere}.prose blockquote{margin:28px 0;padding:23px 26px;background:var(--soft);border-top:1px solid #a8b6a5;border-bottom:1px solid #a8b6a5;line-height:1.9}.prose blockquote p:last-child{margin-bottom:0}.prose strong{font-weight:650}.paging{display:flex;justify-content:space-between;gap:16px;padding-top:28px;margin-top:30px;border-top:1px solid var(--rule)}.primary,.quiet{border-radius:4px;min-height:48px;padding:11px 20px;border:1px solid var(--sea);font-weight:600;line-height:1.55}.primary{background:var(--sea);color:var(--paper)}.primary:hover{background:#28555a}.quiet{background:transparent;color:var(--sea)}.quiet:hover{background:var(--soft)}.quiet:disabled{visibility:hidden}
.records{border-top:3px solid var(--sea);padding-top:18px}.records-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.records h2{font-family:var(--body);font-size:18px;font-weight:650;margin:0 0 14px;letter-spacing:0}.records-head span{font-size:14px;color:var(--dim);white-space:nowrap}.records p{font-size:15px;color:var(--dim)}details{border-bottom:1px solid var(--rule);padding:12px 0}summary{cursor:pointer;font-size:15px;font-weight:600;line-height:1.65;padding:4px 0}details p{margin:12px 0 5px!important;font-size:15px;line-height:1.9;color:var(--ink)!important;overflow-wrap:anywhere}.ending button{margin-right:12px}
form{margin-top:32px;border-top:3px solid var(--sea);padding-top:28px}fieldset{border:0;padding:0;margin:0 0 30px;min-width:0}legend{font-size:20px;font-weight:650;margin-bottom:15px;padding:0}.route,.evidence-option{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;margin:8px 0;border:1px solid #aebbad;border-radius:4px;cursor:pointer;font-size:17px;background:#fbf8ef}.route:has(input:checked),.evidence-option:has(input:checked){border-color:var(--sea);background:#e2e9dd}.route input,.evidence-option input{accent-color:var(--sea);width:19px;height:19px;flex:none;margin:5px 0 0}.field-help{font-size:15px;color:var(--dim);margin:0 0 15px}#feedback:not(:empty){background:#f0e3d1;color:#713d2c;padding:20px;margin-top:24px;border-radius:4px;font-size:17px}.ending{max-width:760px;margin:65px 0 0;padding-top:42px;border-top:3px double var(--sea)}.ending h2{font-size:38px}.ending .quiet{margin-top:22px}
footer{max-width:1190px;margin:auto;padding:25px 42px 35px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;border-top:1px solid var(--rule);font-size:14px;color:var(--dim)}footer a{color:var(--sea);text-underline-offset:4px}footer button{border:0;border-bottom:1px solid currentColor;padding:0;background:none;color:var(--sea);font-size:14px}#save-status{flex-basis:100%;font-size:13px}.fatal{padding:30px;color:var(--error)}
@media(max-width:1000px){.reading-layout{gap:32px;grid-template-columns:minmax(0,1fr) 240px}.cover{min-height:260px}.cover-copy{padding:36px 0 36px 35px}main{padding:0 30px 55px}.coast{transform:scale(1.08)}}
@media(max-width:720px){.cover{grid-template-columns:1fr;min-height:0}.cover-copy{padding:32px 24px 12px}.coast{width:100%;max-height:180px;transform:none;object-fit:cover;object-position:center;aspect-ratio:600/260}.coast text{font-size:30px;font-family:var(--body)}.coast>text{font-size:26px}.subtitle{margin-bottom:16px}.cover-note{font-size:13px}main{padding:0 22px 40px}.chapters{gap:2px;padding:16px 0;margin-bottom:28px}.chapters button{font-size:14px;padding:7px 10px}.reading-layout{grid-template-columns:1fr;gap:40px}h2{font-size:29px;margin-bottom:24px}.prose{font-size:18px;line-height:1.95}.prose blockquote{padding:20px}.paging{gap:10px}.primary,.quiet{padding:11px 14px}.records{padding-top:18px}.records h2{font-size:19px}details p,summary{font-size:16px}.ending{margin-top:38px}.ending h2{font-size:31px}footer{padding:24px 22px;gap:16px}.route,.evidence-option{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
