:root{--bg:#111113;--surface:#1a1a1d;--raised:#202024;--ink:#f2f2f4;--muted:#9a9aa2;--faint:#63636b;--line:#2a2a2f;--accent:#ececf0;--accent-soft:#2a2a2f;--accent-ink:#111113;--good:#2f9fdb;--good-soft:#2f9fdb26;--warn:#f2a46a;--warn-soft:#2c2017;--shadow:0 1px 2px #0000004d;--shadow-lg:0 10px 40px #00000080;--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,Inter,system-ui,sans-serif}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code,.mono{font:12.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.top{z-index:5;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:12px;padding:14px 24px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;font-weight:650}.lib{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.spacer{flex:1}.icon-btn{width:36px;height:36px;color:var(--muted);border-radius:10px;place-items:center;display:grid}.icon-btn:hover{background:var(--line);color:var(--ink)}.ghost{color:var(--muted);border-radius:9px;padding:7px 12px;font-weight:550}.ghost:hover{background:var(--line);color:var(--ink)}main{max-width:1120px;margin:0 auto;padding:8px 24px 140px}.hero{padding:28px 0 22px}.hero h1{letter-spacing:-.02em;margin:0 0 8px;font-size:30px;font-weight:700;line-height:1.15}.hero p{color:var(--muted);margin:0;font-size:15px}.hero .num{font-variant-numeric:tabular-nums}.pill{border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.pill.new{background:var(--accent-soft);color:var(--accent)}.pill.moved{background:var(--line);color:var(--muted)}.pill.good{background:var(--good-soft);color:var(--good)}.pills{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.skeleton{background:linear-gradient(90deg, var(--line), var(--raised), var(--line));background-size:200% 100%;border-radius:7px;height:14px;animation:1.3s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:6px 0 18px;display:flex}.seg{background:var(--line);border-radius:10px;padding:3px;display:inline-flex}.seg button{color:var(--muted);border-radius:8px;padding:6px 14px;font-size:13px;font-weight:550}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.search{flex:1;min-width:200px;max-width:340px;position:relative}.search input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font:inherit;border-radius:10px;padding:8px 12px 8px 34px}.search svg{color:var(--faint);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.kind{margin-bottom:28px}.kind h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-size:13px;font-weight:650}.kind h2 span{color:var(--faint);margin-left:6px;font-weight:500}.cards{columns:4 240px;column-gap:12px}.card{break-inside:avoid;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:14px 6px 8px}.card-head{justify-content:space-between;align-items:baseline;padding:0 10px 6px;display:flex}.card-head b{letter-spacing:-.01em;font-size:15px}.card-head span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.sub{text-align:left;border-radius:8px;grid-template-columns:1fr auto;gap:2px 10px;width:100%;padding:6px 10px;display:grid}.sub .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sub .name.root{color:var(--muted);font-style:italic}.sub .count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.bar{background:var(--line);border-radius:2px;grid-column:1/-1;height:3px;overflow:hidden}.bar i{background:var(--accent);opacity:.55;border-radius:2px;height:100%;display:block}.card.unsure{background:var(--warn-soft);border-color:#0000}.card.unsure .card-head b{color:var(--warn)}.card.unsure .bar i{background:var(--warn)}.empty{text-align:center;color:var(--muted);padding:70px 20px}.empty .check{background:var(--good-soft);width:56px;height:56px;color:var(--good);border-radius:50%;place-items:center;margin:0 auto 16px;display:grid}.action{left:50%;bottom:calc(40px + env(safe-area-inset-bottom,0px));z-index:10;background:var(--surface);border:1px solid var(--line);width:min(720px,100% - 32px);box-shadow:var(--shadow-lg);border-radius:16px;align-items:center;gap:14px;padding:12px 12px 12px 20px;transition:transform .25s,opacity .25s;display:flex;position:fixed;overflow:hidden;transform:translate(-50%)}.action.away{opacity:0;transform:translate(-50%,140%)}.action .msg{flex:1;min-width:0}.action .msg b{font-size:16px;display:block}.action .msg span{color:var(--muted);font-size:14px}.action .msg .cta{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);text-underline-offset:3px;margin-top:4px;font-size:13px;display:block}.action .msg .cta:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.progress{background:var(--accent);width:0;height:3px;transition:width .3s;position:absolute;bottom:0;left:0}.btn{white-space:nowrap;border-radius:11px;padding:10px 18px;font-weight:650}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.06)}.btn.confirm{background:var(--ink);color:var(--bg)}.btn.quiet{color:var(--muted)}.btn.quiet:hover{background:var(--line);color:var(--ink)}.btn:disabled{opacity:.5;cursor:default}.scrim{z-index:20;opacity:0;pointer-events:none;background:#00000040;transition:opacity .2s;position:fixed;inset:0}.scrim.open{opacity:1;pointer-events:auto}.sheet{z-index:21;background:var(--surface);width:min(520px,100%);box-shadow:var(--shadow-lg);visibility:hidden;flex-direction:column;transition:transform .25s,visibility 0s .25s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(105%)}.sheet.open{visibility:visible;transition:transform .25s;transform:none}.sheet-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:18px 20px 12px;display:flex}.sheet-head h3{letter-spacing:-.01em;flex:1;margin:0;font-size:17px}.sheet-head .sub-title{color:var(--muted);font-size:13px;font-weight:400}.sheet-body{flex:1;padding:8px 20px 28px;overflow:auto}.file{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr;gap:0 10px;padding:9px 0;display:grid}.file .pill{align-self:start;margin-top:1px;padding:1px 8px;font-size:11px}.file .dest{word-break:break-word;font-weight:550}.file .src{color:var(--muted);word-break:break-all;grid-column:2;font-size:12px}.more{color:var(--muted);padding:14px 0;font-size:13px}.group{padding:18px 0 6px}.group h4{margin:0 0 2px;font-size:14px}.group p{color:var(--muted);margin:0 0 10px;font-size:12.5px}.field{border:1px solid var(--line);background:var(--raised);width:100%;color:var(--ink);border-radius:9px;padding:8px 10px}.chips{flex-direction:column;gap:6px;display:flex}.chip{background:var(--raised);border:1px solid var(--line);border-radius:10px;align-items:center;gap:8px;padding:7px 8px 7px 12px;display:flex}.chip .label{flex:1;min-width:0}.chip .label b{font-size:13px;font-weight:600;display:block}.chip .label span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;display:block;overflow:hidden}.chip .x{width:26px;height:26px;color:var(--faint);border-radius:7px;place-items:center;display:grid}.chip .x:hover{background:var(--line);color:var(--ink)}.add{gap:6px;margin-top:8px;display:flex}.add input{flex:1}.tree{border:1px solid var(--line);border-radius:10px;max-height:300px;padding:4px;overflow:auto}.node{border-radius:7px;align-items:center;gap:4px;padding:3px 6px;font-size:13px;display:flex}.node:hover{background:var(--raised)}.node .caret{width:18px;color:var(--faint);transition:transform .15s}.node .caret.open{transform:rotate(90deg)}.node .nm{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;flex:1;min-width:0;overflow:hidden}.node .nm.root{font-weight:600}.tog{color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 9px;font-size:11.5px}.tog:hover{color:var(--ink)}.tog.on.exclude{background:var(--line);color:var(--ink);border-color:var(--faint)}.tog.on.protect{background:var(--good-soft);color:var(--good);border-color:#0000}.node.excluded .nm{color:var(--faint);text-decoration:line-through}.node.protected .nm{color:var(--good)}details{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}summary{cursor:pointer;color:var(--muted);font-weight:600}textarea.rules{border:1px solid var(--line);background:var(--raised);width:100%;min-height:360px;color:var(--ink);resize:vertical;border-radius:9px;margin-top:10px;padding:10px}.undo-row{background:var(--raised);border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.undo-row .t{flex:1;font-size:13px}.setup{background:var(--surface);border:1px solid var(--line);max-width:520px;box-shadow:var(--shadow);border-radius:18px;margin:48px auto 0;padding:28px;position:relative}.setup-close{position:absolute;top:16px;right:16px}.setup h1{letter-spacing:-.02em;margin:0 0 6px;font-size:24px}.setup>p{color:var(--muted);margin:0 0 8px}.setup label.check{align-items:flex-start;gap:8px;margin-top:16px;font-size:13.5px;display:flex}.setup .go{width:100%;margin-top:22px;padding:12px}.setup .privacy{color:var(--faint);text-align:center;margin-top:12px;font-size:12px}.toast{z-index:30;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);visibility:hidden;border-radius:12px;max-width:calc(100% - 32px);padding:10px 16px;font-weight:550;transition:transform .25s,visibility 0s .25s;position:fixed;top:18px;left:50%;transform:translate(-50%,-150%)}.toast.show{visibility:visible;transition:transform .25s;transform:translate(-50%)}.toast.err{background:var(--warn);color:#fff}@media (width<=600px){.top{padding:12px 16px}main{padding:4px 16px 150px}.hero h1{font-size:24px}.action{bottom:calc(20px + env(safe-area-inset-bottom,0px));gap:8px;padding:10px 10px 10px 16px}.action .msg span{display:none}.btn{padding:9px 14px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.pick{border:1px dashed var(--line);background:var(--raised);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.pick.set{border-style:solid}.pick .label{flex:1;min-width:0}.pick .label b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.pick .label span{color:var(--muted);font-size:12px}.pick .ok{background:var(--good-soft);width:22px;height:22px;color:var(--good);border-radius:50%;flex:none;place-items:center;font-size:13px;display:grid}.btn.outline{border:1px solid var(--line);background:var(--surface)}.btn.outline:hover{border-color:var(--faint)}.gate{text-align:center}.gate .big{margin-bottom:8px;font-size:40px}.scan-count{font-variant-numeric:tabular-nums}:root{--glass:color-mix(in srgb, var(--surface) 58%, transparent);--glass-strong:color-mix(in srgb, var(--surface) 80%, transparent);--glass-border:color-mix(in srgb, var(--ink) 9%, transparent);--blur:blur(18px) saturate(150%);--elev-1:color-mix(in srgb, #fff 3.5%, var(--bg));--elev-2:color-mix(in srgb, #fff 6%, var(--bg));--highlight:inset 0 1px 0 #ffffff0d;--depth-1:var(--highlight), 0 1px 1px #00000059, 0 6px 16px -8px #0000008c;--depth-2:var(--highlight), 0 2px 4px #00000059, 0 18px 40px -12px #000000b3}body{background:linear-gradient(180deg, #151517 0%, var(--bg) 420px) fixed, var(--bg)}body:before{content:"";z-index:-1;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.top{background:color-mix(in srgb, var(--bg) 55%, transparent);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-bottom:1px solid var(--glass-border);padding-block:12px}.brand{letter-spacing:-.035em;color:inherit;cursor:pointer;align-items:center;font-size:23px;font-weight:800;text-decoration:none;display:inline-flex}.brand .sort{color:var(--accent)}.by{color:var(--muted);margin-left:-4px;font-size:12px;text-decoration:none}.by:hover{color:var(--ink)}.lang-switch{height:28px;color:var(--muted);border:1px solid var(--line);border-radius:7px;justify-content:center;align-items:center;padding:0 9px;font-size:12px;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.lang-switch:hover{color:#fff;background:#ffffff1a;border-color:#ffffff40}.card,.setup,.action,.chip,.undo-row,.pick,.tree,.search input,.seg{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-color:var(--glass-border)}.sheet{background:color-mix(in srgb, var(--bg) 55%, transparent);-webkit-backdrop-filter:blur(28px)saturate(160%);backdrop-filter:blur(28px)saturate(160%);border-left:1px solid var(--glass-border)}.card.unsure{background:color-mix(in srgb, var(--warn-soft) 70%, transparent)}.scrim{background:#0000002e}@media (width<=600px){.brand{font-size:20px}}.action,.toast{background:color-mix(in srgb, var(--bg) 55%, transparent);border-color:var(--glass-border);-webkit-backdrop-filter:blur(32px)saturate(170%);backdrop-filter:blur(32px)saturate(170%)}details.note{background:var(--glass);border:1px solid var(--glass-border);border-radius:12px;margin-top:14px;padding:10px 12px}details.note summary{color:var(--ink);font-size:13.5px;font-weight:650}details.note p,details.note li{color:var(--muted);margin:8px 0 0;font-size:12.5px;line-height:1.55}details.note ul{margin:6px 0 0;padding-left:18px}details.note.warn{background:color-mix(in srgb, var(--warn-soft) 70%, transparent)}details.note.warn summary{color:var(--warn)}.group>details.note:first-child{margin-top:0}.toast{color:var(--ink)}.search svg{z-index:1}.card,.setup{background:color-mix(in srgb, var(--elev-1) 82%, transparent);box-shadow:var(--depth-1);border-color:#ffffff0f}.card{transition:border-color .15s,transform .15s}.card:hover{border-color:#ffffff1a}.chip,.pick,.tree,.undo-row,details.note,.search input,.seg{box-shadow:var(--highlight);border-color:#ffffff0f}.action{box-shadow:var(--depth-2);border-color:#ffffff14}.sheet{box-shadow:var(--highlight), -24px 0 60px -20px #000000b3}.top{box-shadow:0 1px #ffffff08}:root{--blue:#2f9fdb;--purple:#9a5fb8;--pink:#e5679a;--red:#e8473a;--orange:#f5872a;--yellow:#f9c33a;--rainbow:linear-gradient(90deg, var(--blue), var(--purple), var(--pink), var(--red), var(--orange), var(--yellow))}@property --rb-shift{syntax:"<percentage>";inherits:false;initial-value:0%}@keyframes rb-drift{to{--rb-shift:100%}}.brand .sort{background:var(--rainbow);background-size:200% 100%;background-position:var(--rb-shift) 0;color:#0000;-webkit-background-clip:text;background-clip:text;animation:6s linear infinite alternate rb-drift}.progress{background:var(--rainbow)}.bar i{background:var(--rainbow);background-size:calc(200% * 100 / var(--w,100)) 100%;opacity:.85;background-position:calc(var(--rb-shift) / (2 - var(--w,100) / 100)) 0;animation:6s linear infinite alternate rb-drift}.pill.new{color:var(--ink);background:#ffffff17}.btn.primary{box-shadow:inset 0 1px #fff9,0 1px 2px #0006}.intro{text-align:center;max-width:620px;margin:9vh auto 0}.intro h1{letter-spacing:-.035em;margin:0 0 18px;font-size:clamp(30px,5.2vw,46px);font-weight:800;line-height:1.08}.intro .lede{color:var(--muted);max-width:540px;margin:0 auto 22px;font-size:17px;line-height:1.6}.intro .lede b{color:var(--ink);font-weight:650}.facts{flex-wrap:wrap;justify-content:center;gap:4px 22px;margin:0 0 30px;padding:0;list-style:none;display:flex}.facts li{color:var(--muted);align-items:center;gap:7px;font-size:13.5px;display:inline-flex}.facts li:before{content:"";background:var(--rainbow);background-size:600% 100%;border-radius:50%;width:5px;height:5px}.facts li:nth-child(2):before{background-position:50% 0}.facts li:nth-child(3):before{background-position:100% 0}.intro .go{width:auto;padding:13px 34px;font-size:15px}.intro h1 span{text-wrap:balance;display:block}.rb{background:var(--rainbow);background-size:200% 100%;background-position:var(--rb-shift) 0;color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal;animation:6s linear infinite alternate rb-drift}canvas.dots{z-index:-1;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.modal-wrap{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000073;place-items:center;padding:20px;animation:.15s fade;display:grid;position:fixed;inset:0}.modal{background:color-mix(in srgb, var(--elev-2) 92%, transparent);width:min(520px,100%);max-height:calc(100vh - 40px);box-shadow:var(--depth-2);border:1px solid #ffffff14;border-radius:18px;padding:24px;animation:.18s cubic-bezier(.2,.9,.3,1.2) pop;overflow:auto}.modal.wide{flex-direction:column;width:min(680px,100%);display:flex}.modal h2{letter-spacing:-.02em;margin:0 0 12px;font-size:20px}.modal .hint{color:var(--muted);margin:0 0 12px;font-size:13px;line-height:1.55}.summary{gap:6px;margin:0 0 16px;padding:0;list-style:none;display:grid}.summary li{color:var(--muted);padding-left:16px;font-size:14px;position:relative}.summary li:before{content:"";background:var(--faint);border-radius:50%;width:5px;height:5px;position:absolute;top:.6em;left:2px}.daw{background:color-mix(in srgb, var(--warn-soft) 80%, transparent);border:1px solid #ffffff0d;border-radius:12px;margin-bottom:18px;padding:12px 14px}.daw h3{color:var(--warn);margin:0 0 6px;font-size:14px}.daw p,.daw li{color:var(--muted);margin:6px 0 0;font-size:12.5px;line-height:1.55}.daw ul{margin:4px 0 0;padding-left:18px}.modal-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:4px;display:flex}.btn.small{padding:4px 10px;font-size:12.5px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.98)}}.kind-names{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.kn{color:var(--ink);cursor:text;background:#ffffff0f;border-radius:6px;padding:2px 8px;font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.kind-names .muted{color:var(--faint)}.ftree{background:color-mix(in srgb, var(--bg) 70%, transparent);border:1px solid #ffffff0f;border-radius:12px;flex:1;min-height:240px;max-height:52vh;margin-bottom:14px;padding:6px;overflow:auto;box-shadow:inset 0 1px 3px #0006}.frow{-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:6px;height:32px;padding-right:6px;font-size:13.5px;display:flex}.frow:hover{background:#ffffff0a}.frow.drop{background:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff40}.frow.dragging{opacity:.4}.frow.confirming{background:color-mix(in srgb, var(--warn-soft) 90%, transparent)}.frow .caret{text-align:center;width:16px;color:var(--faint);cursor:pointer;transition:transform .12s}.frow .caret.open{transform:rotate(90deg)}.frow .caret.none{visibility:hidden}.ficon{color:#8a8a93;display:inline-flex}.fname{text-overflow:ellipsis;white-space:nowrap;cursor:default;flex:1;min-width:0;overflow:hidden}.fbadge{color:var(--faint);white-space:nowrap;border:1px solid #ffffff14;border-radius:999px;padding:1px 7px;font-size:11px}.factions{opacity:0;align-items:center;gap:2px;transition:opacity .12s;display:inline-flex}.frow:hover .factions,.frow:focus-within .factions,.frow.confirming .factions{opacity:1}.fbtn{width:26px;height:26px;color:var(--muted);border-radius:7px;place-items:center;display:grid}.fbtn:hover{color:var(--ink);background:#ffffff14}.fbtn.danger:hover{color:var(--warn)}.fwarn{color:var(--warn);white-space:nowrap;margin-right:4px;font-size:12px}input.rename{min-width:0;font:inherit;color:var(--ink);background:var(--bg);border:1px solid #ffffff4d;border-radius:6px;outline:none;flex:1;padding:3px 7px}.froot-drop{color:var(--faint);text-align:center;border:1px dashed #ffffff1a;border-radius:8px;margin:6px 4px 2px;padding:10px;font-size:12px}.froot-drop.drop{color:var(--ink);border-color:#ffffff59}@media (hover:none){.factions{opacity:1}}.btn,.ghost,.icon-btn,.fbtn,.seg button,.sub{transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s}.btn.primary:hover{filter:none;background:#fff;box-shadow:inset 0 1px #fff,0 0 0 1px #ffffff59,0 4px 18px #ffffff24}.btn.outline:hover{color:#fff;background:#ffffff1f;border-color:#ffffff59}.btn.quiet:hover,.ghost:hover,.icon-btn:hover,.fbtn:hover{color:#fff;background:#ffffff24}.seg button:hover{color:#fff}.sub:hover{background:#ffffff12}
