*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0}img,svg,canvas{max-width:100%;image-rendering:pixelated;display:block}button,input,select{font:inherit;color:inherit}table{border-collapse:collapse}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#eef1f6;--panel:#f7f9fc;--panel-2:#e4e9f1;--line:#c9d2e0;--line-soft:#dce3ed;--ink:#171d28;--ink-2:#46536a;--ink-3:#6c7a92;--brass:#9a7a11;--brass-bright:#c9a227;--brass-wash:#f5edd2;--str:#a63a32;--end:#12707f;--dis:#6b4b95;--cla:#96631c;--ok:#1f6b45;--warn:#8a5a12;--crit:#97302b;--radius:0;--shadow:4px 4px 0 0 var(--ink);--f-display:"Press Start 2P", "Silkscreen", "Courier New", monospace;--f-body:"Press Start 2P", "Silkscreen", "Courier New", monospace;--f-ui:"Press Start 2P", "Silkscreen", "Courier New", monospace;--f-data:"Press Start 2P", "Silkscreen", "Courier New", monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#12161f;--panel:#1a202c;--panel-2:#232b3a;--line:#333d50;--line-soft:#262f3f;--ink:#e7ecf4;--ink-2:#a3afc4;--ink-3:#76839a;--brass:#d9b441;--brass-bright:#f0ce63;--brass-wash:#2b2513;--str:#e0736a;--end:#47b5c4;--dis:#a98bd4;--cla:#dda84a;--ok:#4fbf87;--warn:#d9a94a;--crit:#e4726b;--shadow:4px 4px 0 0 var(--ink)}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#eef1f6;--panel:#f7f9fc;--panel-2:#e4e9f1;--line:#c9d2e0;--line-soft:#dce3ed;--ink:#171d28;--ink-2:#46536a;--ink-3:#6c7a92;--brass:#9a7a11;--brass-bright:#c9a227;--brass-wash:#f5edd2;--str:#a63a32;--end:#12707f;--dis:#6b4b95;--cla:#96631c;--ok:#1f6b45;--warn:#8a5a12;--crit:#97302b;--shadow:4px 4px 0 0 var(--ink)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#12161f;--panel:#1a202c;--panel-2:#232b3a;--line:#333d50;--line-soft:#262f3f;--ink:#e7ecf4;--ink-2:#a3afc4;--ink-3:#76839a;--brass:#d9b441;--brass-bright:#f0ce63;--brass-wash:#2b2513;--str:#e0736a;--end:#47b5c4;--dis:#a98bd4;--cla:#dda84a;--ok:#4fbf87;--warn:#d9a94a;--crit:#e4726b;--shadow:4px 4px 0 0 var(--ink)}body{background:var(--ground);color:var(--ink);font-family:var(--f-ui);font-smooth:never;-webkit-font-smoothing:none;image-rendering:pixelated;margin:0;font-size:13px;line-height:1.6}.shell{z-index:1;max-width:1240px;margin:0 auto;padding:0 24px 96px;position:relative}.eyebrow{font-family:var(--f-display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:10px;font-weight:500}h1,h2,h3,h4{font-family:var(--f-display);letter-spacing:0;margin:0;font-weight:400}.num{font-family:var(--f-data);font-variant-numeric:tabular-nums}header.top{border-bottom:2px solid var(--ink);flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:28px;padding:20px 0 18px;display:flex}.mark{align-items:baseline;gap:10px;display:flex}.mark .glyph{border:2px solid var(--ink);width:32px;height:32px;font-family:var(--f-display);flex:none;place-items:center;font-size:14px;font-weight:400;display:grid}.mark .glyph span{display:block}.mark h1{letter-spacing:.04em;text-transform:uppercase;font-size:14px}.mark .sub{font-family:var(--f-body);color:var(--ink-3);font-size:10px}.top .spacer{flex:auto}.streak{font-family:var(--f-data);border:2px solid var(--ink);background:var(--panel);color:var(--ink-2);border-radius:0;align-items:center;gap:8px;padding:6px 12px;font-size:10px;display:flex}.streak b{color:var(--ink)}.streak .dot{background:var(--ok);width:8px;height:8px;box-shadow:2px 2px 0 0 var(--ink);border-radius:0}button.ghost,.btn{font-family:var(--f-ui);background:var(--panel);color:var(--ink);border:2px solid var(--ink);box-shadow:2px 2px 0 0 var(--ink);cursor:pointer;letter-spacing:.05em;text-transform:uppercase;border-radius:0;padding:8px 14px;font-size:11px}button.ghost:hover,.btn:hover{background:var(--panel-2)}button.ghost:active,.btn:active{box-shadow:0 0 0 0 var(--ink);transform:translate(2px,2px)}.btn.primary{background:var(--ink);color:var(--ground);border-color:var(--ink)}.btn.primary:hover{background:var(--ink-2)}:focus-visible{outline:2px solid var(--brass-bright);outline-offset:2px}nav.screens{border-bottom:2px solid var(--ink);gap:2px;margin-bottom:26px;display:flex;overflow-x:auto}nav.screens a,nav.screens button{font-family:var(--f-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px;font-size:11px;font-weight:400;text-decoration:none}nav.screens a:hover,nav.screens button:hover{color:var(--ink)}nav.screens a[aria-current=page],nav.screens button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--brass-bright)}.panel{background:var(--panel);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:0}.panel>.head{border-bottom:2px solid var(--line);align-items:center;gap:10px;padding:13px 16px;display:flex}.panel>.head h3{letter-spacing:.08em;text-transform:uppercase;font-size:11px}.panel>.head .spacer{flex:1}.panel>.body{padding:16px}.xpbar{border-bottom:2px solid var(--line);padding:14px 16px}.xpbar .row{justify-content:space-between;align-items:baseline;margin-bottom:7px;display:flex}.xpbar .row .k{font-family:var(--f-display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:9px}.xpbar .row .v{font-family:var(--f-data);color:var(--ink-2);font-size:10px}.xpbar .track{background:var(--panel-2);border:2px solid var(--ink);border-radius:0;height:12px;overflow:hidden}.xpbar .track>i{background:repeating-linear-gradient(90deg, var(--brass) 0 4px, var(--brass-bright) 4px 8px);border-radius:0;height:100%;display:block}.stats{padding:6px 0}.stat{border-bottom:2px solid var(--line);grid-template-columns:32px 1fr 48px;align-items:center;gap:12px;padding:11px 16px;display:grid}.stat:last-child{border-bottom:none}.stat .sigil{width:32px;height:32px;font-family:var(--f-display);border:2px solid;border-radius:0;place-items:center;font-size:11px;font-weight:400;display:grid}.stat .name{font-family:var(--f-display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);font-size:11px;font-weight:400}.stat .src{font-family:var(--f-body);color:var(--ink-3);font-size:9px}.stat .val{font-family:var(--f-data);text-align:right;font-variant-numeric:tabular-nums;font-size:14px}.stat .bar{background:var(--panel-2);border:1px solid var(--ink);border-radius:0;height:6px;margin-top:6px;overflow:hidden}.stat .bar>i{background:repeating-linear-gradient(90deg, currentColor 0 4px, color-mix(in srgb, currentColor 60%, var(--panel-2)) 4px 8px);border-radius:0;height:100%;display:block}.stat .delta{font-family:var(--f-data);color:var(--ok);font-size:9px}.s-str{color:var(--str)}.s-end{color:var(--end)}.s-dis{color:var(--dis)}.s-cla{color:var(--cla)}.quest{border-bottom:2px solid var(--line);grid-template-columns:22px 1fr auto;align-items:start;gap:13px;padding:13px 16px;display:grid;position:relative}.quest:last-child{border-bottom:none}.quest:hover{background:color-mix(in srgb, var(--brass-bright) 8%, var(--panel))}.quest.done{opacity:.52}.quest.done .qt{text-decoration:line-through;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}.seg{border:2px solid var(--ink);border-radius:0;flex-wrap:wrap;gap:0;width:fit-content;display:flex;overflow:hidden}.seg button,.seg a{font-family:var(--f-ui);background:var(--ground);color:var(--ink-2);border:none;border-right:2px solid var(--ink);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;padding:8px 14px;font-size:10px;text-decoration:none}.seg button:last-child,.seg a:last-child{border-right:none}.seg button[aria-pressed=true],.seg a[aria-pressed=true]{background:var(--ink);color:var(--ground)}.tapestry{grid-template-columns:repeat(31,1fr);gap:2px;display:grid}@media (width<=620px){.tapestry{grid-template-columns:repeat(21,1fr)}}.tapestry i{aspect-ratio:1;background:var(--panel-2);box-shadow:inset 0 0 0 1px var(--line);image-rendering:pixelated;border-radius:0}.tapestry i[data-f=str]{background:var(--str);box-shadow:none}.tapestry i[data-f=end]{background:var(--end);box-shadow:none}.tapestry i[data-f=dis]{background:var(--dis);box-shadow:none}.tapestry i[data-f=cla]{background:var(--cla);box-shadow:none}.tapestry i[data-f=gap]{box-shadow:inset 0 0 0 2px var(--crit);opacity:.6;background:0 0}.tapestry i[data-f=future]{box-shadow:inset 0 0 0 1px var(--line);opacity:.45;background:0 0}.tapestry i[data-f=today]{box-shadow:inset 0 0 0 2px var(--brass-bright);background:0 0}.card{border:2px solid var(--ink);background:var(--panel);color:var(--ink);box-shadow:var(--shadow);border-radius:0;gap:10px;padding:16px;display:grid;position:relative}.grid{grid-template-columns:340px 1fr;align-items:start;gap:24px;display:grid}@media (width<=940px){.grid{grid-template-columns:1fr}}.stack{gap:24px;display:grid}.two{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}@media (width<=860px){.two{grid-template-columns:1fr}}.portrait{background:var(--panel-2);border-bottom:2px solid var(--ink);text-align:center;place-items:center;padding:26px 16px 22px;display:grid;position:relative}.portrait .lvl{font-family:var(--f-display);flex-direction:column;align-items:center;line-height:1;display:flex}.portrait .lvl .n{letter-spacing:0;color:var(--ink);font-size:32px;font-weight:400}.portrait .lvl .l{letter-spacing:.16em;color:var(--ink-3);margin-top:10px;font-size:9px}.qgroup{border-bottom:2px solid var(--line)}.qgroup:last-child{border-bottom:none}.qgroup>.bar{background:var(--panel-2);border-bottom:2px solid var(--ink);align-items:center;gap:10px;padding:10px 16px;display:flex}.qgroup>.bar .t{font-family:var(--f-display);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.qgroup>.bar .c{font-family:var(--f-data);color:var(--ink-3);font-size:9px}.qgroup>.bar .spacer{flex:1}.qgroup .qempty{color:var(--ink-3);font-family:var(--f-body);padding:16px;font-size:11px}.qmeta{flex-wrap:wrap;align-items:center;gap:7px;margin-top:6px;display:flex}.qt{font-family:var(--f-body);color:var(--ink);font-size:12px;line-height:1.5}.tag{font-family:var(--f-display);letter-spacing:.08em;text-transform:uppercase;background:color-mix(in srgb, currentColor 12%, transparent);white-space:nowrap;border:2px solid;border-radius:0;padding:4px 8px;font-size:8px;font-weight:400}.tag.metric{color:var(--ink-3)}.prog{align-items:center;gap:8px;margin-top:7px;display:flex}.prog .track{background:var(--panel-2);border:2px solid var(--ink);border-radius:0;flex:1;max-width:190px;height:8px;overflow:hidden}.prog .track>i{background:repeating-linear-gradient(90deg, currentColor 0 4px, color-mix(in srgb, currentColor 60%, var(--panel-2)) 4px 8px);border-radius:0;height:100%;display:block}.prog .n{font-family:var(--f-data);color:var(--ink-2);font-size:9px}.quest .xp{font-family:var(--f-data);color:var(--brass);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;padding-top:1px;font-size:10px}.qform{align-items:center;gap:6px;margin-top:8px;display:flex}.qform input[type=number]{font-family:var(--f-data);background:var(--ground);color:var(--ink);border:2px solid var(--ink);border-radius:0;width:90px;padding:6px 8px;font-size:11px}.qform button{font-family:var(--f-ui);background:var(--ink);color:var(--ground);border:2px solid var(--ink);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;box-shadow:2px 2px 0 0 var(--ink);border-radius:0;padding:6px 12px;font-size:10px;font-weight:400}.qform button:active{box-shadow:0 0 0 0 var(--ink);transform:translate(2px,2px)}.quick{gap:12px;display:grid}.quick form{align-items:center;gap:8px;margin:0;display:flex}.quick .weight input{font-family:var(--f-data);background:var(--ground);color:var(--ink);border:2px solid var(--ink);border-radius:0;flex:1;padding:8px 10px;font-size:12px}.quick label{font-family:var(--f-display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px;font-size:9px;display:block}.quick .workout button{width:100%}.flash{border:2px solid var(--ink);background:var(--panel);box-shadow:var(--shadow);font-family:var(--f-body);border-radius:0;margin-bottom:18px;padding:12px 14px;font-size:11px}.flash.success{border-color:var(--brass);color:var(--brass);background:var(--brass-wash);box-shadow:4px 4px 0 0 var(--brass)}.flash.error{border-color:var(--crit);color:var(--crit);box-shadow:4px 4px 0 0 var(--crit)}.auth-shell{background:var(--ground);place-items:center;min-height:100vh;padding:40px 24px;display:grid}.auth-card{background:var(--panel);border:2px solid var(--ink);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:0;gap:18px;padding:28px 26px;display:grid}.auth-card h1{letter-spacing:.04em;text-transform:uppercase;text-align:center;font-size:14px}.auth-card .field{gap:5px;display:grid}.auth-card .field>label{font-family:var(--f-display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:9px}.auth-card .field input{font-family:var(--f-body);background:var(--ground);color:var(--ink);border:2px solid var(--ink);border-radius:0;width:100%;padding:8px 10px;font-size:12px}.auth-card .err{font-family:var(--f-body);color:var(--crit);font-size:10px}.auth-card .actions{justify-content:flex-end;display:flex}
