.haneda-page{--haneda-ink:#e5eaf0;--haneda-blue:#b9cfda;max-width:1080px;margin:auto;color:var(--haneda-ink)}
.haneda-breadcrumb{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 20px}.haneda-breadcrumb>span{font-size:10px;letter-spacing:.15em;color:#aab7c4}
.haneda-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);overflow:hidden;border:1px solid #a4bbcd36;border-radius:18px;background:radial-gradient(ellipse at 5% 10%,#4053626b,transparent 70%),#1b202b}
.haneda-hero-art{position:relative;background:#17202a;min-width:0;max-height:650px}.haneda-hero-art img{display:block;width:100%;height:100%;object-fit:contain}.haneda-hero-art>span{position:absolute;left:22px;bottom:22px;padding:6px 10px;background:#1a2336cf;color:#eef0f1;letter-spacing:.22em;font-size:11px}
.haneda-hero-copy{align-self:center;padding:42px 34px}.haneda-eyebrow{font-size:11px;letter-spacing:.13em;color:#adc2d0}.haneda-hero h1{font-family:var(--serif);font-size:clamp(28px,3.7vw,43px);line-height:1.65;font-weight:500;letter-spacing:.08em;margin:19px 0 24px}.haneda-hero-copy>p{font-size:14px;line-height:2.1;color:#b6c1cd}.haneda-hero-copy .haneda-hero-quote{color:#ebebe7;font-family:var(--serif);font-size:17px}
.haneda-story-facts{display:flex;flex-wrap:wrap;gap:8px 16px;margin:24px 0 16px;font-size:11px;color:#c7d3dd}.haneda-hero .button.primary{background:#b8cedb;color:#17202b;border-color:#b8cedb}.haneda-reading-note{display:block;margin-top:13px;font-size:11px;line-height:1.8;color:#acb9c6}
.haneda-mode-tabs{display:flex;gap:0;border-bottom:1px solid #a3b6c533;margin:28px 0 18px}.haneda-mode-tabs button{min-height:48px;padding:12px 18px;border:0;border-bottom:2px solid transparent;background:none;color:#8f9aab}.haneda-mode-tabs button.selected{border-color:#b6d0df;color:#e7edf2}.haneda-mode-note{color:#99a9b9;font-size:12px;line-height:1.9}
.haneda-game-status{display:flex;align-items:center;gap:24px;padding:23px;margin:22px 0;background:#202735;border-color:#a3bdd13d}.haneda-game-status>div{flex:1}.haneda-game-status h2{font-size:18px;line-height:1.6;margin:8px 0}.haneda-game-status p{line-height:1.9;font-size:13px}.haneda-game-status small{color:#b4c9d6}.haneda-game-status>.button{flex-shrink:0}
.haneda-chapter-list>header,.haneda-gallery>header{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:36px 0 16px}.haneda-chapter-list h2,.haneda-gallery h2{font-family:var(--serif);font-size:22px;font-weight:500;margin:8px 0}.haneda-chapter-list>header>span,.haneda-gallery>header>span{font-size:12px;white-space:nowrap;color:#afbfcb}
.haneda-chapter-list ol{padding:0;list-style:none;border-top:1px solid #a7bccc2e}.haneda-chapter{display:grid;grid-template-columns:35px 55px minmax(0,1fr) auto;align-items:center;gap:18px;padding:16px 2px;border-bottom:1px solid #a7bccc2e}.haneda-chapter-no{font-family:var(--serif);font-size:22px;color:#8eabc0}.haneda-chapter-thumb{height:70px;display:flex;align-items:center;justify-content:center;background:#27323f;border-radius:5px;color:#7290a4;overflow:hidden}.haneda-chapter-thumb img{width:100%;height:100%;object-fit:contain}.haneda-chapter h3{font-size:16px;line-height:1.6;font-weight:500;margin:4px 0}.haneda-chapter small,.haneda-chapter p{font-size:11px;line-height:1.6;color:#97a9b9;margin:0}.haneda-chapter.locked h3{color:#a2adb9}.haneda-chapter.current{background:#7da1bc0d}.haneda-chapter>.icon{color:#7e90a1;width:17px}
.haneda-epilogue-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:24px 12px;border-bottom:1px solid #a7bccc2e;font-size:13px}.haneda-epilogue-row>span:first-child{display:flex;gap:10px;align-items:center}.haneda-epilogue-row>span:nth-child(2){flex:1;color:#a4b6c6}.haneda-rebranch{font-size:12px;margin:18px 0}
.haneda-gallery-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.haneda-gallery-grid button{padding:0;border:1px solid #a3bdd138;border-radius:6px;background:#1b2330;aspect-ratio:2/3;overflow:hidden}.haneda-gallery-grid img{display:block;width:100%;height:100%;object-fit:contain}.haneda-gallery-empty{padding:30px 20px;text-align:center;color:#8496a8;font-size:13px;border:1px dashed #a3bdd12a;border-radius:10px}.haneda-colophon{text-align:center;color:#8798a8;font-size:11px;line-height:2;padding:36px 12px 10px}
.haneda-shortcut{display:flex;width:100%;align-items:center;gap:18px;padding:14px 20px;text-align:left;background:linear-gradient(105deg,#283748,#222432);border-color:#9dbbd340;margin:18px 0;overflow:hidden}.haneda-shortcut-portrait{display:block;width:62px;height:86px;flex-shrink:0;background:#1c2633;border-radius:5px;overflow:hidden}.haneda-shortcut img{display:block;width:100%;height:100%;object-fit:contain}.haneda-shortcut-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px}.haneda-shortcut-copy small{color:#a9c3d4;font-size:10px;letter-spacing:.1em}.haneda-shortcut-copy strong{font-family:var(--serif);font-weight:500;line-height:1.6;font-size:17px}.haneda-shortcut-copy>span{font-size:11px;color:#adb9c7}
.haneda-reservation,.haneda-receipt{border:1px solid #8eaeca50;border-radius:10px;background:#22314680;padding:15px 17px;margin:16px 0}.haneda-reservation>span,.haneda-receipt>span{display:flex;align-items:center;gap:8px;color:#aec8d9;font-size:11px;margin-bottom:8px}.haneda-reservation>strong,.haneda-receipt>strong{display:block;font-size:15px;line-height:1.7}.haneda-reservation p,.haneda-receipt p{font-size:12px;line-height:1.8}.haneda-reservation>small{display:block;color:#a4b4c4;line-height:1.8;font-size:11px}
/* Portrait originals remain intact. Text is a translucent, independently scrollable overlay. */
#narrative-stage .haneda-cinema{background:#101821}
#narrative-stage .haneda-cinema .narrative-shell{display:block;position:relative;max-width:1200px;height:100dvh;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at center,#2c3a49,#10151f)}
#narrative-stage .haneda-cinema .narrative-header{position:absolute;inset:0 0 auto;z-index:5;min-height:76px;display:flex;padding:calc(12px + env(safe-area-inset-top)) 24px 12px;background:linear-gradient(#17202bed,#17202bc9);border-bottom:1px solid #bed8e926;gap:12px}
#narrative-stage .haneda-cinema .narrative-header h1{font-size:18px;line-height:1.5;color:#eef0f1;font-weight:500}
#narrative-stage .haneda-cinema .narrative-header>div>span{font-size:10px;letter-spacing:.09em;color:#a5c1d5}
#narrative-stage .haneda-cinema .narrative-header-actions{gap:8px}.narrative-bookmark{display:flex;align-items:center;gap:5px;min-height:44px;white-space:nowrap}
#narrative-stage .haneda-cinema .cinema-image{position:absolute;inset:var(--scene-header,90px) 0 0;width:100%;height:auto;max-height:none;aspect-ratio:auto;background:transparent;border:0;border-radius:0}
#narrative-stage .haneda-cinema .cinema-image img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center;animation:none;transform:none}
#narrative-stage .haneda-cinema .narrative-scroll{position:absolute;inset:auto 0 0;z-index:3;display:block;width:auto;max-height:56%;padding:0 24px calc(82px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#12192540);overflow-y:auto;overscroll-behavior:contain;pointer-events:none}
#narrative-stage .haneda-cinema .rpg-text-window{position:relative;max-width:850px;width:100%;margin:0 auto;padding:18px 24px;border:1px solid #bad0e165;border-radius:12px;background:#18212be8;box-shadow:0 9px 35px #0b101a5c;backdrop-filter:blur(7px);pointer-events:auto;max-height:none}
#narrative-stage .haneda-cinema .rpg-text-window p{color:#f2f0ed;font-size:16px;line-height:1.85;margin:0}
#narrative-stage .haneda-cinema .rpg-text-window .rpg-scene-context{font-size:11px;color:#b5cfdd;margin-bottom:10px;letter-spacing:.025em}
#narrative-stage .haneda-cinema .rpg-name{font-size:13px;color:#adcddb;margin:0 0 8px}#narrative-stage .haneda-cinema .rpg-thought .rpg-name{color:#dec4d6}
#narrative-stage .haneda-cinema .narrative-footer{min-height:0;padding:0;margin:0;background:transparent;pointer-events:auto}
#narrative-stage .haneda-cinema .narrative-next{background:#b8cedb;border-color:#d0e1ec;color:#152332}
#narrative-stage .haneda-cinema .narrative-position{font-size:11px;color:#b8c8d5}
#narrative-stage .haneda-cinema.novel-choosing .narrative-scroll,#narrative-stage .haneda-cinema.novel-summary .narrative-scroll{inset:var(--scene-header,90px) 0 0;max-height:none;padding:24px 24px calc(92px + env(safe-area-inset-bottom));pointer-events:auto;background:#15202bee}
#narrative-stage .haneda-cinema .narrative-choice-intro{padding:14px 0 24px;color:#b7cbd9}
#narrative-stage .haneda-cinema .narrative-choices{max-width:720px;margin:0 auto}.haneda-cinema .narrative-choice{background:#283646}
#narrative-stage .haneda-cinema .narrative-summary{max-width:850px;margin:auto;padding:0 0 20px}
#narrative-stage .haneda-cinema.cinema-art-only .narrative-header,#narrative-stage .haneda-cinema.cinema-art-only .narrative-scroll{display:none}
#narrative-stage .haneda-cinema.cinema-art-only .cinema-image{inset:0}
.haneda-name-reveal{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);z-index:2;width:max-content;max-width:90%;font-family:var(--serif);font-size:clamp(26px,4vw,48px);letter-spacing:.3em;padding:18px 25px;background:#101823ec;border:1px solid #e2ebf258;color:#fff;box-shadow:0 15px 40px #060b14a1;pointer-events:none}
@media(max-width:700px){.haneda-hero{grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}.haneda-hero-copy{padding:24px 19px}.haneda-hero h1{font-size:25px;letter-spacing:.03em;margin:14px 0}.haneda-hero-copy>p{font-size:12px}.haneda-hero-copy .haneda-hero-quote{font-size:14px}.haneda-story-facts{gap:6px;font-size:10px}.haneda-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.haneda-game-status{flex-direction:column;align-items:stretch}.haneda-shortcut-copy strong{font-size:15px}}
@media(max-width:500px){.haneda-breadcrumb>span{font-size:8px;letter-spacing:.06em}.haneda-hero{grid-template-columns:1fr}.haneda-hero-art{height:320px;background:radial-gradient(ellipse,#405366,#202c39)}.haneda-hero-copy{padding:24px}.haneda-hero h1{font-size:31px;line-height:1.55}.haneda-hero-copy>p{font-size:13px}.haneda-hero-copy .haneda-hero-quote{font-size:16px}.haneda-story-facts{margin:18px 0;font-size:11px}.haneda-mode-tabs button{flex:1;padding:12px 8px;font-size:12px}.haneda-chapter{grid-template-columns:24px 42px minmax(0,1fr) 40px;gap:10px;padding:14px 0}.haneda-chapter h3{font-size:14px}.haneda-chapter-no{font-size:19px}.haneda-chapter-thumb{height:60px}.haneda-chapter .button.quiet{font-size:11px;min-width:0;padding:8px 2px;gap:1px;flex-direction:column}.haneda-chapter .button .icon{width:15px;height:15px}.haneda-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.haneda-gallery h2,.haneda-chapter-list h2{font-size:20px}.haneda-shortcut{padding:12px;gap:12px}.haneda-shortcut-portrait{width:49px;height:70px}}
@media(max-width:700px){#narrative-stage .haneda-cinema .narrative-header{padding:calc(9px + env(safe-area-inset-top)) 12px 9px;flex-wrap:wrap;gap:2px}#narrative-stage .haneda-cinema .narrative-header>div:first-child{flex:1 0 100%}#narrative-stage .haneda-cinema .narrative-header h1{font-size:16px;margin:3px 0}#narrative-stage .haneda-cinema .narrative-header-actions{width:100%;justify-content:flex-end;gap:6px}#narrative-stage .haneda-cinema .narrative-bookmark{margin-right:auto}#narrative-stage .haneda-cinema .narrative-header-actions .icon-button{min-height:40px;min-width:40px;width:40px;height:40px}#narrative-stage .haneda-cinema .narrative-scroll{max-height:49%;padding:0 12px calc(78px + env(safe-area-inset-bottom))}#narrative-stage .haneda-cinema .rpg-text-window{padding:14px 16px}#narrative-stage .haneda-cinema .rpg-text-window p{font-size:15px;line-height:1.8}#narrative-stage .haneda-cinema.novel-choosing .narrative-scroll,#narrative-stage .haneda-cinema.novel-summary .narrative-scroll{padding:16px 16px calc(86px + env(safe-area-inset-bottom))}}
@media(max-height:540px) and (orientation:landscape){#narrative-stage .haneda-cinema .narrative-header{flex-wrap:nowrap;padding:8px 18px;min-height:65px}#narrative-stage .haneda-cinema .narrative-header>div:first-child{flex:1}#narrative-stage .haneda-cinema .narrative-header-actions{width:auto}#narrative-stage .haneda-cinema:not(.cinema-art-only) .cinema-image{right:51%}#narrative-stage .haneda-cinema .narrative-scroll{left:49%;top:calc(var(--scene-header,76px) + 8px);max-height:none;padding:0 16px 78px}#narrative-stage .haneda-cinema .rpg-text-window{padding:12px}#narrative-stage .haneda-cinema .rpg-text-window p{font-size:14px;line-height:1.7}#narrative-stage .haneda-cinema.novel-choosing .narrative-scroll,#narrative-stage .haneda-cinema.novel-summary .narrative-scroll{left:0}.haneda-name-reveal{left:24%;font-size:23px}}
