:root{--bg:#0f1114;--panel:#151820;--line:#262a31;--text:#e8e8e4;--muted:#8d939b;--accent:#86bfa9;--mono:ui-monospace, "JetBrains Mono", "Cascadia Code", Consolas, monospace;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}:root[data-theme=light]{--bg:#fafaf7;--panel:#fff;--line:#e3e3dc;--text:#17191c;--muted:#646a72;--accent:#2f6f5e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;line-height:1.65;transition:background .3s,color .3s;display:flex}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}.top{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem clamp(1rem,4vw,3rem);display:flex;position:sticky;top:0}.logo{color:var(--text);letter-spacing:-.01em;font-weight:600}.logo:hover{text-decoration:none}nav{flex-wrap:wrap;gap:1.4rem;margin-inline-start:auto;display:flex}nav a{color:var(--muted);font-size:.92rem}nav a:hover,nav a.active{color:var(--text);text-decoration:none}.tools{gap:.5rem;display:flex}select,button,input,textarea{font:inherit;color:var(--text)}select,#theme{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;padding:.25rem .5rem;font-size:.85rem}select option{background:var(--bg)}main{flex:1;width:min(1040px,100% - 2.5rem);margin:0 auto;padding:4.5rem 0 3rem}h1,h2{letter-spacing:-.02em;margin:0 0 1rem;font-weight:600;line-height:1.15}h1{font-size:clamp(2.6rem,8vw,4.4rem)}h2{font-size:clamp(1.5rem,4vw,2rem)}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.lead{max-width:62ch;color:var(--muted);font-size:1.12rem}section[id]{scroll-margin-top:4.5rem}.sec{border-top:1px solid var(--line);padding:3.5rem 0 1rem}.sec>h2{margin-bottom:1.5rem}.sec .row:first-of-type{border-top:0;padding-top:0}.hero{grid-template-columns:1.1fr 1fr;align-items:center;gap:2.5rem;padding-bottom:3.5rem;display:grid}@media (width<=860px){.hero{grid-template-columns:1fr}}.eyebrow{font-family:var(--mono);color:var(--muted);align-items:center;gap:.55rem;margin:0 0 1.5rem;font-size:.8rem;display:inline-flex}.eyebrow i{background:var(--accent);border-radius:50%;width:7px;height:7px}.role{color:var(--accent);margin:0 0 1.4rem;font-size:clamp(1.1rem,2.6vw,1.4rem)}.cta{flex-wrap:wrap;gap:.8rem;margin-top:2rem;display:flex}.btn{border:1px solid var(--line);color:var(--text);cursor:pointer;background:0 0;background:var(--panel);border-color:color-mix(in srgb, var(--text) 35%, transparent);border-radius:6px;padding:.65rem 1.2rem;font-size:.95rem;font-weight:500;transition:border-color .2s,background .2s;display:inline-block;box-shadow:0 1px 2px #0000001f,0 2px 8px -4px #0003}.btn:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px)}.btn:active{transform:none}.btn.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}:root[data-theme=light] .btn{border:2px solid #2b3036;font-weight:600;box-shadow:0 3px #2b3036}:root[data-theme=light] .btn:not(.primary){color:#17191c;background:#fff}:root[data-theme=light] .btn.primary{background:var(--accent);color:#fff;border-color:#1c4a3d;box-shadow:0 3px #1c4a3d}:root[data-theme=light] .btn:hover{border-color:#2b3036;transform:translateY(1px);box-shadow:0 2px #2b3036}:root[data-theme=light] .btn.primary:hover{background:#245a4b;border-color:#1c4a3d;box-shadow:0 2px #1c4a3d}:root[data-theme=light] .btn:active{transform:translateY(3px);box-shadow:0 0 #2b3036}:root[data-theme=light] select,:root[data-theme=light] #theme{background:#fff;border-color:#6b726b}select,#theme{border-color:color-mix(in srgb, var(--text) 30%, transparent);background:var(--panel)}.row{border-top:1px solid var(--line);grid-template-columns:170px 1fr;gap:1rem 2rem;padding:2rem 0;display:grid}@media (width<=640px){.row{grid-template-columns:1fr}}.row>h3{font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0;padding-top:.25rem;font-size:.8rem;font-weight:500}.stack{gap:1.4rem;display:grid}.group .label{margin-bottom:.1rem}.label{font-family:var(--mono);color:var(--muted);font-size:.78rem}.chips{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.chip,.when,.pname,.label.mono{direction:ltr;unicode-bidi:isolate}[dir=rtl] .when{text-align:right;justify-self:end}.chip{font-family:var(--mono);border:1px solid var(--line);color:var(--text);border-radius:5px;padding:.2rem .65rem;font-size:.82rem}.item{gap:.1rem;display:grid}.item strong{font-weight:500}.when{font-family:var(--mono);color:var(--accent);font-size:.8rem}.langs{gap:.5rem;display:grid}.langs div{border-bottom:1px dashed var(--line);justify-content:space-between;gap:1rem;max-width:420px;padding-bottom:.5rem;display:flex}.term{background:var(--panel);border:1px solid var(--line);font-family:var(--mono);border-radius:10px;font-size:.88rem;overflow:hidden;box-shadow:0 20px 40px -28px #00000080}.term .bar{border-bottom:1px solid var(--line);align-items:center;gap:.4rem;padding:.6rem .9rem;display:flex}.term .bar i{background:var(--line);border-radius:50%;width:10px;height:10px}.term .bar span{color:var(--muted);margin-inline-start:auto;font-size:.75rem}.term .screen{white-space:pre-wrap;text-align:left;direction:ltr;height:280px;padding:1rem 1.1rem .2rem;line-height:1.55;overflow-y:auto}.term .screen .out{color:var(--muted);margin-bottom:.5rem}.term .screen .in{margin-bottom:.2rem}.term b{color:var(--accent);font-weight:500}.term .nf{color:var(--text)}.term .p{color:var(--accent)}.term .prompt{direction:ltr;gap:.5rem;max-width:none;margin:0;padding:.3rem 1.1rem 1rem;display:flex}.term .prompt input{font-family:var(--mono);background:0 0;border:0;outline:none;padding:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1.2rem 1.4rem}.grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.soon{color:var(--muted);border-style:dashed}a.card{color:var(--text);transition:border-color .2s;display:block}a.card:hover{border-color:var(--accent);text-decoration:none}.project .name{margin:.5rem 0 0;font-size:1.05rem}.badge{font-family:var(--mono);border:1px solid;border-radius:99px;padding:.08rem .55rem;font-size:.72rem;display:inline-block}.badge.live{color:var(--accent)}.badge.live:before{content:"● ";font-size:.6rem}.badge.dev{color:#d4a24c}.project .chips{margin-top:.8rem}.plist{gap:1.2rem;margin-top:1.5rem;display:grid}.pcard{padding:1.6rem 1.8rem}.pcard.soon{color:var(--text);border-style:solid}.phead{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.pname{letter-spacing:-.01em;margin:0;font-size:1.35rem;font-weight:600}.pname a{color:var(--text)}.pname a:hover{color:var(--accent);text-decoration:none}.psum{max-width:70ch;margin:1rem 0 1.4rem;font-size:1.05rem}.pcols{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1.5rem 2rem;padding-top:1.3rem;display:grid}@media (width<=860px){.pcols{grid-template-columns:1fr}}.pcols p{color:var(--muted);margin:.4rem 0 0;font-size:.93rem}.pcols ul{color:var(--muted);margin:.4rem 0 0;padding-inline-start:1.1rem;font-size:.93rem}.pcols li{margin-bottom:.45rem}.pcols li::marker{color:var(--accent)}form{gap:1rem;max-width:560px;margin-top:1.5rem;display:grid}.row2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=560px){.row2{grid-template-columns:1fr}}label{color:var(--muted);gap:.3rem;font-size:.88rem;display:grid}input,textarea{background:var(--panel);border:1px solid var(--line);border-radius:6px;width:100%;padding:.65rem .8rem}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}textarea{resize:vertical;min-height:130px}.check{align-items:flex-start;gap:.6rem;font-size:.85rem;display:flex}.check input{width:auto;margin-top:.25rem}.hp{height:0;position:absolute;left:-9999px;overflow:hidden}.msg{min-height:1.5em;font-size:.9rem}.msg.ok{color:var(--accent)}.msg.err{color:#e58a8a}footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.4rem clamp(1rem,4vw,3rem);font-size:.88rem;display:flex}footer .links{inset-inline-start:1.2rem;z-index:5;flex-direction:column;align-items:flex-start;gap:.9rem;display:flex;position:fixed;top:50%;transform:translateY(-50%)}footer .links a{--d:3.4rem;width:max-content;max-width:var(--d);height:var(--d);white-space:nowrap;border:1px solid var(--line);background:var(--panel);color:var(--text);font-family:var(--mono);transform-origin:0;border-radius:999px;align-items:center;gap:0;padding-inline-start:calc((var(--d) - 1.5rem) / 2 - 1px);font-size:.82rem;transition:max-width .4s,transform .25s,border-color .2s,color .2s;display:inline-flex;overflow:hidden}[dir=rtl] footer .links a{transform-origin:100%}footer .links a:is(:hover,:focus-visible){max-width:22rem;color:var(--accent);border-color:var(--accent);text-decoration:none;transform:scale(1.12)}footer .links svg{flex:none;width:1.5rem;height:1.5rem}footer .links .lbl{opacity:0;visibility:hidden;pointer-events:none;margin-inline-start:.7rem;padding-inline-end:1.2rem;transition:opacity .25s,visibility 0s .25s}footer .links a:is(:hover,:focus-visible) .lbl{opacity:1;visibility:visible;transition:opacity .25s .1s,visibility}:root[data-theme=light] footer .links a{color:#2b3036;background:#fff;border-color:#9aa09a}:root[data-theme=light] footer .links a:is(:hover,:focus-visible){color:var(--accent);border-color:var(--accent)}@media (width<=1240px){body:not(.admin) main{padding-inline-start:4.6rem}}@media (width<=640px){.top{gap:.2rem .6rem;padding:.55rem .9rem .35rem}.logo{order:1;padding:.5rem 0}.tools{order:2;margin-inline-start:auto}nav{order:3;justify-content:space-between;gap:0;width:100%;margin:0}nav a{padding:.6rem .35rem;font-size:.9rem}select,#theme{min-width:40px;min-height:40px;font-size:16px}footer .links{gap:.5rem;inset-inline-start:.35rem}footer .links a{--d:2.5rem}footer .links svg{width:1.2rem;height:1.2rem}footer .links a{padding-inline-start:calc((var(--d) - 1.2rem) / 2 - 1px)}body:not(.admin) main{width:calc(100% - 1.4rem);padding:2.2rem 0 2rem;padding-inline-start:2.9rem}input,textarea,.term .prompt input{font-size:16px}input[type=checkbox]{flex:none;width:1.3rem;height:1.3rem;margin-top:.1rem}.term .prompt input{min-height:32px}.btn{padding:.8rem 1.2rem}.btn.sm{padding:.55rem .9rem}.cta .btn{text-align:center;flex:auto}.term .screen{height:230px}.sec{padding-top:2.5rem}section[id]{scroll-margin-top:6.8rem}.pcard{padding:1.2rem 1.05rem}.pname a{padding:.35rem 0;display:inline-block}.badge{font-size:.78rem}footer{padding:1.1rem 1rem}}footer a{color:var(--muted);align-items:center;gap:.4rem;display:inline-flex}footer a:hover{color:var(--text);text-decoration:none}footer svg{width:1.05rem;height:1.05rem}.admin #rain{z-index:-1;opacity:.2;pointer-events:none;position:fixed;inset:0}.admin .top{position:static}.login{place-items:center;width:100%;max-width:none;min-height:100vh;margin:0;padding:1.5rem;display:grid}.login-card{text-align:center;gap:1rem;width:min(380px,100%);margin:0;padding:2rem;display:grid}.login-card h1{margin:0;font-size:1.6rem}.login-card p{margin:0}.login-card label{text-align:left}.login-card .back{font-size:.85rem}.login-mark{background:var(--accent);width:52px;height:52px;color:var(--bg);border-radius:12px;place-items:center;margin:0 auto;font-weight:700;display:grid}:root[data-theme=light] .login-mark{color:#fff}.dash{grid-template-columns:minmax(0,1fr);gap:2.5rem;width:min(1100px,100% - 2.5rem);padding-top:2rem;display:grid}.dash h2{margin-bottom:1rem;font-size:1.25rem}.dash .sub{margin-inline-start:.5rem;font-size:.85rem;font-weight:400}.dash .small{font-size:.82rem}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;display:grid}.stat .big{letter-spacing:-.02em;margin-top:.2rem;font-size:2rem;font-weight:600;line-height:1.2}.stat.hot{border-color:var(--accent)}.stat.hot .big{color:var(--accent)}.note{margin:.8rem 0 0;font-size:.82rem}.chart{align-items:flex-end;gap:.5rem;height:170px;display:flex}.chart .col{flex-direction:column;flex:1;align-items:center;gap:.4rem;height:100%;display:flex}.chart .bars{flex:1;align-items:flex-end;width:100%;display:flex}.chart .bars i{background:var(--accent);opacity:.85;border-radius:4px 4px 0 0;width:100%;min-height:2px}.chart .col:hover .bars i{opacity:1}.chart span{color:var(--muted);font-size:.68rem}.breaks{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;display:grid}.brow{margin-top:.8rem}.bline{justify-content:space-between;gap:1rem;font-size:.9rem;display:flex}.meter{background:var(--line);border-radius:99px;height:5px;margin-top:.3rem;overflow:hidden}.meter i{background:var(--accent);height:100%;display:block}.mhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.mhead h2{margin:0}.mtools{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.seg{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:.4rem .8rem;font-size:.85rem}.seg button.on{background:var(--line);color:var(--text)}.btn.sm{box-shadow:none;padding:.3rem .75rem;font-size:.82rem}:root[data-theme=light] .btn.sm{box-shadow:none;border-width:1px;font-weight:500}:root[data-theme=light] .btn.sm:hover{box-shadow:none;transform:none}.btn.danger{color:#e58a8a}:root[data-theme=light] .btn.danger{color:#b3261e}.btn:disabled{opacity:.5;cursor:not-allowed}.mlist{gap:1rem;display:grid}.msg-card{padding:1.2rem 1.4rem}.msg-card[hidden]{display:none}.msg-card.unread{border-inline-start:3px solid var(--accent)}.msg-card header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.msg-card .who{margin-inline-end:.6rem;font-size:1.05rem}.badge.new:before{content:none}.contact{flex-wrap:wrap;align-items:center;gap:1.2rem;margin:.5rem 0 .8rem;font-size:.92rem;display:flex}.msg-card .body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 1rem}.msg-card footer{border:0;flex-wrap:wrap;justify-content:flex-start;gap:.5rem;padding:0;display:flex}@media (width<=640px){.dash{gap:2rem;padding-top:1.5rem}.stat .big{font-size:1.7rem}.chart{gap:.2rem;height:150px}.chart span{font-size:.6rem}.msg-card{padding:1rem 1.05rem}.login-card{padding:1.5rem 1.2rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
