*, *::before, *::after {box-sizing:border-box;margin:0;padding:0}
html {scroll-behavior:smooth}
body {background:#121212;color:#d8d4cf;font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP","Source Han Serif SC",serif;font-size:13px;line-height:1.45;letter-spacing:.02em}
img, video {display:block;max-width:100%;height:auto}
a {color:inherit;text-decoration:none}
button {font:inherit;cursor:pointer;border:none;background:none;color:inherit}
header {position:sticky;top:0;z-index:100;background:rgba(18,18,18,.92);backdrop-filter:blur(4px);border-bottom:1px solid #2a2a2a;padding:10px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
a[data-contract="site-name"] {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:1.5rem;font-weight:700;letter-spacing:.1em;color:#e8e4df;text-decoration:none;border-right:1px solid #8a1f2d;padding-right:16px;margin-right:4px}
a[data-contract="site-name"]:hover {color:#c9a87c}
.categories-bar {display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;flex:1;min-width:0;padding-bottom:2px;scrollbar-width:thin;scrollbar-color:#3a3a3a transparent}
.categories-bar::-webkit-scrollbar {height:3px}
.categories-bar::-webkit-scrollbar-thumb {background:#3a3a3a;border-radius:2px}
.categories-bar .runtime-category {flex:0 0 auto;white-space:nowrap;font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.75rem;padding:4px 10px;border:1px solid #2a2a2a;border-radius:14px;color:#b8b4af;text-decoration:none;transition:all .2s}
.categories-bar .runtime-category:hover {color:#e8e4df;border-color:#8a1f2d;background:#1a1a1a}
.categories-bar .runtime-category:active {color:#c9a87c;border-color:#c9a87c}
main {max-width:1440px;margin:0 auto;padding:0 16px}
.hero-visual {position:relative;padding:24px 0 8px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
.hero-visual::before {content:"";position:absolute;inset:8px 0 0;background:repeating-linear-gradient(90deg,#1a1a1a 0 2px,#161616 2px 4px),repeating-linear-gradient(0deg,#1a1a1a 0 2px,#161616 2px 4px);opacity:.4;pointer-events:none;z-index:0}
.hero-visual>* {position:relative;z-index:1}
.movie-overview {background:#1a1a1a;border:1px solid #2a2a2a;border-radius:8px;padding:16px;display:grid;grid-template-columns:160px minmax(0,1fr);grid-template-rows:auto auto auto auto auto;gap:10px 16px;position:relative;box-shadow:0 2px 12px rgba(0,0,0,.4)}
.movie-overview::after {content:"";position:absolute;top:0;left:50%;width:1px;height:100%;background:linear-gradient(180deg,transparent,#8a1f2d55 20%,#8a1f2d55 80%,transparent);pointer-events:none}
.poster-media {grid-column:1;grid-row:1 / span 2;align-self:start}
.main-poster-img {width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:4px;border:1px solid #2a2a2a;background:#222}
.title-tagline {grid-column:2;grid-row:1;align-self:end;padding-bottom:4px;border-bottom:2px solid #8a1f2d}
.title-tagline h1 {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:1.7rem;font-weight:800;letter-spacing:.06em;color:#e8e4df;line-height:1.2;text-shadow:0 0 20px rgba(138,31,45,.4)}
.tagline {font-size:.85rem;color:#8a1f2d;margin-top:4px;letter-spacing:.12em;font-style:italic}
.cast-section {grid-column:2;grid-row:2;align-self:start}
.section-subhead {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.85rem;font-weight:700;letter-spacing:.2em;color:#c9a87c;margin-bottom:6px;padding-left:8px;border-left:3px solid #8a1f2d}
.cast-grid {display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.cast-card {display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;background:#222;border-radius:4px;border:1px solid #2e2e2e}
.actor-avatar {width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#3a3a3a,#2a2a2a);border:2px solid #4a4a4a;position:relative;overflow:hidden}
.actor-avatar::after {content:"";position:absolute;inset:8px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#5a5a5a,#333);opacity:.6}
.actor-name {font-size:.65rem;color:#b8b4af;white-space:nowrap;letter-spacing:.05em}
.synopsis-panel {grid-column:2;grid-row:3;border-top:1px solid #2a2a2a;padding-top:8px}
.synopsis-panel p {font-size:.78rem;margin-bottom:4px;color:#c9c5c0;text-align:justify}
.synopsis-panel p:last-child {margin-bottom:0}
.episode-status-block {grid-column:2;grid-row:4;border-top:1px solid #2a2a2a;padding-top:8px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline}
.current-episode-label {font-size:.8rem;color:#e8e4df}
.current-episode-label strong {color:#8a1f2d;font-size:1rem;font-weight:800}
.episode-meta {font-size:.7rem;color:#8a8a8a}
.details-grid {grid-column:1 / -1;grid-row:5;border-top:1px solid #2a2a2a;padding-top:10px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px 12px}
.detail-item {display:flex;justify-content:space-between;gap:8px;font-size:.7rem;color:#c9c5c0;padding:2px 4px;background:#1e1e1e;border-radius:2px}
.detail-label {color:#8a8a8a;font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.65rem;letter-spacing:.08em}
.player-wrapper {grid-column:2;grid-row:1 / span 3;align-self:start;background:#111;border:1px solid #2a2a2a;border-radius:4px;padding:8px;min-width:0}
.player-wrapper video {width:100%;aspect-ratio:16/9;background:#000;border-radius:2px}
.custom-player-controls {display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;padding-top:6px;border-top:1px solid #2a2a2a}
.custom-player-controls button {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.6rem;padding:3px 8px;border:1px solid #3a3a3a;border-radius:2px;color:#b8b4af;background:#1e1e1e;transition:all .15s}
.custom-player-controls button:hover {background:#2a2a2a;color:#e8e4df;border-color:#8a1f2d}
.theater-mode .player-wrapper video {aspect-ratio:16/9;object-fit:contain}
.theater-mode {grid-column:1 / -1 !important}
.theater-mode .custom-player-controls button:last-child {color:#8a1f2d;border-color:#8a1f2d}
.lights-dim .movie-overview, .lights-dim .poster-media, .lights-dim .cast-section, .lights-dim .synopsis-panel, .lights-dim .episode-status-block, .lights-dim .details-grid {opacity:.35;transition:opacity .4s}
.timeline-section {margin:16px 0 0;padding:16px 0 8px;border-top:1px solid #2a2a2a;position:relative}
.timeline-heading {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:1rem;font-weight:700;letter-spacing:.2em;color:#e8e4df;margin-bottom:12px;text-align:center;position:relative}
.timeline-heading::before, .timeline-heading::after {content:"";position:absolute;top:50%;width:30%;height:1px;background:linear-gradient(90deg,transparent,#8a1f2d)}
.timeline-heading::before {left:0}
.timeline-heading::after {right:0;background:linear-gradient(270deg,transparent,#8a1f2d)}
.timeline-track {position:relative;display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 0}
.timeline-track::before {content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;background:repeating-linear-gradient(180deg,#8a1f2d 0 4px,transparent 4px 8px);transform:translateX(-50%);opacity:.5}
.timeline-node {position:relative;width:calc(50% - 20px);background:#1a1a1a;border:1px solid #2e2e2e;border-radius:4px;padding:6px 10px;display:flex;flex-direction:column;gap:2px;transition:border-color .2s}
.timeline-node.left {margin-right:auto}
.timeline-node.right {margin-left:auto}
.timeline-node::before {content:"";position:absolute;top:50%;width:10px;height:10px;background:#8a1f2d;transform:rotate(45deg);border:1px solid #8a1f2d}
.timeline-node.left::before {right:-6px;transform:rotate(45deg) translateY(-50%)}
.timeline-node.right::before {left:-6px;transform:rotate(45deg) translateY(-50%)}
.timeline-node:hover {border-color:#8a1f2d;background:#1e1e1e}
.ep-number {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.8rem;font-weight:700;color:#c9a87c;letter-spacing:.08em}
.ep-label {font-size:.7rem;color:#b8b4af}
.episode-list {margin-top:8px;padding:8px 0;border-top:1px solid #2a2a2a}
.episode-list .section-subhead {margin-bottom:8px}
.episode-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.episode-card {background:#1a1a1a;border:1px solid #2e2e2e;border-radius:4px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;transition:border-color .2s,transform .2s}
.episode-card:hover {border-color:#8a1f2d;transform:translateY(-2px)}
.ep-num {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:1.4rem;font-weight:800;color:#8a1f2d;line-height:1;opacity:.8}
.episode-card h3 {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.85rem;font-weight:700;color:#e8e4df;letter-spacing:.05em}
.episode-card p {font-size:.7rem;color:#b8b4af;line-height:1.4;flex:1}
.duration {font-size:.65rem;color:#8a8a8a;align-self:flex-end;letter-spacing:.05em}
.comments-section {margin-top:8px;padding:8px 0;border-top:1px solid #2a2a2a}
.comments-section .section-subhead {margin-bottom:8px}
.comments-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px}
.comment-box {background:#1a1a1a;border:1px solid #2a2a2a;border-radius:3px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;transition:border-color .2s}
.comment-box:hover {border-color:#4a4a4a}
.commenter {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.65rem;font-weight:700;color:#c9a87c;letter-spacing:.1em}
.comment-box p {font-size:.72rem;color:#c9c5c0;line-height:1.4}
.recommend-region {margin-top:8px;padding:8px 0;border-top:1px solid #2a2a2a}
.recommend-title {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.95rem;font-weight:700;letter-spacing:.1em;color:#e8e4df;margin-bottom:8px;position:relative;padding-left:10px}
.recommend-title::before {content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;background:#8a1f2d}
.rec-row {display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
a[data-runtime="recommendation"] {display:flex;flex-direction:column;gap:4px;background:#1a1a1a;border:1px solid #2e2e2e;border-radius:4px;padding:6px;transition:border-color .2s,transform .2s}
a[data-runtime="recommendation"]:hover {border-color:#8a1f2d;transform:translateY(-2px)}
a[data-runtime="recommendation"] img {width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:2px;background:#222}
a[data-runtime="recommendation"] span[data-runtime="name"] {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.72rem;font-weight:700;color:#e8e4df;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a[data-runtime="recommendation"] span[data-runtime="blurb"] {font-size:.62rem;color:#8a8a8a;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
footer {margin-top:16px;padding:16px 16px 24px;border-top:1px solid #2a2a2a;background:#161616}
.disclaimer {font-size:.6rem;color:#8a8a8a;text-align:center;max-width:800px;margin:0 auto 12px;line-height:1.5;letter-spacing:.03em}
.footer-links {display:flex;justify-content:center;gap:24px;margin-bottom:12px}
a[data-contract="footer-home"], a[data-contract="footer-sitemap"] {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.75rem;color:#b8b4af;text-decoration:none;letter-spacing:.1em;transition:color .2s}
a[data-contract="footer-home"]:hover, a[data-contract="footer-sitemap"]:hover {color:#8a1f2d}
.friend-links {display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;max-width:900px;margin:0 auto}
.friend-label {font-family:"Hiragino Sans","Noto Sans CJK JP",sans-serif;font-size:.65rem;color:#8a8a8a;padding:2px 8px;border:1px solid #2a2a2a;border-radius:10px;background:#1a1a1a}
a.runtime-friend-link {font-size:.6rem;color:#8a8a8a;text-decoration:none;padding:2px 6px;border:1px solid transparent;border-radius:4px;transition:all .15s}
a.runtime-friend-link:hover {color:#c9a87c;border-color:#3a3a3a;background:#1e1e1e}
@media (max-width:1100px){main {padding:0 12px}
.movie-overview {grid-template-columns:130px minmax(0,1fr)}
.poster-media {grid-column:1;grid-row:1 / span 3}
.player-wrapper {grid-column:2;grid-row:4 / span 1}
.movie-overview::after {display:none}
.title-tagline, .cast-section, .synopsis-panel, .episode-status-block {grid-column:2}
.details-grid {grid-column:1 / -1}
.rec-row {grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){body {font-size:12px}
header {padding:8px 12px;flex-direction:column;align-items:flex-start;gap:6px}
.categories-bar {width:100%;order:3}
.hero-visual {display:flex;flex-direction:column;gap:16px;padding-top:16px}
.movie-overview {display:flex;flex-direction:column;gap:10px;padding:12px;grid-template-columns:1fr}
.poster-media {width:180px;align-self:center;margin-bottom:4px}
.main-poster-img {width:100%;height:auto}
.title-tagline, .cast-section, .synopsis-panel, .episode-status-block, .details-grid {width:100%}
.details-grid {grid-template-columns:repeat(2,1fr)}
.cast-grid {grid-template-columns:repeat(4,1fr)}
.player-wrapper {width:100%;min-width:0;padding:6px;margin-top:4px}
.player-wrapper video {min-height:auto}
.custom-player-controls {justify-content:center}
.timeline-track::before {left:16px;transform:none}
.timeline-node {width:calc(100% - 40px);margin-left:32px !important;margin-right:0 !important}
.timeline-node.left::before, .timeline-node.right::before {left:-20px;transform:rotate(45deg)}
.timeline-node.left .ep-number, .timeline-node.right .ep-number {order:1}
.episode-grid {grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.rec-row {grid-template-columns:1fr 1fr;gap:6px}
a[data-runtime="recommendation"] span[data-runtime="blurb"] {-webkit-line-clamp:3}}
@media (max-width:560px){main {padding:0 8px}
.cast-grid {grid-template-columns:repeat(2,1fr);gap:8px}
.cast-card {flex-direction:row;justify-content:flex-start;gap:8px;padding:6px 8px}
.actor-avatar {width:36px;height:36px}
.actor-avatar::after {inset:6px}
.details-grid {grid-template-columns:1fr 1fr}
.episode-grid {grid-template-columns:1fr}
.comments-grid {grid-template-columns:1fr}
.rec-row {grid-template-columns:1fr}
.timeline-node {width:calc(100% - 36px);margin-left:28px !important}
.timeline-track::before {left:12px}
.timeline-node.left::before, .timeline-node.right::before {left:-16px}
.poster-media {width:150px}
.title-tagline h1 {font-size:1.3rem}
.player-wrapper {padding:4px}
.custom-player-controls button {font-size:.55rem;padding:2px 6px}
.footer-links {flex-direction:column;align-items:center;gap:8px}
.friend-links {gap:4px 8px}}
@media (max-width:400px){.cast-grid {grid-template-columns:1fr}
.cast-card {flex-direction:row}
.details-grid {grid-template-columns:1fr 1fr;gap:4px}
.detail-item {flex-direction:column;gap:0}
.episode-status-block {flex-direction:column;gap:4px}
.rec-row {grid-template-columns:1fr}}

footer{text-align:center!important}
footer *{justify-content:center!important}
footer :is(div,nav,ul,ol,p,section,address){margin-left:auto!important;margin-right:auto!important}
