.p-wrap{max-width:1100px;margin:0 auto;padding:40px 16px 90px}
.p-kicker{display:block;font-size:13px;letter-spacing:.12em;color:var(--muted,#bdbdbd);font-weight:400;margin-bottom:4px}
.p-title{font-size:clamp(24px,3.4vw,32px);line-height:1.3;padding-bottom:12px;border-bottom:2px solid var(--rule,#9a6b2f);margin-bottom:34px}
.p-msg{color:var(--muted,#bdbdbd);padding:24px 0}
.flag{width:22px;height:15px;border-radius:2px;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.15)}
svg.flag[viewBox="0 0 24 24"]{width:18px;height:18px;box-shadow:none;color:var(--muted,#bdbdbd)}

.roster-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 20px;flex-wrap:wrap}
.roster-head h1{font-size:inherit;line-height:inherit;margin:0}
.p-edit{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:700;
  border:1px solid var(--rule,#9a6b2f);color:var(--accent,#bfa55f);white-space:nowrap}
.p-edit:hover{background:var(--rule,#9a6b2f);color:#fff}
.p-edit svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.roster-section{margin-bottom:56px}
.roster-section > h2{font-size:24px;letter-spacing:.14em;color:var(--accent,#bfa55f);margin-bottom:6px}
.roster-section > .sub{color:var(--muted,#bdbdbd);font-size:14px;margin-bottom:26px}
.roster-group{margin-bottom:34px}
.roster-group > h3{font-size:16px;color:var(--text,#d6ceb6);padding:8px 12px;background:var(--panel,#1f1f1f);
  border-left:4px solid var(--rule,#9a6b2f);margin-bottom:18px}
.roster-ranks{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px 34px}
.roster-rank h4{font-size:13px;letter-spacing:.08em;color:var(--accent,#bfa55f);font-weight:700;
  padding-bottom:6px;border-bottom:1px solid var(--line,#333);margin-bottom:8px}
.roster-rank ul{list-style:none}
.roster-rank li{padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.07)}
.roster-rank li a{font-size:17px;font-weight:700;color:var(--text,#d6ceb6)}
.roster-rank li a:hover{color:var(--accent,#bfa55f)}
.roster-rank li .creator{display:block;font-size:13px;color:var(--muted,#bdbdbd);margin-top:2px}

.profile{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:44px;align-items:start}
.profile-main h1{font-size:clamp(26px,3.6vw,36px);line-height:1.25;margin-bottom:8px}
.profile-main .lead{color:var(--muted,#bdbdbd);margin-bottom:30px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rank-chip{display:inline-block;padding:3px 10px;font-size:14px;background:var(--rule,#9a6b2f);color:#fff}
.rank-chip.muted{background:var(--panel,#1f1f1f);color:var(--muted,#bdbdbd);border:1px solid var(--line,#333)}
.section-h{font-size:22px;padding:0 0 10px 12px;border-bottom:3px solid var(--rule,#9a6b2f);margin:6px 0 22px}

.infobox{background:var(--panel,#1f1f1f);border:1px solid var(--line,#333);font-size:15px}
.infobox .ib-title{background:var(--green,#38524d);color:var(--text,#d6ceb6);text-align:center;font-weight:700;padding:10px 12px;font-size:16px}
.infobox .ib-img{padding:14px;background:#181818;border-bottom:1px solid var(--line,#333)}
.infobox .ib-img img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;margin:0 auto}
.infobox .ib-img.empty{display:flex;align-items:center;justify-content:center;aspect-ratio:3/4;color:var(--muted,#bdbdbd)}
.infobox table{width:100%;border-collapse:collapse}
.infobox th,.infobox td{padding:9px 12px;text-align:left;vertical-align:top;border-top:1px solid var(--line,#333);line-height:1.5}
.infobox th{width:38%;background:#262626;font-weight:700}
.infobox td{color:var(--text,#d6ceb6);word-break:break-word}
.infobox td .lang{display:block;font-weight:700;margin-top:4px}
.infobox td .lang:first-child{margin-top:0}
.infobox td .accent{color:var(--accent,#bfa55f)}
.infobox .ib-section th{background:var(--green-dark,#3a5c46);text-align:center;width:auto}

.voices{background:var(--panel,#1f1f1f);border:1px solid var(--line,#333);padding:12px}
.voice-lang{margin-bottom:10px}
.voice-lang:last-child{margin-bottom:0}
.voice-lang summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:9px 12px;
  background:#262626;border:1px solid var(--line,#333);font-weight:700}
.voice-lang summary::-webkit-details-marker{display:none}
.voice-lang summary::after{content:"▾";margin-left:auto;color:var(--muted,#bdbdbd);transition:transform .2s}
.voice-lang:not([open]) summary::after{transform:rotate(-90deg)}
.voice-lang summary:hover{border-color:var(--rule,#9a6b2f)}
.voice-list{margin:10px 0 4px 12px;padding-left:14px;border-left:3px solid var(--line,#333)}
.voice-item{display:grid;grid-template-columns:minmax(0,1fr) 40px 230px;align-items:center;gap:10px;padding:8px 0}
.voice-item .who{color:var(--accent,#bfa55f);font-size:15px;line-height:1.45}
.voice-item .who b{color:var(--text,#d6ceb6)}
.voice-item .who .as{color:var(--muted,#bdbdbd)}
.voice-item .rule{height:1px;background:var(--line,#333)}

.player{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border:2px solid var(--muted,#bdbdbd);
  border-radius:18px;background:#181818;min-width:0}
.player:hover,.player.playing{border-color:var(--accent,#bfa55f)}
.pl-btn{background:none;border:0;padding:0;width:22px;height:22px;cursor:pointer;color:var(--text,#d6ceb6);flex:none}
.pl-btn svg{width:22px;height:22px;fill:currentColor}
.pl-btn .i-pause,.player.playing .pl-btn .i-play{display:none}
.player.playing .pl-btn .i-pause{display:inline}
.pl-bar{flex:1;height:6px;background:#3a3a3a;border-radius:3px;cursor:pointer;position:relative;min-width:40px}
.pl-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--accent,#bfa55f);border-radius:3px}
.pl-time{font-size:12px;color:var(--muted,#bdbdbd);min-width:34px;text-align:right}
.pl-dl{color:var(--muted,#bdbdbd);display:flex}
.pl-dl svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.pl-dl:hover{color:var(--accent,#bfa55f)}

.bio{line-height:1.8;margin-bottom:40px;overflow-wrap:anywhere}
.bio p{margin:0 0 1em}
.bio p:last-child{margin-bottom:0}
.bio a,.gb-text a{color:var(--accent,#bfa55f);text-decoration:underline}
.bio strong,.gb-text strong{color:#fff}

.rt-bar{display:flex;gap:6px;margin-bottom:8px}
.rt-bar button{width:34px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:#262626;border:1px solid var(--line,#333);color:var(--text,#d6ceb6);font:16px/1 Georgia,serif}
.rt-bar button:hover,.rt-bar button:focus-visible{border-color:var(--accent,#bfa55f);color:var(--accent,#bfa55f);outline:none}
.rt-bar svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

.guestbook{margin-top:44px}
.gb-form{background:var(--panel,#1f1f1f);border:1px solid var(--line,#333);border-top:3px solid var(--green,#38524d);padding:20px;margin-bottom:26px}
.gb-form label{display:block;color:var(--accent,#bfa55f);font-size:17px;margin-bottom:8px}
.gb-form label .req{color:var(--rule,#9a6b2f)}
.gb-form input[type=text],.gb-form textarea{width:100%;display:block;padding:10px 12px;background:#181818;border:1px solid var(--line,#333);
  color:var(--text,#d6ceb6);font:inherit;margin-bottom:18px}
.gb-form textarea{min-height:120px;resize:vertical;line-height:1.6}
.gb-form input:focus,.gb-form textarea:focus{outline:none;border-color:var(--accent,#bfa55f)}
.gb-form ::placeholder{color:#7d7a72}
.gb-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gb-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.gb-send{padding:9px 22px;border:0;cursor:pointer;font:inherit;font-weight:700;background:var(--accent,#bfa55f);color:#141414}
.gb-send:hover{filter:brightness(1.1)}
.gb-send[disabled]{opacity:.55;cursor:wait}
.gb-status{font-size:14px;color:var(--muted,#bdbdbd)}
.gb-status.err{color:#e2502a}
.gb-count{font-size:13px;color:var(--muted,#bdbdbd);margin-left:auto}
.gb-list{list-style:none}
.gb-msg{padding:16px 0;border-bottom:1px dashed rgba(255,255,255,.1)}
.gb-msg:first-child{padding-top:0}
.gb-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}
.gb-name{font-weight:700;color:var(--accent,#bfa55f)}
.gb-date{font-size:13px;color:var(--muted,#bdbdbd)}
.gb-del{margin-left:auto;background:none;border:1px solid var(--line,#333);color:var(--muted,#bdbdbd);cursor:pointer;font:inherit;font-size:12px;padding:2px 8px}
.gb-del:hover{border-color:#e2502a;color:#e2502a}
.gb-text{line-height:1.7;overflow-wrap:anywhere}
.gb-text p{margin:0 0 .7em}
.gb-text p:last-child{margin-bottom:0}
.gb-empty{color:var(--muted,#bdbdbd)}

@media (max-width:860px){
  .profile{grid-template-columns:1fr}
  .profile-side{order:-1;max-width:420px;width:100%;margin:0 auto}
  .voice-item{grid-template-columns:1fr;gap:6px}
  .voice-item .rule{display:none}
}
