/* yposocal.com — Ink & Champagne design system */
:root{
  --ink:#080B12; --ink2:#0B101C; --pane:#101828; --panel:#0E1524;
  --glass:rgba(21,29,47,.66);
  --line:rgba(200,164,92,.18); --line2:rgba(200,164,92,.38);
  --gold:#C8A45C; --gold2:#E8CE93; --golddeep:#8F6F3B;
  --ivory:#F1EBDD; --dim:#98A1B4; --faint:#6B7488;
  --green:#5FA57C; --amber:#D9A441; --red:#C0604F;
  --hue:#C8A45C;
  --serif:ui-serif,"New York","Iowan Old Style",Palatino,Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","Segoe UI",Roboto,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{height:100%}
body{min-height:100dvh;background:var(--ink);color:var(--ivory);font-family:var(--sans);-webkit-font-smoothing:antialiased}
button{font-family:var(--sans);background:none;border:none;color:inherit;cursor:pointer;font-size:inherit}
input,textarea,select{font-family:var(--sans);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:10px 13px;font-size:14px;color:var(--ivory);outline:none;width:100%}
input:focus,textarea:focus,select:focus{border-color:var(--line2)}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2398A1B4' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:30px}
::placeholder{color:var(--faint)}
:focus-visible{outline:1px solid var(--gold);outline-offset:2px;border-radius:4px}
a{color:var(--gold2);text-decoration:none}
.serif{font-family:var(--serif)}
.eb{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600}
.tnum{font-variant-numeric:tabular-nums}
.dim{color:var(--dim)}.faint{color:var(--faint)}
.grain::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E")}

.card{background:var(--glass);border:1px solid rgba(200,164,92,.15);border-radius:20px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:14px;border-radius:14px;font-size:14.5px;font-weight:600;letter-spacing:.02em;transition:.18s}
.btn:active{transform:scale(.98)}
.btn.gold{background:linear-gradient(140deg,#E3C57F,#AE8A44);color:#161005;box-shadow:0 8px 26px rgba(200,164,92,.22),inset 0 1px 0 rgba(255,255,255,.5)}
.btn.ghost{border:1px solid var(--line2);color:var(--gold2)}
.btn.dim2{border:1px solid rgba(255,255,255,.12);color:var(--dim)}
.btn[disabled]{opacity:.5;pointer-events:none}
.cbtn{padding:10px 16px;border-radius:11px;font-size:13px;font-weight:600;transition:.15s;display:inline-flex;align-items:center;gap:7px}
.cbtn.gold{background:linear-gradient(140deg,#E3C57F,#AE8A44);color:#161005}
.cbtn.ghost{border:1px solid var(--line2);color:var(--gold2)}
.cbtn.dim{border:1px solid rgba(255,255,255,.12);color:var(--dim)}
.cbtn.danger{border:1px solid rgba(192,96,79,.5);color:#DEA79C}
.cbtn:active{transform:scale(.97)}
.chip{font-size:9.5px;letter-spacing:.13em;font-weight:700;padding:3px 8px;border-radius:6px;white-space:nowrap}
.chip.forum{color:var(--gold2);background:rgba(200,164,92,.13);border:1px solid var(--line)}
.chip.chap{color:#9FB6D8;background:rgba(110,150,205,.12);border:1px solid rgba(140,175,225,.25)}
.chip.go{color:#9CD1B2;background:rgba(95,165,124,.14);border:1px solid rgba(95,165,124,.3)}
.chip.tbd{color:var(--amber);background:rgba(217,164,65,.12);border:1px solid rgba(217,164,65,.28)}
.chip.warn{color:#E8C98A;background:rgba(217,164,65,.13);border:1px solid rgba(217,164,65,.35)}
.chip.mute{color:var(--dim);border:1px solid rgba(255,255,255,.15)}
.chip.red{color:#DEA79C;background:rgba(192,96,79,.13);border:1px solid rgba(192,96,79,.35)}
.tag{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;letter-spacing:.16em;font-weight:700;border-radius:6px;padding:3.5px 8px}
.tag.win{color:#F4DFA8;background:rgba(200,164,92,.18);border:1px solid rgba(232,206,147,.35)}
.tag.ask{color:#A8C4E8;background:rgba(92,140,200,.14);border:1px solid rgba(140,180,230,.3)}
.tag.mod{color:var(--gold2);background:rgba(200,164,92,.12);border:1px solid var(--line2)}

.av{border-radius:50%;display:grid;place-items:center;font-family:var(--serif);color:var(--gold2);
  background:radial-gradient(circle at 32% 26%,#213052,#0C1322 70%);border:1px solid rgba(200,164,92,.35);flex:none;letter-spacing:.04em;overflow:hidden}
.av img{width:100%;height:100%;object-fit:cover}
.av44{width:44px;height:44px;font-size:14.5px}
.av36{width:36px;height:36px;font-size:12.5px}
.av30{width:30px;height:30px;font-size:11px}
.av24{width:24px;height:24px;font-size:9px}
.av84{width:84px;height:84px;font-size:28px}
.pring{border-radius:50%;padding:3px;display:inline-grid;place-items:center}
.pring .av{border:2.5px solid var(--ink2)}
.stack{display:flex}
.stack .av{margin-left:-9px;border:2px solid #0E1524}
.stack .av:first-child{margin-left:0}

.sw{width:46px;height:28px;border-radius:15px;background:rgba(255,255,255,.12);position:relative;transition:.2s;flex:none;cursor:pointer}
.sw::after{content:"";position:absolute;top:2.5px;left:2.5px;width:23px;height:23px;border-radius:50%;background:#E9E2D2;transition:.2s;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.sw.on{background:linear-gradient(140deg,#D8B871,#A9853F)}
.sw.on::after{left:20.5px}
.srow{display:flex;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.055);font-size:14px}
.srow:last-child{border-bottom:none}
.srow .d2{font-size:11.5px;color:var(--faint);margin-top:2px;line-height:1.45}
.mrow{display:flex;gap:12px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.055);font-size:13.5px}
.mrow:last-child{border-bottom:none}
.mrow .ic{color:var(--gold);flex:none;margin-top:1px}
.mrow .k{color:var(--faint);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px}
.mrow .grow{flex:1;min-width:0}
.mo{margin:20px 4px 6px;display:flex;align-items:center;gap:10px}
.mo::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.sect{margin:20px 4px 8px}

.toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%,20px);background:rgba(14,20,34,.94);border:1px solid var(--line2);border-radius:999px;padding:11px 18px;font-size:13px;color:var(--gold2);display:flex;gap:9px;align-items:center;opacity:0;pointer-events:none;transition:.3s;z-index:300;white-space:nowrap;backdrop-filter:blur(12px);max-width:90%}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast span{overflow:hidden;text-overflow:ellipsis}

.scrim{position:fixed;inset:0;background:rgba(3,5,9,.62);opacity:0;pointer-events:none;transition:.28s;z-index:120}
.scrim.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:50%;transform:translate(-50%,0) translateY(105vh);bottom:0;z-index:130;background:#0F1626;border:1px solid var(--line2);border-bottom:none;border-radius:28px 28px 0 0;transition:transform .34s cubic-bezier(.32,.72,.25,1);max-height:88dvh;width:min(560px,100vw);display:flex;flex-direction:column;overflow:hidden}
.sheet.on{transform:translate(-50%,0)}
.sheet .grab{width:40px;height:4.5px;border-radius:3px;background:rgba(255,255,255,.18);margin:10px auto 2px;flex:none}
.sheet .shd{display:flex;align-items:center;padding:10px 20px 12px;flex:none;gap:10px}
.sheet .shd .ttl2{font-family:var(--serif);font-size:20px;flex:1}
.sheet .sbody{overflow-y:auto;padding:0 20px 30px;scrollbar-width:none}
.sheet .sbody::-webkit-scrollbar{display:none}
.xbtn{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.07);display:grid;place-items:center;color:var(--dim);flex:none}

.radio{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--faint);display:grid;place-items:center;flex:none}
.radio.on{border-color:var(--gold)}
.radio.on::after{content:"";width:11px;height:11px;border-radius:50%;background:linear-gradient(140deg,#E3C57F,#AE8A44)}
.pdots{display:inline-flex;gap:5px;vertical-align:1px}
.pdots i{width:9px;height:9px;border-radius:50%}
.pg{background:var(--green)}.py{background:var(--amber)}.pr{background:var(--red)}

@keyframes cardIn{from{opacity:0;transform:translateY(20px) scale(.985)}}
.ain{animation:cardIn .55s cubic-bezier(.2,.85,.3,1) backwards}
@keyframes fu{to{opacity:1;transform:none}}
.fadeup{opacity:0;transform:translateY(14px);animation:fu .8s .15s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pop{40%{transform:scale(1.22)}}
.pop{animation:pop .3s}
.bp{position:fixed;z-index:290;pointer-events:none;font-size:13px;transition:transform .75s cubic-bezier(.15,.7,.3,1),opacity .75s ease-out;will-change:transform,opacity}
.bp i{display:block;width:5px;height:5px;border-radius:50%;background:var(--gold2);box-shadow:0 0 6px rgba(232,206,147,.8)}
.spin{width:18px;height:18px;border:2px solid rgba(232,206,147,.25);border-top-color:var(--gold2);border-radius:50%;animation:sp 0.8s linear infinite;display:inline-block;vertical-align:-4px}
@keyframes sp{to{transform:rotate(360deg)}}
.bar{height:10px;border-radius:6px;background:rgba(255,255,255,.07);overflow:hidden;position:relative}
.bar i{position:absolute;inset:0;width:0;background:linear-gradient(90deg,rgba(200,164,92,.65),rgba(200,164,92,.35));border-radius:6px;transition:width .8s cubic-bezier(.3,.7,.3,1)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
