@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700;800&display=swap');

:root{
  --void:#0e0e12;
  --void-2:#131217;
  --panel:#17161b;
  --panel-2:#1d1c22;
  --panel-3:#262530;
  --line:rgba(62,185,153,.24);
  --line-soft:rgba(228,224,222,.085);
  --line-violet:rgba(71,147,176,.26);
  --gold:#3eb999;
  --gold-bright:#67d1b4;
  --gold-deep:#14584a;
  --violet:#4793b0;
  --violet-bright:#82c0d6;
  --ember:#6f86a8;
  --danger:#e0566b;
  --warn:#d9a95b;
  --ink:#ece9e5;
  --ink-2:#c6c2bc;
  --muted:#928c84;
  --muted-2:#605b54;
  --f:'Noto Sans KR','Noto Sans',system-ui,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Consolas,'Noto Sans KR',monospace;
  --wrap:1200px;
  --gut:clamp(16px,4.5vw,56px);
  --r:2px;
  --r-lg:4px;
  --cut:12px;
  --t:.4s cubic-bezier(.2,.7,.2,1);
  --t-fast:.2s ease;
  --nav-h:68px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 16px)}
body{margin:0;background:var(--void);color:var(--ink);font-family:var(--f);font-size:16px;line-height:1.7;letter-spacing:.01em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:none;padding:0}
h1,h2,h3,h4{margin:0;font-weight:500;line-height:1.25}
p{margin:0}
ul,ol{margin:0}
::selection{background:rgba(62,185,153,.35);color:#fff}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hp{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.muted{color:var(--muted)}
.tight{padding-left:1.2em;margin:12px 0}
.tight li{margin:.3em 0}
.inline{display:inline}
.skip{position:fixed;left:8px;top:8px;z-index:200;background:var(--gold);color:#04231c;padding:10px 16px;border-radius:var(--r);transform:translateY(-200%);transition:transform .2s}
.skip:focus{transform:none}

.atmos{position:fixed;inset:0;pointer-events:none;z-index:0}
.atmos--aurora{background:radial-gradient(60% 50% at 78% -5%,rgba(62,185,153,.10),transparent 60%),radial-gradient(55% 45% at 12% 8%,rgba(96,150,176,.10),transparent 62%),radial-gradient(70% 60% at 50% 108%,rgba(96,150,176,.06),transparent 60%)}
.atmos--vignette{background:radial-gradient(120% 90% at 50% 30%,transparent 55%,rgba(0,0,0,.5) 100%)}
main,footer{position:relative;z-index:1}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}
.wrap--mid{max-width:900px}
.wrap--doc{max-width:820px}
.wrap--narrow{max-width:560px}
.section{padding-block:clamp(48px,7vw,96px)}
.section--tight{padding-block:clamp(28px,4.5vw,56px)}
.eyebrow{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:.7em;font-weight:700}
.eyebrow::before{content:"";width:24px;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.ptitle{font-size:clamp(1.7rem,3.6vw,2.4rem);color:#fff;margin:10px 0 22px;position:relative;padding-bottom:14px;border-bottom:1px solid var(--line-soft)}
.ptitle::after{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:2px;background:var(--gold);box-shadow:0 0 10px var(--gold)}
.subt{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:32px 0 14px;display:flex;align-items:center;gap:12px;font-weight:700}
.subt::after{content:"";flex:1;height:1px;background:var(--line-soft)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;padding:.72em 1.35em;font-size:.84rem;letter-spacing:.08em;color:var(--gold-bright);border:1px solid var(--line);background:rgba(62,185,153,.05);border-radius:var(--r);transition:all var(--t-fast);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px));white-space:nowrap;font-weight:500}
.btn:hover{border-color:var(--gold-bright);background:rgba(103,209,180,.15);color:#eafff9}
.btn .arr{transition:transform var(--t-fast)}
.btn:hover .arr{transform:translateX(4px)}
.btn--solid{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#04231c;border-color:transparent;font-weight:700;box-shadow:0 6px 24px rgba(62,185,153,.25)}
.btn--solid:hover{filter:brightness(1.08);color:#04231c;background:linear-gradient(180deg,var(--gold-bright),var(--gold))}
.btn--ghost{color:var(--muted);border-color:var(--line-soft);background:transparent}
.btn--ghost:hover{color:var(--ink);border-color:var(--line);background:transparent}
.btn--danger{color:#ffd7dc;border-color:rgba(224,86,107,.5);background:rgba(224,86,107,.12)}
.btn--danger:hover{background:rgba(224,86,107,.22);border-color:var(--danger);color:#fff}
.btn--block{width:100%;margin-top:6px}
.btn .ico{flex:none}
.tbtn{display:inline-flex;align-items:center;gap:.4em;padding:.38em .75em;font-size:.78rem;color:var(--muted);border:1px solid var(--line-soft);border-radius:var(--r);transition:all var(--t-fast);background:transparent;cursor:pointer;list-style:none;white-space:nowrap}
.tbtn::-webkit-details-marker{display:none}
.tbtn:hover{color:var(--gold-bright);border-color:var(--line)}
.tbtn--danger:hover{color:#ffc4cc;border-color:rgba(224,86,107,.55)}
.tbtn--ok{color:var(--gold-bright);border-color:var(--line)}
.ico{display:inline-block;vertical-align:-3px}

.nav{position:sticky;top:0;z-index:90;height:var(--nav-h);background:linear-gradient(180deg,rgba(8,8,12,.94),rgba(8,8,12,.7));backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid var(--line-soft)}
.nav__in{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut);height:100%;display:flex;align-items:center;gap:14px}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;min-width:0}
.brand__mark{height:32px;width:auto;filter:drop-shadow(0 0 12px rgba(62,185,153,.25))}
.brand__name{font-size:1.15rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);font-weight:500}
.brand__sub{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#04231c;background:var(--gold);padding:.2em .6em;font-weight:800;clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px))}
.nav__tabs{display:flex;gap:2px}
.nav__tabs a{position:relative;padding:.55em .8em;font-size:.8rem;letter-spacing:.06em;color:var(--muted);transition:color var(--t-fast);white-space:nowrap}
.nav__tabs a::after{content:"";position:absolute;left:.8em;right:.8em;bottom:.35em;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform var(--t)}
.nav__tabs a:hover{color:var(--ink)}
.nav__tabs a:hover::after,.nav__tabs a[aria-current]::after{transform:scaleX(1);box-shadow:0 0 10px var(--gold)}
.nav__tabs a[aria-current]{color:var(--gold-bright)}
.nav__icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--muted);border-radius:var(--r);transition:color var(--t-fast)}
.nav__icon:hover{color:var(--gold-bright)}
.nav__icon .ico{width:18px;height:18px}
.nav__link{font-size:.82rem;color:var(--ink-2);padding:.5em .4em;white-space:nowrap}
.nav__link:hover{color:var(--gold-bright)}
.nav__cta{display:inline-flex;align-items:center;gap:.45em;padding:.5em 1em;border:1px solid var(--line);border-radius:var(--r);font-size:.8rem;letter-spacing:.06em;color:var(--gold-bright);transition:all var(--t-fast);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));white-space:nowrap}
.nav__cta:hover{background:rgba(62,185,153,.12);border-color:var(--gold)}
.umenu{position:relative}
.umenu__btn{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:4px;border-radius:var(--r)}
.umenu__btn::-webkit-details-marker{display:none}
.umenu__name{font-size:.84rem;color:var(--ink-2);max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.umenu__list{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:6px;box-shadow:0 16px 40px rgba(0,0,0,.5);z-index:95}
.umenu__list a,.umenu__list button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:.55em .8em;font-size:.88rem;color:var(--ink-2);border-radius:var(--r)}
.umenu__list a:hover,.umenu__list button:hover{background:rgba(62,185,153,.1);color:#fff}
.umenu__list form{border-top:1px solid var(--line-soft);margin-top:4px;padding-top:4px}
.dot-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:.68rem;font-weight:700}
.langsw{display:inline-flex;gap:7px;align-items:center;font-size:.72rem;letter-spacing:.1em}
.langsw a{color:var(--muted)}
.langsw a:hover{color:var(--ink)}
.langsw__on{color:var(--gold-bright);font-weight:700}
.langsw__sep{opacity:.35}
.nav__burger{display:none;width:40px;height:40px;flex-direction:column;justify-content:center;align-items:center;gap:5px;flex:none}
.nav__burger span{width:22px;height:2px;background:var(--ink);transition:transform .35s,opacity .25s}
body.drawer-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.drawer-open .nav__burger span:nth-child(2){opacity:0}
body.drawer-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.drawer-clip{position:fixed;inset:var(--nav-h) 0 0 0;z-index:80;overflow:hidden;pointer-events:none}
body.drawer-open .drawer-clip{pointer-events:auto}
.drawer{position:absolute;inset:0;background:linear-gradient(160deg,#0a0a11,#08080c);transform:translateX(100%);transition:transform .45s cubic-bezier(.5,0,.1,1);visibility:hidden;overflow-y:auto;overscroll-behavior:contain;padding:20px var(--gut) 40px;display:flex;flex-direction:column;gap:18px}
body.drawer-open .drawer{transform:none;visibility:visible}
.drawer__nav{display:flex;flex-direction:column}
.drawer__nav>a{padding:.7em 0;font-size:1.15rem;color:var(--ink-2);border-bottom:1px solid var(--line-soft)}
.drawer__nav>a:hover{color:var(--gold-bright)}
.drawer__grp{margin-top:16px;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:700}
.drawer__nav a.drawer__sub{font-size:1rem;padding-left:12px;color:var(--muted)}

.sitebar{background:rgba(62,185,153,.08);border-bottom:1px solid var(--line);font-size:.88rem;color:var(--ink-2);padding:.6em 0;text-align:center}
.sitebar a{color:var(--gold-bright);text-decoration:underline;text-underline-offset:3px}
.flashes{padding-top:18px}
.flash{padding:12px 16px;border-radius:var(--r);font-size:.9rem;margin-bottom:14px;border:1px solid var(--line-soft);background:var(--panel)}
.flash ul{padding-left:1.1em}
.flash--ok{background:rgba(62,185,153,.1);border-color:var(--line);color:#cdf5ea}
.flash--info{background:rgba(71,147,176,.1);border-color:var(--line-violet);color:#cfe7f0}
.flash--err{background:rgba(224,86,107,.12);border-color:rgba(224,86,107,.42);color:#f6d0d6}
.flash--warn{background:rgba(217,169,91,.1);border-color:rgba(217,169,91,.4);color:#f2dfbd}

.fhero{position:relative;padding:clamp(48px,7vw,92px) 0 clamp(30px,4vw,48px);border-bottom:1px solid var(--line-soft);overflow:hidden}
.fhero::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 120% at 85% 0,rgba(62,185,153,.10),transparent 55%),radial-gradient(60% 90% at 0 100%,rgba(96,150,176,.08),transparent 60%);pointer-events:none}
.fhero .wrap{position:relative}
.fhero__t{font-size:clamp(2.2rem,6vw,3.8rem);color:#fff;margin:14px 0 12px;letter-spacing:.01em;background:linear-gradient(180deg,#fff 30%,#cfd8d2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.fhero__s{color:var(--ink-2);max-width:46ch;font-size:clamp(.98rem,2vw,1.1rem)}
.fhero__cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}

.home{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(24px,4vw,48px);align-items:start}
.bgroup{margin-bottom:30px}
.bgroup__t{font-size:.76rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-weight:700;display:flex;align-items:center;gap:12px}
.bgroup__t::after{content:"";flex:1;height:1px;background:var(--line-soft)}
.bgroup__list{border:1px solid var(--line-soft);border-left:2px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--panel),var(--void-2));clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)))}
.brow{display:grid;grid-template-columns:minmax(0,1fr) auto 84px;gap:18px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line-soft);transition:background var(--t-fast)}
.brow:last-child{border-bottom:none}
.brow:hover{background:rgba(62,185,153,.05)}
.brow__main{min-width:0;display:flex;flex-direction:column;gap:3px}
.brow__name{font-size:1.04rem;color:var(--ink);font-weight:500}
.brow:hover .brow__name{color:#fff}
.brow__desc{font-size:.86rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brow__stat{display:flex;flex-direction:column;align-items:center;line-height:1.2}
.brow__stat b{font-size:1.05rem;color:var(--gold-bright);font-weight:700}
.brow__stat span{font-size:.68rem;color:var(--muted-2);letter-spacing:.08em}
.brow__last{font-size:.78rem;color:var(--muted);text-align:right;white-space:nowrap}
.kbadge{display:inline-block;font-size:.62rem;letter-spacing:.1em;padding:.15em .55em;border:1px solid var(--line-violet);color:var(--violet-bright);border-radius:2px;vertical-align:2px;margin-left:4px;font-weight:700}
.kbadge--notice{border-color:rgba(111,134,168,.45);color:#cdd9ea}
.kbadge--gallery{border-color:var(--line);color:var(--gold-bright)}
.kbadge--bug{border-color:rgba(217,169,91,.45);color:#f0d6a6}
.home__side{display:flex;flex-direction:column;gap:18px;position:sticky;top:calc(var(--nav-h) + 20px)}
.sidebox{border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--panel);padding:18px 20px}
.sidebox__t{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-weight:700}
.sidebox--links{display:flex;flex-direction:column;gap:2px;padding:10px 12px}
.sidebox--links a{display:flex;justify-content:space-between;padding:.5em .6em;font-size:.88rem;color:var(--ink-2);border-radius:var(--r)}
.sidebox--links a:hover{background:rgba(62,185,153,.08);color:var(--gold-bright)}
.mini{list-style:none;padding:0;display:flex;flex-direction:column}
.mini li{padding:9px 0;border-bottom:1px solid var(--line-soft);display:flex;flex-direction:column;gap:2px;min-width:0}
.mini li:last-child{border-bottom:none}
.mini__t{font-size:.92rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini__t:hover{color:var(--gold-bright)}
.mini__m{font-size:.74rem;color:var(--muted)}
.mini__m a:hover{color:var(--gold-bright)}
.mini--num{counter-reset:n}
.mini--num li{padding-left:26px;position:relative;counter-increment:n}
.mini--num li::before{content:counter(n);position:absolute;left:0;top:9px;font-size:.8rem;color:var(--gold);font-weight:700}
.ccount{color:var(--gold-bright);font-size:.84em;margin-left:4px;font-weight:700}

.layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:clamp(20px,3.5vw,44px);align-items:start}
.layout__main{min-width:0}
.baside{position:sticky;top:calc(var(--nav-h) + 20px);display:flex;flex-direction:column;gap:2px;font-size:.88rem}
.baside__grp{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:16px 0 6px;font-weight:700}
.baside__grp:first-child{margin-top:0}
.baside__item{display:flex;justify-content:space-between;gap:8px;padding:.42em .7em;color:var(--muted);border-left:1px solid var(--line-soft);transition:all var(--t-fast)}
.baside__item:hover{color:var(--ink);border-left-color:var(--line)}
.baside__item.is-on{color:var(--gold-bright);border-left:2px solid var(--gold);background:rgba(62,185,153,.06)}
.baside__n{font-size:.74rem;color:var(--muted-2)}

.bhead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--line-soft);margin-bottom:18px;position:relative}
.bhead::after{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:2px;background:var(--gold);box-shadow:0 0 10px var(--gold)}
.bhead__t{font-size:clamp(1.6rem,3.4vw,2.2rem);color:#fff;margin:8px 0 6px}
.bhead__d{color:var(--muted);font-size:.94rem}
.bguide{border:1px solid var(--line-soft);border-left:2px solid var(--violet);background:rgba(71,147,176,.05);padding:10px 16px;margin-bottom:16px;border-radius:var(--r)}
.bguide summary{cursor:pointer;font-size:.86rem;color:var(--violet-bright)}
.bguide .prose{margin-top:10px;font-size:.92rem}
.btools{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line-soft)}
.tabs::-webkit-scrollbar{display:none}
.tab{position:relative;padding:.65em 1em;font-size:.82rem;color:var(--muted);white-space:nowrap;transition:color var(--t-fast)}
.tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold);transform:scaleX(0);transition:transform var(--t)}
.tab:hover{color:var(--ink)}
.tab.is-active{color:var(--gold-bright)}
.tab.is-active::after{transform:scaleX(1);box-shadow:0 0 10px var(--gold)}
.bsearch{display:flex;align-items:center;gap:6px;border:1px solid var(--line-soft);border-radius:100px;padding:.3em .45em .3em 1em;background:var(--panel);min-width:min(280px,100%);transition:border-color var(--t-fast);margin-left:auto}
.bsearch:focus-within{border-color:var(--line)}
.bsearch input,.bsearch select{flex:1;background:none;border:none;outline:none;color:var(--ink);font-size:.9rem;min-width:0}
.bsearch select{flex:none;color:var(--muted)}
.bsearch input::placeholder{color:var(--muted-2)}
.bsearch button{display:inline-flex;align-items:center;gap:6px;padding:.45em .7em;color:var(--muted);border-radius:100px}
.bsearch button:hover{color:var(--gold-bright)}
.bsearch--big{margin:0 0 20px;padding:.5em .6em .5em 1.2em;width:100%}
.bsearch--big input{font-size:1.02rem}
.bsearch--big button{background:var(--gold);color:#04231c;font-weight:700;padding:.55em 1.1em}
.bsearch--big button:hover{color:#04231c;filter:brightness(1.08)}

.plist{list-style:none;padding:0;border-top:1px solid var(--line-soft)}
.prow{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 6px;border-bottom:1px solid var(--line-soft);position:relative;transition:background var(--t-fast)}
.prow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold);transform:scaleY(0);transition:transform var(--t-fast)}
.prow:hover{background:linear-gradient(90deg,rgba(62,185,153,.05),transparent)}
.prow:hover::before{transform:scaleY(1)}
.prow--pin{background:rgba(62,185,153,.035)}
.prow__t{display:flex;align-items:center;gap:6px;min-width:0;flex:1;color:var(--ink)}
.prow__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.prow__t:hover .prow__title{color:#fff}
.prow__img{color:var(--muted-2);flex:none}
.prow__m{display:flex;align-items:center;gap:14px;font-size:.78rem;color:var(--muted);flex:none}
.prow__who{max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prow__when{min-width:3.6em;text-align:right}
.prow__n{display:inline-flex;align-items:center;gap:3px;min-width:3em;color:var(--muted-2)}
.prow__n .ico{width:13px;height:13px}
.pbadge{display:inline-flex;align-items:center;gap:3px;flex:none;font-size:.66rem;letter-spacing:.06em;padding:.16em .55em;border:1px solid var(--line-soft);color:var(--muted);border-radius:2px;font-weight:700;white-space:nowrap}
.pbadge .ico{width:11px;height:11px}
.pbadge--pin{color:var(--gold-bright);border-color:var(--line)}
.pbadge--ok{color:#04231c;background:var(--gold);border-color:var(--gold)}
.pbadge--lock{color:#f2c5cc;border-color:rgba(224,86,107,.45)}
.pbadge--bug-new{color:#f0d6a6;border-color:rgba(217,169,91,.45)}
.pbadge--bug-checking{color:var(--violet-bright);border-color:var(--line-violet)}
.pbadge--bug-planned{color:#cdd9ea;border-color:rgba(111,134,168,.5)}
.pbadge--bug-fixed{color:#04231c;background:var(--gold);border-color:var(--gold)}
.pbadge--bug-closed{color:var(--muted-2)}
.rbadge{display:inline-block;font-size:.6rem;letter-spacing:.08em;padding:.1em .45em;margin-left:5px;border-radius:2px;font-weight:800;vertical-align:1px}
.rbadge--admin{background:var(--gold);color:#04231c}
.rbadge--mod{border:1px solid var(--line-violet);color:var(--violet-bright)}
.rbadge--op{border:1px solid var(--line);color:var(--gold-bright)}
.uname{color:var(--ink-2)}
a.uname:hover{color:var(--gold-bright)}
.uname--gone{color:var(--muted-2);font-style:italic}

.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.gcard{display:flex;flex-direction:column;border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--panel);overflow:hidden;transition:transform var(--t),border-color var(--t);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)))}
.gcard:hover{transform:translateY(-4px);border-color:var(--line)}
.gcard__img{aspect-ratio:4/3;background:var(--void-2);display:block;overflow:hidden}
.gcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.gcard:hover .gcard__img img{transform:scale(1.04)}
.gcard__none{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted-2)}
.gcard__none .ico{width:34px;height:34px}
.gcard__body{padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.gcard__t{font-size:.94rem;color:var(--ink);display:flex;gap:6px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.gcard__m{font-size:.74rem;color:var(--muted)}
.gcard__m .ico{width:12px;height:12px}

.pager{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.pager a,.pager span{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;font-size:.86rem;color:var(--muted);border:1px solid transparent;border-radius:var(--r)}
.pager a:hover{border-color:var(--line);color:var(--ink)}
.pager .is-on{color:#04231c;background:var(--gold);font-weight:700}

.crumbs{font-size:.78rem;color:var(--muted);margin-bottom:14px;display:flex;gap:8px;align-items:center}
.crumbs a{color:var(--gold-bright)}
.crumbs__sep{opacity:.4}
.post{border:1px solid var(--line-soft);border-left:2px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--panel),var(--void-2));padding:clamp(20px,3.5vw,36px);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px))}
.post__badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.post__badges:empty{display:none}
.post__t{font-size:clamp(1.45rem,3.2vw,2.05rem);color:#fff;line-height:1.3;word-break:keep-all;overflow-wrap:anywhere}
.post__meta{display:flex;align-items:center;gap:12px;margin:16px 0 22px;padding-bottom:18px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.post__who{display:flex;flex-direction:column;line-height:1.35;font-size:.92rem}
.post__when{font-size:.76rem;color:var(--muted)}
.post__nums{margin-left:auto;display:flex;gap:14px;font-size:.8rem;color:var(--muted)}
.post__nums span{display:inline-flex;align-items:center;gap:4px}
.post__bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:28px;padding-top:18px;border-top:1px solid var(--line-soft)}
.post__bar-gap{flex:1}
.post__back{margin-top:24px}
.likebtn{display:inline-flex;align-items:center;gap:8px;padding:.5em 1.1em;border:1px solid var(--line);border-radius:100px;color:var(--gold-bright);font-size:.9rem;font-weight:700;transition:all var(--t-fast)}
.likebtn:hover:not(:disabled){background:rgba(62,185,153,.12)}
.likebtn.is-on{background:var(--gold);color:#04231c;border-color:var(--gold)}
.likebtn.is-on .ico{fill:currentColor}
.likebtn:disabled{opacity:.55;cursor:default}
.backlink{display:inline-flex;align-items:center;gap:.5em;font-size:.82rem;color:var(--muted)}
.backlink:hover{color:var(--gold-bright)}
.modtools{margin-top:16px;border:1px dashed rgba(217,169,91,.4);border-radius:var(--r);padding:8px 12px}
.modtools summary{cursor:pointer;font-size:.78rem;color:#f0d6a6;letter-spacing:.06em}
.modtools__in{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}
.modtools select{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:var(--r);padding:.3em .5em;font-size:.8rem;margin-right:4px;max-width:200px}
.report{position:relative;display:inline-block}
.report[open]>summary{color:var(--gold-bright)}
.report__form{position:absolute;right:0;bottom:calc(100% + 8px);width:min(300px,86vw);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;z-index:20;display:flex;flex-direction:column;gap:6px;box-shadow:0 16px 40px rgba(0,0,0,.55)}
.cmt .report__form{bottom:auto;top:calc(100% + 6px)}
.report__t{font-size:.8rem;color:var(--muted);margin-bottom:2px}
.report__form textarea{width:100%;background:var(--void-2);border:1px solid var(--line-soft);border-radius:var(--r);padding:.5em .7em;font-size:.86rem;resize:vertical}
.report__form .check{font-size:.86rem}

.prose{font-size:1rem;line-height:1.85;color:#c3cdcd;overflow-wrap:anywhere}
.prose>*+*{margin-top:1em}
.prose h3{font-size:1.32rem;color:#fff;margin-top:1.6em;padding-bottom:.35em;border-bottom:1px solid var(--line-soft)}
.prose h4{font-size:1.08rem;color:var(--ink);margin-top:1.3em}
.prose h2{font-size:1.4rem;color:#fff;margin-top:1.8em;padding-bottom:.35em;border-bottom:1px solid var(--line-soft)}
.prose strong{color:var(--gold-bright);font-weight:700}
.prose em{color:var(--violet-bright)}
.prose del{color:var(--muted)}
.prose a{color:var(--gold-bright);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.prose a:hover{text-decoration-color:var(--gold)}
.prose ul,.prose ol{padding-left:1.4em}
.prose li{margin:.3em 0}
.prose ul li::marker{color:var(--gold)}
.prose blockquote{margin:1em 0;border-left:2px solid var(--gold);padding:.3em 0 .3em 1.2em;color:var(--ink-2);background:rgba(62,185,153,.03)}
.prose code{font-family:var(--mono);font-size:.86em;background:var(--panel-3);padding:.12em .45em;border-radius:3px;color:var(--gold-bright)}
.prose pre{background:#0b0b0f;border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:14px 16px;overflow-x:auto;line-height:1.55}
.prose pre code{background:none;padding:0;color:#d9e2df;font-size:.86rem;white-space:pre}
.prose hr{border:none;height:1px;background:linear-gradient(90deg,var(--line),transparent);margin:2em 0}
.prose .md-img{display:block;margin:1.2em 0;width:fit-content;max-width:100%}
.prose .md-img img{border-radius:var(--r-lg);border:1px solid var(--line-soft);max-height:80vh;width:auto;height:auto;image-rendering:auto}
.prose .md-img:hover img{border-color:var(--line)}
.spoiler{background:var(--panel-3);color:transparent;border-radius:3px;padding:0 .25em;cursor:pointer;transition:color var(--t-fast),background var(--t-fast);user-select:none}
.spoiler:hover,.spoiler:focus{color:inherit;background:rgba(62,185,153,.1);user-select:auto;outline:none}
.spoiler a,.spoiler code{color:transparent;background:none}
.spoiler:hover a,.spoiler:focus a{color:var(--gold-bright)}
.md-spoiler{border:1px solid var(--line-soft);border-left:2px solid var(--warn);border-radius:var(--r);background:rgba(217,169,91,.04);padding:.5em 1em}
.md-spoiler summary{cursor:pointer;color:#f0d6a6;font-size:.92rem}
.md-spoiler__in{margin-top:.8em}
.md-spoiler__in>*+*{margin-top:1em}
.embed{position:relative;aspect-ratio:16/9;max-width:100%;border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;background:#000}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.comments{margin-top:34px}
.comments__t{font-size:1.1rem;color:#fff;margin-bottom:14px}
.clist{list-style:none;padding:0;display:flex;flex-direction:column}
.cmt{padding:14px 0;border-bottom:1px solid var(--line-soft)}
.clist--replies{margin:10px 0 0 22px;border-left:1px solid var(--line);padding-left:14px}
.clist--replies .cmt{padding:10px 0;border-bottom:none}
.cmt__head{display:flex;align-items:center;gap:8px;font-size:.88rem;flex-wrap:wrap}
.cmt__when{font-size:.74rem;color:var(--muted-2)}
.cmt__when:hover{color:var(--muted)}
.cmt__body{margin:6px 0 0 36px;color:#c9d2d1;font-size:.95rem;line-height:1.75;overflow-wrap:anywhere}
.cmt__body a{color:var(--gold-bright);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.cmt__body code{font-family:var(--mono);font-size:.86em;background:var(--panel-3);padding:.1em .4em;border-radius:3px}
.cmt__body strong{color:var(--gold-bright)}
.cmt__act{margin:8px 0 0 36px;display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}
.cmt__gone{color:var(--muted-2);font-style:italic;font-size:.9rem}
.cmt--gone>.cmt__head,.cmt--gone>.cmt__body{opacity:.6}
.cmt:target>.cmt__body,.cmt:target>.cmt__head{background:rgba(62,185,153,.06)}
.cedit{width:100%}
.cedit[open]{order:10}
.cedit form{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.cedit textarea,.cform textarea{width:100%;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r);padding:.8em 1em;font-size:.95rem;line-height:1.65;resize:vertical;transition:border-color var(--t-fast)}
.cedit textarea:focus,.cform textarea:focus{outline:none;border-color:var(--gold)}
.cedit .btn{align-self:flex-end}
.cform{margin-top:20px;display:flex;flex-direction:column;gap:8px}
.cform__reply{display:flex;align-items:center;gap:10px;font-size:.84rem;color:var(--gold-bright)}
.cform__foot{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cnote{margin-top:18px;padding:14px 16px;border:1px dashed var(--line-soft);border-radius:var(--r);color:var(--muted);font-size:.9rem}
.cnote a{color:var(--gold-bright);text-decoration:underline}

.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;font-weight:800;font-size:.95rem;color:#06161a;background:hsl(var(--h,165),45%,58%);border:1px solid rgba(255,255,255,.12)}
.avatar--s{width:28px;height:28px;font-size:.8rem}
.avatar--l{width:64px;height:64px;font-size:1.6rem}
.avatar--h0{--h:0;background:var(--panel-3);color:var(--muted)}
.avatar--h135{--h:135}
.avatar--h150{--h:150}
.avatar--h165{--h:165}
.avatar--h180{--h:180}
.avatar--h195{--h:195}
.avatar--h210{--h:210}
.avatar--h225{--h:225}
.avatar--h240{--h:240}

.wform{display:flex;flex-direction:column;gap:6px}
.field{margin-bottom:16px}
.field label,.field>.lbl{display:block;font-size:.76rem;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;font-weight:500}
.field input,.field select,.field textarea,.aform input:not([type=checkbox]):not([type=radio]),.aform select{width:100%;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r);color:var(--ink);font-size:.96rem;padding:.72em .95em;transition:border-color var(--t-fast)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
.field textarea.short{min-height:90px;resize:vertical;line-height:1.6}
.field .hint{margin-top:6px;font-size:.78rem;color:var(--muted-2)}
.field--row{display:flex;gap:16px;flex-wrap:wrap}
.field--row>div{flex:1;min-width:200px}
.field__board{flex:0 1 280px!important}
.field__title{flex:1 1 320px!important}
.static{padding:.5em 0;color:var(--ink-2);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.9rem;color:var(--ink-2);margin:6px 0}
.check input{width:auto;margin-top:.3em;accent-color:var(--gold);flex:none}
.check a{color:var(--gold-bright);text-decoration:underline}
.form-actions{display:flex;gap:10px;align-items:center;margin-top:22px;padding-top:18px;border-top:1px solid var(--line-soft);flex-wrap:wrap}
.form-actions__note{font-size:.8rem;margin-left:auto}
.form-actions__note a{color:var(--gold-bright);text-decoration:underline}

.editor{border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--panel);overflow:hidden}
.editor:focus-within{border-color:var(--line)}
.editor__bar{display:flex;flex-wrap:wrap;gap:2px;padding:6px;border-bottom:1px solid var(--line-soft);background:var(--panel-2);align-items:center}
.editor__bar>button,.editor__up{min-width:34px;height:32px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 8px;color:var(--ink-2);border-radius:var(--r);font-size:.86rem;cursor:pointer}
.editor__bar>button:hover,.editor__up:hover{background:rgba(62,185,153,.12);color:#fff}
.editor__up input{display:none}
.editor__up span{font-size:.8rem}
.editor__gap{flex:1}
.editor__tab{font-size:.8rem!important;color:var(--muted)!important;padding:0 12px!important}
.editor__tab.is-on{color:var(--gold-bright)!important;background:rgba(62,185,153,.1)}
.editor textarea{display:block;width:100%;min-height:380px;border:none;background:transparent;padding:16px 18px;color:var(--ink);font-size:.97rem;line-height:1.75;resize:vertical;outline:none}
.editor__preview{padding:18px 20px;min-height:380px;max-width:none}
.editor__foot{display:flex;justify-content:space-between;gap:10px;padding:6px 12px;border-top:1px solid var(--line-soft);font-size:.76rem}
.mdhelp{margin-top:10px;font-size:.84rem;color:var(--muted)}
.mdhelp summary{cursor:pointer}
.mdhelp ul{margin-top:8px;padding-left:1.2em;display:flex;flex-direction:column;gap:4px}
.mdhelp code{font-family:var(--mono);background:var(--panel-3);padding:.08em .4em;border-radius:3px;color:var(--gold-bright);font-size:.86em}

.auth{min-height:calc(100vh - var(--nav-h) - 260px);display:flex;align-items:center;justify-content:center;padding:clamp(28px,6vw,64px) 16px}
.auth__card{width:100%;max-width:460px;padding:clamp(26px,5vw,40px);background:linear-gradient(180deg,var(--panel),var(--void-2));border:1px solid var(--line-soft);border-left:2px solid var(--line);border-radius:var(--r-lg);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px))}
.auth__card>p{margin-bottom:12px;color:var(--ink-2)}
.auth__card .btn{margin-top:8px}
.auth__t{font-size:1.7rem;color:#fff;margin:8px 0 20px}
.aform{display:flex;flex-direction:column}
.aform--wide{max-width:560px}
.auth__links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line-soft);font-size:.86rem}
.auth__links a{color:var(--muted)}
.auth__links a:hover{color:var(--gold-bright)}
.consent{border:1px solid var(--line-soft);border-radius:var(--r);padding:12px 14px;margin:4px 0 14px;background:var(--void-2)}
.consent__t{font-size:.8rem;color:var(--gold);font-weight:700;margin-bottom:6px}
.consent .check+.consent__t{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}
.consent__list{padding-left:1.1em;font-size:.8rem;color:var(--muted);margin-bottom:10px}
.consent__list li{margin:.2em 0}

.profile{display:flex;align-items:center;gap:18px;padding:20px;border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--panel);margin-bottom:10px;flex-wrap:wrap}
.profile__main{flex:1;min-width:0}
.profile__name{font-size:1.5rem;color:#fff;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.profile__meta{font-size:.84rem;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}
.profile__bio{margin-top:10px;color:var(--ink-2);font-size:.92rem}
.slist{list-style:none;padding:0}
.slist li{padding:12px 0;border-bottom:1px solid var(--line-soft);display:flex;flex-direction:column;gap:3px}
.slist__t{color:var(--ink);font-size:1rem}
.slist__t:hover,.slist li>a:hover{color:var(--gold-bright)}
.slist__x{font-size:.86rem;color:var(--muted)}
.slist__m{font-size:.76rem;color:var(--muted-2)}
.settabs{margin-bottom:22px}
.steps{padding-left:1.3em;display:flex;flex-direction:column;gap:12px;margin-bottom:16px;color:var(--ink-2)}
.totpkey{margin:10px 0 6px}
.totpkey code{font-family:var(--mono);font-size:1.05rem;letter-spacing:.08em;background:var(--void-2);border:1px solid var(--line);padding:.5em .8em;border-radius:var(--r);display:inline-block;color:var(--gold-bright);word-break:break-all}
.codes{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:0 0 18px}
.codes code{display:block;font-family:var(--mono);background:var(--void-2);border:1px solid var(--line-soft);padding:.5em;text-align:center;border-radius:var(--r);color:var(--ink)}

.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:10px}
.stat{border:1px solid var(--line-soft);border-left:2px solid var(--line);background:var(--panel);padding:14px 16px;border-radius:var(--r);display:flex;flex-direction:column}
.stat b{font-size:1.5rem;color:var(--gold-bright);font-weight:700}
.stat span{font-size:.76rem;color:var(--muted)}
.adm{min-width:0}
.atable{width:100%;border-collapse:collapse;font-size:.88rem;display:block;overflow-x:auto}
.atable thead,.atable tbody{display:table;width:100%}
.atable th{text-align:left;font-size:.7rem;letter-spacing:.08em;color:var(--muted-2);padding:8px 10px;border-bottom:1px solid var(--line-soft);font-weight:500;white-space:nowrap}
.atable td{padding:10px;border-bottom:1px solid var(--line-soft);color:#bcc7c8;vertical-align:middle}
.atable td a{color:var(--ink)}
.atable td a:hover{color:var(--gold-bright)}
.atable tr.is-off td{opacity:.5}
.rcard{border:1px solid var(--line-soft);border-left:2px solid var(--warn);background:var(--panel);border-radius:var(--r);padding:14px 16px;margin-bottom:12px}
.rcard__head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rcard__head a{color:var(--ink);font-weight:500}
.rcard__x{margin:8px 0;font-size:.88rem;color:var(--ink-2)}
.rcard__list{font-size:.82rem;padding-left:1.1em;margin:8px 0;color:var(--ink-2)}
.rcard__act{display:flex;gap:8px;margin-top:10px}
.admbox{border:1px solid var(--line-soft);border-radius:var(--r);padding:4px 16px 16px;margin:14px 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.admbox .subt{width:100%}
.admbox form{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.admbox select,.admbox input{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:var(--r);padding:.55em .7em;font-size:.84rem}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:24px}

.empty{text-align:center;padding:64px 20px;border:1px dashed var(--line-soft);border-radius:var(--r-lg)}
.empty .big{font-size:1.35rem;color:var(--ink);margin-bottom:6px}
.empty p{color:var(--muted)}
.empty__code{font-size:.8rem;letter-spacing:.3em;color:var(--gold);margin-bottom:10px;font-weight:700}
.empty__act{margin-top:18px}
.docmeta{font-size:.8rem;color:var(--muted-2);margin:-12px 0 26px}
.doc h2{font-size:1.25rem}
.doc h3{font-size:1.02rem;border-bottom:none;padding-bottom:0}

.footer{border-top:1px solid var(--line-soft);padding-block:clamp(40px,6vw,64px) 30px;margin-top:40px;background:linear-gradient(180deg,transparent,rgba(96,150,176,.03))}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:36px;margin-bottom:36px}
.footer__brand img{height:36px;width:auto;margin-bottom:14px;opacity:.9}
.footer__brand p{color:var(--muted);font-size:.9rem;max-width:34ch}
.footer__col h4{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;font-weight:700}
.footer__col a{display:block;color:var(--muted);font-size:.9rem;padding:.3em 0}
.footer__col a:hover{color:var(--gold-bright)}
.footer__privacy{color:var(--ink)!important;font-weight:700}
.footer__base{display:flex;justify-content:space-between;align-items:center;padding-top:22px;border-top:1px solid var(--line-soft);flex-wrap:wrap;gap:10px;font-size:.72rem;letter-spacing:.06em;color:var(--muted-2)}
.footer__seal{letter-spacing:.22em;color:var(--gold);opacity:.8}

@media (max-width:1100px){
  .nav__tabs{display:none}
  .nav__burger{display:flex}
}
@media (max-width:980px){
  .home{grid-template-columns:1fr}
  .home__side{position:static}
  .layout{grid-template-columns:1fr}
  .baside{display:none}
}
@media (max-width:720px){
  :root{--nav-h:60px;--cut:10px}
  .brand__name{display:none}
  .umenu__name{display:none}
  .nav__write span,.nav .langsw{display:none}
  .nav__write{padding:.5em .65em}
  .brow{grid-template-columns:minmax(0,1fr) auto;padding:14px 16px}
  .brow__last{display:none}
  .prow{flex-direction:column;align-items:stretch;gap:5px}
  .prow__m{gap:10px}
  .prow__who{max-width:none;margin-right:auto}
  .post__nums{margin-left:0;width:100%}
  .cmt__body,.cmt__act{margin-left:0}
  .clist--replies{margin-left:8px}
  .footer__grid{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1/-1}
  .cols2{grid-template-columns:1fr}
  .form-actions__note{margin-left:0}
  .bsearch{margin-left:0;width:100%}
  .editor textarea,.editor__preview{min-height:300px}
}
@media (max-width:420px){
  .nav__in{gap:8px}
  .nav__link{font-size:.78rem}
  .nav__cta{padding:.45em .7em}
  .ggrid{grid-template-columns:1fr 1fr;gap:10px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.001ms!important}
}
