@font-face{font-family:JB;src:url(/fonts/JetBrainsMono.ttf)format("truetype");font-weight:100 800;font-display:swap}:root{--bg:#16171b;--panel:#1d1e23;--line:#eceae61a;--ink:#eceae6;--dim:#eceae680;--faint:#eceae638;--acc:#6575f2;--tint:#b7bfff;--warm:#f2b36b;--pad:clamp(20px, 7.8vw, 150px);--top:52px}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);scroll-snap-type:y mandatory;scroll-behavior:smooth;overflow-x:hidden}html.jumpnav{scroll-snap-type:none}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:JB,ui-monospace,monospace;font-size:18px;line-height:1.6;overflow-x:hidden}a{color:inherit}.p{color:var(--acc)}.d{color:var(--dim)}.t{color:var(--tint)}.w{color:var(--warm)}.cursor{background:var(--acc);vertical-align:-.08em;width:.55em;height:.9em;margin-left:.06em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.grid-bg{pointer-events:none;z-index:0;opacity:.35;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:64px 64px;position:fixed;inset:0;mask-image:radial-gradient(circle at 50% 40%,#000 30%,#0000 85%)}.topbar{height:var(--top);z-index:20;border-bottom:1px solid var(--line);backdrop-filter:blur(8px);color:var(--dim);background:#16171bd9;align-items:center;gap:28px;padding:0 clamp(14px,3vw,56px);font-size:15px;display:flex;position:fixed;top:0;left:0;right:0}.topbar b{color:var(--ink)}.topbar .sp{flex:1}.topbar nav{gap:26px;display:flex}.topbar nav a{text-decoration:none}.topbar nav a:hover,.topbar nav a.on{color:var(--ink)}#owl-layer{z-index:10;pointer-events:none;position:fixed;inset:0}#dock{z-index:11;border-top:2px solid var(--faint);width:170px;color:var(--dim);text-align:right;letter-spacing:.08em;padding-top:10px;font-size:14px;position:fixed;bottom:22px;right:clamp(14px,3vw,56px)}#dock b{color:var(--ink)}.screen{z-index:1;min-height:100svh;padding:calc(var(--top) + 6vh) var(--pad) 8vh;scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;justify-content:center;display:flex;position:relative}.cmd{color:var(--ink);font-size:20px}.cmd .p{margin-right:.5em}.out{color:var(--dim)}h2.big{letter-spacing:-.01em;margin:16px 0 12px;font-size:min(5.4vw,9.5vh,92px);font-weight:800;line-height:1.02}h2.big em{color:var(--acc);font-style:normal}.note{color:var(--dim);font-size:17px}.perch-line{background:linear-gradient(90deg,#0000,#eceae666,#0000);height:2px}.bubble{background:var(--panel);border:2px solid var(--acc);box-shadow:4px 4px 0 var(--acc);white-space:nowrap;padding:10px 16px;font-size:16px;position:absolute}.bubble:after{content:"";background:var(--acc);width:12px;height:12px;position:absolute;bottom:-12px;left:22px}.reveal{opacity:0;transform:translateY(24px)}#hero .term{z-index:2;max-width:min(1100px, calc(100vw - var(--pad) - 8vw - min(30vw, 460px) - 40px));font-size:21px;line-height:1.85;position:relative}#hero h1{letter-spacing:-.02em;margin:26px 0 22px;font-size:min(6.6vw,15vh,150px);font-weight:800;line-height:.98}#hero h1 em{color:var(--acc);font-style:normal}.giant{z-index:1;pointer-events:none;color:#0000;-webkit-text-stroke:2px #6575f238;letter-spacing:-.04em;font-size:min(44vw,72vh);font-weight:800;line-height:.8;position:absolute;top:16vh;right:3vw}#hero .ledge{z-index:2;width:min(30vw,460px);position:absolute;bottom:22vh;right:8vw}#hero .bubble{z-index:3;bottom:calc(22vh + 230px);right:5vw}.scroll-hint{left:var(--pad);letter-spacing:.16em;color:var(--dim);font-size:15px;position:absolute;bottom:30px}#weeks .row{grid-template-columns:minmax(260px,.9fr) 2.1fr;align-items:center;gap:4.5vw;margin-top:3vh;display:grid}.counter-wrap{padding-top:4vh;position:relative}.counter{letter-spacing:-.05em;font-size:min(15vw,30vh,280px);font-weight:800;line-height:.85}.counter-perch{height:1px;position:absolute;top:4vh;left:0;right:0}.counter-label{color:var(--acc);letter-spacing:.08em;font-size:min(3.2vw,6vh,52px);font-weight:800}.yeargrid{gap:8px;display:grid}.b0row{color:var(--dim);align-items:center;gap:14px;margin-bottom:6px;font-size:14px;display:flex}.b0{border:1px solid var(--line);border-radius:8px;place-items:center;width:52px;height:52px;font-size:15px;font-weight:800;display:grid}.term-row{grid-template-columns:130px 1fr;align-items:center;gap:8px;display:grid}.term-name{color:var(--dim);letter-spacing:.06em;font-size:13px}.cells{grid-template-columns:repeat(13,1fr);gap:7px;display:grid}.cell{aspect-ratio:1;border:1px solid var(--line);max-height:6.4vh;color:var(--faint);background:#1d1e2399;border-radius:6px;place-items:center;font-size:11px;display:grid}.cell.locked:before{content:"▒";color:#eceae626;font-size:14px}.cell.past{background:var(--acc);color:var(--ink);border-color:var(--acc)}.cell.now,.b0.now{background:var(--warm);color:#1a1408;border-color:var(--warm);box-shadow:0 0 0 4px #f2b36b2e,0 0 30px #f2b36b59}.weeklog{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--warm);border-radius:10px;margin-top:3vh;padding:16px 20px;font-size:16px}.weeklog li{color:var(--dim);list-style:none}.weeklog li:before{content:"✓ ";color:var(--warm)}.locked-note{color:var(--faint);margin-top:10px;font-size:14px}.loop-wrap{max-width:1200px;margin-top:3vh;position:relative}.loop-wrap .perch-line{width:200px;position:absolute;top:-2px;right:0}table.loop{border-collapse:collapse;width:100%;font-size:17px}table.loop th{text-align:left;letter-spacing:.12em;color:var(--dim);border-bottom:2px solid var(--faint);padding:8px 14px;font-size:13px;font-weight:700}table.loop td{border-bottom:1px solid var(--line);padding:min(12px,1.3vh) 14px}table.loop td:first-child{color:var(--acc);width:90px;font-weight:800}table.loop td:last-child{color:var(--dim)}#stack{background-color:var(--bg)}#stack .wrap{grid-template-columns:.85fr 1.15fr;align-items:center;gap:4vw;display:grid}#stack h2.big{font-size:min(3.5vw,7vh,60px)}.pkgs{margin-top:3vh;font-size:17px;line-height:2}.pkgs .ok{color:var(--acc)}.pkgs .more{color:var(--dim)}.tree{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 24px;font-size:15px;position:relative}.stack-perch{width:220px;margin:0 0 22px}.tree .head{color:var(--ink);margin-bottom:12px}.tree .grp{border-top:1px dashed var(--line);grid-template-columns:150px 1fr;gap:12px;padding:8px 0;display:grid}.tree .grp:first-of-type{border-top:0}.tree .dir{color:var(--tint);font-weight:700}.tree .dir small{color:var(--faint);font-size:12px;font-weight:400;display:block}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{border:1px solid var(--faint);color:var(--dim);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:13px}.chip.hot{border-color:var(--acc);color:var(--ink);background:#6575f224}.chip.learned{border-color:var(--warm);color:#1a1408;background:var(--warm)}.tree .foot{color:var(--faint);margin-top:8px;font-size:13px}.graph{height:min(58vh,560px);position:relative}.graph svg{width:100%;height:100%;overflow:visible}.graph text{fill:#eceae68c;font-family:JB,monospace;font-size:12px}.graph .hub text{fill:var(--tint);font-size:14px;font-weight:800}.graph .root text{fill:var(--ink);font-size:14px;font-weight:800}.graph .e{stroke:#eceae629;stroke-width:1px;fill:none}.graph .e.main{stroke:#6575f28c;stroke-width:1.6px}.graph .n circle{fill:var(--bg);stroke:#eceae673;stroke-width:1.4px}.graph .hub circle{fill:var(--acc);stroke:var(--tint)}.graph .root circle{fill:var(--ink);stroke:var(--ink)}.graph .n.learned circle{fill:var(--warm);stroke:var(--warm)}.graph .n.learned text,.graph .n:hover text{fill:var(--ink)}.graph .n,.graph .e{transition:opacity .2s,stroke .2s}.graph.dim .n:not(.on),.graph.dim .e:not(.on){opacity:.2}.graph .e.on{stroke:var(--acc);stroke-width:2px}.graph .n.on text{fill:var(--ink)}.graph .leaf.on circle{stroke:var(--tint)}.builds{grid-template-columns:3fr 1.05fr;align-items:stretch;gap:22px;margin-top:3vh;display:grid}.cards{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;min-height:min(112px,12vh);padding:14px 16px;font-size:15px;position:relative}.card b{font-size:19px}.card .st{color:var(--dim);letter-spacing:.08em;font-size:12px;position:absolute;top:16px;right:14px}.card .nm{color:var(--faint);margin-top:10px}.card.next{border-color:#6575f299}.card.next .st{color:var(--acc)}.cap{background:radial-gradient(120% 80% at 50% 0%, #f2b36b29, transparent 60%), var(--panel);border:1px solid #f2b36b8c;border-radius:16px;flex-direction:column;justify-content:center;padding:24px;display:flex;position:relative;box-shadow:0 0 0 6px #f2b36b0d,0 0 60px #f2b36b38,0 0 140px #6575f229}.cap:before{content:"";border:1px dashed #f2b36b4d;border-radius:24px;animation:4s ease-in-out infinite halo;position:absolute;inset:-12px}@keyframes halo{50%{border-color:#f2b36b1f;inset:-18px}}.cap .lbl{letter-spacing:.18em;color:var(--warm);font-size:13px}.cap h3{margin:12px 0 10px;font-size:min(3.3vw,6vh,54px);font-weight:800;line-height:1.05}.cap p{color:var(--dim);font-size:15px}#recaps .wrap{grid-template-columns:1fr 1fr;align-items:center;gap:5vw;display:grid}.stackfiles{gap:12px;display:grid;position:relative}.stackfiles .perch-line{width:180px;position:absolute;top:-2px;right:20px}.file{background:var(--panel);border:1px solid var(--line);border-radius:12px;justify-content:space-between;gap:16px;padding:18px 22px;font-size:16px;display:flex}.file .when{color:var(--warm)}.file.locked{color:var(--faint);border-style:dashed}#follow .wrap{grid-template-columns:1.2fr .8fr;align-items:center;gap:4vw;display:grid}.pills{flex-wrap:wrap;gap:22px;margin-top:4vh;display:flex}.pill{border:2px solid var(--faint);border-radius:34px;align-items:stretch;height:68px;font-size:24px;font-weight:700;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:inline-flex;overflow:hidden}.pill:hover{border-color:var(--acc);box-shadow:0 0 30px #6575f266}.pill span{place-items:center;padding:0 20px;display:grid}.pill span:first-child{background:var(--acc);letter-spacing:.06em;font-size:17px}form.mail{gap:12px;max-width:620px;margin-top:4vh;display:flex}form.mail input{height:54px;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--faint);border-radius:10px;flex:1;padding:0 18px;font-size:17px}form.mail button{height:54px;font:inherit;color:var(--ink);background:var(--acc);cursor:pointer;border:0;border-radius:10px;padding:0 22px;font-weight:800}.mail-note{color:var(--faint);margin-top:10px;font-size:14px}.follow-perch{height:260px;position:relative}.follow-perch .perch-line{position:absolute;bottom:0;left:10%;right:10%}.follow-perch .bubble{top:-10px;left:50%;transform:translate(-50%)}#follow footer{left:var(--pad);right:var(--pad);border-top:1px solid var(--line);color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:8px;padding-top:14px;padding-right:200px;font-size:13px;display:flex;position:absolute;bottom:20px}@media (width<=820px){body{font-size:16px}.topbar{gap:10px;font-size:13px}.topbar nav,.topbar>span:nth-child(2){display:none}.screen{padding-top:calc(var(--top) + 30px);justify-content:flex-start;padding-bottom:90px}#hero .term{max-width:none;font-size:16px}#hero .term>.out:last-child,#hero .bubble{display:none}.giant{font-size:70vw;top:30vh;right:0}#hero .ledge{width:46vw;bottom:120px;right:8vw}#weeks .row,#stack .wrap,#recaps .wrap,#follow .wrap{grid-template-columns:1fr;gap:26px}.counter-wrap{padding-top:150px}.counter-perch{top:150px}.term-row{grid-template-columns:1fr;gap:3px}.cells{gap:3px}.cell{border-radius:3px;max-height:none;font-size:0}.cell.locked:before{font-size:8px}table.loop td:nth-child(3),table.loop th:nth-child(3){display:none}.loop-wrap{margin-top:160px}.stack-left{padding-top:140px}#stack h2.big{font-size:30px}.graph{height:auto}.graph text{font-size:12px}.builds{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}.card .st .long{display:none}.cap,.stackfiles{margin-top:150px}.pill{height:58px;font-size:19px}form.mail{flex-direction:column}form.mail input{flex:none}.follow-perch{height:200px}#follow footer{margin-top:40px;padding-right:0;position:static}#dock{width:120px;font-size:12px}}@media (width>=821px) and (height<=820px){.screen{padding-top:calc(var(--top) + 3vh);padding-bottom:4vh}.cmd{font-size:17px}.note,table.loop{font-size:15px}table.loop td,table.loop th{padding:6px 14px}.loop-wrap{margin-top:2vh}.tree{padding:12px 18px;font-size:13px}.tree .grp{gap:10px;padding:5px 0}.tree .head{margin-bottom:6px}.chips{gap:5px}.chip{padding:1px 8px;font-size:12px}.tree .foot{margin-top:6px;font-size:12px}.pkgs{margin-top:2vh;font-size:15px;line-height:1.75}.stack-perch{margin-bottom:14px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cursor,.cap:before{animation:none}}#owl-layer,#owl-layer *{pointer-events:none!important}
