/* roulang page: index */
:root{--bg:#F3EEE6;--card:#FBF8F3;--ink:#2A2422;--muted:#6E655F;--plum:#2A1E2B;--wisteria:#7A4E8A;--celadon:#5E8F86;--apricot:#E2B07A;--line:rgba(42,30,43,.12);--shadow:0 10px 28px rgba(42,30,43,.08);--radius:20px;--serif:"Noto Serif SC",serif;--sans:"Noto Sans SC",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:var(--plum);text-decoration:none}
a:hover{color:var(--plum);text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(94,143,134,.45)}
button,input,select{font-family:inherit}
.wrap{width:min(1120px,calc(100% - 40px));margin-inline:auto}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:700;letter-spacing:.01em}
h1{font-size:40px;line-height:1.2;margin:0 0 12px}
h2{font-size:28px;line-height:1.28;margin:0 0 12px}
h3{font-size:18px;line-height:1.44;margin:0 0 8px}
p{margin:0 0 12px}
.muted{color:var(--muted)}
.site-dock{position:fixed;z-index:40;top:16px;left:0;right:0;display:flex;justify-content:center;pointer-events:none}
.dock-bar{pointer-events:auto;width:min(920px,calc(100% - 24px));display:flex;align-items:center;gap:12px;padding:8px 10px 8px 16px;background:rgba(251,248,243,.92);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);backdrop-filter:blur(10px);position:relative}
.logo{display:flex;flex-direction:column;line-height:1.15;min-width:108px;color:var(--plum);text-decoration:none}
.logo:hover{text-decoration:none;color:var(--wisteria)}
.logo-line{font-family:var(--serif);font-size:13px;font-weight:700}
.dock-links{display:flex;align-items:center;gap:4px;margin-left:6px}
.dock-link{padding:6px 12px;border-radius:999px;color:var(--ink);font-size:14px;white-space:nowrap}
.dock-link:hover{text-decoration:none;background:rgba(94,143,134,.12)}
.dock-link.is-active{background:var(--plum);color:#FBF8F3}
.dock-link.is-active:hover{color:#FBF8F3;text-decoration:none}
.dock-search{display:flex;align-items:center;gap:6px;margin-left:auto;background:#F3EEE6;border:1px solid var(--line);border-radius:999px;padding:4px 4px 4px 12px}
.paper-input,.paper-select{border:0;background:transparent;color:var(--ink);font-size:13px;min-width:0}
.paper-input{width:132px}
.paper-select{border-left:1px solid var(--line);padding-left:8px;border-radius:0}
.paper-input:focus,.paper-select:focus{outline:none;box-shadow:none}
.dock-search:focus-within{box-shadow:0 0 0 3px rgba(94,143,134,.35);border-color:var(--celadon)}
.btn-ink{display:inline-flex;align-items:center;justify-content:center;background:var(--plum);color:#FBF8F3;border:0;border-radius:999px;padding:10px 18px;font-size:14px;line-height:1;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;text-decoration:none;white-space:nowrap}
.btn-ink:hover{background:var(--wisteria);color:#FBF8F3;text-decoration:none;transform:translateY(-2px);box-shadow:0 12px 28px rgba(42,30,43,.16)}
.btn-ink:active{transform:translateY(0)}
.dock-tools{display:none;margin-left:auto;gap:8px}
.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--plum);display:grid;place-items:center;text-decoration:none;font-size:12px}
.icon-btn:hover{text-decoration:none;border-color:var(--celadon);color:var(--wisteria)}
.paper-offcanvas{background:var(--card);color:var(--ink);width:min(360px,88vw);border-left:0}
.offcanvas-head{font-family:var(--serif);font-size:18px}
.offcanvas-nav{display:flex;flex-direction:column;gap:8px;padding:8px 4px 0}
.offcanvas-nav a{padding:12px 14px;border-radius:16px;background:#F3EEE6;color:var(--plum)}
.offcanvas-nav a:hover{text-decoration:none;border:1px solid var(--celadon)}
main{padding:118px 0 40px}
.band{padding:72px 0}
.band-warm{background:#EFE8DE}
.band-plain{background:transparent}
.hero-stage{background:radial-gradient(420px 220px at 12% 20%,rgba(122,78,138,.16),transparent 70%),radial-gradient(380px 240px at 90% 80%,rgba(94,143,134,.18),transparent 72%),var(--bg);border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:28px;align-items:stretch}
.hero-copy,.player-frame,.paper-card,.result-sheet,.note-board,.metric-board,.compare-board{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero-copy{padding:32px}
.hero-brand{display:flex;flex-direction:column;font-family:var(--serif);font-weight:700;color:var(--plum);line-height:1.2;margin-bottom:14px}
.hero-sub{font-size:18px;line-height:1.6;margin-bottom:14px}
.hero-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.point-pill{border-radius:999px;padding:6px 12px;background:#F3EEE6;border:1px solid var(--line);font-size:13px;color:var(--muted)}
.player-frame{padding:18px;display:flex;flex-direction:column;min-height:100%}
.player-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);margin-bottom:12px}
.player-stage{flex:1;min-height:230px;border-radius:16px;background:linear-gradient(160deg,#2A1E2B,#4A3450 55%,#5E8F86);display:grid;place-items:center;position:relative;overflow:hidden}
.player-stage::before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(243,238,230,.08);right:-30px;top:-40px}
.play-btn{width:74px;height:74px;border-radius:50%;border:0;background:#FBF8F3;color:var(--plum);font-family:var(--serif);cursor:pointer;position:relative;z-index:1}
.play-btn:hover{background:#fff;transform:translateY(-2px)}
.player-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.chip{font-size:12px;border-radius:999px;padding:4px 10px;background:#F3EEE6;color:var(--ink);border:1px solid var(--line)}
.fake-bar{height:6px;border-radius:999px;background:rgba(42,30,43,.1);margin-top:12px;overflow:hidden}
.fake-bar i{display:block;height:100%;width:28%;background:var(--celadon)}
.section-kicker{color:var(--wisteria);font-size:13px;letter-spacing:.08em;margin-bottom:6px}
.lead-block{max-width:680px}
.pain-track{display:flex;gap:16px;align-items:flex-start;margin-top:28px;padding-bottom:8px}
.pain-item{flex:1;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease}
.pain-item:nth-child(1){margin-top:0}
.pain-item:nth-child(2){margin-top:46px}
.pain-item:nth-child(3){margin-top:14px}
.pain-item:hover{transform:translateY(-4px);border-color:var(--celadon)}
.idx{font-family:var(--serif);color:var(--apricot);font-size:22px}
.index-rail{margin-top:26px;display:grid;grid-template-columns:1.6fr .8fr;gap:18px}
.rail-panel{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);padding:24px;box-shadow:var(--shadow);position:relative;min-height:180px}
.rail-line{height:2px;background:var(--line);margin:22px 0;position:relative}
.rail-line span{position:absolute;top:-7px;width:16px;height:16px;border-radius:50%;background:var(--card);border:3px solid var(--wisteria)}
.rail-line span:first-child{left:12%}
.rail-line span:last-child{right:18%;border-color:var(--celadon)}
.zone-seal{display:inline-grid;place-items:center;min-width:72px;height:72px;padding:8px;border-radius:50%;border:2px solid var(--wisteria);font-family:var(--serif);color:var(--plum);background:radial-gradient(circle at 50% 50%,transparent 58%,rgba(94,143,134,.0) 59%),var(--card);box-shadow:inset 0 0 0 6px var(--card),inset 0 0 0 8px var(--celadon)}
.compare-board{display:grid;grid-template-columns:7fr 72px 3fr;gap:0;overflow:hidden;margin-top:22px}
.zone-major,.zone-minor{padding:28px}
.zone-major{background:#FBF8F3}
.zone-minor{background:#F6F1E8}
.judge-tag{writing-mode:vertical-rl;display:grid;place-items:center;background:var(--plum);color:#FBF8F3;letter-spacing:.2em;font-family:var(--serif);font-size:15px}
.step-list{display:flex;flex-direction:column;gap:14px;margin-top:22px;max-width:760px}
.step-item{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:start}
.step-no{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--card);border:2px solid var(--wisteria);box-shadow:inset 0 0 0 5px var(--card),inset 0 0 0 7px var(--celadon);font-family:var(--serif);color:var(--plum)}
.step-body{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px}
.setting-row{display:flex;gap:14px;margin-top:22px}
.setting-card{flex:1;background:var(--card);border-radius:999px;border:1px solid var(--line);padding:16px 20px;box-shadow:var(--shadow)}
.setting-card:nth-child(2){transform:translateY(18px)}
.setting-card:nth-child(3){transform:translateY(6px)}
.setting-card strong{display:block;font-family:var(--serif)}
.result-sheet{margin-top:22px;padding:28px 32px;display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:18px;align-items:center}
.result-num{font-family:var(--serif);font-size:42px;line-height:1;color:var(--plum)}
.result-num em{font-style:normal;color:var(--apricot);font-size:16px;margin-left:4px}
.review-wall{margin-top:22px;columns:3;column-gap:16px}
.review-card{break-inside:avoid;margin:0 0 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease}
.review-card:nth-child(2){margin-top:22px}
.review-card:nth-child(4){margin-top:10px}
.review-card:hover{transform:translateY(-4px);border-color:var(--celadon)}
.review-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.score-seal{width:58px;height:58px;border-radius:50%;border:2px solid var(--wisteria);display:grid;place-items:center;position:relative;flex:none}
.score-seal::after{content:"";position:absolute;inset:5px;border-radius:50%;border:2px solid var(--celadon)}
.score-seal b{position:relative;z-index:1;color:var(--apricot);font-family:var(--serif);font-size:16px}
.people-row{display:flex;gap:12px;align-items:stretch;margin-top:22px}
.people-tag{background:var(--card);border:1px dashed rgba(122,78,138,.45);border-radius:18px;padding:18px;box-shadow:var(--shadow)}
.people-tag:nth-child(1){flex:1.3}
.people-tag:nth-child(2){flex:.8;margin-top:28px}
.people-tag:nth-child(3){flex:1.1}
.people-tag:nth-child(4){flex:.9;margin-top:16px}
.news-list{margin-top:8px}
.news-row{display:grid;grid-template-columns:128px 72px 1fr auto;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.news-row a{font-family:var(--serif);font-size:18px}
.zone-mini{font-size:12px;border-radius:999px;padding:2px 8px;background:rgba(94,143,134,.15);color:var(--plum)}
.metric-board{margin-top:22px;padding:28px;display:grid;grid-template-columns:1.1fr .9fr;gap:28px}
.scale-row{margin-bottom:16px}
.scale{height:8px;border-radius:999px;background:rgba(42,30,43,.1);overflow:hidden}
.scale i{display:block;height:100%;background:var(--celadon);border-radius:inherit}
.scale.alt i{background:var(--wisteria)}
.ring-row{display:flex;gap:18px;justify-content:space-around}
.ring{width:104px;height:104px;border-radius:50%;background:conic-gradient(var(--wisteria) calc(var(--p)*1%),rgba(42,30,43,.12) 0);display:grid;place-items:center}
.ring span{width:74px;height:74px;border-radius:50%;background:var(--card);border:3px solid var(--celadon);display:grid;place-items:center;color:var(--apricot);font-family:var(--serif);font-size:20px}
.ring small{display:block;text-align:center;color:var(--muted);font-size:12px;margin-top:6px;font-family:var(--sans)}
.note-board{margin-top:22px;display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden}
.note-visual{min-height:320px;background:linear-gradient(145deg,rgba(42,30,43,.88),rgba(122,78,138,.75)),repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 8px,transparent 8px 16px);color:#FBF8F3;padding:28px;display:flex;flex-direction:column;justify-content:space-between}
.note-side{padding:28px}
.split-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pro,.con{background:#F3EEE6;border-radius:16px;padding:12px}
.pro{border-top:3px solid var(--celadon)}
.con{border-top:3px solid var(--wisteria)}
.film-rail{display:flex;gap:14px;overflow-x:auto;padding:22px 2px 12px;scroll-snap-type:x mandatory}
.film-card{scroll-snap-align:start;flex:none;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease}
.film-card:nth-child(odd){width:260px}
.film-card:nth-child(even){width:340px}
.film-card:hover{transform:translateY(-4px);border-color:var(--celadon)}
.film-cover{height:120px;border-radius:14px;margin-bottom:12px;background:linear-gradient(160deg,#E7D7C8,#C9B7C6)}
.film-card:nth-child(even) .film-cover{height:156px;background:linear-gradient(160deg,#D9E4DF,#E4D3C2)}
.scene-stack{position:relative;height:540px;margin-top:22px}
.scene-card{position:absolute;width:min(460px,78%);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.scene-card.s1{top:0;left:0;min-height:210px}
.scene-card.s2{top:168px;left:30%;min-height:180px;background:#F7F3EC}
.scene-card.s3{top:330px;left:6%;min-height:190px}
.entry-board{margin-top:22px;display:grid;grid-template-columns:1.4fr .8fr;gap:18px}
.entry-link{display:block;padding:28px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);font-family:var(--serif);font-size:26px;line-height:1.35}
.entry-link:hover{text-decoration:none;transform:translateY(-4px);border-color:var(--celadon);transition:transform .2s ease,border-color .2s ease}
.entry-link span{display:block;margin-top:8px;font-family:var(--sans);font-size:14px;color:var(--muted);font-weight:400}
.faq-accordion{margin-top:12px}
.faq-accordion .accordion-item{background:transparent;border:0;border-bottom:1px solid var(--line)}
.faq-accordion .accordion-button{background:transparent;color:var(--ink);font-family:var(--serif);font-size:18px;box-shadow:none;padding:16px 4px}
.faq-accordion .accordion-button:not(.collapsed){background:transparent;color:var(--plum);box-shadow:none}
.faq-accordion .accordion-button::after{filter:none}
.faq-accordion .accordion-body{padding:0 4px 16px;color:var(--muted)}
.cta-band{padding:28px 0 72px}
.cta-bar{background:var(--plum);color:#FBF8F3;border-radius:999px;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.cta-bar p{margin:0;color:rgba(251,248,243,.82)}
.cta-bar h2{color:#FBF8F3;font-size:22px;margin:0}
.btn-paper{background:#FBF8F3;color:var(--plum)}
.btn-paper:hover{background:#fff;color:var(--wisteria)}
.site-footer{padding:28px 0 48px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.foot-brand{font-family:var(--serif);color:var(--plum);font-size:18px;margin-bottom:6px}
.foot-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media(max-width:1199.98px){.wrap{width:min(1040px,calc(100% - 36px))}}
@media(max-width:991.98px){
h1{font-size:34px}
.hero-grid,.index-rail,.compare-board,.result-sheet,.metric-board,.note-board,.entry-board{grid-template-columns:1fr}
.judge-tag{writing-mode:horizontal-tb;letter-spacing:.12em;padding:10px}
.review-wall{columns:2}
.dock-links{display:none}
.paper-input{width:96px}
}
@media(max-width:767.98px){
main{padding:28px 0 120px}
.band{padding:48px 0}
h1{font-size:30px;line-height:1.26}
h2{font-size:24px}
.site-dock{top:auto;bottom:12px}
.dock-bar{width:min(560px,calc(100% - 20px));padding:8px 10px}
.dock-links,.dock-cta{display:none}
.dock-search{display:none;position:absolute;left:10px;right:10px;bottom:64px;margin:0}
.dock-search:target,.dock-bar:focus-within .dock-search{display:flex}
.dock-tools{display:flex}
.pain-track,.setting-row,.people-row{flex-direction:column}
.pain-item,.setting-card,.people-tag{margin-top:0!important;transform:none!important}
.review-wall{columns:1}
.result-sheet{grid-template-columns:1fr}
.news-row{grid-template-columns:1fr;gap:4px}
.scene-stack{height:auto;display:flex;flex-direction:column;gap:12px}
.scene-card{position:static;width:100%}
.cta-bar{border-radius:24px;flex-direction:column;align-items:flex-start}
.film-card:nth-child(odd),.film-card:nth-child(even){width:240px}
.split-two{grid-template-columns:1fr}
}
@media(max-width:575.98px){
.wrap{width:calc(100% - 28px)}
.hero-copy,.note-side,.zone-major,.zone-minor{padding:20px}
.paper-input{width:100%}
.dock-search:target{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* roulang page: category2 */
:root{--bg:#F3EEE6;--card:#FBF8F3;--ink:#2A2422;--muted:#6E655F;--plum:#2A1E2B;--wisteria:#7A4E8A;--celadon:#5E8F86;--apricot:#E2B07A;--line:rgba(42,30,43,.12);--shadow:0 10px 28px rgba(42,30,43,.08);--radius:20px;--serif:"Noto Serif SC",serif;--sans:"Noto Sans SC",sans-serif}
/* roulang page: category2 */
:root{--bg:#F3EEE6;--card:#FBF8F3;--ink:#2A2422;--muted:#6E655F;--plum:#2A1E2B;--wisteria:#7A4E8A;--celadon:#5E8F86;--apricot:#E2B07A;--line:rgba(42,30,43,.12);--shadow:0 10px 28px rgba(42,30,43,.08);--radius:20px;--serif:"Noto Serif SC",serif;--sans:"Noto Sans SC",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:var(--plum);text-decoration:none}
a:hover{color:var(--plum);text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(94,143,134,.45)}
button,input,select{font-family:inherit}
p{margin:0 0 8px}
h1,h2,h3{font-family:var(--serif);font-weight:700;color:var(--plum);letter-spacing:0}
h1{font-size:40px;line-height:1.2;margin:0}
h2{font-size:28px;line-height:1.28;margin:0 0 14px}
h3{font-size:18px;line-height:1.44;margin:0 0 8px}
.muted{color:var(--muted)}
.wrap{width:min(1120px,calc(100% - 40px));margin:0 auto}
.site-dock{position:fixed;top:16px;left:0;right:0;z-index:40;display:flex;justify-content:center;pointer-events:none}
.dock-bar{pointer-events:auto;width:min(920px,calc(100% - 32px));background:rgba(251,248,243,.92);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;backdrop-filter:blur(10px)}
.logo{display:flex;flex-direction:column;line-height:1.15;min-width:108px;color:var(--plum);text-decoration:none}
.logo:hover{text-decoration:none;color:var(--wisteria)}
.logo-line{font-family:var(--serif);font-size:13px;font-weight:700}
.dock-links{display:flex;align-items:center;gap:2px}
.dock-link{color:var(--ink);font-size:13px;padding:6px 10px;border-radius:999px;white-space:nowrap}
.dock-link:hover{color:var(--plum);text-decoration:underline}
.dock-link.is-active{background:var(--plum);color:#FBF8F3}
.dock-link.is-active:hover{color:#FBF8F3;text-decoration:none}
.dock-search{display:flex;align-items:center;gap:6px;margin-left:auto;background:#F3EEE6;border:1px solid var(--line);border-radius:999px;padding:4px 4px 4px 12px}
.paper-input,.paper-select{border:0;background:transparent;color:var(--ink);font-size:13px;min-width:0}
.paper-input{width:108px}
.paper-select{border-left:1px solid var(--line);padding-left:8px;border-radius:0}
.paper-input:focus,.paper-select:focus{outline:none;box-shadow:none}
.dock-search:focus-within{box-shadow:0 0 0 3px rgba(94,143,134,.35);border-color:var(--celadon)}
.btn-ink{display:inline-flex;align-items:center;justify-content:center;background:var(--plum);color:#FBF8F3;border:0;border-radius:999px;padding:10px 16px;font-size:14px;line-height:1;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;text-decoration:none;white-space:nowrap}
.btn-ink:hover{background:var(--wisteria);color:#FBF8F3;text-decoration:none;transform:translateY(-2px);box-shadow:0 12px 28px rgba(42,30,43,.16)}
.btn-ink:active{transform:translateY(0)}
.dock-mobile{display:none}
.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--plum);display:grid;place-items:center;text-decoration:none;font-size:12px;padding:0}
.icon-btn:hover{text-decoration:none;border-color:var(--celadon);color:var(--wisteria)}
.paper-offcanvas{background:var(--card);color:var(--ink);width:min(360px,88vw);border-left:0}
.offcanvas-head{font-family:var(--serif);font-size:18px;color:var(--plum)}
.offcanvas-nav{display:flex;flex-direction:column;gap:8px;padding:8px 4px 0}
.offcanvas-nav a{padding:12px 14px;border-radius:16px;background:#F3EEE6;color:var(--plum);border:1px solid transparent}
.offcanvas-nav a:hover{text-decoration:none;border-color:var(--celadon)}
.offcanvas-nav a.is-active{background:var(--plum);color:#FBF8F3}
.paper-offcanvas .btn-close{opacity:.6}
main{padding:118px 0 48px}
.sheet{padding:72px 0}
.sheet-low{padding:8px 0 28px}
.sheet-band{background:linear-gradient(180deg,rgba(251,248,243,.55),rgba(243,238,230,0));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sheet-plain{border-top:1px solid transparent}
.kicker{color:var(--wisteria);font-size:13px;letter-spacing:.08em;margin-bottom:8px}
.low-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.low-head p{max-width:460px;margin:10px 0 0;color:var(--muted)}
.sort-note{text-align:right;color:var(--muted);font-size:14px;line-height:1.7;min-width:180px}
.sort-note strong{display:block;color:var(--plum);font-family:var(--serif);font-size:16px;font-weight:700}
.ledger{display:grid;grid-template-columns:86px 1fr;gap:18px;align-items:stretch}
.ticks{list-style:none;margin:8px 0 0;padding:0 0 0 14px;border-left:1px solid rgba(122,78,138,.45);display:flex;flex-direction:column;justify-content:space-between;min-height:100%}
.ticks li{position:relative;color:var(--wisteria);font-family:var(--serif);font-size:14px}
.ticks li::before{content:"";position:absolute;left:-18px;top:.55em;width:9px;height:9px;border-radius:50%;background:var(--card);border:2px solid var(--celadon)}
.ledger-cards{display:grid;grid-template-columns:1.45fr .8fr;gap:16px}
.note-main,.note-sub,.text-strip,.meter-board,.scene-card,.article-row,.qa-lite,.more-strip{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.note-main,.note-sub{padding:24px 26px;transition:transform .2s ease,border-color .2s ease}
.note-main:hover,.note-sub:hover,.scene-card:hover,.article-row:hover{transform:translateY(-4px);border-color:var(--celadon)}
.note-side{display:flex;flex-direction:column;gap:16px}
.note-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.seal{width:68px;height:68px;border-radius:50%;border:2px solid var(--wisteria);display:grid;place-items:center;flex:none}
.seal span{width:50px;height:50px;border-radius:50%;border:2px solid var(--celadon);display:grid;place-items:center;color:var(--apricot);font-family:var(--serif);font-weight:700;font-size:16px}
.seal.sm{width:54px;height:54px}
.seal.sm span{width:40px;height:40px;font-size:13px}
.zone-tag{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;background:#F3EEE6;border:1px solid var(--line);font-size:12px;color:var(--ink);margin-right:6px}
.constraint{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);color:var(--muted);font-size:14px}
.text-strip{display:grid;grid-template-columns:1.4fr 72px .9fr;overflow:hidden}
.strip-col{padding:28px 30px}
.strip-col+.strip-col{border-left:0}
.judge-tag{display:grid;place-items:center;background:var(--plum);color:#FBF8F3;writing-mode:vertical-rl;letter-spacing:.22em;font-family:var(--serif);font-size:15px}
.meter-board{padding:28px 30px}
.meter{margin-top:18px}
.meter-top{display:flex;justify-content:space-between;align-items:baseline;font-size:15px}
.meter-top b{color:var(--apricot);font-family:var(--serif);font-size:22px;font-weight:700}
.meter-track{height:8px;border-radius:999px;background:#E7E0D6;margin-top:8px;overflow:hidden}
.meter-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--celadon),var(--wisteria))}
.w86{width:86%}
.w91{width:91%}
.w74{width:74%}
.scene-card{padding:28px 26px}
.scene-night{min-height:240px}
.scene-hd{min-height:168px;margin-top:34px}
.scene-card em{font-style:normal;color:var(--celadon);font-size:13px;letter-spacing:.06em}
.article-list{display:flex;flex-direction:column;gap:12px}
.article-row{display:grid;grid-template-columns:92px 1fr;gap:16px;align-items:center;padding:18px 22px}
.article-row time{font-family:var(--serif);color:var(--wisteria)}
.article-row a{font-size:18px;line-height:1.5}
.qa-lite{padding:8px 22px}
.qa-lite details{border-bottom:1px solid var(--line);padding:14px 0}
.qa-lite details:last-child{border-bottom:0}
.qa-lite summary{cursor:pointer;font-family:var(--serif);font-size:18px;color:var(--plum);list-style:none;display:flex;justify-content:space-between;gap:12px}
.qa-lite summary::-webkit-details-marker{display:none}
.qa-lite summary::after{content:"＋";color:var(--celadon);font-family:var(--sans)}
.qa-lite details[open] summary::after{content:"－"}
.qa-lite details p{margin:8px 0 4px;color:var(--muted)}
.more-band{padding:28px 0 8px}
.more-strip{display:flex;justify-content:flex-end;padding:16px 22px}
.more-link{font-family:var(--serif);font-size:16px}
.site-footer{border-top:1px solid var(--line);padding:28px 0 40px;color:var(--muted);font-size:14px}
.foot-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-end}
.foot-brand{font-family:var(--serif);color:var(--plum);font-size:18px;margin-bottom:4px}
@media (max-width:1199.98px){
.wrap{width:min(1040px,calc(100% - 32px))}
}
@media (max-width:991.98px){
.paper-input{width:72px}
.dock-link{padding:6px 7px;font-size:12px}
.ledger-cards,.text-strip{grid-template-columns:1fr}
.judge-tag{writing-mode:horizontal-tb;letter-spacing:.12em;padding:12px;min-height:48px}
.scene-hd{margin-top:16px}
h1{font-size:34px}
}
@media (max-width:767.98px){
.site-dock{top:auto;bottom:16px}
.dock-links,.dock-search{display:none}
.dock-bar{padding:8px 12px}
.dock-mobile{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}
.dock-tools{display:flex;gap:8px}
main{padding:28px 0 108px}
.sheet{padding:48px 0}
.low-head,.foot-row,.article-row{display:block}
.sort-note{text-align:left;margin-top:14px}
.ledger{grid-template-columns:1fr}
.ticks{flex-direction:row;border-left:0;border-top:1px solid rgba(122,78,138,.45);padding:12px 0 0;margin:0 0 12px;gap:18px}
.ticks li::before{left:0;top:-16px}
h1{font-size:30px;line-height:1.26}
h2{font-size:24px}
}
@media (max-width:575.98px){
.wrap{width:calc(100% - 28px)}
.note-main,.note-sub,.strip-col,.meter-board,.scene-card{padding:18px}
.note-top{flex-direction:column}
.scene-night{min-height:0}
}

/* roulang page: category1 */
:root{--bg:#F3EEE6;--card:#FBF8F3;--ink:#2A2422;--muted:#6E655F;--plum:#2A1E2B;--wisteria:#7A4E8A;--celadon:#5E8F86;--apricot:#E2B07A;--line:rgba(42,30,43,.12);--shadow:0 10px 28px rgba(42,30,43,.08);--radius:20px;--serif:"Noto Serif SC",serif;--sans:"Noto Sans SC",sans-serif}
/* roulang page: category1 */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:var(--plum);text-decoration:none}
a:hover{color:var(--plum);text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(94,143,134,.45)}
button,input,select{font-family:inherit}
h1,h2,h3{color:var(--plum);font-family:var(--serif);font-weight:700}
h1{font-size:40px;line-height:1.2;margin:0 0 14px}
h2{font-size:28px;line-height:1.29;margin:0 0 20px}
h3{font-size:18px;line-height:1.44;margin:0 0 6px}
p{margin:0}
.muted{color:var(--muted)}
.wrap{width:min(1120px,calc(100% - 48px));margin:0 auto}
.dock-wrap{position:fixed;z-index:1030;top:16px;left:50%;transform:translateX(-50%);width:min(920px,calc(100% - 32px))}
.dock{display:flex;align-items:center;gap:8px;background:rgba(251,248,243,.92);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);padding:8px 8px 8px 16px}
.logo{display:flex;flex-direction:column;line-height:1.15;min-width:108px;color:var(--plum);text-decoration:none}
.logo:hover{text-decoration:none;color:var(--wisteria)}
.logo-line{font-family:var(--serif);font-size:13px;font-weight:700}
.dock-links{display:flex;align-items:center;gap:2px}
.dock-link{color:var(--ink);text-decoration:none;padding:8px 10px;border-radius:999px;font-size:13px;white-space:nowrap}
.dock-link:hover{text-decoration:underline;color:var(--plum)}
.dock-link.is-active{background:var(--plum);color:#FBF8F3}
.dock-link.is-active:hover{color:#FBF8F3;text-decoration:none}
.dock-search{display:flex;align-items:center;gap:6px;margin-left:auto;background:#F3EEE6;border:1px solid var(--line);border-radius:999px;padding:4px 4px 4px 12px}
.paper-input,.paper-select{border:0;background:transparent;color:var(--ink);font-size:13px;min-width:0}
.paper-input{width:108px}
.paper-select{border-left:1px solid var(--line);padding-left:8px;border-radius:0;max-width:76px}
.paper-input:focus,.paper-select:focus{outline:none;box-shadow:none}
.dock-search:focus-within{box-shadow:0 0 0 3px rgba(94,143,134,.35);border-color:var(--celadon)}
.btn-ink{display:inline-flex;align-items:center;justify-content:center;background:var(--plum);color:#FBF8F3;border:0;border-radius:999px;padding:10px 18px;font-size:14px;line-height:1;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;text-decoration:none;white-space:nowrap}
.btn-ink:hover{background:var(--wisteria);color:#FBF8F3;text-decoration:none;transform:translateY(-2px);box-shadow:0 12px 28px rgba(42,30,43,.16)}
.btn-ink:active{transform:translateY(0)}
.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--plum);display:grid;place-items:center;text-decoration:none;font-size:12px;cursor:pointer}
.icon-btn:hover{text-decoration:none;border-color:var(--celadon);color:var(--wisteria)}
.dock-compact{display:none;align-items:center;gap:8px;margin-left:auto}
.paper-offcanvas{background:var(--card);color:var(--ink);width:min(360px,88vw);border-left:0}
.offcanvas-head{font-family:var(--serif);font-size:18px;color:var(--plum)}
.offcanvas-nav{display:flex;flex-direction:column;gap:8px;padding:8px 4px 0}
.offcanvas-nav a{padding:12px 14px;border-radius:16px;background:#F3EEE6;color:var(--plum);border:1px solid transparent}
.offcanvas-nav a:hover{text-decoration:none;border-color:var(--celadon)}
.offcanvas-nav a.is-active{background:var(--plum);color:#FBF8F3}
.paper-offcanvas .btn-close{opacity:.7;box-shadow:none}
main{padding:108px 0 20px}
.page-head{padding:8px 0 26px;border-bottom:1px solid var(--line)}
.block{padding:72px 0}
.rule-block,.stack-block,.qa-block{background:rgba(42,30,43,.035)}
.filter-row{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:13px;border-radius:999px;padding:6px 14px;background:#F3EEE6;color:var(--ink);border:1px solid var(--line);cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease}
.chip:hover{border-color:var(--celadon);transform:translateY(-2px)}
.chip.is-on{background:var(--plum);color:#FBF8F3;border-color:var(--plum)}
.mag-list{margin-top:6px}
.mag-row{display:grid;grid-template-columns:108px 1fr;gap:18px;align-items:center;padding:22px 14px;border-bottom:1px solid var(--line);border-left:3px solid transparent;transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease}
.mag-row[hidden]{display:none !important}
.mag-row:hover{background:var(--card);border-left-color:var(--celadon);transform:translateY(-4px);box-shadow:var(--shadow);border-radius:0 20px 20px 0}
.score-seal{width:84px;height:84px;border-radius:50%;border:3px solid var(--wisteria);display:grid;place-items:center;position:relative;background:var(--card)}
.score-seal::after{content:"";position:absolute;inset:7px;border-radius:50%;border:2px solid var(--celadon)}
.score-seal b{position:relative;z-index:1;color:var(--apricot);font-family:var(--serif);font-size:22px;line-height:1}
.mag-meta{font-size:13px;color:var(--ink)}
.mag-note{margin-top:6px;color:var(--muted)}
.rule-line{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin:0;padding:16px 22px;background:var(--card);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow)}
.rule-line span{white-space:nowrap}
.rule-line b{font-family:var(--serif);font-weight:700;margin-right:6px}
.time-rail{list-style:none;margin:0;padding:0;max-width:760px}
.time-node{display:grid;grid-template-columns:92px 1fr;gap:16px;position:relative;padding:0 0 28px 26px}
.time-node::before{content:"";position:absolute;left:0;top:8px;bottom:-8px;width:2px;background:rgba(122,78,138,.35)}
.time-node:last-child::before{bottom:auto;height:10px}
.time-node::after{content:"";position:absolute;left:-5px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--celadon);box-shadow:0 0 0 4px var(--bg)}
.time-node time{color:var(--wisteria);font-size:14px}
.time-node strong{display:block;font-family:var(--serif);font-size:18px;line-height:1.45}
.time-node em{font-style:normal;color:var(--muted)}
.stack-stage{position:relative;min-height:300px;max-width:880px}
.paper-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 30px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.paper-card:hover{border-color:var(--celadon);box-shadow:0 14px 30px rgba(42,30,43,.12)}
.stack-a{position:relative;z-index:1;width:min(100%,560px)}
.stack-a:hover{transform:translateY(-4px)}
.stack-b{position:absolute;z-index:2;right:0;top:86px;width:min(100%,470px);transform:rotate(-1.2deg)}
.stack-b:hover{transform:translateY(-4px) rotate(-1.2deg)}
.paper-card p{margin-top:8px;color:var(--muted)}
.article-list{max-width:820px}
.article-row{display:grid;grid-template-columns:84px 1fr;gap:4px 16px;padding:16px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.article-row:hover{text-decoration:none}
.article-row:hover strong{text-decoration:underline}
.article-row time{color:var(--wisteria);padding-top:2px}
.article-row strong{font-family:var(--serif);font-size:18px;font-weight:700;color:var(--plum)}
.article-row em{grid-column:2;font-style:normal;color:var(--muted);font-size:14px}
.qa-list{max-width:760px}
.qa-item{border-bottom:1px solid var(--line);padding:12px 0}
.qa-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;font-weight:700;color:var(--plum)}
.qa-item summary::-webkit-details-marker{display:none}
.qa-item summary::after{content:"＋";color:var(--wisteria);font-family:var(--serif);font-size:20px;line-height:1}
.qa-item[open] summary::after{content:"－"}
.qa-item p{margin-top:8px;color:var(--muted)}
.more-line{display:flex;justify-content:flex-end}
.site-footer{border-top:1px solid var(--line)}
.foot-row{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;padding:28px 0 40px;color:var(--muted);font-size:14px}
.foot-brand{font-family:var(--serif);color:var(--plum);font-size:18px;font-weight:700;margin-bottom:4px}
@media(min-width:1200px){
.wrap{width:min(1180px,calc(100% - 64px))}
.mag-row{grid-template-columns:120px 1fr;padding:26px 16px}
}
@media(max-width:991.98px){
.dock-link{font-size:12px;padding:7px 8px}
.paper-input{width:84px}
.logo-line{font-size:12px}
h1{font-size:34px}
}
@media(max-width:767.98px){
.dock-wrap{top:auto;bottom:16px}
.dock-links,.dock-search,.dock-cta{display:none}
.dock-compact{display:flex}
main{padding:28px 0 120px}
.stack-stage{min-height:0}
.stack-a,.stack-b{position:relative;top:auto;right:auto;width:auto;transform:none}
.stack-b{margin-top:16px}
.stack-b:hover,.stack-a:hover{transform:translateY(-4px)}
.rule-line{border-radius:20px}
}
@media(max-width:575.98px){
h1{font-size:30px;line-height:1.27}
h2{font-size:24px;line-height:1.35}
.wrap{width:calc(100% - 32px)}
.mag-row{grid-template-columns:72px 1fr;gap:12px;padding:18px 8px}
.score-seal{width:68px;height:68px}
.score-seal b{font-size:18px}
.time-node{grid-template-columns:72px 1fr;gap:10px}
.article-row{grid-template-columns:64px 1fr}
.foot-row{flex-direction:column;align-items:flex-start}
.block{padding:56px 0}
.paper-card{padding:22px}
}

/* roulang: framework shim */
/* 覆盖 Bootstrap 等对 a/btn 的全局默认，避免导航出现下划线/蓝链 */
.site-header a,.site-header a:hover,.navbar a,.navbar a:hover,.nav-links a,.nav-links a:hover,header nav a,header nav a:hover{text-decoration:none}
.site-header .btn,.navbar .btn,.nav-cta{text-decoration:none}
