:root{--bg: #07140f;--bg2: #0d1f18;--panel: #102a20;--border: #234a3a;--text: #e4f5ec;--muted: #8fc0aa;--accent: #34d399;--accent2: #6ee7b7;--accent-contrast: #04120c;--ok: #34d399;--bad: #f87171;--mark: rgba(52, 211, 153, .28);--mono: ui-monospace, "Cascadia Code", Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}:root[data-theme=light]{--bg: #f4fbf7;--bg2: #e7f6ee;--panel: #ffffff;--border: #cce9da;--text: #0f2419;--muted: #4c7360;--accent: #059669;--accent2: #047857;--accent-contrast: #ffffff;--ok: #059669;--bad: #b91c1c;--mark: rgba(5, 150, 105, .18)}*{box-sizing:border-box}html{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.6}body{margin:0;min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{width:100%;max-width:920px;margin:0 auto;padding:0 1rem}header.site{border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:10}header.site .container{display:flex;align-items:center;gap:1rem;height:3.4rem}.logo{font-weight:800;font-size:1.1rem;color:var(--text)!important;font-family:var(--mono)}.logo .slash{color:var(--accent)}.spacer{flex:1}nav.top a{color:var(--muted);font-size:.88rem;margin-left:.9rem}#theme-toggle{background:none;border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;padding:.25rem .55rem}#lang-select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.25rem .4rem;font-size:.85rem;cursor:pointer;max-width:8.5rem}footer.site{margin-top:auto;border-top:1px solid var(--border);padding:1.3rem 0;font-size:.85rem;color:var(--muted)}footer.site .container{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}.hero{text-align:center;padding:1.8rem 0 1rem}.hero h1{font-size:1.65rem;margin:0 0 .3rem}.hero p{color:var(--muted);margin:0}.badge{display:inline-block;margin-top:.7rem;font-size:.8rem;color:var(--ok);border:1px solid var(--border);border-radius:999px;padding:.2rem .75rem}.mode-tabs{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;margin:1.1rem 0 .7rem}.mode-tabs button{border:none;background:var(--panel);color:var(--muted);padding:.45rem 1.2rem;font-size:.9rem;cursor:pointer;font-weight:600}.mode-tabs button.active{background:var(--accent);color:var(--accent-contrast)}.pattern-row{display:flex;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:10px;font-family:var(--mono);font-size:1rem}.pattern-row:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.pattern-row .delim{padding:0 .6rem;color:var(--muted);font-size:1.2rem;user-select:none}#pattern{flex:1;border:none;background:transparent;color:var(--text);font-family:var(--mono);font-size:1rem;padding:.7rem 0;min-width:60px}#pattern:focus{outline:none}#flags-display{color:var(--accent);padding-right:.7rem}.opts{display:flex;gap:.9rem;flex-wrap:wrap;margin:.6rem 0 .8rem;font-size:.85rem;color:var(--muted)}.opts label{display:inline-flex;align-items:center;gap:.3rem}.opts code{color:var(--accent);font-family:var(--mono)}.io-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}@media(max-width:720px){.io-grid{grid-template-columns:1fr}}.io-panel{display:flex;flex-direction:column;gap:.4rem}.io-head{display:flex;align-items:center;gap:.5rem;min-height:1.8rem}.io-head label{font-size:.82rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.io-head .spacer{flex:1}textarea.io,pre.io{width:100%;min-height:220px;margin:0;font-family:var(--mono);font-size:.88rem;line-height:1.5;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);padding:.7rem;resize:vertical;white-space:pre-wrap;word-break:break-word;overflow:auto}textarea.io:focus{outline:2px solid var(--accent);outline-offset:-1px}input.repl{width:100%;font-family:var(--mono);font-size:.9rem;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem}input.repl:focus{outline:2px solid var(--accent);outline-offset:-1px}.btn{font-size:.82rem;padding:.3rem .75rem;cursor:pointer;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text)}.btn:hover{background:var(--bg2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:700}.btn.copied{border-color:var(--ok);color:var(--ok)}.count-line{margin:.7rem 0;font-size:.88rem}.count-line .n{color:var(--accent);font-weight:700}.error-box{display:none;margin:.6rem 0;padding:.6rem .9rem;border:1px solid var(--bad);border-radius:9px;color:var(--bad);font-size:.87rem;font-family:var(--mono)}.error-box.show{display:block}.error-box.warn{border-color:#fab005;color:#fab005}article.prose{padding:1.5rem 0 3rem}article.prose h2{font-size:1.15rem;margin-top:1.8rem}article.prose p,article.prose li{color:var(--muted);font-size:.92rem}article.prose strong,article.prose code{color:var(--text)}article.prose code{font-family:var(--mono);background:var(--bg2);padding:.1rem .35rem;border-radius:4px;font-size:.88em}.pattern-card{border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:.9rem 1rem;margin-bottom:.9rem}.pattern-card h3{margin:0 0 .3rem;font-size:1rem}.pattern-card .rx-row{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}.pattern-card code.rx{font-family:var(--mono);font-size:.84rem;word-break:break-all;background:var(--bg2);padding:.5rem .7rem;border-radius:7px;color:var(--text);flex:1 1 auto}.pattern-card .note{color:var(--muted);font-size:.85rem;margin:.3rem 0 .6rem}.pattern-card .actions{display:flex;gap:.6rem;flex-wrap:wrap}@media(max-width:620px){header.site .container{gap:.4rem}.logo{font-size:.95rem}nav.top a{margin-left:.55rem;font-size:.78rem}}@media(max-width:480px){header.site .container{flex-wrap:wrap;height:auto;min-height:3.4rem;align-content:center;padding-top:.3rem;padding-bottom:.3rem}header.site .spacer{display:none}.logo{flex:1 1 auto;min-width:0}nav.top{order:3;flex-basis:100%;margin-top:.1rem}nav.top a:first-child{margin-left:0}}.btn:focus-visible,button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.faq-item{margin-top:1rem}.faq-item h3{font-size:1rem;margin:0 0 .3rem;color:var(--text)}.faq-item p{margin:0}.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-contrast);padding:.5rem 1rem;border-radius:0 0 8px;z-index:100;font-weight:700}.skip-link:focus{left:0;text-decoration:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.ed-wrap{display:flex;border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden}.ed-wrap:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.gutter{flex:0 0 auto;min-width:3.2ch;padding:.8rem .5rem .8rem .6rem;font-family:var(--mono);font-size:13px;line-height:1.5;text-align:right;color:var(--muted);background:var(--bg2);border-right:1px solid var(--border);overflow:hidden;user-select:none;white-space:pre}.gutter i{display:block;font-style:normal}.gutter i.err{color:var(--bad);font-weight:700}.ed-wrap textarea{flex:1 1 auto;min-width:0;border:0;border-radius:0;background:transparent;color:var(--text);font-family:var(--mono);font-size:13px;line-height:1.5;padding:.8rem;white-space:pre;overflow:auto;word-break:normal;overflow-wrap:normal;resize:vertical}.ed-wrap textarea:focus{outline:none}.error-bar{display:none;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.7rem;padding:.45rem .7rem;border:1px solid var(--bad);border-radius:9px}.error-bar.show{display:flex}.error-bar .err-jump{flex:1 1 12rem;text-align:left;background:none;border:0;padding:0;color:var(--bad);font-family:var(--mono);font-size:.85rem;cursor:default}.error-bar .err-jump[disabled]{opacity:1}.error-bar .err-jump.clickable{cursor:pointer}.error-bar .err-jump.clickable:hover{text-decoration:underline}.status-bar{display:flex;align-items:center;gap:.5rem .9rem;flex-wrap:wrap;margin-top:.5rem;font-size:.8rem;color:var(--muted)}.status-bar .spacer{flex:1}.status-bar b{color:var(--text)}.status-bar .ok{color:var(--ok);font-weight:700}.status-bar .bad{color:var(--bad);font-weight:700}.kbd-hint{font-size:.78rem;color:var(--muted);margin:.55rem 0 0}.kbd-hint kbd{font-family:var(--mono);font-size:.9em;border:1px solid var(--border);border-radius:4px;padding:0 .3rem;background:var(--bg2)}
