/* roulang page: index */
:root{
  --ink:#201f20;--ink-2:#292628;--paper:#f2efe8;--paper-2:#e9e4da;--paper-3:#ddd7cd;
  --plum:#5b415a;--plum-deep:#412c40;--brick:#a55448;--sage:#aab36b;
  --text:#2f2b2d;--muted:#70696a;--line:#c7bec0;--line-dark:#5f575c;
  --white:#fbf9f4;--shadow:0 12px 32px rgba(52,43,45,.09);--radius:15px;--max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",Arial,sans-serif;font-size:16px;line-height:1.8;letter-spacing:.01em}
a{color:inherit;text-decoration:none;transition:color .2s ease,transform .2s ease,border-color .2s ease,background .2s ease}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--brick);outline-offset:3px}
.grid-container{max-width:var(--max);padding-left:24px;padding-right:24px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(242,239,232,.96);border-bottom:1px solid rgba(91,65,90,.18)}
.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:800;letter-spacing:.03em;white-space:nowrap}
.brand-mark{display:inline-grid;place-items:center;width:27px;height:27px;background:var(--plum);color:var(--paper);font-size:11px;border-radius:7px 2px 7px 2px}
.desktop-menu{display:flex;align-items:center;gap:25px;margin:0;padding:0;list-style:none}
.desktop-menu a{display:block;position:relative;padding:25px 0 22px;font-size:14px;color:#514b4d}
.desktop-menu a:after{content:"";position:absolute;left:0;bottom:16px;width:0;height:1px;background:var(--brick);transition:width .2s}
.desktop-menu a:hover,.desktop-menu a.active{color:var(--plum-deep)}
.desktop-menu a:hover:after,.desktop-menu a.active:after{width:100%}
.safe-link{border:1px solid var(--plum);padding:8px 14px!important;border-radius:999px!important;color:var(--plum)!important}
.safe-link:after{display:none}
.safe-link:hover{background:var(--plum)!important;color:var(--paper)!important}
.menu-toggle{display:none;border:1px solid var(--line);background:transparent;padding:8px 11px;color:var(--plum);border-radius:8px}
.mobile-panel{display:none;background:var(--paper);border-top:1px dashed var(--line)}
.mobile-panel.is-open{display:block}
.mobile-panel a{display:block;padding:14px 24px;border-bottom:1px dashed var(--line);font-size:15px}
.hero{position:relative;overflow:hidden;background:var(--ink);color:var(--paper);padding:58px 0 27px}
.hero:before{content:"";position:absolute;width:620px;height:620px;right:-170px;top:-420px;border:1px solid rgba(242,239,232,.18);border-radius:50%}
.hero:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:8px;background:repeating-linear-gradient(90deg,var(--brick) 0 24px,transparent 24px 37px)}
.hero-grid{position:relative;z-index:1;align-items:center}
.eyebrow,.ticket-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;letter-spacing:.11em;text-transform:uppercase}
.eyebrow{color:#cdc2cc;margin-bottom:15px}
.hero h1{max-width:790px;margin:0;font-size:clamp(34px,5vw,56px);line-height:1.18;letter-spacing:-.03em;font-weight:800}
.hero-copy{max-width:780px;margin:20px 0 24px;color:#ded8d4;font-size:16px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border:1px solid transparent;border-radius:9px;font-weight:700;font-size:14px}
.btn-primary{background:var(--brick);color:var(--white)}
.btn-primary:hover{background:#bd6557;transform:translateY(-2px)}
.btn-secondary{border-color:rgba(242,239,232,.55);color:var(--paper)}
.btn-secondary:hover{border-color:var(--sage);background:rgba(170,179,107,.13)}
.hero-stamp{margin-top:30px;display:flex;align-items:center;gap:10px;color:#d7d0c9;font-size:13px}
.hero-stamp:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--sage)}
.hero-art{position:relative;min-height:255px;margin-top:10px}
.screen-arc{position:absolute;right:14%;top:14px;width:300px;height:190px;border:1px solid rgba(242,239,232,.26);border-bottom:0;border-radius:300px 300px 0 0}
.art-ticket{position:absolute;background:var(--paper);color:var(--text);box-shadow:var(--shadow);border:1px solid #cbc2be}
.art-ticket.one{right:7%;top:45px;width:230px;padding:22px;transform:rotate(5deg)}
.art-ticket.two{right:32%;top:82px;width:185px;padding:17px;transform:rotate(-7deg);background:#d9d2ca}
.art-ticket strong{display:block;font-size:29px;line-height:1;color:var(--plum);margin:17px 0 6px}
.art-ticket .dash{border-top:1px dashed #a79ba0;margin:16px 0}
.art-ticket small{color:var(--muted);display:block;line-height:1.55}
.index-strip{position:relative;z-index:1;margin-top:43px;padding-top:14px;border-top:1px solid rgba(242,239,232,.25);display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.index-strip span{font-size:12px;color:#c9c1bc}
.index-strip b{display:block;color:var(--paper);font-size:13px;font-weight:600}
.section{padding:86px 0}
.section-dark{background:var(--ink-2);color:var(--paper)}
.section-head{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-bottom:34px}
.section-kicker{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--brick);font-size:12px;letter-spacing:.12em}
.section-dark .section-kicker{color:var(--sage)}
h2{margin:6px 0 0;font-size:clamp(27px,3vw,36px);line-height:1.26;letter-spacing:-.025em}
.section-intro{max-width:460px;margin:0;color:var(--muted);font-size:14px}
.section-dark .section-intro{color:#cac1be}
.metrics-board{display:grid;grid-template-columns:1.15fr .9fr 1.1fr .85fr;border:1px solid var(--line);background:var(--white);box-shadow:var(--shadow)}
.metric{position:relative;min-height:215px;padding:25px 24px;border-right:1px dashed var(--line)}
.metric:last-child{border-right:0}
.metric:before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:var(--plum)}
.metric:nth-child(2):before{background:var(--sage)}
.metric:nth-child(3):before{background:var(--brick)}
.metric:nth-child(4):before{background:#88727e}
.metric .ticket-id{color:var(--muted)}
.metric-num{margin:19px 0 5px;font-size:44px;line-height:1;font-weight:800;color:var(--plum-deep)}
.metric:nth-child(3) .metric-num{color:var(--brick)}
.metric h3{margin:0;font-size:16px}
.metric p{margin:8px 0 17px;color:var(--muted);font-size:13px;line-height:1.65}
.scale{height:4px;background:#ddd6cf;position:relative;overflow:hidden}
.scale i{display:block;height:100%;background:var(--plum)}
.metric:nth-child(2) .scale i{background:var(--sage)}
.metric:nth-child(3) .scale i{background:var(--brick)}
.data-note{margin-top:16px;color:var(--muted);font-size:13px}
.data-note summary{cursor:pointer;color:var(--plum);font-weight:700}
.data-note p{max-width:880px;margin:11px 0 0}
.matrix{display:grid;grid-template-columns:1.15fr .85fr 1fr;gap:18px}
.matrix-card{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--white);padding:26px;min-height:220px;border-radius:var(--radius) 4px var(--radius) 4px;box-shadow:0 5px 16px rgba(50,43,45,.04);transition:.22s ease}
.matrix-card:after{content:"";position:absolute;width:24px;height:24px;right:-12px;top:45%;background:var(--paper);border:1px solid var(--line);border-radius:50%}
.matrix-card:hover{transform:translateY(-2px);border-color:var(--plum);box-shadow:var(--shadow)}
.matrix-card.large{grid-row:span 2;min-height:458px;background:#e7dfd7}
.matrix-card.wide{grid-column:span 2}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:19px}
.badge{display:inline-flex;padding:4px 8px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:700;line-height:1.2;color:var(--plum)}
.badge.sage{color:#72803c}.badge.brick{color:var(--brick)}
.matrix-card h3{margin:0 0 10px;font-size:21px;line-height:1.4}
.matrix-card p{margin:0;color:var(--muted);font-size:14px}
.clean-list{margin:18px 0 0;padding:0;list-style:none}
.clean-list li{padding:8px 0;border-top:1px dashed var(--line);font-size:14px}
.clean-list li:before{content:"—";color:var(--brick);margin-right:8px}
.text-link{display:inline-block;margin-top:19px;font-size:14px;font-weight:700;color:var(--plum)}
.text-link:hover{color:var(--brick)}
.pathway{padding:35px 0 5px}
.pathway-line{display:flex;align-items:stretch;gap:0}
.path-step{position:relative;flex:1;padding:0 18px 25px;border-left:1px dashed var(--line-dark)}
.path-step:first-child{border-left:0}
.path-step b{display:block;color:var(--sage);font:12px ui-monospace,SFMono-Regular,Menlo,monospace;margin-bottom:11px}
.path-step span{font-size:14px;color:#ddd5d0;line-height:1.6}
.compare-wrap{display:grid;grid-template-columns:1fr 82px 1fr;gap:22px;align-items:stretch}
.compare-card{padding:30px;border:1px solid var(--line);background:#e5dfd8;position:relative;border-radius:12px 3px 12px 3px}
.compare-card.good{background:var(--white);border-color:#aeb78b}
.compare-card h3{font-size:22px;margin:12px 0}
.compare-card p{font-size:14px;color:var(--muted);margin:0}
.compare-card ul{margin:18px 0 0;padding:0;list-style:none}
.compare-card li{padding:9px 0;border-top:1px dashed var(--line);font-size:14px}
.compare-card.good li:before{content:"·";color:#71803d;font-weight:bold;margin-right:8px}
.compare-card:not(.good) li:before{content:"·";color:var(--brick);font-weight:bold;margin-right:8px}
.compare-path{display:flex;align-items:center;justify-content:center;color:var(--plum);font:12px ui-monospace,SFMono-Regular,Menlo,monospace;writing-mode:vertical-rl;letter-spacing:.12em}
.faq-shell{border-top:1px solid var(--line)}
.accordion{margin:0;background:transparent}
.accordion-item{border-bottom:1px solid var(--line)}
.accordion-title{position:relative;background:transparent;border:0;padding:19px 48px 19px 54px;color:var(--text);font-weight:750;font-size:16px;line-height:1.6}
.accordion-title:hover,.accordion-title:focus{background:#e9e4da;color:var(--plum)}
.accordion-title:before{right:21px;color:var(--brick);font-size:21px}
.accordion-title .faq-no{position:absolute;left:0;top:22px;color:var(--brick);font:12px ui-monospace,SFMono-Regular,Menlo,monospace}
.accordion-content{border:0;background:#e8e3da;padding:5px 28px 23px 54px;color:#5d5557;font-size:15px;line-height:1.85}
.cta-section{padding:88px 0;background:#ddd6cb}
.contact-ticket{position:relative;overflow:hidden;background:var(--white);border:1px solid #bdb3ae;box-shadow:var(--shadow);padding:45px 44px;border-radius:18px 5px 18px 5px}
.contact-ticket:before,.contact-ticket:after{content:"";position:absolute;width:36px;height:36px;border-radius:50%;background:#ddd6cb;top:45%;border:1px solid #bdb3ae}
.contact-ticket:before{left:-19px}.contact-ticket:after{right:-19px}
.contact-copy{padding-right:35px}
.contact-copy h2{margin-top:8px}
.contact-copy p{color:var(--muted);font-size:15px}
.time-tag{display:inline-block;margin-top:14px;padding:6px 10px;background:#e7eadb;color:#59642d;font-size:12px;font-weight:700}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.form-grid .full{grid-column:span 2}
label{display:block;margin-bottom:6px;font-size:13px;font-weight:700;color:#51494c}
input,select,textarea{width:100%;border:1px solid #bdb4b2;background:#fcfaf5;color:var(--text);border-radius:7px;padding:10px 12px;min-height:43px;transition:border-color .2s,box-shadow .2s}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--plum);box-shadow:0 0 0 3px rgba(91,65,90,.12);outline:0}
.check-row{display:flex;align-items:flex-start;gap:9px;margin:13px 0;font-size:12px;line-height:1.55;color:var(--muted)}
.check-row input{width:16px;min-height:16px;margin-top:2px;accent-color:var(--plum)}
.submit-btn{width:100%;border:0;background:var(--plum);color:var(--white);padding:13px 18px;border-radius:8px;font-weight:800}
.submit-btn:hover{background:var(--brick);transform:translateY(-1px)}
.submit-btn:active{transform:translateY(0)}
.form-feedback{display:none;margin-top:12px;padding:9px 11px;background:#e8ecd7;color:#53612a;font-size:13px;border-left:3px solid var(--sage)}
.site-footer{background:var(--ink);color:#d9d1cc;padding:44px 0 24px}
.footer-top{padding-bottom:30px;border-bottom:1px dashed #655d60}
.footer-brand{font-size:18px;font-weight:800;color:var(--paper);margin-bottom:9px}
.footer-note{max-width:470px;color:#aea5a2;font-size:13px;line-height:1.7}
.footer-links{display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:flex-end;margin-top:10px}
.footer-links a{font-size:13px;color:#d9d1cc}
.footer-links a:hover{color:var(--sage)}
.copyright{padding-top:18px;color:#91898a;font-size:12px}
.fade-in{animation:fade .35s ease both}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1024px){
  .desktop-menu{gap:16px}.hero-art{min-height:210px}.matrix{grid-template-columns:1fr 1fr}.matrix-card.large{grid-row:auto;min-height:280px}.matrix-card.wide{grid-column:auto}.metrics-board{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px dashed var(--line)}
}
@media(max-width:768px){
  .header-inner{min-height:66px}.desktop-menu{display:none}.menu-toggle{display:block}.hero{padding-top:43px}.hero-art{display:none}.hero h1{font-size:36px}.hero-copy{font-size:15px}.index-strip{grid-template-columns:repeat(2,1fr);margin-top:34px}.section,.cta-section{padding:58px 0}.section-head{display:block;margin-bottom:25px}.section-intro{margin-top:12px}.metrics-board,.matrix,.compare-wrap{grid-template-columns:1fr}.metric,.metric:nth-child(2){border-right:0;border-bottom:1px dashed var(--line)}.metric:last-child{border-bottom:0}.metric{min-height:185px}.compare-path{writing-mode:horizontal-tb;min-height:35px}.contact-ticket{padding:30px 24px}.contact-copy{padding-right:0;margin-bottom:26px}.pathway-line{display:block}.path-step{border-left:1px dashed var(--line-dark);padding:0 0 22px 18px;margin-left:7px}.footer-links{justify-content:flex-start}.footer-top .cell:last-child{margin-top:17px}
}
@media(max-width:480px){
  .grid-container{padding-left:18px;padding-right:18px}.brand{font-size:13px}.hero h1{font-size:32px}.hero-actions .btn{width:100%}.index-strip{gap:13px}.section h2{font-size:28px}.matrix-card{padding:21px}.metric{padding:21px}.metric-num{font-size:38px}.accordion-title{padding-left:43px;font-size:15px}.accordion-content{padding-left:43px;padding-right:14px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.contact-ticket{padding:27px 20px}.contact-ticket:before,.contact-ticket:after{display:none}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* roulang page: category1 */
:root{
 --ink:#201f20;--ink-2:#292628;--paper:#f2efe8;--paper-2:#e9e4da;--paper-3:#ddd7cd;
 --plum:#5b415a;--plum-deep:#412c40;--brick:#a55448;--sage:#aab36b;
 --text:#2f2b2d;--muted:#70696a;--line:#c7bec0;--line-dark:#5f575c;
 --white:#fbf9f4;--shadow:0 12px 32px rgba(52,43,45,.09);--radius:15px;--max:1200px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",Arial,sans-serif;font-size:16px;line-height:1.8;letter-spacing:.01em}
a{color:inherit;text-decoration:none;transition:color .2s ease,transform .2s ease,border-color .2s ease,background .2s ease}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--brick);outline-offset:3px}
.grid-container{max-width:var(--max);padding-left:24px;padding-right:24px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(242,239,232,.97);border-bottom:1px solid rgba(91,65,90,.18)}
.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:800;letter-spacing:.03em;white-space:nowrap}
.brand-mark{display:inline-grid;place-items:center;width:27px;height:27px;background:var(--plum);color:var(--paper);font-size:11px;border-radius:7px 2px 7px 2px}
.desktop-menu{display:flex;align-items:center;gap:25px;margin:0;padding:0;list-style:none}
.desktop-menu a{display:block;position:relative;padding:25px 0 22px;font-size:14px;color:#514b4d}
.desktop-menu a:after{content:"";position:absolute;left:0;bottom:16px;width:0;height:1px;background:var(--brick);transition:width .2s}
.desktop-menu a:hover,.desktop-menu a.active{color:var(--plum-deep)}
.desktop-menu a:hover:after,.desktop-menu a.active:after{width:100%}
.safe-link{color:var(--brick)!important}
.menu-toggle{display:none;border:1px solid var(--line);background:transparent;padding:8px 11px;color:var(--plum);border-radius:8px}
.mobile-panel{display:none;background:var(--paper);border-top:1px dashed var(--line)}
.mobile-panel.is-open{display:block}
.mobile-panel a{display:block;padding:14px 24px;border-bottom:1px dashed var(--line);font-size:15px}
.hero{position:relative;overflow:hidden;background:var(--ink);color:var(--paper);padding:54px 0 34px}
.hero:before{content:"";position:absolute;width:620px;height:620px;right:-170px;top:-420px;border:1px solid rgba(242,239,232,.18);border-radius:50%}
.hero:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:8px;background:repeating-linear-gradient(90deg,var(--brick) 0 24px,transparent 24px 37px)}
.hero-grid{position:relative;z-index:1;align-items:center}
.eyebrow,.ticket-id,.step-no{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;letter-spacing:.11em;text-transform:uppercase}
.eyebrow{color:#cdc2cc;margin-bottom:15px}
.hero h1{max-width:760px;margin:0;font-size:clamp(34px,5vw,56px);line-height:1.18;letter-spacing:-.03em;font-weight:800}
.hero-copy{max-width:720px;margin:20px 0 24px;color:#ded8d4;font-size:16px}
.hero-stamp{display:flex;align-items:center;gap:10px;color:#d7d0c9;font-size:13px}
.hero-stamp:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--sage)}
.cover-ticket{position:relative;margin-left:auto;max-width:260px;min-height:230px;padding:25px;background:#ded5cd;color:var(--ink);border-radius:14px 3px 14px 3px;box-shadow:12px 14px 0 rgba(165,84,72,.28);transform:rotate(3deg)}
.cover-ticket:before,.cover-ticket:after{content:"";position:absolute;top:42%;width:23px;height:23px;background:var(--ink);border-radius:50%}
.cover-ticket:before{left:-12px}.cover-ticket:after{right:-12px}
.cover-ticket .ticket-id{color:var(--brick);border-bottom:1px dashed var(--line-dark);padding-bottom:15px}
.cover-ticket h2{font-size:25px;line-height:1.35;margin:26px 0 10px}
.cover-ticket p{font-size:13px;color:var(--muted);margin:0}
.section{padding:82px 0}
.section-paper{background:var(--paper)}
.section-dark{background:var(--ink-2);color:var(--paper)}
.section-head{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-bottom:34px}
.section-kicker{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--brick);font-size:12px;letter-spacing:.12em}
.section-dark .section-kicker{color:var(--sage)}
.section h2{font-size:clamp(28px,3vw,36px);line-height:1.3;margin:5px 0 0}
.section-intro{max-width:460px;margin:0;color:var(--muted);font-size:14px}
.section-dark .section-intro{color:#cac1be}
.filter-bar{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 34px;padding:14px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}
.badge{display:inline-flex;padding:4px 9px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:700;line-height:1.2;color:var(--plum)}
.badge.sage{color:#72803c}.badge.brick{color:var(--brick)}
.reading-layout{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(250px,1fr);gap:42px}
.editorial-list{display:grid;gap:17px}
.reading-card{position:relative;padding:25px 28px 24px 82px;background:var(--white);border:1px solid var(--line);border-radius:14px 3px 14px 3px;transition:.22s ease}
.reading-card:after{content:"";position:absolute;right:-11px;top:45%;width:22px;height:22px;border-radius:50%;background:var(--paper);border:1px solid var(--line)}
.reading-card:hover{transform:translateY(-2px);border-color:var(--plum);box-shadow:var(--shadow)}
.card-number{position:absolute;left:27px;top:27px;color:var(--brick);font:700 20px/1 ui-monospace,monospace}
.card-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px;color:var(--muted);font-size:12px}
.reading-card h3{font-size:21px;line-height:1.4;margin:0 0 8px}
.reading-card p{font-size:14px;color:var(--muted);margin:0 0 12px}
.point-tags{display:flex;flex-wrap:wrap;gap:7px}
.point-tags span{font-size:12px;color:var(--plum);padding:3px 8px;background:var(--paper-2);border-radius:5px}
.text-link{display:inline-block;margin-top:16px;font-size:14px;font-weight:700;color:var(--plum);border-bottom:1px solid var(--plum)}
.text-link:hover{color:var(--brick);border-color:var(--brick)}
.side-rail{position:sticky;top:104px;height:max-content;padding:24px;background:#e6dfd7;border:1px solid var(--line);border-radius:12px 3px 12px 3px}
.side-rail h3{font-size:19px;margin:0 0 14px}
.side-rail p{font-size:13px;color:var(--muted);margin:0 0 17px}
.side-rail ul{list-style:none;margin:0;padding:0}
.side-rail li{border-top:1px dashed var(--line);padding:10px 0;font-size:13px}
.side-rail li:before{content:"→";color:var(--brick);margin-right:8px}
.check-list{margin:0;padding:0;list-style:none}
.check-list li{padding:8px 0;border-top:1px dashed var(--line);font-size:13px}
.check-list li:before{content:"□";color:var(--plum);margin-right:8px}
.timeline{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-dark);margin-top:15px}
.timeline-step{position:relative;padding:24px 18px 0 0}
.timeline-step:before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;border-radius:50%;background:var(--sage);border:3px solid var(--ink-2)}
.timeline-step h3{font-size:18px;margin:0 0 7px}.timeline-step p{font-size:13px;color:#cac1be;margin:0}
.compare-strip{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);border:1px solid var(--line)}
.compare-card{padding:28px;background:#e5dfd8}.compare-card.good{background:var(--white)}
.compare-card h3{font-size:21px;margin:10px 0}.compare-card p{font-size:14px;color:var(--muted);margin:0}
.compare-card ul{margin:15px 0 0;padding:0;list-style:none}
.compare-card li{padding:8px 0;border-top:1px dashed var(--line);font-size:14px}
.compare-card li:before{content:"·";color:var(--brick);font-weight:bold;margin-right:8px}
.compare-card.good li:before{color:#71803d}
.faq-shell{border-top:1px solid var(--line)}
.accordion{background:transparent;margin:0}
.accordion-item{border-bottom:1px solid var(--line)}
.accordion-title{position:relative;background:transparent;border:0;padding:19px 48px 19px 54px;font-size:16px;color:var(--text)}
.accordion-title:hover{background:var(--paper-2);color:var(--plum)}
.accordion-title:before{content:attr(data-no);position:absolute;left:4px;color:var(--brick);font:700 13px ui-monospace,monospace}
.accordion-content{background:var(--white);border:0;padding:18px 54px;color:var(--muted);font-size:14px}
.cta-ticket{position:relative;background:var(--white);border:1px solid var(--line);padding:42px;border-radius:16px 4px 16px 4px;box-shadow:var(--shadow)}
.cta-ticket:before,.cta-ticket:after{content:"";position:absolute;top:43%;width:28px;height:28px;background:var(--paper);border-radius:50%;border:1px solid var(--line)}
.cta-ticket:before{left:-15px}.cta-ticket:after{right:-15px}
.cta-ticket h2{margin:0 0 9px;font-size:30px}.cta-ticket p{color:var(--muted);font-size:14px;margin:0}
.form-grid{margin-top:18px}
label{font-size:13px;font-weight:700;color:var(--plum)}
input,select,textarea{width:100%;margin:5px 0 13px;border:1px solid var(--line);background:var(--paper);border-radius:7px;padding:10px 12px;color:var(--text);box-shadow:none}
textarea{min-height:105px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--plum);box-shadow:0 0 0 2px rgba(91,65,90,.12)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border:1px solid transparent;border-radius:9px;font-weight:700;font-size:14px}
.btn-primary{background:var(--plum);color:var(--white)}.btn-primary:hover{background:var(--brick);transform:translateY(-2px)}
.notice{font-size:12px;color:var(--muted);margin-top:12px}
.form-status{display:none;padding:11px 13px;background:#e4e8d1;color:#59652d;font-size:13px;border-radius:7px}
.form-status.show{display:block}
.site-footer{background:var(--ink-2);color:var(--paper);padding:45px 0 24px;border-top:1px dashed rgba(242,239,232,.35)}
.footer-top{padding-bottom:30px;border-bottom:1px dashed rgba(242,239,232,.25)}
.footer-brand{font-size:18px;font-weight:800;margin-bottom:8px}.footer-note{max-width:530px;color:#c9c0bd;font-size:13px}
.footer-links{display:flex;justify-content:flex-end;gap:20px;flex-wrap:wrap;font-size:13px;color:#ddd4d0}
.footer-links a:hover{color:var(--sage)}
.copyright{padding-top:20px;color:#aaa09e;font-size:12px}
@media(max-width:900px){.desktop-menu{gap:14px}.reading-layout{grid-template-columns:1fr}.side-rail{position:static}.timeline{grid-template-columns:repeat(2,1fr);row-gap:24px}}
@media(max-width:767px){
 .grid-container{padding-left:20px;padding-right:20px}.header-inner{min-height:66px}.brand{font-size:13px}
 .desktop-menu{display:none}.menu-toggle{display:block}.hero{padding:42px 0 30px}.cover-ticket{margin:35px auto 8px;transform:rotate(2deg)}
 .section{padding:60px 0}.section-head{display:block;margin-bottom:25px}.section-intro{margin-top:12px}
 .reading-card{padding:22px 20px 21px 65px}.card-number{left:20px;top:24px}
 .timeline{grid-template-columns:1fr}.compare-strip{grid-template-columns:1fr}.cta-ticket{padding:29px 22px}
 .footer-links{justify-content:flex-start;margin-top:22px}.btn{width:100%}
}
@media(max-width:480px){.hero h1{font-size:34px}.cover-ticket{max-width:230px}.accordion-title{padding-left:44px;padding-right:30px}.accordion-content{padding:16px 20px}.cta-ticket:before,.cta-ticket:after{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* roulang page: category2 */
:root{
 --ink:#201f20;--ink-2:#292628;--paper:#f2efe8;--paper-2:#e9e4da;--paper-3:#ddd7cd;
 --plum:#5b415a;--plum-deep:#412c40;--brick:#a55448;--sage:#aab36b;
 --text:#2f2b2d;--muted:#70696a;--line:#c7bec0;--line-dark:#5f575c;
 --white:#fbf9f4;--shadow:0 12px 32px rgba(52,43,45,.09);--radius:15px;--max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",Arial,sans-serif;font-size:16px;line-height:1.8;letter-spacing:.01em}
a{color:inherit;text-decoration:none;transition:color .2s ease,transform .2s ease,border-color .2s ease,background .2s ease}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%;height:auto}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brick);outline-offset:3px}
.grid-container{max-width:var(--max);padding-left:24px;padding-right:24px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(242,239,232,.96);border-bottom:1px solid rgba(91,65,90,.18)}
.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:800;letter-spacing:.03em;white-space:nowrap}
.brand-mark{display:inline-grid;place-items:center;width:27px;height:27px;background:var(--plum);color:var(--paper);font-size:11px;border-radius:7px 2px 7px 2px}
.desktop-menu{display:flex;align-items:center;gap:25px;margin:0;padding:0;list-style:none}
.desktop-menu a{display:block;position:relative;padding:25px 0 22px;font-size:14px;color:#514b4d}
.desktop-menu a:after{content:"";position:absolute;left:0;bottom:16px;width:0;height:1px;background:var(--brick);transition:width .2s}
.desktop-menu a:hover,.desktop-menu a.active{color:var(--plum-deep)}
.desktop-menu a:hover:after,.desktop-menu a.active:after{width:100%}
.menu-toggle{display:none;border:1px solid var(--line);background:transparent;padding:8px 11px;color:var(--plum);border-radius:8px}
.mobile-panel{display:none;background:var(--paper);border-top:1px dashed var(--line)}
.mobile-panel.is-open{display:block}
.mobile-panel a{display:block;padding:14px 24px;border-bottom:1px dashed var(--line);font-size:15px}
.hero{position:relative;overflow:hidden;background:var(--ink);color:var(--paper);padding:58px 0 48px}
.hero:before{content:"";position:absolute;width:620px;height:620px;right:-170px;top:-420px;border:1px solid rgba(242,239,232,.18);border-radius:50%}
.hero:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:8px;background:repeating-linear-gradient(90deg,var(--brick) 0 24px,transparent 24px 37px)}
.hero-grid{position:relative;z-index:1;align-items:center}
.eyebrow,.ticket-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;letter-spacing:.11em;text-transform:uppercase}
.eyebrow{color:#cdc2cc;margin-bottom:15px}
.hero h1{max-width:790px;margin:0;font-size:clamp(34px,5vw,56px);line-height:1.18;letter-spacing:-.03em;font-weight:800}
.hero-copy{max-width:720px;margin:20px 0 24px;color:#ded8d4;font-size:16px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border:1px solid transparent;border-radius:9px;font-weight:700;font-size:14px}
.btn-primary{background:var(--brick);color:var(--white)}
.btn-primary:hover{background:#bd6557;transform:translateY(-2px)}
.btn-primary:active{transform:translateY(0)}
.btn-secondary{border-color:rgba(242,239,232,.55);color:var(--paper)}
.btn-secondary:hover{border-color:var(--sage);background:rgba(170,179,107,.13)}
.section{padding:86px 0}
.section-dark{background:var(--ink-2);color:var(--paper)}
.section-head{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-bottom:34px}
.section-kicker{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--brick);font-size:12px;letter-spacing:.12em}
.section-dark .section-kicker{color:var(--sage)}
.section h2{margin:5px 0 0;font-size:clamp(27px,3.5vw,38px);line-height:1.25;letter-spacing:-.02em}
.section-intro{max-width:470px;margin:0;color:var(--muted);font-size:14px}
.section-dark .section-intro{color:#cac1be}
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:700;line-height:1.2;color:var(--plum)}
.badge.sage{color:#72803c}.badge.brick{color:var(--brick)}.badge.light{color:#d9d2cd}
.clean-list{margin:16px 0 0;padding:0;list-style:none}
.clean-list li{padding:8px 0;border-top:1px dashed var(--line);font-size:14px}
.clean-list li:before{content:"—";color:var(--brick);margin-right:8px}
.text-link{display:inline-block;margin-top:17px;font-size:14px;font-weight:700;color:var(--plum)}
.text-link:hover{color:var(--brick)}
.cover-art{position:relative;min-height:286px;margin-left:24px}
.stub{position:absolute;background:var(--paper);color:var(--text);border:1px solid #c9c0bb;box-shadow:var(--shadow)}
.stub.one{width:220px;right:26px;top:17px;padding:20px;border-radius:15px 3px 15px 3px;transform:rotate(4deg)}
.stub.two{width:205px;right:112px;top:74px;padding:20px;background:#dcd5cf;border-radius:4px 15px 4px 15px;transform:rotate(-7deg)}
.stub-label{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding-bottom:12px;font:11px ui-monospace,monospace;letter-spacing:.1em}
.stub-number{display:block;font:700 55px/1 ui-monospace,monospace;color:var(--plum);margin:25px 0 10px}
.stub-lines span{display:block;height:6px;margin:8px 0;background:#b9afb0}.stub-lines span:nth-child(2){width:76%}.stub-lines span:nth-child(3){width:49%}
.rail{position:relative;max-width:940px;margin:0 auto;padding-left:46px}
.rail:before{content:"";position:absolute;left:15px;top:30px;bottom:32px;border-left:1px dashed #93878c}
.rail-step{position:relative;display:grid;grid-template-columns:130px 1fr;gap:25px;padding:0 0 31px}
.rail-node{position:absolute;left:-46px;top:4px;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:var(--plum);color:var(--paper);font:700 11px ui-monospace,monospace;border:4px solid var(--paper)}
.rail-step:last-child{padding-bottom:0}
.rail-meta{padding-top:2px;font:12px ui-monospace,monospace;color:var(--brick);letter-spacing:.1em}
.rail-card{position:relative;background:var(--white);border:1px solid var(--line);border-radius:14px 3px 14px 3px;padding:22px 25px;box-shadow:0 5px 15px rgba(50,43,45,.04)}
.rail-card:after{content:"";position:absolute;right:-11px;top:34px;width:21px;height:21px;border-radius:50%;background:var(--paper);border:1px solid var(--line)}
.rail-card h3{margin:0 0 7px;font-size:21px;line-height:1.35}.rail-card p{margin:0;color:var(--muted);font-size:14px}
.notice{margin-top:12px;padding:9px 12px;border-left:3px solid var(--sage);background:#eff0e5;color:#535941;font-size:13px}
.scene-grid{align-items:start}
.scene-card{position:relative;background:var(--white);border:1px solid var(--line);padding:25px;margin-bottom:20px;min-height:220px;border-radius:15px 4px 15px 4px;box-shadow:0 5px 15px rgba(50,43,45,.04);transition:.22s ease}
.scene-card.offset{margin-top:42px;background:#e7dfd7}.scene-card.darkish{background:#eee9df}
.scene-card:hover{transform:translateY(-2px);border-color:var(--plum);box-shadow:var(--shadow)}
.scene-card h3{font-size:21px;line-height:1.35;margin:17px 0 8px}.scene-card p{font-size:14px;color:var(--muted);margin:0}
.scene-no{position:absolute;right:20px;top:17px;color:#a79c9d;font:12px ui-monospace,monospace}
.check-panel{background:#e2dbd3;border:1px solid var(--line);padding:34px;border-radius:15px 3px 15px 3px}
.check-panel h2{margin-top:4px}.check-list{margin:25px 0 0;padding:0;list-style:none;columns:2;column-gap:36px}
.check-list li{break-inside:avoid;display:flex;gap:12px;padding:13px 0;border-top:1px dashed var(--line);font-size:15px}
.check-list input{width:19px;height:19px;accent-color:var(--plum);flex:0 0 auto;margin-top:4px}
.check-list input:focus-visible{outline:2px solid var(--brick);outline-offset:2px}
.faq-layout{display:grid;grid-template-columns:36% 1fr;border:1px solid var(--line);background:var(--white);border-radius:15px 3px 15px 3px;overflow:hidden}
.faq-index{padding:12px;background:#e5ded6;border-right:1px solid var(--line)}
.faq-index button{display:block;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px dashed var(--line);padding:16px 12px;color:var(--text);font-weight:700;font-size:14px}
.faq-index button:hover,.faq-index button.is-active{color:var(--plum);background:rgba(251,249,244,.56)}
.faq-index b{display:inline-block;width:31px;color:var(--brick);font:12px ui-monospace,monospace}
.faq-answer{padding:31px 35px;min-height:290px}
.answer-panel{display:none}.answer-panel.is-active{display:block}
.answer-panel h3{margin:0 0 13px;font-size:23px;line-height:1.4}.answer-panel p{margin:0;color:var(--muted);font-size:15px}
.answer-panel .notice{margin-top:20px}
.cta-ticket{position:relative;overflow:hidden;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);padding:38px;border-radius:18px 4px 18px 4px}
.cta-ticket:before,.cta-ticket:after{content:"";position:absolute;width:30px;height:30px;border-radius:50%;background:var(--paper);border:1px solid var(--line);top:48%}
.cta-ticket:before{left:-16px}.cta-ticket:after{right:-16px}
.cta-ticket h2{margin:5px 0 12px;font-size:31px;line-height:1.3}.cta-ticket p{max-width:440px;color:var(--muted);font-size:14px}
.form-group{margin-bottom:14px}.form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:700;color:#534c4d}
.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid var(--line);background:#f8f6f1;color:var(--text);border-radius:7px;padding:10px 12px;box-shadow:none}
.form-group textarea{min-height:88px;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--plum);box-shadow:0 0 0 3px rgba(91,65,90,.11);outline:0}
.form-tip{margin:10px 0 0;color:var(--muted);font-size:12px}.form-feedback{display:none;margin-top:12px;padding:9px 12px;background:#edf0df;color:#566032;border-left:3px solid var(--sage);font-size:13px}
.site-footer{background:var(--ink);color:#e6dfd9;padding:43px 0 25px;border-top:7px solid transparent;border-image:repeating-linear-gradient(90deg,var(--brick) 0 24px,transparent 24px 37px) 7}
.footer-top{padding-bottom:30px;border-bottom:1px dashed rgba(242,239,232,.3)}
.footer-brand{font-size:18px;font-weight:800}.footer-note{max-width:490px;margin-top:10px;color:#bfb6b4;font-size:13px}
.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:13px 21px}.footer-links a{font-size:14px;color:#e6dfd9}.footer-links a:hover{color:var(--sage)}
.copyright{padding-top:20px;color:#aaa09f;font-size:12px}
@media(max-width:768px){
 .grid-container{padding-left:20px;padding-right:20px}.desktop-menu{display:none}.menu-toggle{display:block}.header-inner{min-height:65px}.brand{font-size:13px}.hero{padding:48px 0 42px}.cover-art{min-height:220px;margin:25px 0 0}.stub.one{right:12px}.stub.two{right:89px}
 .section{padding:58px 0}.section-head{display:block;margin-bottom:27px}.section-intro{margin-top:14px}.rail{padding-left:34px}.rail:before{left:11px}.rail-node{left:-34px}.rail-step{grid-template-columns:1fr;gap:8px;padding-bottom:25px}.rail-meta{padding-left:0}.rail-card{padding:20px}.scene-card.offset{margin-top:0}.check-panel{padding:25px}.check-list{columns:1}
 .faq-layout{display:block}.faq-index{border-right:0;border-bottom:1px solid var(--line);padding:0}.faq-index button{padding:14px 15px}.faq-answer{padding:25px 21px;min-height:0}.cta-ticket{padding:27px 24px}.footer-links{justify-content:flex-start;margin-top:22px}
}
@media(max-width:480px){
 body{font-size:15px}.hero h1{font-size:33px}.hero-actions .btn{width:100%}.stub.one{width:190px}.stub.two{width:175px;right:66px}.section h2{font-size:27px}.cta-ticket h2{font-size:27px}.rail-card h3,.scene-card h3{font-size:19px}.btn{width:100%}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
