html,body{margin:0;padding:0;background:#10100f;min-height:100%;}/* 言の葉の舟 / 80場面版。すべて #kn-app 内へスコープ。 */
#kn-app{--ink:#10100f;--panel:#191815;--paper:#eee5d5;--muted:#baaf9d;--gold:#c8a46e;--edge:#5f5139;--text-size:18px;--mincho:'Hiragino Mincho ProN','Yu Mincho','Noto Serif CJK JP',serif;--sans:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;isolation:isolate;color:var(--paper);background:radial-gradient(ellipse at 75% 0%,#30291d 0,transparent 45%),var(--ink);min-height:100svh;font-family:var(--mincho);font-weight:400;line-height:1.8;text-align:left;letter-spacing:.035em;color-scheme:dark;overflow-x:clip}
#kn-app *,#kn-app *::before,#kn-app *::after{box-sizing:border-box}
#kn-app [hidden]{display:none!important}
#kn-app h1,#kn-app h2,#kn-app h3,#kn-app p,#kn-app figure,#kn-app ul{margin:0;padding:0}
#kn-app a{color:inherit;text-decoration:none}#kn-app a:hover{text-decoration:underline;text-underline-offset:5px}
#kn-app button,#kn-app select,#kn-app input{font:inherit;color:inherit}#kn-app button,#kn-app select{touch-action:manipulation;cursor:pointer}
#kn-app button{border:1px solid var(--edge);border-radius:3px;padding:10px 16px;min-height:44px;background:transparent;font-family:var(--sans);font-size:13px;letter-spacing:.04em;line-height:1.4;transition:background .2s,border-color .2s,color .2s}
#kn-app button:hover,#kn-app button[aria-pressed=true]{background:#30291e;border-color:var(--gold);color:#fff3da}
#kn-app button:disabled{opacity:.35;cursor:default}#kn-app :focus-visible{outline:2px solid #f6d99c;outline-offset:4px}
#kn-app .kn-primary{background:var(--gold);color:#19150f;border-color:var(--gold);font-weight:600;padding:14px 25px}
#kn-app .kn-primary:hover{background:#ead0a1;color:#18140e}
#kn-app .kn-quiet-button{border-color:transparent;color:var(--muted)}
#kn-app .kn-eyebrow{font:11px/1.6 var(--sans);letter-spacing:.18em;color:var(--gold)}
#kn-app .kn-muted{color:var(--muted);font-size:13px}
#kn-app .kn-topbar{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(16px,3.3vw,52px);border-bottom:1px solid var(--edge);background:#10100ff2}
#kn-app .kn-brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
#kn-app .kn-seal{display:grid;place-content:center;border:1px solid var(--gold);width:36px;height:42px;font-size:17px;color:var(--gold);line-height:1.1;letter-spacing:.1em;text-align:center}
#kn-app .kn-brand-name{font-size:19px;line-height:1.3;letter-spacing:.14em}
#kn-app .kn-brand-sub{display:block;font:10px/1.6 var(--sans);letter-spacing:.14em;color:var(--muted)}
#kn-app .kn-header-title{color:var(--muted);font-size:12px;letter-spacing:.12em}
#kn-app .kn-tools{display:flex;align-items:center;gap:8px}
#kn-app .kn-cover{max-width:1360px;margin:0 auto;padding:clamp(24px,5vw,72px) clamp(16px,4vw,56px) 32px}
#kn-app .kn-cover-layout{display:grid;grid-template-columns:.72fr 1fr;align-items:center;gap:clamp(28px,5vw,72px)}
#kn-app .kn-cover-copy{padding:24px 0}
#kn-app .kn-cover-num{font-size:12px;font-family:var(--sans);letter-spacing:.25em;color:var(--gold);display:flex;align-items:center;gap:16px;margin-bottom:22px}
#kn-app .kn-cover-num:before{content:'';height:1px;background:var(--gold);width:42px}
#kn-app .kn-cover h1{font-weight:400;line-height:1.4;font-size:clamp(32px,4.6vw,65px);letter-spacing:.14em;text-shadow:0 0 35px #ac76283d}
#kn-app .kn-who{display:block;font-size:.38em;letter-spacing:.2em;margin-bottom:12px;color:var(--muted)}
#kn-app .kn-cover-hook{font-size:clamp(16px,1.7vw,22px);line-height:1.9;margin-top:27px;color:#e4d6c0}
#kn-app .kn-cover-intro{font-size:14px;line-height:2.1;color:var(--muted);margin-top:18px;max-width:32em}
#kn-app .kn-cover-actions{margin:30px 0 16px;display:flex;gap:10px;flex-wrap:wrap}
#kn-app .kn-cover-art{padding:9px;border:1px solid var(--edge);position:relative;background:#13120f;box-shadow:0 22px 80px #0008}
#kn-app .kn-cover-art:before,#kn-app .kn-cover-art:after{content:'';position:absolute;z-index:2;width:26px;height:26px;border-color:var(--gold);border-style:solid;pointer-events:none}
#kn-app .kn-cover-art:before{left:-1px;top:-1px;border-width:2px 0 0 2px}#kn-app .kn-cover-art:after{right:-1px;bottom:-1px;border-width:0 2px 2px 0}
#kn-app .kn-cover-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
#kn-app .kn-cover-art figcaption{display:flex;justify-content:space-between;padding:12px 8px 3px;font:10px/1.5 var(--sans);color:var(--muted);letter-spacing:.15em}
#kn-app .kn-cover-note{border-top:1px solid #51452f;margin-top:42px;padding-top:18px;display:flex;justify-content:space-between;gap:16px;font:12px/1.8 var(--sans);color:var(--muted)}
#kn-app .kn-reading{max-width:1360px;margin:0 auto;padding:26px clamp(16px,3.3vw,52px) 12px;scroll-margin-top:12px}
#kn-app .kn-scene-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;font:12px/1.6 var(--sans);color:var(--muted)}
#kn-app .kn-progress{height:2px;background:#3d3529;margin-bottom:26px;overflow:hidden}
#kn-app .kn-progress-fill{height:100%;width:0;background:var(--gold);transition:width .35s}
#kn-app .kn-stage{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:clamp(28px,4.1vw,58px);min-height:460px}
#kn-app .kn-art-column{position:sticky;top:24px}
#kn-app .kn-media{aspect-ratio:3/2;width:100%;position:relative;background:#16140f;border:1px solid var(--edge);outline:1px solid #332b20;outline-offset:5px;overflow:hidden}
#kn-app .kn-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity 1.4s ease,filter 1.4s ease;filter:blur(2px)}
#kn-app .kn-media img.kn-visible{opacity:1;filter:blur(0)}
#kn-app .kn-media::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 30px #0003;border:5px solid #17130d22}
#kn-app .kn-image-error{position:absolute;inset:0;display:grid;place-content:center;padding:24px;text-align:center;font-size:14px;color:var(--muted)}
#kn-app .kn-art-nav{display:flex;align-items:center;justify-content:center;min-height:50px;gap:6px;margin-top:10px}
#kn-app .kn-dot{min-width:44px;padding:12px!important;min-height:44px;border:0!important;position:relative;background:transparent!important}
#kn-app .kn-dot::after{content:'';display:block;width:6px;height:6px;border-radius:50%;border:1px solid var(--gold);margin:auto}
#kn-app .kn-dot[aria-pressed=true]::after{background:var(--gold);box-shadow:0 0 8px #eec26b88}
#kn-app .kn-image-count{font:10px/1.5 var(--sans);color:var(--muted);margin-left:12px}
#kn-app .kn-art-title{color:#8d806c;font:11px/1.8 var(--sans);text-align:center;margin-top:2px}
#kn-app .kn-copy{padding:0 2px 16px;min-width:0}
#kn-app .kn-scene-title{font-size:clamp(23px,2.4vw,32px);font-weight:400;line-height:1.5;letter-spacing:.12em;margin:8px 0 26px}
#kn-app .kn-lines{font-size:var(--text-size);line-height:1.95;letter-spacing:.045em;overflow-wrap:anywhere}
#kn-app .kn-lines p{margin:0 0 .52em;animation:kn-line-enter .65s ease both;animation-delay:calc(min(var(--line),6)*.08s)}
#kn-app .kn-lines p.kn-dialogue{color:#f9edcf}
#kn-app .kn-lines .kn-verse{font-size:1.2em;letter-spacing:.18em;margin-left:1em}
#kn-app .kn-scene-actions{display:flex;flex-wrap:wrap;gap:7px;border-top:1px solid #413828;padding:17px 0 4px;margin-top:23px}
#kn-app .kn-scene-actions button{font-size:11px;min-height:40px;padding:8px 11px}
#kn-app .kn-controls{position:sticky;bottom:0;z-index:10;border-top:1px solid var(--edge);background:#141310f5;backdrop-filter:blur(16px);padding:12px clamp(16px,3.3vw,52px) max(12px,env(safe-area-inset-bottom));margin-top:24px}
#kn-app .kn-controls-inner{max-width:1256px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}
#kn-app .kn-transport{display:flex;gap:8px;align-items:center}
#kn-app .kn-transport .kn-next{min-width:130px}
#kn-app .kn-auto-wrap{display:flex;align-items:center;gap:12px}
#kn-app .kn-auto-info{font:11px/1.5 var(--sans);color:var(--muted);min-width:72px}
#kn-app .kn-timer{width:65px;height:2px;background:#443923;margin-top:7px;overflow:hidden}
#kn-app .kn-timer-fill{height:100%;background:var(--gold);width:0}
#kn-app .kn-bottom-notes{max-width:1256px;margin:26px auto 0;border-top:1px solid #3c3324;padding:20px 0 5px;display:flex;justify-content:space-between;align-items:center;gap:20px}
#kn-app .kn-cast-list{display:flex;gap:8px;flex-wrap:wrap}
#kn-app .kn-cast-button{border:0!important;padding:0!important;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px!important;background:transparent!important}
#kn-app .kn-cast-button img{width:32px;height:32px;border:1px solid var(--edge);border-radius:50%;object-fit:cover}
#kn-app .kn-footer{padding:27px 20px 30px;color:#a69a87;text-align:center;font:10px/1.8 var(--sans);letter-spacing:.1em}
#kn-app .kn-footer a{display:inline-block;padding:6px}
#kn-app dialog{background:#191813;color:var(--paper);border:1px solid var(--edge);border-radius:3px;padding:0;width:min(720px,calc(100% - 28px));max-height:85svh;box-shadow:0 24px 90px #000b;overflow:auto;letter-spacing:.03em}
#kn-app dialog::backdrop{background:#070807d9;backdrop-filter:blur(7px)}
#kn-app .kn-dialog-head{padding:20px 24px;position:sticky;top:0;background:#191813;z-index:2;border-bottom:1px solid var(--edge);display:flex;align-items:center;justify-content:space-between;gap:12px}
#kn-app .kn-dialog-head h2{font-size:20px;font-weight:400}#kn-app .kn-dialog-head button{border:0;font-size:17px}
#kn-app .kn-dialog-body{padding:22px 24px 28px}
#kn-app .kn-dialog-body p{margin-bottom:14px}
#kn-app .kn-dialog-intro{color:var(--muted);font:12px/1.8 var(--sans)}
#kn-app .kn-scene-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}
#kn-app .kn-scene-list button{display:flex;text-align:left;gap:12px;padding:12px;line-height:1.7;align-items:center}
#kn-app .kn-scene-list .kn-current{border-color:var(--gold);background:#30291e}
#kn-app .kn-number{font:12px/1.5 var(--sans);color:var(--gold);flex-shrink:0}
#kn-app .kn-index-options{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:18px;font:12px/1.8 var(--sans);color:var(--muted)}
#kn-app label{cursor:pointer}#kn-app input[type=checkbox]{accent-color:var(--gold);width:16px;height:16px;vertical-align:middle;margin-right:7px}
#kn-app .kn-setting{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid #3c3324;font-size:14px}
#kn-app select{background:#252219;border:1px solid var(--edge);padding:10px 30px 10px 10px;max-width:55%;min-height:44px;font:13px/1.5 var(--sans)}
#kn-app .kn-setting-help{color:var(--muted);font:12px/1.8 var(--sans);margin-top:22px}
#kn-app .kn-reading-time{color:var(--muted);font:11px/1.8 var(--sans)}
#kn-app .kn-chapter-links{display:grid;gap:14px;margin-top:15px}
#kn-app .kn-chapter-link{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:18px;padding:13px;border:1px solid var(--edge);border-radius:3px}
#kn-app .kn-chapter-link img{width:100px;aspect-ratio:3/2;object-fit:contain}
#kn-app .kn-chapter-link h3{font-size:18px;font-weight:400;line-height:1.7;margin:3px 0}
#kn-app .kn-chapter-link p{font:11px/1.7 var(--sans);color:var(--muted);margin:0}
#kn-app .kn-character-card img{width:100%;max-height:270px;object-fit:contain;margin-bottom:20px}
#kn-app .kn-character-reading{font:12px/1.8 var(--sans);color:var(--gold)}
#kn-app .kn-ending{max-width:920px;margin:0 auto;padding:70px 24px 40px;text-align:center}
#kn-app .kn-ending h2{font-size:clamp(29px,4vw,42px);font-weight:400;margin:18px 0}
#kn-app .kn-ending-line{font-size:19px;line-height:2;white-space:pre-line;margin:24px 0 38px}
#kn-app .kn-ending-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:45px}
#kn-app .kn-memory{padding:28px;border:1px solid var(--edge);text-align:left;margin:28px auto;max-width:640px}
#kn-app .kn-memory h3{font-size:19px;font-weight:400;margin-bottom:14px}
#kn-app .kn-memory p{font-size:14px;line-height:2;color:var(--muted)}
#kn-app .kn-memory ul{padding-left:1.2em;margin-top:15px}
#kn-app .kn-memory li{margin-bottom:12px;font-size:14px}
#kn-app .kn-copy-url{width:100%;padding:12px;font:12px/1.8 var(--sans);border:1px solid var(--edge);background:#111;color:var(--paper)}
#kn-app .kn-toast{position:fixed;z-index:100;bottom:100px;left:50%;transform:translateX(-50%);background:#f1e5cc;color:#241c10;padding:12px 20px;border-radius:3px;box-shadow:0 5px 20px #0005;max-width:min(90%,580px);font:13px/1.7 var(--sans);text-align:center;pointer-events:none}
#kn-app .kn-nojs{padding:24px;background:#282216;max-width:800px;margin:20px auto}
#kn-app .kn-nojs article{margin:40px 0}#kn-app .kn-nojs p{margin:10px 0}
#kn-app .kn-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#kn-app .kn-skip{position:absolute;top:0;left:12px;transform:translateY(-150%);z-index:100;background:#eee5d5;color:#19140c;padding:12px}
#kn-app .kn-skip:focus{transform:translateY(0)}
#kn-app[data-tone=quiet] .kn-media{border-color:#69634e}#kn-app[data-tone=water] .kn-media{border-color:#617579}#kn-app[data-tone=ember] .kn-media{border-color:#976747}#kn-app[data-tone=dawn] .kn-media{border-color:#b39563}
#kn-app[data-reduced=true] *,#kn-app[data-reduced=true] *::before,#kn-app[data-reduced=true] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@keyframes kn-line-enter{from{opacity:0;transform:translateY(6px);filter:blur(1px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@media(min-width:1600px){#kn-app .kn-cover{padding-top:88px;padding-bottom:55px}}
@media(max-width:940px){#kn-app .kn-header-title{display:none}#kn-app .kn-stage{grid-template-columns:1fr;gap:25px;max-width:720px;margin:auto}#kn-app .kn-art-column{position:relative;top:auto}#kn-app .kn-media{max-width:630px;margin:auto}#kn-app .kn-copy{max-width:40em;margin:auto;width:100%}#kn-app .kn-scene-title{margin-bottom:20px}#kn-app .kn-bottom-notes{max-width:720px}#kn-app .kn-cover-layout{grid-template-columns:.85fr 1fr;gap:28px}#kn-app .kn-cover h1{font-size:36px}}
@media(max-width:650px){#kn-app{--text-size:17px}#kn-app .kn-topbar{min-height:65px;gap:8px;padding:10px 15px}#kn-app .kn-brand{gap:8px}#kn-app .kn-brand-name{font-size:17px}#kn-app .kn-brand-sub{font-size:8px}#kn-app .kn-seal{width:29px;height:35px;font-size:14px}#kn-app .kn-topbar button{padding:9px 10px;font-size:11px}#kn-app .kn-cover{padding:24px 22px 18px}#kn-app .kn-cover-layout{display:flex;flex-direction:column;gap:26px;align-items:stretch}#kn-app .kn-cover-art{order:-1}#kn-app .kn-cover-copy{padding:0 4px}#kn-app .kn-cover-num{margin-bottom:12px}#kn-app .kn-cover h1{font-size:39px}#kn-app .kn-who{font-size:16px;margin-bottom:7px}#kn-app .kn-cover-hook{margin-top:18px;font-size:17px}#kn-app .kn-cover-intro{font-size:13px;margin-top:12px}#kn-app .kn-cover-actions{margin-top:22px}#kn-app .kn-cover-note{margin-top:28px;flex-direction:column;gap:6px;font-size:10px}#kn-app .kn-cover-art figcaption{font-size:9px}#kn-app .kn-reading{padding:18px 22px 0}#kn-app .kn-progress{margin-bottom:21px}#kn-app .kn-scene-meta{font-size:10px;gap:8px}#kn-app .kn-art-title{font-size:9px}#kn-app .kn-scene-title{font-size:25px;margin-top:5px}#kn-app .kn-stage{gap:20px;min-height:0}#kn-app .kn-lines{line-height:1.95;letter-spacing:.025em}#kn-app .kn-lines p{margin-bottom:.65em}#kn-app .kn-controls{padding:10px 12px max(10px,env(safe-area-inset-bottom));margin-top:15px}#kn-app .kn-controls-inner{gap:8px;flex-wrap:wrap}#kn-app .kn-transport{gap:7px;flex:1;justify-content:flex-end}#kn-app .kn-transport .kn-next{min-width:96px;padding:12px 17px}#kn-app .kn-controls button{font-size:12px;padding:10px 12px}#kn-app .kn-auto-wrap{gap:7px}#kn-app .kn-auto-info{display:none}#kn-app .kn-secondary-controls{display:none}#kn-app .kn-bottom-notes{flex-direction:column;align-items:flex-start;gap:15px}#kn-app .kn-cast-list{gap:14px}#kn-app .kn-dialog-body{padding:20px 18px}#kn-app .kn-dialog-head{padding:15px 18px}#kn-app .kn-scene-list{grid-template-columns:1fr}#kn-app .kn-ending{padding-top:48px}#kn-app .kn-ending-line{font-size:17px}#kn-app .kn-memory{padding:22px}#kn-app .kn-chapter-link{grid-template-columns:80px 1fr;gap:14px;padding:10px}#kn-app .kn-chapter-link img{width:80px}#kn-app .kn-chapter-link h3{font-size:16px}#kn-app .kn-footer{font-size:9px}}
@media(max-width:360px){#kn-app .kn-topbar{padding:8px 10px}#kn-app .kn-tools{gap:3px}#kn-app .kn-reading{padding-left:17px;padding-right:17px}#kn-app .kn-controls button{padding:10px 9px}#kn-app .kn-transport .kn-next{min-width:88px}#kn-app .kn-cover h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){#kn-app *,#kn-app *::before,#kn-app *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{#kn-app{background:white;color:black}#kn-app .kn-topbar,#kn-app .kn-controls,#kn-app .kn-footer,#kn-app .kn-scene-actions,#kn-app .kn-bottom-notes{display:none}#kn-app .kn-stage{display:block}#kn-app .kn-art-column{position:static;max-width:500px;margin-bottom:25px}#kn-app .kn-lines,#kn-app .kn-dialogue{color:black!important}#kn-app .kn-lines p{animation:none}}

#kn-app .kn-link-button{display:inline-block;min-height:44px;border-radius:3px;font:13px/1.5 var(--sans);letter-spacing:.04em;text-decoration:none;padding:15px 25px}#kn-app .kn-full-text{max-width:760px;margin:26px auto;padding:0 24px;color:var(--muted)}#kn-app .kn-full-text summary{cursor:pointer;font:12px/1.8 var(--sans);text-align:center;padding:14px}#kn-app .kn-full-text article{padding:28px 0;border-bottom:1px solid var(--edge);color:var(--paper)}#kn-app .kn-full-text h3{font-size:21px;font-weight:400;margin-bottom:18px}#kn-app .kn-full-text p{font-size:17px;line-height:2;margin-bottom:.6em}
