.reader-shell{--measure-ja:calc(36 * var(--text-md));--surface-veil:color-mix(in srgb, var(--surface-page) 88%, transparent);height:100dvh;display:flex;flex-direction:column;overflow:hidden}.topbar{flex:none;box-sizing:border-box;height:calc(50px + env(safe-area-inset-top));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:env(safe-area-inset-top) calc(14px + env(safe-area-inset-right)) 0 calc(14px + env(safe-area-inset-left));background:var(--surface-veil);backdrop-filter:var(--blur-panel);border-bottom:var(--border-hair) solid var(--border)}.topbar .back{justify-self:start;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-secondary);text-decoration:none}.topbar .center{justify-self:center;font-family:var(--font-mincho);font-weight:600;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.topbar .center .a{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-muted);margin-inline-start:8px}.topbar .right{justify-self:end;display:flex;align-items:center;gap:12px;white-space:nowrap}@media(max-width:599px){.topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:10px}.topbar .center .a{display:none}.topbar .right{gap:8px}}.seg{display:inline-flex;border:var(--border-hair) solid var(--border);border-radius:var(--radius-sm)}.seg button{font-family:var(--font-sans);font-size:var(--text-xs);padding:5px 11px;background:var(--surface-card);color:var(--text-tertiary);border:none;cursor:pointer}.seg button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.seg button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.seg button+button{border-inline-start:var(--border-hair) solid var(--border)}.seg button[aria-pressed=true]{background:var(--ink-900);color:var(--text-on-ink)}.seg button:active,.shiori .pgctl button:active{background:color-mix(in srgb,var(--surface-card) 90%,var(--ink-900))}.seg button[aria-pressed=true]:active{background:var(--ink-900)}@media(max-width:979px){.seg button,.shiori .pgctl button{position:relative}.seg button:after,.shiori .pgctl button:after{content:"";position:absolute;left:50%;top:50%;width:max(100%,var(--touch-min));height:max(100%,var(--touch-min));transform:translate(-50%,-50%)}}.reader{position:relative;flex:1;min-height:0}.reader-root{height:100%;min-width:0;min-height:0}.rail{display:none}.chapter{display:contents}.ptext{font-family:var(--font-reading);color:var(--text-secondary);font-size:var(--text-md);text-indent:1em;overflow-wrap:break-word}.mode-v .ptext{line-height:2}.mode-h .ptext{line-height:var(--leading-relaxed)}.phead,.chead{font-family:var(--font-mincho);color:var(--text-primary);font-weight:700}.mode-v .chead{font-size:var(--text-xl);margin:0 0 0 1.4em;inline-size:100%}.mode-h .chead{font-size:var(--text-2xl);margin:36px 0 18px;border-bottom:var(--border-thick) solid var(--rule);padding-bottom:10px}.colophon{writing-mode:horizontal-tb;font-family:var(--font-sans);color:var(--text-muted);font-size:var(--text-2xs);line-height:1.7;box-sizing:border-box}.colophon .lbl{font-family:var(--font-label);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px}.colophon p{margin:0 0 4px}.colophon a{color:var(--text-link);word-break:break-all}.colophon .note{color:var(--text-tertiary);margin-top:8px}.mode-v .colophon{width:20em;height:100%;margin:0 2em;padding:24px 0;display:flex;flex-direction:column;justify-content:center;border-inline-start:var(--border-thick) solid var(--rule);padding-inline-start:20px}.mode-h .colophon{max-width:var(--measure-ja);border-top:var(--border-thick) solid var(--rule);margin:48px auto 0;padding-top:20px}.note-mark{font-family:var(--font-mono);font-size:.6em;font-weight:700;color:var(--accent);cursor:pointer;vertical-align:super;padding:0 .12em}.note-mark:before{content:"註"}.interlude .lbl{font-family:var(--font-label);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-tertiary);margin-bottom:8px}.interlude .q .lbl{color:var(--accent)}.interlude p{font-family:var(--font-mincho);color:var(--text-secondary);margin:0}.interlude .m .lbl{color:var(--text-tertiary)}.interlude .cm{font-family:var(--font-mincho);color:var(--text-secondary);margin:0;cursor:pointer}.interlude .cmadd{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-tertiary);background:var(--surface-card);border:var(--border-hair) solid var(--border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);cursor:pointer}.mode-v .pager{writing-mode:vertical-rl;height:100%;width:100%;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth}.mode-v .flow{inline-size:min(100%,42em);margin-inline:auto;font-size:var(--text-md);padding:24px 28px;box-sizing:border-box}.mode-v .ptext,.mode-v .phead{margin:0 0 0 1.4em;inline-size:100%}.mode-v .interlude{display:inline-flex;gap:1.6em;border-inline:var(--border-thick) solid var(--rule);padding:2px 20px;margin:0 0 0 1.4em;inline-size:100%;box-sizing:border-box;align-items:center}.mode-v .interlude p{max-inline-size:100%}.mode-v .interlude .blk.m{writing-mode:horizontal-tb;text-align:start}.mode-h .pager{height:100%;overflow-y:auto;overflow-x:hidden}.mode-h .flow{max-width:var(--measure-ja);margin:0 auto;padding:36px 24px}.mode-h .phead{font-size:var(--text-xl);margin:28px 0 12px}.mode-h .ptext{margin:0 0 20px}.mode-h .interlude{border-block:var(--border-thick) solid var(--rule);padding:22px 0;margin:14px 0}.mode-h .interlude .blk+.blk{margin-top:16px}.shiori{flex:none;box-sizing:border-box;height:calc(42px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:14px;padding:0 calc(16px + env(safe-area-inset-right)) env(safe-area-inset-bottom) calc(16px + env(safe-area-inset-left));background:var(--surface-veil);backdrop-filter:var(--blur-panel);border-top:var(--border-hair) solid var(--border)}.shiori .mark{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-tertiary)}.shiori .mark b{color:var(--accent)}.shiori .pgctl{margin-inline-start:auto;display:flex;gap:6px}.shiori .pgctl button{font-family:var(--font-serif);font-size:18px;line-height:1;border:var(--border-hair) solid var(--border);background:var(--surface-card);border-radius:var(--radius-sm);cursor:pointer;padding:2px 12px;color:var(--text-secondary)}.scrim{position:fixed;inset:0;background:var(--overlay-scrim);opacity:0;visibility:hidden;transition:opacity var(--dur-base),visibility var(--dur-base);z-index:var(--z-overlay)}.scrim.on{opacity:1;visibility:visible}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:calc(var(--z-overlay) + 1);background:var(--surface-card);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-top:1px solid var(--accent-border);box-shadow:var(--shadow-pop);padding:10px 20px 26px;transform:translateY(110%);transition:transform var(--dur-base) var(--ease-out)}.sheet.on{transform:translateY(0)}.sheet .grab{width:38px;height:4px;border-radius:2px;background:var(--ink-200);margin:4px auto 14px}.sheet .nh{display:flex;align-items:baseline;gap:9px;margin-bottom:9px}.sheet .nn{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;color:var(--accent)}.sheet .nt{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:600}.sheet .nb{font-family:var(--font-mincho);font-size:var(--text-md);line-height:1.85;color:var(--text-secondary);margin:0 0 13px}.sheet .src{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted);border-top:var(--border-hair) solid var(--border);padding-top:10px}.sheet.memo .memo-input{width:100%;box-sizing:border-box;font-family:var(--font-mincho);font-size:var(--text-md);line-height:1.85;color:var(--text-primary);background:var(--surface-page);border:var(--border-hair) solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);resize:vertical}.sheet.memo .memo-input:focus-visible{outline:var(--border-thick) solid var(--accent-border);outline-offset:0}.sheet.memo .memo-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3)}.sheet.memo .memo-actions button{font-family:var(--font-sans);font-size:var(--text-sm);padding:var(--space-1) var(--space-4);border-radius:var(--radius-sm);cursor:pointer}.sheet.memo .msave{background:var(--ink-900);color:var(--text-on-ink);border:var(--border-hair) solid var(--ink-900)}.sheet.memo .msave:disabled{opacity:.4;cursor:default}.sheet.memo .mdel{background:var(--surface-card);color:var(--text-tertiary);border:var(--border-hair) solid var(--border)}@media(min-width:980px){.topbar{height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) calc(22px + env(safe-area-inset-right)) 0 calc(22px + env(safe-area-inset-left))}.reader{display:grid;grid-template-columns:300px 1fr;grid-template-rows:minmax(0,1fr)}.rail{display:flex;flex-direction:column;order:-1;border-inline-end:var(--border-hair) solid var(--border);background:var(--surface-card);padding:26px 22px;overflow:auto}.rail .rlabel{font-family:var(--font-label);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary);margin-bottom:18px}.rail .rnote{border-bottom:var(--border-hair) solid var(--border);padding-bottom:16px;margin-bottom:16px;cursor:pointer}.rail .rnote:last-child{border-bottom:none}.rail .rhead{display:flex;align-items:baseline;gap:8px;margin-bottom:7px}.rail .rnn{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;color:var(--accent)}.rail .rnt{font-family:var(--font-serif);font-size:var(--text-md);font-weight:600}.rail .rnb{font-family:var(--font-mincho);font-size:var(--text-sm);line-height:1.8;color:var(--text-secondary);margin:0 0 8px}.rail .rsrc{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted)}}.highlight{background:var(--warning-soft);border-radius:1px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.highlight.has-memo{text-decoration-line:underline;text-decoration-color:var(--warning);text-decoration-thickness:.12em;text-underline-offset:.16em;text-decoration-skip-ink:none;cursor:pointer}.hlbar{position:fixed;z-index:var(--z-modal);display:flex;gap:4px;background:var(--ink-900);border-radius:var(--radius-sm);padding:4px;box-shadow:var(--shadow-pop)}.hlbar button{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-on-ink);background:none;border:none;padding:4px 10px;cursor:pointer}.resume-scrim{position:fixed;inset:0;z-index:var(--z-modal);background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.resume-card{writing-mode:horizontal-tb;background:var(--surface-card);border-block:var(--border-rule) solid var(--rule);border-inline:var(--border-hair) solid var(--border);max-width:30rem;width:100%;max-height:80dvh;overflow-y:auto;padding:var(--space-5) var(--space-6);box-sizing:border-box}.resume-card .rlbl{font-family:var(--font-label);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-3)}.resume-card .rsub{font-family:var(--font-label);font-size:var(--text-2xs);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-tertiary);margin:var(--space-3) 0 var(--space-1)}.resume-card .rsum{font-family:var(--font-mincho);font-size:var(--text-md);line-height:1.85;color:var(--text-secondary);margin:0}.resume-card .rm{font-family:var(--font-mincho);font-size:var(--text-sm);line-height:1.8;color:var(--text-secondary);margin:0 0 var(--space-1);padding-inline-start:var(--space-3);border-inline-start:var(--border-thick) solid var(--rule)}.resume-card .rgo{display:block;width:100%;margin-top:var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);padding:var(--space-2) var(--space-4);background:var(--ink-900);color:var(--text-on-ink);border:none;border-radius:var(--radius-sm);cursor:pointer}.ptext,.interlude p,.interlude .cm,.resume-card .rsum,.resume-card .rm,.sheet .nb{text-align:justify;text-justify:inter-character;line-break:strict}.ptext{hanging-punctuation:allow-end}@media(max-width:22em){.ptext,.interlude p,.interlude .cm,.resume-card .rsum,.resume-card .rm,.sheet .nb{text-align:start}}.reader-root ::selection{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--text-primary)}
