@import url("https://fonts.googleapis.com/css2?family=Archivo+Narrow:wght@500;600;700&family=Figtree:wght@400;500;600;700&display=swap");:root{--blue:#06c;--blue-deep:#0052a6;--blue-pale:#e8f1fb;--navy:#006;--ink:#003;--gold:#fad600;--gold-wash:#fffbe0;--gold-ink:#7a6800;--cyan:#00b7d6;--paper:#fff;--wash:#f4f7fb;--line:#dde5ee;--muted:#5a6b80}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--wash);color:var(--ink);font-family:Figtree,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;min-height:100%}body{padding-bottom:88px}.display,h1,h2,h3{font-family:Archivo Narrow,Figtree,sans-serif;text-transform:uppercase;letter-spacing:.04em;margin:0}.head{padding:20px 18px 16px;background:linear-gradient(155deg,var(--blue) 0,var(--blue-deep) 100%);color:#fff}.eyebrow{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:6px}.daycount{display:flex;align-items:baseline;gap:10px}.daycount .n{font-family:Archivo Narrow,sans-serif;font-size:54px;line-height:.85;font-weight:700;color:#fff}.daycount .of{font-size:15px;color:hsla(0,0%,100%,.75);font-weight:500}.date{font-size:12px;color:hsla(0,0%,100%,.82);margin-top:8px}.head .round{border-color:hsla(0,0%,100%,.5);color:#fff}.head .round:active{background:hsla(0,0%,100%,.2)}.wrap{padding:16px 18px 0;max-width:760px;margin:0 auto}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:0 1px 2px rgba(0,20,60,.04)}.card.done{border-color:var(--gold);background:var(--gold-wash);box-shadow:inset 3px 0 0 var(--gold)}.req{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.req-label{font-size:14px;font-weight:700;color:var(--ink)}.req-sub{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.45}.num{font-family:Archivo Narrow,sans-serif;font-size:20px;font-weight:700;min-width:44px;text-align:right;color:var(--blue)}.num.hit{color:var(--gold-ink)}.num-k{font-size:9px;color:var(--muted);letter-spacing:.1em}.step{display:flex;align-items:center;gap:8px;margin-top:10px}.step .lbl{font-size:12px;color:var(--muted);flex:1 1}.round{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--blue);background:transparent;color:var(--blue);font-size:19px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit}.round:active{background:var(--blue-pale)}.round:disabled{opacity:.3;cursor:default}.count{font-family:Archivo Narrow,sans-serif;font-size:18px;min-width:26px;text-align:center;color:var(--ink)}.count,.toggle{font-weight:700}.toggle{border:1.5px solid var(--blue);background:var(--paper);color:var(--blue);border-radius:8px;padding:10px 12px;font-size:12px;cursor:pointer;font-family:inherit;flex:1 1}.toggle.on{background:var(--blue);color:#fff}.row{display:flex;gap:8px;margin-top:10px}.input{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:11px;color:var(--ink);font-size:14px;font-family:inherit;margin-top:8px}.input::placeholder{color:#97a6b8}.input:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--blue-pale);border:1px solid #b9d5f2;color:var(--blue-deep);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:600;margin:6px 6px 0 0}.chip button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:15px;padding:0;line-height:1}.warn{color:#8a5a00;background:var(--gold-wash);border:1px solid var(--gold);border-radius:8px;padding:9px 10px;font-size:11px;margin-top:10px;line-height:1.5}.wall{display:grid;grid-template-columns:repeat(15,1fr);grid-gap:3px;gap:3px;margin-top:14px}.cell{aspect-ratio:1;border-radius:2px;border:1px solid var(--line);background:transparent}.cell.perfect{background:var(--blue);border-color:var(--blue)}.cell.partial{background:#7fb2e6;border-color:#7fb2e6}.cell.thin{background:#cfe2f5;border-color:#cfe2f5}.cell.miss{background:#e8edf4;border-color:#dfe6ef}.cell.today{outline:2px solid var(--gold);outline-offset:1px}.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:10px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px}.dot{width:10px;height:10px;border-radius:2px;display:inline-block;border:1px solid var(--line)}.dot.perfect{background:var(--blue);border-color:var(--blue)}.dot.partial{background:#7fb2e6;border-color:#7fb2e6}.dot.miss{background:#e8edf4;border-color:#dfe6ef}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.stat .v{font-family:Archivo Narrow,sans-serif;font-size:28px;font-weight:700;line-height:1;color:var(--blue)}.stat .k{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:5px}.lb{width:100%;border-collapse:collapse;font-size:12px}.lb th{text-align:right;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:0 0 8px;white-space:nowrap}.lb td:first-child,.lb th:first-child{text-align:left}.lb td{padding:11px 0;border-top:1px solid var(--line);text-align:right;white-space:nowrap}.lb td.name{font-weight:700;font-size:13px}.lb .rank{color:var(--muted);margin-right:8px}.lb .pts,.lb .rank{font-family:Archivo Narrow,sans-serif}.lb .pts{font-weight:700;font-size:16px;color:var(--blue)}.lb tr.me td{background:var(--blue-pale)}.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 7px;border-radius:4px;margin-top:4px}.badge.gold{background:var(--gold);color:var(--ink)}.badge.cyan{background:var(--cyan);color:#00323a}.badge.blue{background:var(--blue);color:#fff}.badge.neutral{background:#e8edf4;color:var(--muted)}.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--paper);border-top:1px solid var(--line);z-index:20;box-shadow:0 -2px 12px rgba(0,30,80,.06)}.tab{flex:1 1;padding:14px 4px calc(14px + env(safe-area-inset-bottom, 0px));background:none;border:none;color:var(--muted);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;cursor:pointer;font-family:Archivo Narrow,sans-serif}.tab.on{color:var(--blue);box-shadow:inset 0 3px 0 var(--blue)}.save{position:-webkit-sticky;position:sticky;bottom:96px;width:100%;margin:4px 0 24px;padding:16px;border-radius:10px;border:none;background:var(--blue);color:#fff;font-weight:700;font-size:14px;font-family:Archivo Narrow,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 14px rgba(0,102,204,.32)}.save.saved{background:var(--gold);color:var(--ink);box-shadow:0 4px 14px rgba(250,214,0,.4)}.save:disabled{opacity:.55}.sec{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin:22px 0 10px;font-weight:700}.muted{color:var(--muted);font-size:12px;line-height:1.6}.tier-hard{color:var(--gold-ink)}.tier-strong{color:#007a8f}.tier-complete{color:var(--blue)}.center{max-width:380px;margin:0 auto;padding:56px 22px}.logo{width:100%;max-width:340px;height:auto;display:block;margin:0 auto 10px}.link{background:none;border:none;color:var(--blue);font-size:12px;cursor:pointer;font-family:inherit;padding:0;text-decoration:underline;font-weight:600}.brandbar{background:var(--paper);border-bottom:1px solid var(--line);padding:16px 18px;display:flex;justify-content:center}.brandbar img{height:68px;width:auto;max-width:100%;display:block}.intro-hero{border-top:4px solid var(--gold)}.intro-h{font-family:Archivo Narrow,sans-serif;font-size:24px;color:var(--blue);margin-bottom:12px}.card p{font-size:13px;line-height:1.65;color:#2b3b52;margin:0 0 12px}.card li b,.card p b{color:var(--ink)}.intro-kicker{font-weight:700;color:var(--ink)!important;font-size:14px!important}.math{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px;margin-bottom:14px}.math div{background:var(--blue-pale);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:2px}.math b{font-family:Archivo Narrow,sans-serif;font-size:26px;color:var(--blue);line-height:1}.math span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.reqs{margin:0 0 4px;padding-left:20px}.reqs li{font-size:13px;line-height:1.65;color:#2b3b52;margin-bottom:12px}.reqs li::marker{color:var(--blue);font-weight:700}.note{background:var(--blue-pale);border-left:3px solid var(--blue);border-radius:0 8px 8px 0;padding:12px 14px;margin-top:4px!important}.card p .badge{margin-right:8px;margin-top:0;vertical-align:middle}.dontshow{display:flex;align-items:center;gap:10px;padding:14px 4px 4px;font-size:12px;color:var(--muted);cursor:pointer}.dontshow input{width:18px;height:18px;accent-color:var(--blue)}.brandbar{position:relative}.signout{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:transparent;border:1px solid var(--line);border-radius:7px;padding:7px 11px;font-size:11px;font-weight:700;color:var(--muted);font-family:Figtree,sans-serif;cursor:pointer;line-height:1}.signout:active{background:var(--wash);color:var(--blue);border-color:var(--blue)}@media (max-width:420px){.brandbar img{height:56px}.signout{right:10px;padding:6px 9px;font-size:10px}}.brandstack{display:flex;flex-direction:column;align-items:center;gap:7px}.tagline{font-family:Archivo Narrow,sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--blue);text-align:center;line-height:1.3}.tagline-lg{font-size:14px;letter-spacing:.11em;margin-bottom:22px}@media (max-width:420px){.tagline{font-size:10px;letter-spacing:.07em}.tagline-lg{font-size:12px}}