*{box-sizing:border-box}
:root{--bg:#f4f3f0;--panel:#fff;--ink:#252525;--muted:#656565;--line:#d7d5cf;--soft:#eeece7;--accent:#8f2020;--accent-soft:#f8eaea;--link:#2456a4;--warning:#8f2020;--max:1240px;--article:880px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--bg);line-height:1.78}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg)}a{color:var(--link);text-underline-offset:.15em}a:hover{text-decoration-thickness:2px}
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.topbar-inner{max-width:var(--max);margin:auto;min-height:62px;padding:0 20px;display:flex;align-items:center;gap:16px}.brand{color:var(--ink);font-weight:850;text-decoration:none;letter-spacing:.01em}.brand small{display:block;font-size:.7rem;color:var(--muted);font-weight:650;line-height:1.1}.menu-btn{display:none;margin-left:auto;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 12px;font:inherit}
.layout{max-width:var(--max);margin:auto;display:grid;grid-template-columns:270px minmax(0,1fr);gap:34px;padding:28px 20px 72px}.sidebar{position:sticky;top:90px;align-self:start;max-height:calc(100vh - 110px);overflow:auto;padding-right:5px}.nav-group{margin-bottom:21px}.nav-group>p{margin:0 0 6px;font-size:.76rem;font-weight:850;color:var(--muted);letter-spacing:.08em}.nav-group a{display:block;padding:7px 10px;border-radius:8px;text-decoration:none;color:var(--ink);margin:2px 0}.nav-group a:hover{background:#eae8e2}.nav-group a.active{background:var(--accent-soft);color:var(--accent);font-weight:850}.searchbox{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;margin-bottom:18px}
main{min-width:0}.content{max-width:var(--article);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:clamp(22px,4vw,48px);box-shadow:0 9px 30px rgba(0,0,0,.035)}
.mirror-banner{border:1px solid #cfcac0;background:#faf9f6;border-radius:12px;padding:15px 18px;margin-bottom:30px;font-size:.93rem}.mirror-banner strong{display:block;margin-bottom:3px}.mirror-banner p{margin:.25em 0}.source-link{font-size:.88rem}
.page-title{font-size:clamp(2rem,5.5vw,3.3rem);line-height:1.17;margin:0 0 28px;letter-spacing:-.025em}.page-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.badge{display:inline-flex;align-items:center;border-radius:999px;background:#ecebea;padding:4px 10px;font-size:.76rem;font-weight:800}.badge.warn{background:#f8e4e4;color:#831b1b}
h2,h3,h4,h5,h6{scroll-margin-top:82px;line-height:1.38}h2{font-size:1.52rem;margin:46px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--line)}h3{font-size:1.25rem;margin:35px 0 12px}h4{font-size:1.1rem;margin:28px 0 10px}h5{font-size:1rem;margin:24px 0 8px}.shadow-heading{border-left:4px solid #c9c5bc;padding-left:10px}
p{margin:.75em 0}.wiki-paragraph{margin:.78em 0}.wiki-paragraph br{line-height:1.3}.spacer{height:.65rem}.wiki-hr{border:0;border-top:1px solid var(--line);margin:36px 0}
ul,ol{padding-left:1.55em;margin:.65em 0}li{margin:.26em 0}li>ul,li>ol{margin:.25em 0}.preline{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f5f5f2;padding:.1em .4em;border-radius:4px}
.toc{border:1px solid var(--line);background:#fafafa;border-radius:12px;padding:14px 18px;margin:18px 0 30px}.toc strong{display:block;margin-bottom:6px}.toc ol{margin:.25em 0}.toc .level-3{margin-left:1em}.toc .level-4{margin-left:2em}.toc .level-5{margin-left:3em}
.table-wrap{overflow-x:auto;margin:17px 0 25px;border:1px solid var(--line);border-radius:10px;background:#fff}table{width:100%;border-collapse:collapse;min-width:520px}th,td{padding:9px 11px;text-align:left;vertical-align:top;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}tr:last-child th,tr:last-child td{border-bottom:0}th:last-child,td:last-child{border-right:0}th{background:#f1f0ec;font-weight:800}.align-center{text-align:center}.align-right{text-align:right}.align-left{text-align:left}
details.wiki-region{border:1px solid var(--line);border-radius:11px;background:#fbfbfa;margin:16px 0}details.wiki-region>summary{cursor:pointer;font-weight:800;padding:11px 14px;list-style:none}details.wiki-region>summary::-webkit-details-marker{display:none}details.wiki-region>summary:before{content:'＋';display:inline-block;width:1.35em;color:var(--muted)}details.wiki-region[open]>summary:before{content:'−'}details.wiki-region>.region-body{padding:0 16px 15px;border-top:1px solid var(--line)}
.spoiler-redact{
background:#2d2d2d;
color:transparent;
border-radius:4px;
padding:0 .2em;
cursor:pointer;
box-decoration-break:clone;
-webkit-box-decoration-break:clone;
-webkit-tap-highlight-color:transparent;
transition:background .12s ease,color .12s ease,box-shadow .12s ease
}
.spoiler-redact:hover{background:#3a3a3a}
.spoiler-redact:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.spoiler-redact.revealed{
background:transparent;
color:inherit;
box-shadow:inset 0 -.12em 0 #e7e7e4
}
.colored{font-weight:inherit}.wiki-size{display:inline}.wiki-image{display:block;max-width:100%;height:auto;margin:14px auto;border-radius:8px}.video-wrap{position:relative;aspect-ratio:16/9;margin:20px 0;background:#111;border-radius:12px;overflow:hidden}.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.comments-archive{border-top:2px solid var(--line);margin-top:28px;padding-top:14px}.comment-closed{border:1px solid var(--line);background:#f5f4f1;border-radius:10px;padding:12px 14px;color:var(--muted);font-size:.92rem}.comment-time{color:var(--muted);font-size:.92em}.old-edit-note{border-left:4px solid #b7b3aa;background:#f6f5f2;padding:10px 14px;margin:18px 0;color:#545454}
footer{max-width:var(--max);margin:auto;padding:0 20px 42px;color:var(--muted);font-size:.84rem}.footer-inner{border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media(max-width:860px){
.menu-btn{display:block}
.layout{display:block;padding:18px 14px 70px}
.sidebar{
display:none;
position:fixed;
top:64px;
left:12px;
right:12px;
z-index:60;
max-height:calc(100dvh - 76px);
overflow:auto;
background:#fff;
border:1px solid var(--line);
border-radius:14px;
padding:14px;
margin:0;
box-shadow:0 18px 55px rgba(0,0,0,.18)
}
.sidebar.open{display:block}
.menu-backdrop{
display:none;
position:fixed;
inset:56px 0 0;
z-index:50;
background:rgba(0,0,0,.28);
-webkit-backdrop-filter:blur(1px);
backdrop-filter:blur(1px)
}
.menu-backdrop.open{display:block}
body.menu-open{overflow:hidden}
.content{border-radius:12px;padding:21px 15px;font-size:.94rem}
.topbar-inner{min-height:56px;padding-left:16px;padding-right:16px}
.page-title{font-size:clamp(1.78rem,8vw,2.35rem);margin-bottom:22px}
h2{font-size:1.34rem;margin-top:39px}
h3{font-size:1.13rem;margin-top:30px}
h4{font-size:1rem}
.mirror-banner{font-size:.88rem;padding:13px 14px}
.table-wrap{overflow-x:visible;margin-left:0;margin-right:0}
table{width:100%;min-width:0;table-layout:fixed;font-size:.86rem;line-height:1.55}
th,td{padding:7px 8px;overflow-wrap:anywhere;word-break:normal}
table tr>*:first-child{width:7.1rem;font-weight:700}
ruby rt{font-size:.62em}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media(max-width:390px){
.layout{padding-left:10px;padding-right:10px}
.content{padding:18px 12px}
table{font-size:.82rem}
th,td{padding:6px 7px}
table tr>*:first-child{width:6.55rem}
}

@media(max-width:390px){
.sidebar{left:8px;right:8px;top:60px;max-height:calc(100dvh - 68px)}
}

/* v7: FAQ category-based table of contents */
.category-toc .toc-groups{display:grid;gap:18px;margin-top:12px}
.category-toc .toc-group{margin:0}
.category-toc .toc-group-title{margin:0 0 5px;font-weight:800;color:var(--ink)}
.category-toc ul{margin:0;padding-left:1.25em}
.category-toc li{margin:.28em 0}
.legacy-anchor{display:block;position:relative;top:-76px;visibility:hidden}
@media(max-width:860px){
  .category-toc{padding:14px 16px}
  .category-toc .toc-groups{gap:16px}
  .category-toc ul{padding-left:1.15em}
}

/* v8: retired platform notation */
del.retired-platform{color:var(--muted);text-decoration-thickness:1.5px;text-decoration-color:currentColor}


/* v9: tips / trivia information architecture */
.tips-jump{border:1px solid var(--line);border-radius:14px;background:#fafaf9;padding:18px 20px;margin:26px 0 38px}
.tips-jump>strong{display:block;font-size:1.08rem;margin-bottom:12px}
.tips-jump-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.tips-jump-grid a{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;text-decoration:none;color:var(--ink)}
.tips-jump-grid a:hover{border-color:#aaa;box-shadow:0 4px 14px rgba(0,0,0,.04)}
.tips-jump-grid span{font-size:.75rem;color:var(--muted);font-weight:700}
.tips-jump-grid b{font-size:.95rem;color:var(--link)}
.tips-major>h2{margin-top:48px}
.tips-group{scroll-margin-top:82px;margin:34px 0 44px}
.tips-group-head{margin-bottom:14px}
.tips-group-head h3{font-size:1.25rem;margin:0 0 4px}
.tips-group-head p{margin:0;color:var(--muted);font-size:.92rem}
.tips-stack{display:grid;gap:14px}
.tip-card{border:1px solid var(--line);border-radius:13px;background:#fff;padding:18px 19px;scroll-margin-top:82px}
.tip-card-featured{background:#fffdfb}
.tip-card h4{font-size:1.12rem;line-height:1.45;margin:4px 0 11px}
.tip-card h5{font-size:1rem;line-height:1.45;margin:0 0 7px}
.tip-card .tip-body{margin:8px 0}
.tip-kind{display:inline-block;border-radius:999px;background:#efefed;color:#555;padding:2px 8px;font-size:.72rem;font-weight:800;margin-bottom:4px}
.tip-points{margin:8px 0 4px;padding-left:1.35em}
.tip-points li{margin:.35em 0}
.tip-subgrid{display:grid;gap:11px;margin-top:12px}
.tip-subcard{border-top:1px solid var(--line);padding-top:13px}
.tip-subcard:first-child{border-top:0;padding-top:0}
.tip-subcard p{margin:6px 0}
.tip-note{border-left:4px solid #a7adb4;background:#f6f7f7;border-radius:7px;padding:9px 11px;margin:10px 0 0}
.tip-note strong{display:block;font-size:.82rem;margin-bottom:2px}
.tip-note p{margin:0;font-size:.9rem}
.tip-note-result{border-left-color:#7b8d73;background:#f4f7f2}
.tip-note-warning{border-left-color:#b98a35;background:#fbf7ed}
.tip-note-unverified{border-left-color:#b98a35;background:#fff9e9;margin-top:14px}
.tip-card details.wiki-region{margin-top:12px}
.comment-archive{margin-top:52px}
.comment-archive>p{color:var(--muted);font-size:.92rem}
.comment-archive-details{border:1px solid var(--line);border-radius:12px;background:#fafaf9;overflow:hidden}
.comment-archive-details>summary{cursor:pointer;font-weight:800;padding:13px 15px}
.comment-archive-body{border-top:1px solid var(--line);background:#fff;padding:13px 16px}
.comment-archive-body>ul{margin:0;padding-left:1.3em}
@media(max-width:860px){
  .tips-jump{padding:15px 14px;margin-top:20px}
  .tips-jump-grid{grid-template-columns:1fr}
  .tip-card{padding:16px 14px}
  .tips-group{margin-top:29px}
  .tips-group-head h3{font-size:1.18rem}
}

/* v10: semantic notes across all tips/trivia entries */
.tip-note-condition{border-left-color:#70859b;background:#f3f6f9}
.tip-note-update{border-left-color:#7f78a8;background:#f6f4fb}
.tip-card>.tip-note:first-of-type{margin-top:10px}
.tip-subcard>.tip-note:first-of-type{margin-top:8px}

/* v11: old white-reversal strings now use the same reveal UI */
.spoiler-redact[data-spoiler-source="name-reaction"]::before{
content:"";
}


/* v15: flowchart presentation — SAFE DOM-preserving pass */
.flow-chapter-heading{scroll-margin-top:82px}
.flow-location-heading{
  margin-top:34px!important;
  margin-bottom:8px!important;
  scroll-margin-top:82px
}

/* Old WIKIWIKI one-bullet-per-instruction lists are displayed as walkthrough steps.
   The UL/LI structure itself remains untouched. */
.flow-step-list{
  position:relative;
  list-style:none;
  margin:0;
  padding:14px 14px 14px 5.5rem;
  border-top:1px solid var(--line);
  min-height:3.1rem
}
.flow-location-heading+.flow-step-list{
  border-top:0
}
.flow-step-list::before{
  content:"STEP " attr(data-step);
  position:absolute;
  left:0;
  top:16px;
  width:4.6rem;
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.05em;
  color:var(--muted);
  white-space:nowrap
}
.flow-step-list>li{
  margin:0;
  line-height:1.8
}
.flow-step-list>li+li{
  margin-top:.45em
}
.flow-step-list>li::marker{
  content:""
}
/* Genuine nested/parallel information keeps list semantics. */
.flow-step-list ul{
  list-style:circle;
  margin:.5em 0 .1em;
  padding-left:1.35em
}
.flow-step-list ol{
  margin:.5em 0 .1em;
  padding-left:1.6em
}
.flow-step-multi{
  padding-top:15px;
  padding-bottom:15px
}
.flow-step-multi>li{
  position:relative;
  padding-left:1em
}
.flow-step-multi>li::before{
  content:"•";
  position:absolute;
  left:0;
  color:var(--muted)
}
.flow-substeps-numbered{
  margin:6px 0 16px 5.5rem;
  padding-left:1.7em
}

/* Battle section remains the original list, presented as guidance. */
.battle-heading{margin-top:36px!important}
.battle-points{
  border:1px solid var(--line);
  border-radius:13px;
  background:#fafaf9;
  padding:48px 18px 16px 2.3rem;
  margin:12px 0 28px;
  position:relative
}
.battle-points::before{
  content:"戦闘ガイド";
  position:absolute;
  top:14px;
  left:16px;
  display:inline-block;
  border-radius:999px;
  background:#eee;
  padding:3px 9px;
  font-size:.75rem;
  font-weight:900
}

/* Ending headings/lists stay separate DOM nodes but read as one condition card. */
.ending-title{
  margin:13px 0 0!important;
  padding:14px 16px 5px!important;
  border:1px solid var(--line)!important;
  border-bottom:0!important;
  border-radius:13px 13px 0 0!important;
  background:#fff;
  font-size:1.12rem!important
}
.ending-conditions{
  margin:0 0 13px!important;
  padding:5px 16px 14px 2.3rem!important;
  border:1px solid var(--line);
  border-top:0;
  border-radius:0 0 13px 13px;
  background:#fff
}
.ending-conditions>li{margin:.35em 0}

@media(max-width:860px){
  .flow-step-list{
    padding:36px 0 14px;
  }
  .flow-step-list::before{
    top:9px;
    left:0;
    width:auto;
    font-size:.71rem
  }
  .flow-step-multi>li{
    padding-left:1em
  }
  .flow-substeps-numbered{
    margin-left:0
  }
  .battle-points{
    padding:48px 14px 14px 2rem
  }
  .ending-title{
    padding:13px 14px 5px!important
  }
  .ending-conditions{
    padding:5px 14px 13px 2rem!important
  }
}


/* v16: remove WIKIWIKI-era nested bullet scaffolding inside walkthrough steps */
.flow-step-list .flow-detail-list{
  list-style:none!important;
  margin:.72rem 0 .12rem!important;
  padding:0!important;
  display:grid;
  gap:8px
}
.flow-step-list .flow-detail-list .flow-detail-item{
  position:relative;
  margin:0!important;
  padding:10px 11px 10px 13px!important;
  border-left:3px solid #a7adb4;
  border-radius:7px;
  background:#f6f7f7;
  line-height:1.72
}
.flow-step-list .flow-detail-list .flow-detail-item::before{
  content:attr(data-flow-label);
  display:block;
  font-size:.72rem;
  line-height:1.25;
  font-weight:900;
  color:var(--muted);
  margin-bottom:3px
}
.flow-step-list .flow-detail-list .flow-detail-item:not([data-flow-label])::before{
  content:none
}
.flow-step-list .flow-detail-list .flow-detail-warning{
  border-left-color:#b98a35;
  background:#fbf7ed
}
.flow-step-list .flow-detail-list .flow-detail-update{
  border-left-color:#7f78a8;
  background:#f6f4fb
}
.flow-step-list .flow-detail-list .flow-detail-result{
  border-left-color:#7b8d73;
  background:#f4f7f2
}
.flow-step-list .flow-detail-list .flow-detail-action{
  border-left-color:#70859b;
  background:#f3f6f9
}
.flow-step-list .flow-detail-options{
  border:1px solid var(--line);
  border-radius:10px;
  padding:34px 9px 9px!important;
  position:relative;
  background:#fafaf9
}
.flow-step-list .flow-detail-options::before{
  content:attr(data-flow-label);
  position:absolute;
  top:9px;
  left:11px;
  font-size:.75rem;
  font-weight:900;
  color:var(--muted)
}
.flow-step-list .flow-detail-options>.flow-detail-choice{
  border-left:0;
  border:1px solid var(--line);
  background:#fff
}
/* Deep old-Wiki nesting becomes nested callouts, not deeper bullet marks. */
.flow-step-list .flow-detail-list .flow-detail-list{
  margin-top:8px!important;
  margin-left:0!important
}
.flow-step-list .flow-detail-list li::marker{
  content:""!important
}
.flow-procedure-list{
  border-left:3px solid #70859b;
  background:#f3f6f9;
  border-radius:7px;
  padding:10px 12px 10px 2rem!important
}
.flow-procedure-list>li{
  margin:.35em 0
}
@media(max-width:860px){
  .flow-step-list .flow-detail-list .flow-detail-item{
    padding:9px 10px 9px 12px!important
  }
  .flow-step-list .flow-detail-options{
    padding:32px 8px 8px!important
  }
}


/* v17: spoiler-safe flowchart TOC */
.flow-safe-toc .flow-toc-note{
  margin:8px 0 14px;
  color:var(--muted);
  font-size:.9rem
}
.flow-safe-toc .flow-toc-main{
  margin:0;
  padding-left:1.25em
}
.flow-safe-toc .flow-toc-main>li{
  margin:.45em 0
}
.flow-toc-spoiler{
  margin-top:18px;
  border-top:1px solid var(--line);
  padding-top:14px
}
.flow-toc-spoiler>summary{
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  padding:8px 11px;
  font-weight:800;
  color:var(--link)
}
.flow-toc-spoiler>summary:hover{
  background:#f5f5f3
}
.flow-toc-spoiler-body{
  margin-top:12px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff
}
.flow-toc-spoiler-warning{
  margin:0 0 14px;
  padding:10px 12px;
  border-left:4px solid #b98a35;
  border-radius:7px;
  background:#fbf7ed;
  font-size:.9rem
}
.flow-toc-group+.flow-toc-group{
  margin-top:16px
}
.flow-toc-group h3{
  margin:0 0 6px;
  font-size:.96rem
}
.flow-toc-group ul{
  margin:0;
  padding-left:1.25em
}
.flow-toc-group li{
  margin:.28em 0
}
@media(max-width:860px){
  .flow-safe-toc{
    padding:14px 16px
  }
  .flow-toc-spoiler>summary{
    width:100%;
    justify-content:center
  }
  .flow-toc-spoiler-body{
    padding:12px
  }
}


/* v18: anchor targets clear the sticky header */
#shadow-1,#shadow-2,#shadow-3,#shadow-4,#shadow-5,#shadow-6,
#shadow-7,#shadow-8,#shadow-9,#shadow-10,#shadow-11,#shadow-12,
#shadow-13,#shadow-14,#shadow-15,#shadow-16,#shadow-17,#shadow-18,
#shadow-19,#shadow-20,#shadow-21,
#zb1fd3eb,#ed14084d,#q3576f7d,#ta9ad2d8,#ta9ad2d8-2,#p7d097b1{
  scroll-margin-top:84px;
}


/* v19: VS Sans battle guide cleanup */
.battle-layout{
  display:grid;
  gap:14px;
  margin:14px 0 28px
}
.battle-panel{
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
  padding:16px 17px
}
.battle-panel h4{
  margin:0 0 10px;
  font-size:1.08rem
}
.battle-panel>p{
  margin:0;
  line-height:1.8
}
.battle-panel-key{
  background:#fffdf9
}
.battle-facts{
  display:grid;
  gap:10px
}
.battle-fact{
  border-top:1px solid var(--line);
  padding-top:10px
}
.battle-fact:first-child{
  border-top:0;
  padding-top:0
}
.battle-fact strong{
  display:block;
  font-size:.8rem;
  color:var(--muted);
  margin-bottom:3px
}
.battle-fact p{
  margin:0;
  line-height:1.75
}
.battle-note{
  margin-top:12px;
  padding:10px 12px;
  border-left:4px solid #a7adb4;
  border-radius:7px;
  background:#f6f7f7
}
.battle-note strong{
  display:block;
  font-size:.8rem;
  margin-bottom:2px
}
.battle-note p{
  margin:0;
  font-size:.92rem;
  line-height:1.65
}
.battle-note-update{
  border-left-color:#7f78a8;
  background:#f6f4fb
}
.battle-note-warning{
  border-left-color:#b98a35;
  background:#fbf7ed
}
details.battle-spoiler-shell{
  border:0;
  border-radius:0;
  background:transparent;
  margin:8px 0
}
details.battle-spoiler-shell>summary{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafaf9
}
details.battle-spoiler-shell>.region-body{
  border-top:0;
  padding:10px 0 0
}
@media(max-width:860px){
  .battle-panel{padding:14px}
}


/* v20: ending branch spoiler gate + condition cleanup */
details.ending-spoiler-gate{
  border:0;
  border-radius:0;
  background:transparent;
  margin:16px 0
}
details.ending-spoiler-gate>.region-body{
  border-top:0;
  padding:12px 0 0
}
details.ending-spoiler-gate>summary.ending-gate-summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fafaf9;
  padding:12px 14px;
  font-weight:800
}
details.ending-spoiler-gate>summary.ending-gate-summary::-webkit-details-marker{
  display:none
}
details.ending-spoiler-gate>summary.ending-gate-summary::before{
  content:attr(data-gate-label);
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background:#eee;
  padding:3px 8px;
  font-size:.72rem;
  color:var(--muted);
  font-weight:900
}
details.ending-spoiler-gate>summary.ending-gate-summary::after{
  content:"＋";
  color:var(--muted);
  font-weight:900;
  font-size:1.05rem
}
details.ending-spoiler-gate[open]>summary.ending-gate-summary::after{
  content:"－"
}

details.ending-spoiler-confirm{
  margin:12px 0 0
}
details.ending-spoiler-confirm>summary.ending-gate-summary{
  border-color:#e2b9b9;
  background:#fff7f7;
  color:#9a1021
}
details.ending-spoiler-confirm>summary.ending-gate-summary::before{
  background:#f5dddd;
  color:#8d1b28
}

.ending-final-warning{
  margin:0 0 14px!important;
  padding:11px 13px;
  border-left:4px solid #b31f2d;
  border-radius:7px;
  background:#fff3f3;
  color:#9a1021!important;
  font-weight:700
}

/* Keep the ending card pairing, but remove list-as-layout. */
.ending-conditions.ending-condition-list{
  list-style:none!important;
  padding:7px 16px 15px!important
}
.ending-condition-list>.ending-condition-item{
  position:relative;
  margin:0!important;
  padding:8px 0!important;
  line-height:1.75
}
.ending-condition-list>.ending-condition-item::marker{
  content:""!important
}
.ending-condition-multi>.ending-condition-item{
  border-top:1px solid var(--line);
  padding:11px 0 9px!important
}
.ending-condition-multi>.ending-condition-item:first-child{
  border-top:0
}
.ending-condition-multi>.ending-condition-item::before{
  content:attr(data-condition-label);
  display:block;
  margin-bottom:4px;
  font-size:.74rem;
  font-weight:900;
  color:var(--muted)
}
.ending-condition-single>.ending-condition-item{
  padding-top:8px!important
}

/* Nested Soul End note becomes a callout, not another bullet. */
.ending-condition-note{
  list-style:none!important;
  margin:10px 0 0!important;
  padding:0!important
}
.ending-condition-note-item{
  margin:0!important;
  padding:9px 11px!important;
  border-left:4px solid #70859b;
  border-radius:7px;
  background:#f3f6f9;
  line-height:1.65
}
.ending-condition-note-item::before{
  content:attr(data-condition-label);
  display:block;
  margin-bottom:3px;
  font-size:.72rem;
  font-weight:900;
  color:var(--muted)
}
.ending-condition-note-item::marker{
  content:""!important
}

@media(max-width:860px){
  details.ending-spoiler-gate>summary.ending-gate-summary{
    padding:11px 12px;
    gap:8px
  }
  details.ending-spoiler-gate>summary.ending-gate-summary::before{
    font-size:.68rem
  }
  .ending-conditions.ending-condition-list{
    padding:6px 14px 13px!important
  }
}


/* v21: top page current-state cleanup */
.top-spoiler-warning{
  margin:22px 0 28px;
  padding:14px 16px;
  border-left:4px solid #b00020;
  border-radius:9px;
  background:#fff4f5;
  color:#b00020;
  font-weight:800
}
.top-spoiler-warning p{
  margin:0;
  font-size:1rem;
  line-height:1.7
}
.top-spoiler-warning p+p{
  margin-top:3px
}
.retired-platform-block{
  display:inline;
  color:var(--muted)
}
.atsumaru-closed-note{
  margin-top:10px!important;
  padding:11px 13px;
  border-left:4px solid #7b8d73;
  border-radius:7px;
  background:#f4f7f2
}
.update-year{
  margin-top:18px!important;
  font-weight:800
}


/* v22: top-page known issue notice */
.top-issue-notice{
  margin:24px 0 30px;
  padding:17px 18px;
  border:1px solid var(--line);
  border-left:5px solid #b98a35;
  border-radius:12px;
  background:#fffaf0
}
.top-issue-notice h2{
  margin:0 0 12px!important;
  padding:0!important;
  border:0!important;
  font-size:1.18rem!important
}
.top-issue-meta{
  display:grid;
  gap:7px;
  margin:0 0 13px
}
.top-issue-meta>div{
  display:grid;
  grid-template-columns:5.6rem minmax(0,1fr);
  gap:10px
}
.top-issue-meta dt{
  font-weight:800;
  color:var(--muted)
}
.top-issue-meta dd{
  margin:0
}
.top-issue-body{
  padding-top:12px;
  border-top:1px solid var(--line)
}
.top-issue-body>strong{
  display:block;
  margin-bottom:4px
}
.top-issue-body p{
  margin:0;
  line-height:1.75
}
@media(max-width:520px){
  .top-issue-notice{
    padding:15px 14px
  }
  .top-issue-meta>div{
    grid-template-columns:1fr;
    gap:1px
  }
}


/* v23: corrected GitHub operation guidance */
.top-operation-notice{
  border-left-color:#70859b;
  background:#f3f6f9
}


/* v24: GitHub virtual gamepad display conditions */
.gamepad-mode-grid{
  display:grid;
  gap:10px;
  margin:12px 0
}
.gamepad-mode-card{
  padding:11px 12px;
  border-left:4px solid #7b8d73;
  border-radius:7px;
  background:#f4f7f2
}
.gamepad-mode-card-warning{
  border-left-color:#b98a35;
  background:#fbf7ed
}
.gamepad-mode-card>strong{
  display:block;
  margin-bottom:3px;
  font-size:.9rem
}
.gamepad-mode-card p{
  margin:0;
  line-height:1.65
}
.gamepad-guidance-note{
  margin:12px 0 0!important;
  color:var(--muted)
}


/* v26 visual experiment:
   面＝章 / 線＝項目 / カード＝意味のある情報
   No content or information-architecture changes. */

/* Old generic underline-heading treatment is intentionally superseded. */
.content h2{
  border-bottom:0;
}

/* CHAPTER ENTRANCES
   H2 gets a clear horizontal "chapter block" instead of a big title + underline. */
.content > h2,
.tips-major > h2{
  margin:48px 0 20px;
  padding:12px 16px;
  border:0;
  border-radius:5px 13px 13px 5px;
  background:#303942;
  color:#fff;
  font-size:1.38rem;
  line-height:1.45;
  letter-spacing:.005em;
  box-shadow:0 5px 15px rgba(31,38,44,.08);
}

/* Flowchart chapter headings are also chapter entrances. */
.flow-chapter-heading{
  padding:12px 16px!important;
  border:0!important;
  border-radius:5px 13px 13px 5px;
  background:#303942;
  color:#fff;
  font-size:1.38rem!important;
  line-height:1.45;
  box-shadow:0 5px 15px rgba(31,38,44,.08);
}

/* Links inside chapter headings remain readable if any occur. */
.content > h2 a,
.tips-major > h2 a,
.flow-chapter-heading a{
  color:inherit;
}

/* ITEM / LOCATION HEADINGS
   Local sections use a vertical accent instead of another block or underline. */
.content > h3,
.flow-location-heading,
.tips-group-head h3,
.tip-card h4{
  border:0;
  border-left:4px solid #697783;
  background:transparent;
  color:var(--ink);
  padding:2px 0 2px 12px;
  border-radius:0;
  box-shadow:none;
}

.content > h3{
  margin:34px 0 13px;
  font-size:1.22rem;
}

.flow-location-heading{
  padding-left:12px!important;
  border-left:4px solid #697783!important;
}

.tips-group-head h3{
  padding-left:12px;
  margin:0 0 5px;
}

.tip-card h4{
  padding-left:11px;
  margin:4px 0 12px;
  border-left-width:3px;
}

/* Keep smaller subheads light; hierarchy should not become a wall of decoration. */
.content h4:not(.flow-location-heading),
.content h5{
  border-bottom:0;
}

/* Component headings are NOT chapter blocks. */
.top-issue-notice h2{
  margin:0 0 12px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:inherit!important;
  box-shadow:none!important;
}

.flow-toc-group h3,
.battle-panel h4,
.battle-note strong,
.ending-title{
  border-left:0;
  padding-left:0;
}

/* Mobile: keep the block strong but avoid oversized vertical bulk. */
@media(max-width:860px){
  .content > h2,
  .tips-major > h2,
  .flow-chapter-heading{
    margin-top:40px;
    padding:11px 13px!important;
    border-radius:4px 11px 11px 4px;
    font-size:1.22rem!important;
    box-shadow:0 3px 10px rgba(31,38,44,.07);
  }

  .content > h3,
  .flow-location-heading,
  .tips-group-head h3,
  .tip-card h4{
    border-left-width:3px!important;
    padding-left:10px!important;
  }
}


/* v27: flatter chapter bands; keep 面＝章 / 線＝項目 */
.content > h2,
.tips-major > h2,
.flow-chapter-heading{
  background:#3f4a54!important;
  border-radius:2px!important;
  box-shadow:none!important;
  padding-top:10px!important;
  padding-bottom:10px!important;
}
@media(max-width:860px){
  .content > h2,
  .tips-major > h2,
  .flow-chapter-heading{
    border-radius:2px!important;
    box-shadow:none!important;
    padding-top:10px!important;
    padding-bottom:10px!important;
  }
}


/* v28: gothic fence frame experiment
   Decorate the existing white article panel instead of adding a background illustration. */
.content{
  position:relative;
  overflow:visible;
  isolation:isolate;
}

/* Thin repeating ironwork along the two article edges. */
.content::before,
.content::after{
  content:"";
  position:absolute;
  top:18px;
  bottom:18px;
  width:16px;
  background-image:url("/assets/gothic-fence-v31.svg");
  background-repeat:repeat-y;
  background-position:center top;
  background-size:16px 48px;
  opacity:.54;
  pointer-events:none;
  z-index:2;
}

.content::before{
  left:-9px;
}

.content::after{
  right:-9px;
  transform:scaleX(-1);
}

/* Keep the paper face quiet; the ornament should read as a frame, not a panel texture. */
.content{
  background-color:#fff;
  border-color:#d3d2cc;
}

/* Desktop gets a little more breathing room around the decorated paper. */
@media(min-width:861px){
  main{
    padding-left:5px;
    padding-right:5px;
  }
}

/* Mobile: keep the motif narrow and faint so it does not steal reading width. */
@media(max-width:860px){
  .content::before,
  .content::after{
    width:12px;
    background-size:12px 36px;
    opacity:.42;
    top:14px;
    bottom:14px;
  }
  .content::before{left:-6px}
  .content::after{right:-6px}
}

@media(max-width:390px){
  .content::before,
  .content::after{
    width:10px;
    background-size:10px 30px;
    opacity:.36;
  }
  .content::before{left:-5px}
  .content::after{right:-5px}
}


/* v29: iron-fence refinement
   Same placement/opacity, but with a more metallic, architectural repeat. */
.content::before,
.content::after{
  width:18px;
  background-size:18px 72px;
}

@media(max-width:860px){
  .content::before,
  .content::after{
    width:13px;
    background-size:13px 52px;
  }
}

@media(max-width:390px){
  .content::before,
  .content::after{
    width:11px;
    background-size:11px 44px;
  }
}


/* v30: "outer post + short rails + two inner spear bars"
   Refines v29 from decorative chain/wire toward a clearer iron-fence cross-section. */
.content::before,
.content::after{
  width:20px;
  background-size:20px 84px;
}

@media(max-width:860px){
  .content::before,
  .content::after{
    width:14px;
    background-size:14px 58px;
  }
}

@media(max-width:390px){
  .content::before,
  .content::after{
    width:12px;
    background-size:12px 50px;
  }
}


/* v31: wrought-iron gothic fence
   Less horizontal rail, more spear / pointed-arch / diamond language. */
.content::before,
.content::after{
  width:20px;
  background-size:20px 96px;
}

@media(max-width:860px){
  .content::before,
  .content::after{
    width:14px;
    background-size:14px 67px;
  }
}

@media(max-width:390px){
  .content::before,
  .content::after{
    width:12px;
    background-size:12px 58px;
  }
}
