@charset "UTF-8";:root{color-scheme:light;--bg: #2f3cff;--grid: rgb(255 255 255 / 9%);--ink: #0b0b0f;--line: #0b0b0f;--drop: #0b0b0f;--paper: #fff;--soft: #f3f3ee;--muted: #5d5d66;--placeholder: #9a9aa3;--accent: #ffd23f;--accent-hover: #ffdb66;--on-accent: #0b0b0f;--blue: #2f3cff;--on-blue: #fff;--danger: #e5322d;--danger-soft: #ffe3e1;--border: 2px solid var(--line);--shadow: 6px 6px 0 var(--drop);--shadow-sm: 3px 3px 0 var(--drop)}:root[data-theme=dark]{color-scheme:dark;--bg: #10135a;--grid: rgb(255 255 255 / 6%);--ink: #f2f1ea;--line: #f2f1ea;--drop: #000;--paper: #17181f;--soft: #23242e;--muted: #a3a3ad;--placeholder: #6e6e78;--blue: #8d95ff;--on-blue: #0b0b0f;--danger-soft: #4a1c1b}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #10135a;--grid: rgb(255 255 255 / 6%);--ink: #f2f1ea;--line: #f2f1ea;--drop: #000;--paper: #17181f;--soft: #23242e;--muted: #a3a3ad;--placeholder: #6e6e78;--blue: #8d95ff;--on-blue: #0b0b0f;--danger-soft: #4a1c1b}}*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;display:flex;justify-content:center;padding:1.5rem 1rem;font-family:Space Grotesk,Inter,system-ui,-apple-system,Segoe UI,sans-serif;background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:28px 28px;color:var(--ink);-webkit-font-smoothing:antialiased}ab-root,ab-root>*{display:contents}::selection{background:var(--accent);color:var(--on-accent)}.card{position:relative;width:min(380px,100%);padding:2.5rem 2.25rem 2.25rem;border:3px solid var(--line);border-radius:4px;background:var(--paper);margin-block:auto;box-shadow:10px 10px 0 var(--drop);animation:drop .3s cubic-bezier(.2,1.4,.4,1)}.card:before{content:"alanbignon.com";position:absolute;top:-.85rem;left:1.5rem;padding:.15rem .6rem;border:var(--border);background:var(--accent);color:var(--on-accent);font-family:ui-monospace,JetBrains Mono,Menlo,monospace;font-size:.7rem;font-weight:700;letter-spacing:.04em}@keyframes drop{0%{opacity:0;transform:translate(-6px,-6px);box-shadow:16px 16px 0 var(--drop)}to{opacity:1;transform:translate(0)}}@keyframes shake{20%,60%{transform:translate(-3px)}40%,80%{transform:translate(3px)}}h1{margin:0 0 .35rem;font-size:1.9rem;font-weight:800;line-height:1.05;letter-spacing:-.03em;text-transform:uppercase}.subtitle{margin:0 0 1.75rem;font-size:.9rem;color:var(--muted)}form{display:flex;flex-direction:column;gap:1.1rem}label{display:flex;flex-direction:column;gap:.4rem;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.hint{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}input{padding:.7rem .8rem;border:var(--border);border-radius:4px;background:var(--soft);color:var(--ink);font:inherit;font-size:.95rem;font-weight:500;text-transform:none;letter-spacing:normal;outline:none;transition:box-shadow .1s ease,background .1s ease}input::placeholder{color:var(--placeholder)}input:focus{background:var(--paper);box-shadow:var(--shadow-sm)}button{margin-top:.5rem;padding:.8rem;border:var(--border);border-radius:4px;background:var(--accent);color:var(--on-accent);font:inherit;font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,background .1s ease}button:hover{background:var(--accent-hover)}button:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--drop)}button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}button:disabled{background:var(--soft);color:var(--muted);box-shadow:none;transform:translate(3px,3px);cursor:default}.error{margin:0;padding:.55rem .7rem;border:var(--border);border-radius:4px;background:var(--danger-soft);color:var(--ink);font-size:.85rem;font-weight:600;animation:shake .3s ease}.error:before{content:"! ";color:var(--danger);font-weight:900}.alt-action{margin:1.75rem 0 0;font-size:.85rem;text-align:center;color:var(--muted)}.alt-action a{color:var(--ink);font-weight:800;text-decoration:underline;text-decoration-color:var(--blue);text-decoration-thickness:3px;text-underline-offset:3px}.alt-action a:hover{background:var(--accent)}.identity{margin:0 0 1.5rem;padding:1rem 1.1rem;border:var(--border);border-radius:4px;background:var(--soft)}.identity form{gap:.85rem}.row{display:flex;align-items:center;gap:1rem}.pseudo{margin:0;font-size:1.25rem;font-weight:800;overflow-wrap:anywhere}.email{margin:.15rem 0 .5rem;font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}.link-btn,.link-btn:hover,.link-btn:active,.link-btn:disabled{margin:0;padding:0;border:none;background:none;box-shadow:none;transform:none;color:var(--blue);font-size:.75rem;text-decoration:underline;text-underline-offset:3px}.language-picker{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.9rem;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.lang-btn{margin:0;padding:.3rem .65rem;background:var(--paper);color:var(--ink);font-size:.75rem;box-shadow:2px 2px 0 var(--drop)}.lang-btn:hover{background:var(--soft)}.lang-btn.active{background:var(--blue);color:var(--on-blue)}.app-list{display:flex;flex-direction:column;gap:.65rem}.app-link{display:flex;flex-direction:column;gap:.15rem;padding:.8rem 1rem;border:var(--border);border-radius:4px;background:var(--paper);color:inherit;text-decoration:none;transition:transform .08s ease,box-shadow .08s ease,background .1s ease}@media(hover:hover){.app-link:hover{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-sm);transform:translate(-2px,-2px)}}.app-link:active{box-shadow:none;transform:none}.app-name{font-weight:800}.app-name:after{content:" \2192"}.app-description{font-size:.8rem;color:var(--muted)}@media(hover:hover){.app-link:hover .app-description{color:var(--on-accent)}}.logout{width:100%;margin-top:1.75rem;background:var(--paper);color:var(--ink)}.logout:hover{background:var(--danger-soft)}.no-apps{margin:.65rem 0 0;font-size:.8rem}.admin-link{margin-top:.65rem;background:var(--soft)}.card.wide{width:min(720px,100%)}.user-list{display:flex;flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none}.user-row{display:flex;flex-direction:column;gap:.6rem;padding:.8rem 1rem;border:var(--border);border-radius:4px;background:var(--soft)}.user-identity{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem}.user-identity .pseudo{font-size:1rem}.user-identity .email{margin:0}.since{font-size:.75rem;color:var(--muted)}.all-apps{margin:0;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--blue)}.app-toggles{display:flex;flex-wrap:wrap;gap:.5rem}.app-toggle{flex-direction:row;align-items:center;gap:.4rem;padding:.35rem .65rem;border:var(--border);border-radius:4px;background:var(--paper);cursor:pointer}.app-toggle:has(input:checked){background:var(--accent);color:var(--on-accent)}.app-toggle:has(input:disabled){opacity:.6;cursor:default}.app-toggle input{width:1rem;height:1rem;margin:0;padding:0;accent-color:var(--on-accent)}@media(max-width:480px){body{padding:1.25rem .75rem 1.75rem}.card{padding:2rem 1.25rem 1.5rem;box-shadow:var(--shadow)}h1{font-size:1.6rem}.subtitle{margin-bottom:1.4rem}input{font-size:1rem}button{min-height:2.75rem}.link-btn,.link-btn:hover,.link-btn:active,.link-btn:disabled{min-height:2.75rem;font-size:.85rem}.row{gap:1.25rem}.lang-btn{flex:1;min-height:2.5rem}.language-picker>span{flex-basis:100%}.alt-action a{display:inline-block;padding-block:.6rem}.identity,.user-row{padding:.85rem}.app-toggles{display:grid;grid-template-columns:1fr 1fr}.app-toggle{min-height:2.75rem;padding:.5rem .65rem}.app-toggle input{width:1.15rem;height:1.15rem}}
