*, *::before, *::after {margin:0;padding:0;box-sizing:border-box}
html {font-size:16px;scroll-behavior:smooth}
body {font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Songti SC","SimSun",serif;background:#faf6f0;color:#3e342c;line-height:1.7;letter-spacing:.02em}
img, video {display:block;max-width:100%;height:auto}
button, input {font:inherit;color:inherit}
a {color:inherit;text-decoration:none}
header {display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 2rem;padding:1rem 4vw;background:#faf6f0;border-bottom:1px solid #d8cfc2;position:sticky;top:0;z-index:10}
a[data-contract="site-name"] {font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:1.3rem;font-weight:700;color:#8a6a4b;letter-spacing:.1em;text-decoration:none;white-space:nowrap}
a[data-contract="site-name"]:hover {color:#5e4632}
nav[data-contract="categories"] {display:flex;flex-wrap:wrap;gap:.25rem .5rem;margin-left:auto}
.runtime-category {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:.8rem;color:#8a7a6a;padding:.15rem .6rem;border:1px solid transparent;border-radius:2rem;white-space:nowrap;text-decoration:none;line-height:1.5}
.runtime-category:hover {color:#5e4632;border-color:#c9b8a5;background:#f0e8dc}
main {max-width:1280px;margin:0 auto;padding:0 4vw 4rem}
section[data-fragment="movie-overview"] {display:grid;grid-template-columns:minmax(240px,300px) 1fr;gap:2rem 3rem;padding:2.5rem 0 0;position:relative}
.poster-wrapper {grid-row:span 2;position:relative;aspect-ratio:2/3;border-radius:4px;overflow:hidden;box-shadow:0 2px 8px rgba(60,45,30,.08)}
.poster-wrapper img {width:100%;height:100%;object-fit:cover}
.movie-title-group {align-self:end;padding-bottom:.5rem;border-bottom:1px solid #d8cfc2}
.movie-title-group h1 {font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;color:#5e4632;letter-spacing:.05em;line-height:1.3}
.tagline {font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:1rem;color:#a08a72;font-style:italic;margin-top:.4rem;letter-spacing:.08em}
div[data-fragment="synopsis"] {grid-column:2;padding-top:.5rem}
div[data-fragment="synopsis"] h2 {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:1rem;color:#8a6a4b;border-left:3px solid #c9a87c;padding-left:.6rem;margin-bottom:.8rem;letter-spacing:.05em}
div[data-fragment="synopsis"] p {font-size:.92rem;color:#4a3f35;margin-bottom:.8rem;max-width:65ch}
div[data-fragment="cast"] {grid-column:2;padding-top:2rem;border-top:1px solid #e0d6c8}
div[data-fragment="cast"] h2 {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:1rem;color:#8a6a4b;border-left:3px solid #c9a87c;padding-left:.6rem;margin-bottom:.8rem;letter-spacing:.05em}
.cast-card-list {display:flex;flex-wrap:wrap;gap:1.2rem 2rem;padding:.5rem 0}
.cast-card {display:flex;align-items:center;gap:.6rem;background:transparent;border-radius:2rem;padding:.3rem .8rem .3rem .3rem}
.cast-card:hover {background:#f0e8dc}
.cast-avatar {width:3rem;height:3rem;border-radius:50%;background:linear-gradient(135deg,#e8d5b8,#d4b896);display:flex;align-items:center;justify-content:center;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:1.2rem;color:#7a5c3e;box-shadow:inset 0 0 0 2px rgba(122,92,62,.2);flex-shrink:0}
.cast-name {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:.9rem;color:#5e4632;white-space:nowrap}
div[data-fragment="episode-status"] {grid-column:1;grid-row:3;padding-top:2rem;border-top:1px solid #e0d6c8}
div[data-fragment="episode-status"] h2 {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:1rem;color:#8a6a4b;border-left:3px solid #c9a87c;padding-left:.6rem;margin-bottom:.8rem;letter-spacing:.05em}
div[data-fragment="episode-status"]>p {font-size:.85rem;color:#8a7a6a;margin-bottom:1rem;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
div[data-fragment="episode-status"] video {background:#1a1512;border-radius:4px;margin-bottom:.8rem}
.player-controls {display:grid;grid-template-columns:repeat(4,auto);gap:.4rem .6rem;padding:.6rem .2rem;background:#f5efe6;border-radius:4px}
.player-controls button {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:.72rem;padding:.3rem .7rem;background:#e8ddcc;border:1px solid #d4c4ac;border-radius:3px;cursor:pointer;white-space:nowrap}
.player-controls button:hover {background:#d9c9b2}
.player-controls input[type="range"] {width:100%;min-width:80px;accent-color:#b8946a}
div[data-fragment="details"] {grid-column:2;grid-row:3;padding-top:2rem;border-top:1px solid #e0d6c8}
div[data-fragment="details"] h2 {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:1rem;color:#8a6a4b;border-left:3px solid #c9a87c;padding-left:.6rem;margin-bottom:.8rem;letter-spacing:.05em}
.detail-list {display:grid;grid-template-columns:1fr 1fr;gap:0;background:#f5efe6;border-radius:4px;padding:.8rem 1rem}
.detail-item {display:flex;gap:.6rem;padding:.4rem 0;border-bottom:1px solid #e0d6c8}
.detail-item:last-child {border-bottom:none}
.detail-item dt {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:.8rem;color:#a08a72;white-space:nowrap;min-width:4em}
.detail-item dd {font-size:.85rem;color:#4a3f35;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
section[data-fragment="timeline"] {padding:3rem 0 2rem;border-top:1px solid #d8cfc2;margin-top:3rem}
section[data-fragment="timeline"] h2 {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:1.1rem;color:#5e4632;text-align:center;letter-spacing:.1em;margin-bottom:1.5rem}
.timeline-scroll {display:flex;overflow-x:auto;gap:2.5rem;padding:1rem 0 1.5rem;scrollbar-width:thin;scrollbar-color:#c9b8a5 transparent}
.timeline-scroll::-webkit-scrollbar {height:6px}
.timeline-scroll::-webkit-scrollbar-thumb {background:#c9b8a5;border-radius:3px}
.timeline-item {display:flex;flex-direction:column;align-items:center;min-width:140px;flex-shrink:0;position:relative}
.timeline-dot {width:14px;height:14px;border-radius:50%;background:#e8c9a8;border:3px solid #faf6f0;box-shadow:0 0 0 2px #b8946a;margin-bottom:.8rem}
.timeline-timecode {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:.8rem;color:#8a6a4b;white-space:nowrap;margin-bottom:.3rem}
.timeline-label {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:.75rem;color:#6b5a48;text-align:center;line-height:1.5;max-width:140px}
section[data-fragment="episodes"] {padding:2rem 0;border-top:1px solid #d8cfc2}
section[data-fragment="episodes"] h2 {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:1.1rem;color:#5e4632;text-align:center;letter-spacing:.1em;margin-bottom:1.5rem}
.episode-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.episode-card {background:#faf6f0;border:1px solid #e0d6c8;border-radius:4px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.3rem;transition:background .2s ease}
.episode-card:hover {background:#efe6d8}
.episode-number {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:1.5rem;color:#c9a87c;line-height:1}
.episode-title {font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:1rem;color:#5e4632;font-weight:600}
.episode-summary {font-size:.8rem;color:#6b5a48;line-height:1.5;flex-grow:1}
.episode-duration {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:.7rem;color:#a08a72;border-top:1px dashed #d8cfc2;padding-top:.3rem}
section[data-fragment="comments"] {padding:2rem 0;border-top:1px solid #d8cfc2}
section[data-fragment="comments"] h2 {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:1.1rem;color:#5e4632;text-align:center;letter-spacing:.1em;margin-bottom:1.5rem}
.comments-masonry {display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;align-items:start}
.comment-bubble {background:#f5efe6;border-radius:12px 12px 12px 4px;padding:.9rem 1.1rem;position:relative;border:1px solid #e0d6c8}
.comment-bubble::before {content:"";position:absolute;left:14px;bottom:-8px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #f5efe6}
.comment-nickname {display:block;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:.75rem;color:#b8946a;margin-bottom:.3rem;letter-spacing:.05em}
.comment-text {font-size:.85rem;color:#4a3f35;line-height:1.6}
section[data-fragment="recommendations"] {padding:2rem 0;border-top:1px solid #d8cfc2}
section[data-fragment="recommendations"] h2 {font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:1.1rem;color:#5e4632;text-align:center;letter-spacing:.1em;margin-bottom:1.5rem}
.recommendation-list {display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.8rem}
a[data-runtime="recommendation"] {display:flex;flex-direction:column;gap:.4rem;padding:.6rem;background:#faf6f0;border:1px solid #e0d6c8;border-radius:4px;transition:background .2s ease,border-color .2s ease;color:#5e4632;text-decoration:none}
a[data-runtime="recommendation"]:hover {background:#efe6d8;border-color:#c9b8a5}
a[data-runtime="recommendation"] img {width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:2px;background:#e8ddcc}
a[data-runtime="recommendation"] [data-runtime="name"] {font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:.9rem;font-weight:600;color:#5e4632}
a[data-runtime="recommendation"] [data-runtime="blurb"] {font-size:.75rem;color:#8a7a6a;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
footer {background:#f0e8dc;border-top:1px solid #d8cfc2;padding:2rem 4vw 3rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
div[data-contract="disclaimer"] {font-size:.75rem;color:#8a7a6a;line-height:1.6;flex-basis:100%}
a[data-contract="footer-home"], a[data-contract="footer-sitemap"] {font-size:.8rem;color:#8a6a4b;text-decoration:none;padding:.2rem .4rem}
a[data-contract="footer-home"]:hover, a[data-contract="footer-sitemap"]:hover {color:#5e4632;text-decoration:underline}
nav[data-contract="friend-links"] {display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;margin-left:auto}
.friend-links-label {font-size:.75rem;color:#a08a72;white-space:nowrap}
.runtime-friend-link {font-size:.75rem;color:#8a7a6a;text-decoration:none;white-space:nowrap}
.runtime-friend-link:hover {color:#5e4632;text-decoration:underline}
.player.theater-mode {position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:80vw;max-width:1200px;z-index:100;background:#1a1512;border-radius:8px;padding:1rem}
.player.theater-mode::before {content:"";position:fixed;inset:0;background:rgba(20,15,10,.6);z-index:-1;border-radius:0}
.player.lights-off {filter:brightness(.9)}
.player.muted {outline:2px solid #c9a87c}
.player.fullscreen {width:100vw;height:100vh;object-fit:contain;background:#000}
.player.pip {position:fixed;bottom:1rem;right:1rem;width:320px;height:180px;z-index:200;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.3)}
.player.click {cursor:pointer}
.player.progress {cursor:ew-resize}
.player.timeupdate {transition:opacity .2s}
.player.speed::after {content:"倍速";font-size:12px;color:white;background:rgba(0,0,0,.5);padding:2px 6px;border-radius:3px;position:absolute;top:8px;right:8px}
.player.volume::after {content:"音量";font-size:12px;color:white;background:rgba(0,0,0,.5);padding:2px 6px;border-radius:3px;position:absolute;top:8px;right:8px}
.player.input {cursor:pointer}
@media (max-width:900px){section[data-fragment="movie-overview"] {grid-template-columns:1fr;gap:1.5rem}
.poster-wrapper {grid-row:auto;max-width:280px}
.movie-title-group {grid-row:auto}
div[data-fragment="synopsis"], div[data-fragment="cast"], div[data-fragment="episode-status"], div[data-fragment="details"] {grid-column:1}
div[data-fragment="episode-status"] {grid-row:auto}
div[data-fragment="details"] {grid-row:auto}
.episode-grid {grid-template-columns:repeat(2,1fr)}
.detail-list {grid-template-columns:1fr}}
@media (max-width:600px){header {flex-direction:column;align-items:flex-start;gap:.4rem;padding:.8rem 1rem}
nav[data-contract="categories"] {margin-left:0;flex-wrap:wrap}
main {padding:0 1rem 3rem}
section[data-fragment="movie-overview"] {padding-top:1.5rem}
.episode-grid {grid-template-columns:1fr}
.comments-masonry {grid-template-columns:1fr}
.recommendation-list {grid-template-columns:repeat(2,1fr);gap:.6rem}
.cast-card-list {gap:.8rem 1rem}
.timeline-scroll {gap:1.5rem}
.player-controls {grid-template-columns:repeat(2,1fr)}
footer {padding:1.5rem 1rem 2rem}}
@media (max-width:400px){.recommendation-list {grid-template-columns:1fr}
.cast-card {flex-direction:column;text-align:center}
.cast-avatar {margin:0 auto}}

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}
