/* @why 2026-10-12: Respect supplied line breaks and center punctuation independently of font glyph metrics. */
[hidden]{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.header-actions{display:flex;align-items:center;gap:32px}
.language-switch{display:flex;gap:4px;padding-left:20px;border-left:1px solid var(--line);white-space:nowrap}
.language-switch button{appearance:none;border:0;background:none;color:var(--muted);font:inherit;font-size:10px;letter-spacing:.06em;min-width:30px;min-height:36px;padding:6px;cursor:pointer;border-bottom:1px solid transparent}
.language-switch button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--ink)}
button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.hero-writing{height:460px;gap:26px}
.hero-writing h1{font-size:clamp(28px,2.8vw,35px);line-height:1.85;letter-spacing:.06em}
.about-prose{height:485px;font-size:16px;line-height:2.35;letter-spacing:.06em;gap:30px}
.about-prose p{white-space:nowrap}
.locale-pending{align-self:center;font-family:var(--serif)}
.locale-pending h1{font-size:34px;line-height:1.4;margin-top:24px}
.locale-pending>p:not(.small-label){font-size:14px;line-height:1.9;margin-top:20px}
.locale-pending .button{margin-top:30px;background:none;font-family:var(--sans);cursor:pointer;gap:20px;font-size:11px;text-align:left}
.locale-pending .button:hover{background:var(--ink);color:var(--paper)}
.festival-credit{display:block;margin-top:12px;padding-left:10px;border-left:2px solid var(--accent);font-size:10px;line-height:1.8;color:var(--accent);letter-spacing:.03em}
.work-image-note{font-size:8px;color:var(--muted);margin-top:7px}
@media(max-width:1050px){.header-actions{gap:20px}.header nav{gap:18px}.language-switch{padding-left:12px}.hero-writing{height:420px}.hero-writing h1{font-size:31px}.about-layout{gap:30px}.about-prose{font-size:14px;height:415px;gap:22px}.feature-caption{gap:22px}.feature-caption>p{font-size:22px}}
@media(max-width:800px) and (min-width:701px){.header nav{gap:12px;font-size:10px}.header-actions{gap:14px}.nav-contact{display:none}}
@media(max-width:700px){.header{display:grid;grid-template-columns:1fr auto;gap:15px 12px;align-items:center}.header-actions{display:contents}.header nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;max-width:none;gap:22px;font-size:10px}.language-switch{grid-column:2;grid-row:1;padding-left:0;border:0;gap:2px}.language-switch button{min-width:27px;font-size:10px;padding:5px}.hero-writing{height:355px;gap:22px}.hero-writing h1{font-size:27px;line-height:1.8;letter-spacing:.04em}.hero-layout{padding-top:23px}.about-prose{height:365px;font-size:12px;line-height:2.3;letter-spacing:.02em;gap:22px}.feature-caption{gap:18px}.feature-caption>p{font-size:20px;letter-spacing:.05em}.small-label{font-size:7px}.locale-pending{min-height:230px;width:100%;padding:28px 10px}.locale-pending h1{font-size:30px}.festival-credit{font-size:9px;padding-left:8px}.identity>p{font-size:9px}}
@media(max-width:360px){.header nav{gap:18px}.hero-writing h1{font-size:26px}.hero-writing{height:345px}.about-prose{font-size:11px;height:350px;gap:16px}.feature-caption{flex-direction:column;gap:9px}.feature-caption>p{font-size:21px}}
/* @why 2026-10-12: Center character cells and middle dots; full stops retain native vertical placement. */
.hero-writing #hero-title{writing-mode:horizontal-tb;display:flex;flex-direction:row-reverse;gap:.85em;line-height:1;letter-spacing:0;font-feature-settings:normal;font-kerning:none;text-orientation:upright}
.hero-title-line{display:flex;flex-direction:column;align-items:center}
.hero-roles{writing-mode:horizontal-tb;display:flex;flex-direction:column;align-items:center;gap:.16em;line-height:1;letter-spacing:0;font-feature-settings:normal;font-kerning:none}
.hero-glyph{position:relative;display:grid;place-items:center;flex:none;width:1em;height:1.06em;line-height:1;writing-mode:horizontal-tb;text-align:center;font-feature-settings:normal;letter-spacing:0}
.hero-roles .hero-glyph{height:1em}
.hero-glyph.is-dot{color:transparent}
.hero-glyph.is-dot::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%}
.hero-glyph.is-dot::before{width:.18em;height:.18em;background:var(--muted)}
/* @why 2026-10-12: Full stops use normal Japanese vertical punctuation, not centered circles. */
.hero-glyph.is-stop{display:block;writing-mode:vertical-rl;text-orientation:mixed;text-align:start;color:var(--ink)}
/* @why 2026-10-12: Equal-sized horizontal glyph cells must retain the native vertical form of ー. */
.hero-glyph.is-long-vowel{writing-mode:vertical-rl;text-orientation:mixed}
.film-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,1fr);gap:76px;align-items:center}
.film-script{margin:0}.film-script img{width:100%;height:auto;background:white}.film-script figcaption{font-size:9px;color:var(--muted);margin-top:12px}
.film-story h2{font-family:var(--serif);font-size:38px;letter-spacing:.12em;margin-top:18px}
.film-festival{margin-top:28px;padding:4px 0 4px 18px;border-left:2px solid var(--accent);color:var(--accent);font-family:var(--serif);font-size:19px;line-height:1.9;letter-spacing:.06em}
.film-description{margin-top:28px;font-size:13px;line-height:2.1}.film-story .text-link{margin-top:28px}
@media(max-width:1050px){.film-layout{gap:40px}.film-story h2{font-size:33px}.film-festival{font-size:17px}}
@media(max-width:700px){.film-layout{grid-template-columns:1fr;gap:30px}.film-story h2{font-size:30px}.film-festival{font-size:18px;margin-top:20px;padding-left:14px}.film-description{font-size:12px;margin-top:22px}.film-story .text-link{margin-top:22px}}
/* @why 2026-10-12: Supplied book art belongs between the identity and author's introduction. */
.about-layout{display:grid;grid-template-columns:minmax(185px,.8fr) minmax(220px,1fr) auto;gap:28px}
.profile-book{margin:0;width:100%;align-self:center}.profile-book img{width:100%;height:auto}.profile-book figcaption{padding-top:17px}.profile-book h3{font-family:var(--serif);font-size:23px;margin-top:5px;letter-spacing:.08em}.profile-book figcaption>p{font-size:10px;margin-top:6px;color:var(--muted)}.profile-book figcaption a{margin-left:15px;border-bottom:1px solid var(--line)}
.film-script figcaption span{display:inline-block;margin-left:12px}
.contact-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:75px;align-items:start}
.contact-intro{font-size:13px;line-height:2.1;margin-top:24px}.contact-email{font-size:12px;display:inline-block;margin-top:20px;border-bottom:1px solid currentColor;overflow-wrap:anywhere}
.contact-form{min-width:0;padding-top:10px}.form-row{margin-bottom:19px}.form-row label{display:flex;align-items:center;gap:12px;font-size:12px;margin-bottom:7px}.form-row label span{font-size:8px;color:var(--accent);letter-spacing:.06em}
.form-row input,.form-row textarea{width:100%;border:1px solid #bfc1b7;background:#f7f6f1;color:var(--ink);padding:12px 13px;border-radius:0;font:inherit;font-size:14px;line-height:1.7;box-shadow:none;appearance:none}.form-row textarea{resize:vertical;min-height:155px}.form-row input:focus,.form-row textarea:focus{outline:2px solid var(--accent);outline-offset:2px}
.form-privacy{font-size:10px;line-height:1.9;color:var(--muted);margin:4px 0 22px}.contact-form .button{font:inherit;font-size:12px;cursor:pointer}.form-status{font-size:12px;line-height:1.9;margin-top:16px}.form-status:empty{display:none}
.audio-heading{padding-top:70px;margin-top:55px;border-top:1px solid var(--line)}.audio-heading h2{font-family:var(--serif);font-size:31px;letter-spacing:.08em;margin-top:13px}.circle-collection{margin-top:42px}.circle-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:26px}.circle-heading h3{font-family:var(--serif);font-size:24px;letter-spacing:.07em}.work-link{display:block}.dlsite-card h3{font-size:15px;line-height:1.8}.work-context{display:inline-block;font-size:10px;color:var(--muted);border-bottom:1px solid var(--line);margin-top:10px}
.thanks-page{min-height:75vh;display:flex;flex-direction:column;justify-content:center;gap:24px;align-items:flex-start}.thanks-page h1{font-family:var(--serif);font-size:34px;line-height:1.7}.thanks-page p{font-size:14px;line-height:2}
@media(max-width:1099px) and (min-width:701px){.about-layout{grid-template-columns:minmax(185px,.8fr) minmax(250px,1.2fr);gap:40px}.profile-book{max-width:360px;justify-self:center}.about-prose{grid-column:1/-1;justify-self:end}.contact-layout{gap:45px}}
@media(max-width:700px){.about-layout{display:flex;gap:35px;align-items:stretch}.profile-book{width:min(100%,340px);align-self:center}.profile-book h3{font-size:22px}.contact-layout{grid-template-columns:1fr;gap:34px}.contact-intro{font-size:12px}.contact-form{padding-top:0}.form-row input,.form-row textarea{font-size:16px}.circle-heading{align-items:flex-start;gap:15px}.circle-heading h3{font-size:21px}.circle-heading .text-link{font-size:9px;gap:7px}.audio-heading{padding-top:42px;margin-top:42px}.audio-heading h2{font-size:27px}.circle-collection{margin-top:32px}.dlsite-card h3{font-size:13px;line-height:1.8}.thanks-page h1{font-size:28px}}
.manuscript-dialog{padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink);width:94vw;max-width:1600px;height:90vh;max-height:90vh;margin:auto}.manuscript-dialog[open]{display:flex;flex-direction:column}.manuscript-dialog::backdrop{background:#171a18b8}.manuscript-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 20px;border-bottom:1px solid var(--line);flex:none}.manuscript-toolbar p{font-family:var(--serif);font-size:16px}.manuscript-toolbar button{border:0;background:transparent;font:inherit;font-size:12px;padding:9px;cursor:pointer}.manuscript-scroll{overflow:auto;min-height:0;flex:1;background:white}.manuscript-scroll img{width:1600px;max-width:none;height:auto}
/* @why 2026-10-12: Complete titles need readable space on small screens; extra rows are requested. */
@media(max-width:480px){.works-grid{grid-template-columns:1fr;row-gap:36px}.dlsite-card h3{font-size:15px}.work-kind{font-size:10px}}
/* @why 2026-10-12: Confirmed ranking achievements receive a restrained gold highlight. */
.work-ranking{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:5px 10px;margin:11px 0 10px;padding:5px 11px;background:#eee5d3;color:#76551d;border-left:3px solid #b5934b;max-width:100%;line-height:1.6;letter-spacing:.035em}
.work-ranking span{font-size:10px}.work-ranking strong{font-family:var(--serif);font-size:18px;font-weight:600;white-space:nowrap}
.work-ranking.has-multiple{display:flex;gap:3px 14px;padding:7px 11px}.work-ranking .ranking-label{flex-basis:100%;font-size:9px;letter-spacing:.07em}.work-ranking .ranking-result{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
/* @why 2026-10-12: English and Simplified Chinese need natural horizontal text flow. */
.hero-localized{align-self:center;min-width:0}.localized-roles{font-size:10px;line-height:1.9;color:var(--muted);letter-spacing:.06em;margin-bottom:25px}.hero-localized h1{font-family:var(--serif);font-size:clamp(28px,2.65vw,35px);line-height:1.5;letter-spacing:0;font-weight:500;overflow-wrap:break-word}
.original-title,.original-title-note{display:none}
html:not([lang="ja"]) .original-title{display:block;font-family:var(--sans);font-size:10px;line-height:1.8;letter-spacing:0;color:var(--muted);margin-top:9px;overflow-wrap:anywhere}
html:not([lang="ja"]) .original-title-note{display:block;font-size:10px;line-height:1.8;color:var(--muted);margin:-16px 0 30px}
html:not([lang="ja"]) .header nav{gap:21px;font-size:11px}
html:not([lang="ja"]) .hero-layout{grid-template-columns:minmax(0,1fr) 320px;gap:45px}
html:not([lang="ja"]) .art-caption{flex-wrap:wrap}
html:not([lang="ja"]) .feature-writing{display:block;height:auto;min-width:0}
html:not([lang="ja"]) .feature-writing .vertical{writing-mode:horizontal-tb;text-orientation:mixed;height:auto;white-space:normal}
html:not([lang="ja"]) .feature-desc{font-size:12px;line-height:1.9;letter-spacing:.02em;margin-bottom:23px}
html:not([lang="ja"]) .feature-writing h2{font-size:30px;line-height:1.5;letter-spacing:0;overflow-wrap:break-word}
html:not([lang="ja"]) .about-layout{grid-template-columns:minmax(175px,.8fr) minmax(220px,1fr) minmax(270px,1.1fr)}
html:not([lang="ja"]) .about-prose{writing-mode:horizontal-tb;display:flex;flex-direction:column;height:auto;min-width:0;font-family:var(--sans);font-size:14px;line-height:2;letter-spacing:0;gap:22px;padding:0}
html:not([lang="ja"]) .about-prose p{white-space:normal}
html:not([lang="ja"]) .work h3{letter-spacing:0;overflow-wrap:break-word}
html:not([lang="ja"]) .contact h2{font-size:34px;line-height:1.45;letter-spacing:0}
html[lang="zh-Hans"]{--serif:"Songti SC","SimSun","Noto Serif CJK SC",serif;--sans:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif}
html[lang="zh-Hans"] [lang="ja"]{font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif}
@media(max-width:1099px) and (min-width:701px){html:not([lang="ja"]) .header{gap:20px}html:not([lang="ja"]) .header nav{gap:13px;font-size:10px}html:not([lang="ja"]) .hero-layout{grid-template-columns:minmax(0,1fr) 265px;gap:30px}html:not([lang="ja"]) .about-layout{grid-template-columns:1fr 1fr}html:not([lang="ja"]) .about-prose{grid-column:1/-1;justify-self:stretch;max-width:760px}.hero-localized h1{font-size:28px}}
@media(max-width:700px){.language-switch button{min-width:29px}.language-switch button[data-language="zh-Hans"]{font-size:9px;padding-inline:3px}html:not([lang="ja"]) .header nav{gap:20px;flex-wrap:wrap}html:not([lang="ja"]) .hero-layout{display:flex;gap:25px}.hero-localized{width:100%;padding:12px 0 20px}.hero-localized h1{font-size:30px;line-height:1.45;max-width:440px}.localized-roles{margin-bottom:17px}html:not([lang="ja"]) .feature-writing h2{font-size:28px}html:not([lang="ja"]) .feature-caption{align-items:flex-start}html:not([lang="ja"]) .feature-caption>p{font-size:20px;letter-spacing:0}html:not([lang="ja"]) .about-layout{display:flex}html:not([lang="ja"]) .about-prose{width:100%;font-size:13px;gap:20px}html:not([lang="ja"]) .contact h2{font-size:30px}html:not([lang="ja"]) .work-ranking.has-multiple{gap:3px 11px}}
