/* 深夜シネマ v3 */
:root{
  --paper:#f8f4ec; --surface:#fff; --ink:#1e1b2b; --muted:#6c6678; --line:#e8e1d4;
  --night:#1c1a3d; --night2:#2b2760; --amber:#f5b83d; --amber-d:#c98a12;
  --love:#ff4d6d; --meh:#6f86b8; --want:#f59e0b;
  --love-t:#c8203f; --meh-t:#4a5f8f; --want-t:#f59e0b; --on-want:#1e1b2b; /* 小さい文字の札に使う、文字とのコントラスト比 4.5 以上の色 */
  --r:18px;
  --mincho:"Shippori Mincho B1",serif; --goth:"Noto Sans JP","Hiragino Sans",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--goth);line-height:1.8;font-size:15.5px;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1;letter-spacing:.02em;overflow-wrap:anywhere}
a{color:inherit}
button{font-family:inherit;cursor:pointer}
img{max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.wrap.narrow{max-width:820px}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:6px}
.ticket .r:focus-visible{outline-color:var(--ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

/* ===== header ===== */
.marquee{background:linear-gradient(180deg,var(--night2),var(--night));color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 6px 24px rgba(28,26,61,.25)}
.marquee .wrap{display:flex;align-items:center;gap:22px;min-height:62px;flex-wrap:wrap}
.brand{font-family:var(--mincho);font-weight:800;font-size:22px;letter-spacing:.08em;text-decoration:none;display:flex;align-items:center;gap:10px}
.brand i{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff6d8,var(--amber) 45%,var(--amber-d));box-shadow:0 0 18px rgba(245,184,61,.7)}
.nav{display:flex;gap:4px;margin-left:auto;font-size:13.5px;font-weight:700}
.nav a{text-decoration:none;padding:7px 12px;border-radius:99px;opacity:.85;white-space:nowrap}
.nav a:hover{background:rgba(255,255,255,.12);opacity:1}
.bulbs{height:8px;background:radial-gradient(circle,#ffe3a1 0 2.2px,transparent 2.6px) 0 50%/16px 8px repeat-x,linear-gradient(var(--night),var(--night));animation:bulb 1.6s steps(2) infinite}
@keyframes bulb{50%{background-position:8px 50%,0 0}}
@media(max-width:760px){
  .marquee .wrap{gap:0 12px;padding-top:8px}
  .nav{order:3;width:100%;margin-left:-8px;overflow-x:auto;padding-bottom:6px}
}

/* ===== 共通の見出し・文 ===== */
h1{font-family:var(--mincho);font-weight:800;font-size:clamp(28px,4.6vw,44px);line-height:1.3;margin:6px 0 10px;letter-spacing:.03em}
h2{font-family:var(--mincho);font-size:24px;line-height:1.4;margin:40px 0 12px;letter-spacing:.04em}
.lead{color:var(--muted);margin:0 0 8px}
.note{font-size:12px;color:var(--muted);margin:8px 0 14px}
.crumb{font-size:12.5px;color:var(--muted);padding:22px 0 8px}
.crumb a{text-decoration:none}
.page{padding-bottom:20px}
.prose p{margin:0 0 14px}
.prose blockquote{margin:0 0 14px;padding:8px 14px;border-left:3px solid var(--line);color:var(--muted)}

/* ===== キーアート ===== */
.key{position:relative;display:block;aspect-ratio:2/3;border-radius:var(--r);overflow:hidden;color:#fff;text-decoration:none;box-shadow:0 22px 50px -18px rgba(30,27,43,.55);isolation:isolate;
  background:radial-gradient(120% 70% at 70% 15%,var(--k3,rgba(255,255,255,.3)) 0,transparent 45%),linear-gradient(165deg,var(--k1,#0f5d63),var(--k2,#0b1f2e))}
.key::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.35;mix-blend-mode:overlay;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
.key .island{position:absolute;left:-10%;right:-10%;bottom:-6%;height:42%;background:radial-gradient(60% 55% at 50% 100%,rgba(0,0,0,.55) 70%,transparent 71%)}
.key .t{position:absolute;left:22px;bottom:22px;right:22px;font-family:var(--mincho);font-weight:800;font-size:var(--fs,46px);line-height:1.1;letter-spacing:.04em;text-shadow:0 4px 24px rgba(0,0,0,.5);overflow-wrap:anywhere}
.key .t.m{--fs:34px}
.key .t.l{--fs:26px}
.key .s{display:block;font-family:var(--goth);font-size:12px;font-weight:700;letter-spacing:.12em;opacity:.85;margin-top:8px}
.hero .key{--k3:#ffd58a}

/* ===== 作品ページ ===== */
.hero{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:start;padding-bottom:12px}
@media(max-width:760px){.hero{grid-template-columns:1fr;gap:22px}.hero .side{max-width:300px}}
.side .wm{margin-top:16px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.chip{font-size:12.5px;font-weight:700;padding:4px 12px;border-radius:99px;background:#efe9dd;color:#4a4458;text-decoration:none}
.chip.g{background:var(--night);color:#fff}
.hero h1{font-size:clamp(32px,5vw,52px);line-height:1.2}
.orig{margin:0 0 6px;color:var(--muted);font-size:14px}
.meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:13.5px;font-weight:500}
.premise{font-size:16.5px;margin:18px 0 22px}
.tickets{display:grid;gap:12px}
.ticket{display:grid;grid-template-columns:1fr auto;background:var(--surface);border-radius:14px;box-shadow:0 1px 0 var(--line),0 10px 30px -14px rgba(30,27,43,.25);position:relative;overflow:hidden}
.ticket .l{padding:16px 20px}
.ticket .svc{font-weight:900;font-size:20px;display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.ticket .kind b{font-size:12px;background:#e8f7ee;color:#137a43;padding:2px 9px;border-radius:99px}
.ticket .kind b.old,.ticket.stale .kind b{background:#f1ede4;color:var(--muted)}
.ticket .kind{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;margin-top:4px}
.ticket .kind small{margin:0}
.ticket small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.ticket .r{display:flex;align-items:center;padding:0 22px;background:var(--amber);color:var(--ink);font-weight:900;text-decoration:none;border-left:2px dashed rgba(30,27,43,.25);position:relative;transition:filter .2s;text-align:center}
.ticket .r:hover{filter:brightness(1.08)}
.ticket .r.plain{background:#f1ead9}
.ticket .r::before,.ticket .r::after{content:"";position:absolute;left:-9px;width:16px;height:16px;border-radius:50%;background:var(--paper)}
.ticket .r::before{top:-8px}.ticket .r::after{bottom:-8px}
.ticket .r small{margin:0 0 0 6px;display:inline;font-size:11px;font-weight:900}
@media(max-width:480px){.ticket{grid-template-columns:1fr}.ticket .r{padding:12px;border-left:0;border-top:2px dashed rgba(30,27,43,.25);justify-content:center}.ticket .r::before,.ticket .r::after{display:none}}

/* ===== 評価ボタン ===== */
.vote{margin:44px 0 10px;background:linear-gradient(135deg,#25225a,#1c1a3d 60%);color:#fff;border-radius:26px;padding:30px 30px 26px;position:relative;overflow:hidden}
.vote::after{content:"";position:absolute;right:-80px;top:-120px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(245,184,61,.35),transparent 65%);pointer-events:none}
.vote h2{font-size:26px;margin:0}
.vote p.sub{margin:2px 0 20px;opacity:.75;font-size:13.5px}
.vote .off{position:relative;z-index:1;margin:14px 0 4px;font-size:15px}
.vbtns{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;position:relative;z-index:1}
@media(max-width:560px){.vbtns{gap:8px}.vote{padding:24px 16px}}
.vb{--c:var(--love);position:relative;border:0;border-radius:20px;padding:18px 10px 16px;background:rgba(255,255,255,.08);color:#fff;display:flex;flex-direction:column;align-items:center;gap:6px;
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.14);transition:transform .18s cubic-bezier(.3,1.6,.5,1),background .25s,box-shadow .25s}
.vb:hover{transform:translateY(-4px) scale(1.03);background:rgba(255,255,255,.14)}
.vb:active{transform:scale(.94)}
.vb:disabled{opacity:.6;cursor:wait}
.vb .ic{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--c);box-shadow:0 8px 24px -6px var(--c);transition:transform .3s}
.vb:hover .ic{transform:rotate(-8deg) scale(1.08)}
.vb svg{width:30px;height:30px}
.vb .lb{font-weight:900;font-size:17px;letter-spacing:.06em}
.vb .hint{font-size:11.5px;opacity:.7;line-height:1.4}
.vb[data-v=meh]{--c:var(--meh)}
.vb[data-v=want]{--c:var(--want)}
.vb.on{background:#fff;color:var(--ink);box-shadow:0 0 0 3px var(--c),0 14px 34px -10px var(--c)}
.vb.on .hint{opacity:.6}
.vb.on .ic{animation:pop .5s cubic-bezier(.3,1.8,.5,1)}
@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
.spark{position:absolute;width:9px;height:9px;border-radius:50%;pointer-events:none;left:50%;top:40px;margin-left:-4px;background:var(--c);animation:fly .7s ease-out forwards}
@keyframes fly{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
.result{margin-top:20px;position:relative;z-index:1}
.bar{display:flex;height:14px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.1)}
.bar span{width:0;transition:width 1s cubic-bezier(.2,.9,.2,1)}
.bar .love,.d-love{background:var(--love)}.bar .meh,.d-meh{background:var(--meh)}.bar .want,.d-want{background:var(--want)}
.legend{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:13px;margin-top:10px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.locked{font-size:13px;opacity:.75;display:flex;align-items:center;gap:8px}
.locked::before{content:"";width:16px;height:16px;border-radius:4px;background:linear-gradient(90deg,var(--love),var(--meh),var(--want));flex:none}
.mine{font-size:13px;margin-top:8px;opacity:.9}
.mine button{background:none;border:0;color:var(--amber);text-decoration:underline;font-size:13px;padding:0 0 0 6px}

/* ===== みんなの感想 ===== */
.sec-h{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:48px 0 14px}
.sec-h h2{font-size:26px;margin:0}
.sec-h h2 small{font-family:var(--goth);font-size:13px;color:var(--muted);margin-left:10px;font-weight:500}
.sort{display:flex;background:#ece5d8;border-radius:99px;padding:3px;font-size:12.5px;font-weight:700}
.sort button{border:0;background:none;padding:5px 12px;border-radius:99px;color:var(--muted)}
.sort button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.cmts{display:grid;gap:14px}
.empty{color:var(--muted);font-size:14px;margin:0}
.cm{background:var(--surface);border-radius:var(--r);padding:18px 20px;box-shadow:0 1px 0 var(--line),0 8px 24px -16px rgba(30,27,43,.3)}
.cm.op{background:linear-gradient(135deg,#fff8e8,#fff 60%);box-shadow:inset 0 0 0 1.5px #f3d798,0 8px 24px -16px rgba(201,138,18,.5)}
.cm-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:900;color:#fff;font-size:15px;flex:none;background:#4aa3a8}
.av.op{background:linear-gradient(135deg,#2b2760,#1c1a3d);color:var(--amber)}
.av.a1{background:#9b7fd1}.av.a2{background:#d17f9b}.av.a3{background:#d19b4a}.av.a4{background:#5f9b6a}.av.a5{background:#6f86b8}
.who{font-weight:900;font-size:14.5px}
.badge{font-size:11px;font-weight:900;padding:2px 8px;border-radius:6px;background:var(--night);color:var(--amber);letter-spacing:.06em}
.pill{font-size:12px;font-weight:900;padding:3px 10px;border-radius:99px;color:#fff;margin-left:auto}
.pill.love{background:var(--love-t)}.pill.meh{background:var(--meh-t)}.pill.want{background:var(--want-t);color:var(--on-want)}
.date{font-size:12px;color:var(--muted);margin:2px 0 0 48px;font-variant-numeric:tabular-nums}
.cm p{margin:10px 0 12px;font-size:15.5px;line-height:1.9;letter-spacing:.03em;white-space:pre-wrap}
.spoil{position:relative;cursor:pointer}
.spoil p{filter:blur(7px);user-select:none;transition:filter .3s}
.spoil::after{content:"ネタバレを含みます。タップで表示";position:absolute;inset:0;display:grid;place-items:center;font-size:13px;font-weight:900;color:var(--ink);text-align:center}
.spoil.open p{filter:none;user-select:auto}.spoil.open::after{display:none}
.like{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:6px 14px 6px 10px;font-size:13px;font-weight:700;color:var(--muted);transition:all .2s}
.like svg{width:18px;height:18px;transition:transform .3s cubic-bezier(.3,1.8,.5,1)}
.like:hover{border-color:var(--amber);color:var(--ink)}
.like.on{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.like.on svg{transform:rotate(-14deg) scale(1.2)}
.like .n{font-variant-numeric:tabular-nums}

/* 投稿フォーム */
.form{margin-top:18px;background:var(--surface);border-radius:var(--r);padding:24px;box-shadow:0 1px 0 var(--line),0 8px 24px -16px rgba(30,27,43,.3);position:relative}
.form h3{margin:0 0 4px;font-size:18px}
.form .lead{font-size:13px;color:var(--muted);margin:0 0 16px}
.seg{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:0;border:0}
.seg label{position:relative}
.seg input{position:absolute;opacity:0}
.seg span{display:inline-block;padding:8px 16px;border-radius:99px;border:1.5px solid var(--line);font-weight:700;font-size:14px;cursor:pointer;transition:all .2s}
.seg input:checked+span{color:#fff;border-color:transparent}
.seg input:focus-visible+span{outline:3px solid var(--amber);outline-offset:2px}
.seg .l input:checked+span{background:var(--love-t)}.seg .m input:checked+span{background:var(--meh-t)}.seg .w input:checked+span{background:var(--want-t);color:var(--on-want)}
.form textarea,.form input[type=text]{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;font-size:15px;background:#fdfbf7;color:var(--ink)}
.form textarea{min-height:120px;resize:vertical}
.form textarea:focus,.form input[type=text]:focus{outline:none;border-color:var(--amber);background:#fff;box-shadow:0 0 0 3px rgba(245,184,61,.35)}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px;font-size:13.5px}
.row input[type=text]{max-width:320px}
.row .cnt{margin-left:auto;color:var(--muted);font-size:12px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-turnstile{margin-top:12px}
.send{margin-top:14px;border:0;background:var(--night);color:#fff;font-weight:900;font-size:15px;padding:13px 28px;border-radius:99px;box-shadow:0 10px 24px -10px var(--night);transition:transform .2s}
.send:hover{transform:translateY(-2px)}
.send:disabled{opacity:.6;cursor:wait}
.fmsg{font-size:14px;margin:12px 0 0;font-weight:700}
.mod{font-size:12px;color:var(--muted);margin-top:10px}

/* 似ている作品 */
.rel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(160px,220px);gap:16px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory}
.rc{scroll-snap-align:start;text-decoration:none;display:block}
.rc .key{aspect-ratio:3/4;border-radius:14px;transition:transform .3s;--k3:rgba(255,255,255,.35)}
.rc:hover .key{transform:translateY(-4px) rotate(-1deg)}
.rc .key .t{left:14px;bottom:14px;right:14px;font-size:calc(var(--fs,46px)*.52)}
.rc p{font-size:13px;margin:8px 2px 0;color:var(--muted);line-height:1.6}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags a{font-size:13px;font-weight:700;padding:6px 14px;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);text-decoration:none}
.tags a::before{content:"# ";color:var(--amber-d)}

/* ===== footer / toast ===== */
footer{margin-top:64px;padding:30px 0;background:var(--night);color:rgba(255,255,255,.75);font-size:12.5px}
footer a{color:rgba(255,255,255,.85)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:12px;font-size:14px;opacity:0;transition:all .3s;z-index:50;pointer-events:none;max-width:90vw}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ===== 特集ページ：テーマ共通 ===== */
.th-standard{--fbg:#1c1a3d;--fink:#fff;--facc:#f5b83d;--facc2:#f5b83d;--fcard:rgba(255,255,255,.08);--fline:rgba(255,255,255,.18);--fhead:var(--mincho)}
.th-sf{--fbg:#0d1430;--fink:#eef3ff;--facc:#5ce1e6;--facc2:#f5b83d;--fcard:rgba(255,255,255,.06);--fline:rgba(92,225,230,.25);--fhead:var(--mincho)}
.th-love{--facc-t:#c8203f;--fbg:#fff3f5;--fink:#3a1f2a;--facc:#ff3d68;--facc2:#ff3d68;--fcard:#fff;--fline:#ffd1db;--fhead:"Kiwi Maru",var(--mincho)}
.th-sv{--fbg:#1c0f0c;--fink:#fff3ea;--facc:#ff5a36;--facc2:#ffc94d;--fcard:rgba(255,236,222,.055);--fline:rgba(255,120,80,.22);--fhead:var(--mincho)}
.feature{background:var(--pbg,var(--fbg));color:var(--pink,var(--fink));padding-bottom:40px}
.feature.th-standard{--pbg:var(--paper);--pink:var(--ink);--lcard:#fff;--lline:var(--line);--lacc:var(--amber-d)}
.fhero{position:relative;overflow:hidden;padding:30px 0 54px;background:var(--fbg);color:var(--fink)}
.fhero .crumb{color:inherit;opacity:.75;padding:0 0 28px}
.fhero .wrap{position:relative;z-index:1}
.kicker{display:inline-flex;gap:8px;align-items:center;font-size:12.5px;font-weight:900;letter-spacing:.14em;color:var(--facc)}
.kicker b{background:var(--facc);color:var(--fbg);padding:2px 9px;border-radius:6px;letter-spacing:.08em}
.fhero h1{font-family:var(--fhead);font-size:clamp(28px,5.2vw,52px);line-height:1.3;margin:14px 0 14px;max-width:880px}
.fhero .lead{max-width:680px;font-size:16px;opacity:.85;color:inherit}
.fmeta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.fmeta span{font-size:12.5px;font-weight:700;padding:6px 12px;border-radius:99px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--fline)}
.th-love .fmeta span{background:#fff}
.filter{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.filter button{border:0;border-radius:99px;padding:8px 16px;font-size:13.5px;font-weight:900;color:var(--fink);background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1.5px var(--fline);transition:all .2s}
.th-love .filter button{background:#fff}
.filter button:hover{filter:brightness(1.15)}
.filter button.on{background:var(--facc2);color:#1c0f0c;box-shadow:0 8px 20px -8px var(--facc2)}
.th-love .filter button.on{color:#fff;background:var(--facc-t);box-shadow:none}
.flist{display:grid;gap:18px;margin-top:28px}
.fi{display:grid;grid-template-columns:auto 130px 1fr;gap:20px;align-items:start;background:var(--lcard,var(--fcard));border-radius:var(--r);padding:20px;box-shadow:inset 0 0 0 1px var(--lline,var(--fline));transition:transform .25s,box-shadow .25s;color:var(--pink,var(--fink))}
.fi:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px var(--lacc,var(--facc)),0 18px 40px -20px var(--lacc,var(--facc))}
@media(max-width:640px){.fi{grid-template-columns:auto 90px 1fr;gap:12px;padding:14px}}
.fi .no{font-family:var(--fhead);font-size:40px;line-height:1;color:var(--lacc,var(--facc2));min-width:46px}
.fi .key{border-radius:12px;--k3:rgba(255,255,255,.4);box-shadow:none}
.fi .key .t{left:10px;right:10px;bottom:10px;font-size:calc(var(--fs,46px)*.37)}
.fi h3{margin:0 0 4px;font-size:19px;font-family:var(--fhead);line-height:1.4}
.fi h3 a{text-decoration:none}
.fi .why{font-size:14.5px;opacity:.9;margin:6px 0 10px}
.fi .memo{font-size:13.5px;margin:0 0 10px;padding-left:10px;border-left:3px solid var(--lacc,var(--facc));opacity:.9}
.fi .bot{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.svcchip{font-size:12px;font-weight:900;padding:4px 10px;border-radius:8px;background:var(--facc2);color:#1e1b2b;text-decoration:none}
a.svcchip:hover{filter:brightness(1.08)}
.svcchip.na{background:rgba(127,127,127,.12);color:inherit;box-shadow:inset 0 0 0 1px var(--lline,var(--fline))}
.th-love .svcchip:not(.na){color:#fff;background:var(--facc-t)}
.feature.th-standard .svcchip:not(.na){color:#1e1b2b}
.mini{margin-left:auto;display:flex;gap:6px}
.mini button{display:inline-flex;align-items:center;gap:5px;border:0;border-radius:99px;padding:6px 12px;font-size:12.5px;font-weight:900;background:rgba(127,127,127,.12);color:inherit;box-shadow:inset 0 0 0 1px var(--lline,var(--fline));transition:all .2s}
.mini button svg{width:15px;height:15px}
.mini button:hover{transform:scale(1.06)}
.mini button:disabled{opacity:.6;cursor:wait}
.mini button.on.l{background:var(--love-t);color:#fff;box-shadow:none}
.mini button.on.w{background:var(--want);color:#1e1b2b;box-shadow:none}
.fbody{max-width:720px;font-size:15.5px;margin:36px 0 0}
.fbody h2{font-family:var(--fhead);font-size:24px}
.fbody a{color:inherit}
.fbody ul{padding-left:1.3em}
.ttags{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 4px}
.ttags span{font-size:11.5px;font-weight:900;padding:2px 9px;border-radius:6px;background:rgba(127,127,127,.14);opacity:.9}
.th-sv .ttags span{background:rgba(255,90,54,.16);color:#ffb39e;box-shadow:inset 0 0 0 1px rgba(255,90,54,.35);opacity:1}
.fi.out{display:none}

/* テーマ: standard */
.th-standard .fhero{background:linear-gradient(135deg,var(--night2),var(--night) 70%);box-shadow:inset 0 -60px 80px -60px rgba(245,184,61,.2)}

/* テーマ: SF・謎（夜空） */
.th-sf .fhero{background:linear-gradient(180deg,transparent 60%,#0d1430),
  radial-gradient(1px 1px at 12% 20%,#fff,transparent),radial-gradient(1.5px 1.5px at 30% 60%,#cfe,transparent),radial-gradient(1px 1px at 52% 30%,#fff,transparent),radial-gradient(1.5px 1.5px at 70% 75%,#fff,transparent),radial-gradient(1px 1px at 86% 18%,#fff,transparent),radial-gradient(1px 1px at 92% 52%,#bff,transparent),radial-gradient(1px 1px at 40% 88%,#fff,transparent),
  radial-gradient(60% 80% at 85% 0%,rgba(92,225,230,.28),transparent 60%),radial-gradient(50% 60% at 0% 100%,rgba(245,184,61,.18),transparent 60%),#0d1430}
.th-sf .fhero h1{text-shadow:0 0 30px rgba(92,225,230,.45)}
.th-sf .plane{position:absolute;right:6%;top:26%;width:220px;opacity:.35;transform:rotate(-14deg);filter:drop-shadow(0 0 12px #5ce1e6)}
@media(max-width:760px){.th-sf .plane{display:none}}

/* テーマ: 恋リア（明るいピンク） */
.th-love .fhero{background:radial-gradient(circle at 15% 20%,#ffd6e0 0 120px,transparent 121px),radial-gradient(circle at 92% 70%,#ffe3ea 0 180px,transparent 181px),linear-gradient(180deg,#ffe8ee,#fff3f5)}
.th-love .kicker b{color:#fff;background:var(--facc-t)}
.th-love .fi{border-radius:28px;box-shadow:0 10px 30px -18px rgba(255,61,104,.5)}
.th-love .fi .no{font-size:30px;width:54px;height:54px;min-width:54px;display:grid;place-items:center;border-radius:50%;background:var(--facc-t);color:#fff}
.th-love .hearts{position:absolute;right:8%;top:20%;font-size:0}
.th-love .hearts svg{width:120px;height:120px;fill:#ff3d68;opacity:.18;animation:beat 1.4s ease-in-out infinite}
@keyframes beat{50%{transform:scale(1.12)}}
@media(max-width:640px){.th-love .fi .no{font-size:22px;width:40px;height:40px;min-width:40px}.th-love .hearts svg{width:80px;height:80px}}

/* テーマ: サバイバル（夕暮れの闘技場） */
.th-sv .fhero{padding:30px 0 64px;background:linear-gradient(180deg,transparent 70%,#1c0f0c 100%),
  radial-gradient(42% 60% at 78% 38%,rgba(255,201,77,.55),rgba(255,90,54,.25) 45%,transparent 70%),
  radial-gradient(70% 40% at 30% 88%,rgba(255,138,76,.18),transparent 70%),
  linear-gradient(180deg,#2a120d 0%,#4a1a10 50%,#1c0f0c 96%)}
.th-sv .fhero h1{max-width:none;text-shadow:0 6px 30px rgba(0,0,0,.45)}
.th-sv .fhero::after{content:"";position:absolute;left:0;right:0;top:0;bottom:-60px;pointer-events:none;opacity:.5;
  background:radial-gradient(1.5px 1.5px at 20% 70%,rgba(255,220,180,.7),transparent),radial-gradient(1px 1px at 35% 40%,rgba(255,220,180,.6),transparent),radial-gradient(1.5px 1.5px at 62% 82%,rgba(255,220,180,.6),transparent),radial-gradient(1px 1px at 88% 30%,rgba(255,220,180,.7),transparent),radial-gradient(1px 1px at 50% 20%,rgba(255,220,180,.5),transparent);animation:dust 9s linear infinite}
@keyframes dust{to{transform:translateY(-40px)}}
.th-sv .kicker b{color:#1c0f0c}
.th-sv .cd{position:absolute;right:7%;top:50%;transform:translateY(-50%);text-align:center;z-index:1}
.th-sv .cd .n{display:block;font-family:var(--mincho);font-weight:800;font-size:150px;line-height:1;color:#fff8ef;text-shadow:0 0 40px rgba(255,201,77,.8),0 0 90px rgba(255,90,54,.6);font-variant-numeric:tabular-nums;min-width:3ch}
.th-sv .cd small{display:block;font-size:13px;font-weight:700;letter-spacing:.2em;color:var(--facc2);margin-top:6px}
@media(max-width:900px){.th-sv .cd{position:static;transform:none;text-align:left;margin:0 0 6px 20px}.th-sv .cd .n{font-size:84px}}
.th-sv .fi{position:relative;overflow:hidden}
.th-sv .fi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--facc2),var(--facc))}
.th-sv .fi .no small{display:block;font-family:var(--goth);font-size:10px;font-weight:900;letter-spacing:.2em;color:var(--facc);margin-bottom:2px}

/* ===== トップ ===== */
.home-hero{background:linear-gradient(135deg,var(--night2),var(--night) 70%);color:#fff;padding:64px 0 54px;position:relative;overflow:hidden}
.home-hero::after{content:"";position:absolute;right:-90px;top:-130px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(245,184,61,.35),transparent 65%);pointer-events:none}
.home-hero .wrap{position:relative;z-index:1}
.home-hero h1{font-size:clamp(34px,6vw,60px);margin:0 0 12px}
.home-hero p{max-width:640px;margin:0;opacity:.85;font-size:16px}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.fcard{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:var(--r);background:var(--fbg);color:var(--fink);text-decoration:none;box-shadow:inset 0 0 0 1px var(--fline),0 14px 34px -22px rgba(30,27,43,.6);transition:transform .25s}
.fcard:hover{transform:translateY(-4px)}
.fcard .fk{font-size:11.5px;font-weight:900;letter-spacing:.12em;color:var(--facc)}
.fcard strong{font-family:var(--fhead);font-size:18px;line-height:1.5}
.fcard .fd{font-size:12.5px;opacity:.8;line-height:1.7}
.gtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px}
.gtile{display:block;padding:16px 18px;border-radius:14px;background:#fff;text-decoration:none;box-shadow:0 1px 0 var(--line),0 8px 24px -18px rgba(30,27,43,.3);transition:transform .2s}
.gtile:hover{transform:translateY(-3px)}
.gtile strong{display:block;font-size:16px}
.gtile small{display:block;color:var(--muted);font-size:12.5px;line-height:1.6;margin-top:2px}
.n18card{display:block;padding:20px 22px;border-radius:var(--r);background:#fff;text-decoration:none;box-shadow:inset 0 0 0 1.5px var(--amber),0 8px 24px -18px rgba(201,138,18,.6)}
.n18card strong{display:block;font-size:17px}
.n18card small{color:var(--muted)}

/* ===== ジャンル・タグ・サービス ===== */
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:16px}
.wc{text-decoration:none;display:block;color:inherit}
.wc .key{aspect-ratio:3/4;border-radius:14px;transition:transform .3s;--k3:rgba(255,255,255,.35);box-shadow:0 14px 30px -18px rgba(30,27,43,.6)}
.wc:hover .key{transform:translateY(-4px) rotate(-1deg)}
.wc .key .t{left:12px;right:12px;bottom:12px;font-size:calc(var(--fs,46px)*.45)}
.wc p{margin:8px 2px 0;font-size:12.5px;color:var(--muted);line-height:1.6}

/* ===== Netflix 18+ ===== */
.f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 20px}
.f button,.f select{background:#fff;color:var(--ink);border:0;box-shadow:inset 0 0 0 1.5px var(--line);padding:7px 14px;border-radius:99px;font:inherit;font-size:13px;font-weight:700}
.f button.on{background:var(--night);color:#fff;box-shadow:none}
.g{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
article.c{background:var(--surface);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 0 var(--line),0 8px 24px -16px rgba(30,27,43,.3)}
.yt{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:0;background:#000;cursor:pointer}
.yt img{width:100%;height:100%;object-fit:cover;display:block}
.yt iframe{width:100%;height:100%;border:0;display:block}
.play{position:absolute;left:50%;top:50%;width:64px;height:44px;margin:-22px 0 0 -32px;background:rgba(229,9,20,.92);border-radius:12px}
.play:after{content:"";position:absolute;left:26px;top:13px;border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent #fff}
.wm .yt{border-radius:14px;overflow:hidden}
.ph{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(135deg,var(--night2),var(--night));color:#fff;font-weight:900;font-size:18px;text-align:center;font-family:var(--mincho)}
.b{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.c h2{font-size:18px;margin:0;line-height:1.4}
.m{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:12px}
.tag{padding:0 8px;border-radius:6px;color:#fff;font-weight:700}
.lv{background:#137a43}.an{background:#7b2d6b}
.r18{color:#d1273d;font-weight:900}
.c p{margin:0;font-size:14px}
.sc{font-size:12px;color:var(--muted)}
.cta{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px}
.cta a{font-size:13px;font-weight:700;padding:7px 14px;border-radius:99px;text-decoration:none}
.nf{background:var(--night);color:#fff}
.af{background:var(--amber);color:var(--ink)}

/* ===== 動きを減らす設定 ===== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .spark{display:none}
  .bar span{transition:none}
}

/* 出現アニメーション */
.rise{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}}

#cm-list:empty{display:none}
.page>h1:first-child,.wrap>h1:first-child{padding-top:30px}

/* 見出しを文節で折り返す（対応ブラウザのみ） */
h1,h2,h3,.key .t{word-break:auto-phrase;text-wrap:balance}

.cnt.over{color:#d1273d;font-weight:900}
