:root{--bg:#0b1120;--sf:#111a2e;--sf2:#16213a;--ln:#243049;--fg:#e6eaf2;--mu:#8f9ab0;--ac:#5eead4;--vi:#c4b5fd;--no:#e58a9b;--ink:#06231f;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--tb:60px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.7 var(--sans);overflow-wrap:anywhere}
h1,h2,h3,h4,b,strong,th,summary,dt{font:inherit}
a{color:var(--ac)}
img{max-width:100%;height:auto}
code{font-family:var(--mono);color:var(--ac)}
.in{max-width:1080px;margin:0 auto;padding:0 20px}
.sr{position:absolute;left:-9999px}
.hd{border-bottom:1px solid var(--ln);background:var(--bg);position:sticky;top:0;z-index:5}
.hd .in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;flex-wrap:wrap}
.br{display:flex;align-items:center;gap:10px;color:var(--fg);text-decoration:none;font-size:19px}
.bm{font-family:var(--mono);color:var(--ac);border:1px solid var(--ac);padding:0 8px;line-height:1.5}
.mn{list-style:none;margin:0;padding:0;display:flex;gap:4px;flex-wrap:wrap}
.mn a{display:block;padding:8px 12px;color:var(--vi);text-decoration:none}
.mn a:hover{color:var(--ac)}
.mn1{display:block;min-height:60vh}
.st{margin:0;padding:10px 20px;background:var(--sf);border-bottom:1px solid var(--ln);color:var(--mu);font-size:15px;text-align:center}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--vi);margin-right:8px}
h1{font-size:clamp(28px,5vw,44px);line-height:1.2;margin:0 0 14px;color:var(--fg)}
h2{font-size:clamp(22px,3.4vw,28px);line-height:1.3;margin:0 0 16px;color:var(--vi);letter-spacing:.02em}
.sp{padding:40px 0 28px}
.lead{color:var(--mu);margin:0 0 22px;max-width:60ch}
.spbox{display:grid;grid-template-columns:1fr;gap:14px;background:var(--sf);border:1px solid var(--ln);padding:22px}
.spview{font-size:48px;line-height:1.3;text-align:center;padding:14px;border:1px dashed var(--ln);min-height:90px;display:flex;align-items:center;justify-content:center}
.sel{display:flex;flex-direction:column;gap:6px;color:var(--vi);font-size:15px}
select,input[type=text],input[type=search]{width:100%;background:var(--bg);color:var(--fg);border:1px solid var(--ln);padding:12px 14px;font:inherit;border-radius:0;min-height:48px}
select:focus,input:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.big{background:var(--ac);color:var(--ink);border:0;font:inherit;font-size:20px;min-height:60px;padding:0 22px;cursor:pointer;width:100%}
.big:active{transform:translateY(1px)}
.big.a{display:inline-block;text-align:center;line-height:60px;text-decoration:none;width:auto}
.spec{display:inline-flex;align-items:center;font-family:var(--mono);white-space:nowrap}
.spec i{font-style:normal;color:var(--ac)}
.gap{display:inline-block;min-width:2px;height:1.3em;line-height:1.3;border-bottom:2px solid var(--ac);border-inline:1px dotted var(--vi);font-family:system-ui,"Noto Sans","Noto Sans Symbols 2","Segoe UI Symbol",sans-serif;color:var(--vi)}
.cat,.bld,.dr,.fq{padding:26px 0}
.tw{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%}
th,td{padding:12px 14px;border-bottom:1px solid var(--ln);text-align:left;vertical-align:top}
th{color:var(--vi);font-size:15px;white-space:nowrap}
.ct tbody tr:hover{background:var(--sf)}
.nm{display:block;color:var(--fg)}
.nt{display:block;color:var(--mu);font-size:15px;margin-top:2px}
.nt0{color:var(--mu)}
.cp{background:transparent;color:var(--ac);border:1px solid var(--ac);font:inherit;min-height:44px;min-width:76px;padding:0 14px;cursor:pointer}
.cp:hover,.cp.ok{background:var(--ac);color:var(--ink)}
.fld{display:flex;flex-direction:column;gap:6px;color:var(--vi);font-size:15px}
.cnt{color:var(--mu);font-size:15px;margin:6px 0 14px}
.vr{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.vr li{flex:1 1 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--sf);border:1px solid var(--ln);padding:8px 8px 8px 16px;font-size:20px}
.vr .cp{font-size:15px}
.dr .in{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.dr a{display:block;background:var(--sf);border:1px solid var(--ln);padding:18px;text-decoration:none;color:var(--fg)}
.dr a:hover{border-color:var(--ac)}
.dr span{display:block;font-size:19px;color:var(--ac)}
.dr small{color:var(--mu);font-size:15px}
details{border-bottom:1px solid var(--ln);padding:4px 0}
summary{cursor:pointer;padding:12px 0;color:var(--fg);list-style:none;display:flex;justify-content:space-between;gap:12px}
summary::after{content:"+";color:var(--ac);font-family:var(--mono)}
details[open] summary::after{content:"-"}
summary::-webkit-details-marker{display:none}
details p{margin:0 0 14px;color:#c9d1e0;max-width:70ch}
.ft{border-top:1px solid var(--ln);margin-top:30px;padding:26px 0;color:var(--mu)}
.fn .mn{margin-bottom:10px}
.fc{margin:0;font-size:15px}
.art{padding-top:32px;padding-bottom:20px;max-width:780px}
.lst{padding-top:32px;max-width:780px}
.meta{color:var(--mu);font-size:15px;margin:-6px 0 14px}
.ct1 h2{margin-top:30px}
.ct1 h3{font-size:21px;color:var(--ac);margin:24px 0 10px}
.ct1 blockquote{margin:16px 0;padding:6px 18px;border-left:3px solid var(--vi);color:#c9d1e0}
.ct1 pre{background:var(--sf);padding:14px;overflow:auto}
.th{margin:0 0 18px}
.vote{margin:34px 0;padding:16px;background:var(--sf);border:1px solid var(--ln)}
.vq{margin:0 0 10px;color:var(--vi)}
.vb{display:flex;flex-wrap:wrap;gap:8px}
.vb button{flex:1 1 auto;background:transparent;color:var(--fg);border:1px solid var(--ln);font:inherit;min-height:46px;padding:0 16px;cursor:pointer}
.vb button:hover,.vb button.on{border-color:var(--ac);color:var(--ac)}
.vote .vk{display:block;margin:10px 0 0;color:var(--mu);font-size:15px}
.pl{list-style:none;margin:0 0 20px;padding:0}
.pl li{padding:14px 0;border-bottom:1px solid var(--ln)}
.pl a{display:flex;justify-content:space-between;gap:12px;text-decoration:none;font-size:20px}
.pd{color:var(--mu);font-size:15px;white-space:nowrap}
.pl p{margin:4px 0 0;color:var(--mu)}
.pg .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.pg a,.pg span{padding:8px 14px;border:1px solid var(--ln);text-decoration:none}
.pg .current{border-color:var(--ac);color:var(--ac)}
.sf{display:flex;gap:8px;margin:0 0 22px}
.sf button{background:var(--ac);color:var(--ink);border:0;font:inherit;padding:0 20px;min-height:48px;cursor:pointer}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ac);color:var(--ink);padding:12px 20px;z-index:20;max-width:92vw;text-align:center}
.tb{display:none}
@media (max-width:720px){
body{padding-bottom:calc(var(--tb) + 8px)}
.in{padding:0}
.hd .in{padding:8px 14px}
.hd{position:static}
.st{padding:10px 14px;text-align:left}
.sp h1,.sp .lead,.cat h2,.bld h2,.bld p,.bld .fld,.fq h2,.art>*,.lst>*{padding-inline:14px}
.sp{padding-top:26px}
.spbox{border-inline:0;padding:14px}
.dr .in{grid-template-columns:1fr;gap:0}
.dr a{border-inline:0;border-top:0}
.fq details{padding-inline:14px}
.vr li{flex:1 1 100%}
.bld .vr{gap:0}
.art{padding-inline:0}
.ct1{padding-inline:14px}
.ct1 .tw{margin-inline:-14px}
.vote{border-inline:0;margin-inline:0}
.tw{overflow:visible}
.ct{display:block}
.ct thead{position:absolute;left:-9999px}
.ct tbody{display:block}
.ct tr{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:14px;border-bottom:1px solid var(--ln)}
.ct td{display:block;border:0;padding:2px 0}
.ct td:first-child{grid-column:1/2}
.ct td[data-l]::before{content:attr(data-l) ": ";color:var(--mu);font-size:14px}
.ct td[data-l="Specimen"]::before,.ct td[data-l="Code point"]::before{content:""}
.ct td[data-l="Specimen"]{font-size:26px;grid-row:1}
.ct td.ac{grid-column:2;grid-row:1/3;align-self:center}
.ct td[data-l="Code point"]{grid-column:1/2}
.ct td[data-l="Category"],.ct td[data-l="Default ignorable"],.ct td[data-l="Decomposition"],.ct td[data-l="In-game"]{grid-column:1/3;font-size:15px}
.tb{display:flex;position:fixed;left:0;right:0;bottom:0;height:var(--tb);background:var(--sf);border-top:1px solid var(--ln);z-index:10;align-items:stretch;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom)}
.tb .t{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--mu);text-decoration:none;font-size:12px;background:none;border:0;font-family:inherit;cursor:pointer}
.tb svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tb .t:hover{color:var(--ac)}
.tb .mid{flex:0 0 76px;color:var(--ink);background:var(--ac);margin-top:-14px;height:calc(100% + 14px);border-radius:0}
.toast{bottom:calc(var(--tb) + 18px)}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
