:root{--ground:#0D1420;--ground-2:#131D2B;--panel:#18232F;--line:#2A3A4E;--line-soft:#1F2C3C;--ink:#E9EFF5;--ink-2:#9EB0C3;--ink-3:#6D8096;--paper:#EDE7DB;--paper-ink:#231E18;--paper-ink-2:#5C5245;--ask:#5BC8CE;--ask-dim:#2E5C63;--reveal:#DC4B3E;--display:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--body:"Avenir Next",Avenir,"Segoe UI",system-ui,-apple-system,sans-serif;--mono:Menlo,"SFMono-Regular",Consolas,ui-monospace,monospace;--measure:62ch}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:20px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}.wrap{max-width:1180px;margin:0 auto;padding:0 24px}[hidden]{display:none!important}.masthead{padding:56px 0 26px}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin:0 0 18px}.masthead h1{font-family:var(--display);font-weight:400;font-size:clamp(38px,6.4vw,68px);line-height:1.02;letter-spacing:-.02em;margin:0 0 20px;max-width:15ch;text-wrap:balance}.masthead .subtitle{margin:0;max-width:56ch;color:var(--ink-2);font-size:20px}h2{font-family:var(--display);font-weight:400;font-size:clamp(32px,5vw,52px);line-height:1.08;letter-spacing:-.02em;margin:0;max-width:18ch;text-wrap:balance}h3{font-family:var(--display);font-weight:400;font-size:clamp(24px,3vw,33px);line-height:1.18;letter-spacing:-.01em;margin:0;max-width:24ch;text-wrap:balance}h4{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0;padding-bottom:10px;border-bottom:1px solid var(--line)}p{margin:0 0 16px}p:last-child{margin-bottom:0}b,strong{font-weight:600;color:#fff}em{font-style:italic}.prose{max-width:var(--measure)}.lead{font-size:23px;color:var(--ink-2);max-width:54ch}.foot{border-top:1px solid var(--line);padding:26px 0 70px;font-family:var(--mono);font-size:12.5px;line-height:1.8;color:var(--ink-3)}.foot a{color:var(--ink-2)}:focus-visible{outline:2px solid var(--ask);outline-offset:3px}.cover{padding:0 0 110px}.cover .masthead h1{max-width:18ch}.cover .stats{display:flex;flex-wrap:wrap;gap:8px 26px;margin:26px 0 0;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--ink-3)}.cover .stats b{color:var(--ink-2);font-weight:600}.index{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-top:44px}.row{appearance:none;background:transparent;color:inherit;font:inherit;text-align:left;width:100%;border:0;border-bottom:1px solid var(--line-soft);display:grid;grid-template-columns:64px 1fr;gap:4px 22px;align-items:start;padding:26px 16px 26px 0;margin:0;transition:background .16s ease,padding .16s ease}@media(min-width:900px){.row{grid-template-columns:64px 1fr 28px}}.row .n{font-family:var(--mono);font-size:15px;font-weight:600;letter-spacing:.1em;color:var(--reveal);font-variant-numeric:tabular-nums;padding-top:6px}.row .body{display:flex;flex-direction:column;gap:10px;min-width:0}.row .t{font-family:var(--display);font-size:clamp(23px,2.7vw,31px);line-height:1.16;letter-spacing:-.01em;color:var(--ink);max-width:26ch;text-wrap:balance}.row .o{margin:0;font-size:17px;line-height:1.5;color:var(--ink-2);max-width:64ch}.row .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.row .chips span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);padding:4px 9px}.row .go{display:none;font-family:var(--mono);font-size:19px;color:var(--ask);padding-top:6px;text-align:right}@media(min-width:900px){.row .go{display:block}}button.row{cursor:pointer}button.row:hover{background:#5bc8ce0d;padding-left:10px}button.row:hover .t{color:#fff}button.row:focus-visible{outline:2px solid var(--ask);outline-offset:-2px}.row.pending{opacity:.4}.row.pending .n{color:var(--ink-3)}.row.pending .status{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.rail-holder{position:sticky;top:0;z-index:30;background:var(--ground);border-bottom:1px solid var(--line);padding-top:10px}.rail-top{display:flex;align-items:center;gap:16px;padding-bottom:8px;min-width:0}.back{appearance:none;background:var(--ask);color:var(--ground);border:0;border-radius:2px;padding:10px 16px;cursor:pointer;flex:0 0 auto;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;line-height:1;display:inline-flex;align-items:center;gap:8px;box-shadow:0 2px 14px -6px #5bc8cee6;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}.back:hover{background:#7fdce1;transform:translate(-2px);box-shadow:0 4px 18px -6px #5bc8ce}.back:active{transform:translate(-2px) scale(.98)}.back:focus-visible{outline:2px solid var(--ask);outline-offset:3px}.back .arrow{font-size:14px;line-height:1}.back .short{display:none}.rail-session{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.rail-session b{color:var(--ink-2);font-weight:600}.rail{display:flex;gap:0;overflow-x:auto;scrollbar-width:none}.rail::-webkit-scrollbar{display:none}.rail button{flex:0 0 auto;appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:12px 20px 13px;cursor:pointer;color:var(--ink-3);font-family:var(--mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;display:flex;flex-direction:column;gap:4px;align-items:flex-start;white-space:nowrap;transition:color .16s ease,border-color .16s ease}.rail button .rname{font-family:var(--body);font-size:15px;letter-spacing:0;text-transform:none;color:var(--ink-3);transition:color .16s ease}.rail button:first-child{padding-left:0}.rail button:hover,.rail button:hover .rname{color:var(--ink-2)}.rail button[aria-selected=true]{color:var(--ask);border-bottom-color:var(--ask)}.rail button[aria-selected=true] .rname{color:var(--ink)}.rail button:focus-visible{outline:2px solid var(--ask);outline-offset:2px}.panel{padding:52px 0 110px;display:flex;flex-direction:column;gap:44px}.panel[hidden]{display:none}@media(prefers-reduced-motion:no-preference){.panel{animation:rise .3s cubic-bezier(.2,.7,.3,1)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}.panel>*{margin:0}ul.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;max-width:var(--measure)}ul.list li{position:relative;padding-left:26px}ul.list li:before{content:"";position:absolute;left:0;top:.72em;width:12px;height:1px;background:var(--line)}.task{border-left:3px solid var(--ask);background:linear-gradient(90deg,rgba(91,200,206,.07),transparent 70%);padding:24px 26px;max-width:70ch}.task .label{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ask);margin:0 0 12px}.task .big{font-family:var(--display);font-size:clamp(24px,3.2vw,34px);line-height:1.22;color:var(--ink);margin:0 0 14px;letter-spacing:-.01em;text-wrap:balance}.task p:last-child{margin-bottom:0;color:var(--ink-2);font-size:18px}.task ol{margin:14px 0 0;padding:0;list-style:none;counter-reset:op;display:flex;flex-direction:column;gap:10px}.task ol li{position:relative;padding-left:34px;counter-increment:op;font-size:19px;color:var(--ink-2)}.task ol li:before{content:counter(op,upper-alpha);position:absolute;left:0;top:0;font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ask);border:1px solid var(--ask-dim);width:22px;height:22px;display:grid;place-items:center;margin-top:.25em}.task ol.steps li:before{content:counter(op,decimal-leading-zero)}.idea{font-family:var(--display);font-size:clamp(23px,3vw,32px);line-height:1.26;letter-spacing:-.01em;max-width:30ch;border-top:2px solid var(--reveal);padding-top:20px;text-wrap:balance}.idea .who{color:var(--reveal)}figure{margin:0;display:flex;flex-direction:column;gap:12px}figure img{display:block;width:100%;height:auto}.plate{max-width:920px}.plate .mount{background:var(--paper);padding:18px;box-shadow:0 24px 60px -30px #000000e6}.plate.portrait{max-width:420px}.plate.medium{max-width:620px}figcaption{font-family:var(--mono);font-size:12.5px;line-height:1.65;color:var(--ink-3);max-width:64ch}figcaption b{color:var(--ink-2);font-weight:600}figcaption .source{display:block;margin-top:4px;color:var(--ink-3);opacity:.85}figcaption a{color:var(--ink-2);text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:var(--line)}figcaption a:hover,figcaption a:focus-visible{color:var(--ink);text-decoration-color:var(--ink-3)}.diagram{max-width:1000px}.diagram .frame{background:var(--ground-2);border:1px solid var(--line-soft);padding:22px;position:relative}.diagram svg{display:block;width:100%;height:auto}.dtable{max-width:1000px}.dtable .frame{background:var(--ground-2);border:1px solid var(--line-soft);overflow:auto;max-height:74vh;position:relative}.dtable table{border-collapse:separate;border-spacing:0;font-family:var(--mono);font-size:12.5px;white-space:nowrap;font-variant-numeric:tabular-nums}.dtable th,.dtable td{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:7px 12px;text-align:left;font-weight:400;color:var(--ink-2)}.dtable thead th{position:sticky;top:0;z-index:2;background:var(--ground-2);vertical-align:bottom;border-bottom-color:var(--line)}.dtable thead .l{display:block;color:var(--ask);font-size:11px;font-family:Menlo,Consolas,ui-monospace,monospace;letter-spacing:0}.dtable thead .h{display:block;color:var(--ink-3);font-size:11.5px;margin-top:3px}.dtable .n{position:sticky;left:0;z-index:1;background:var(--ground-2);color:var(--ink-3);text-align:right;border-right-color:var(--line)}.dtable thead .n{z-index:3}.dtable td.empty{background:#dc4b3e12}.dtable td.mk{color:var(--reveal);background:#dc4b3e21}.dtable .ws{font-style:normal;color:var(--reveal)}.dtable.focus td:not(.mk){opacity:.3}.dtable td.w{white-space:normal;max-width:32ch}.dtable thead th.out .l,.dtable thead th.out .h{opacity:.45}.dtable thead th.out .f{display:block;margin-top:4px;font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3)}.dtable td.out{opacity:.45;background:#6d80960f}.dtable td.out.mk{opacity:1}.pair{display:grid;gap:26px;grid-template-columns:1fr;align-items:start}.pair>*{min-width:0}@media(min-width:900px){.pair{grid-template-columns:1fr 1fr}}.cards{display:grid;gap:1px;background:var(--line-soft);grid-template-columns:1fr}@media(min-width:720px){.cards{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.cards.c4{grid-template-columns:repeat(4,1fr)}}@media(min-width:820px){.cards.c3{grid-template-columns:repeat(3,1fr)}}.card{background:var(--ground);padding:24px 22px;display:flex;flex-direction:column;gap:8px}.card .k{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ask)}.card .t{font-family:var(--display);font-size:23px;line-height:1.2;color:var(--ink)}.card .d{font-size:17px;color:var(--ink-2);line-height:1.5}.card.red .k{color:var(--reveal)}.nots{display:flex;flex-wrap:wrap;gap:10px}.nots span{font-family:var(--mono);font-size:13px;letter-spacing:.04em;border:1px solid var(--line);color:var(--ink-3);padding:8px 14px;text-decoration:line-through;text-decoration-color:var(--reveal);text-decoration-thickness:1.5px}.story{display:flex;flex-direction:column;gap:32px;padding-top:40px;border-top:1px solid var(--line)}.story:first-of-type{border-top:0;padding-top:0}.story-head{display:flex;flex-direction:column;gap:10px}.story-head .num{font-family:var(--mono);font-size:13px;letter-spacing:.2em;color:var(--reveal)}.story-head .place{font-family:var(--mono);font-size:13px;letter-spacing:.1em;color:var(--ink-3)}.milestones{display:flex;flex-direction:column;border-top:1px solid var(--line)}.milestone{display:grid;grid-template-columns:76px 1fr;gap:20px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line-soft)}@media(min-width:820px){.milestone{grid-template-columns:76px 22ch 1fr}}.milestone .y{font-family:var(--mono);font-size:15px;font-weight:600;color:var(--reveal);font-variant-numeric:tabular-nums}.milestone .t{font-family:var(--display);font-size:21px;line-height:1.25;color:var(--ink)}.milestone .d{font-size:17px;color:var(--ink-2);line-height:1.5}.activity{border:1px solid var(--ask-dim);background:var(--ground-2);padding:22px 24px;max-width:1000px;display:flex;flex-direction:column;gap:18px}.activity .controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0}.activity label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);flex:0 0 auto}.activity input{background:var(--ground);border:1px solid var(--line);color:var(--ink);font-family:var(--body);font-size:16px;padding:10px 12px;min-height:44px;flex:1 1 200px;min-width:0}.activity input.num{flex:0 1 90px}.activity input:focus-visible{outline:2px solid var(--ask);outline-offset:1px}.activity input::placeholder{color:var(--ink-3)}.activity button.act{appearance:none;background:var(--ask);color:var(--ground);border:0;border-radius:2px;padding:10px 18px;min-height:44px;cursor:pointer;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;line-height:1;transition:background .16s ease}.activity button.act:hover:not(:disabled){background:#7fdce1}.activity button.act:disabled{opacity:.4;cursor:default}.activity button.ghost{appearance:none;background:none;border:1px solid var(--line);color:var(--ink-2);padding:10px 16px;min-height:44px;cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.activity button.ghost:hover:not(:disabled),.activity button.ghost:focus-visible{color:var(--ask);border-color:var(--ask)}.activity button.ghost:disabled{opacity:.4;cursor:default}.activity .choice{display:flex;flex-direction:column;gap:14px}.activity .pickers{display:grid;gap:12px;grid-template-columns:1fr}@media(min-width:720px){.activity .pickers{grid-template-columns:1fr 1fr}}.activity .pick{appearance:none;text-align:left;cursor:pointer;background:var(--ground);border:1px solid var(--line);padding:18px 20px;display:flex;flex-direction:column;gap:8px;transition:border-color .16s ease}.activity .pick:hover,.activity .pick:focus-visible{border-color:var(--ask)}.activity .pick .k{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ask)}.activity .pick .d{font-size:16px;color:var(--ink-2);line-height:1.5;font-family:var(--body)}.activity .chip{appearance:none;background:var(--ground);border:1px solid var(--line);color:var(--ink-2);font-family:var(--mono);font-size:12.5px;padding:9px 13px;min-height:40px;cursor:pointer}.activity .chip[aria-pressed=true]{border-color:var(--ask);color:var(--ask);background:#5bc8ce1a}.activity .hint{margin:0;font-size:17px;color:var(--ink-2);flex:1 1 100%}.activity .err{margin:0;font-size:15px;color:var(--reveal);border-left:3px solid var(--reveal);padding-left:12px}.activity .canvas{background:var(--ground);border:1px solid var(--line-soft);padding:18px;position:relative;overflow:hidden}.activity .canvas .lens{position:absolute;top:8px;right:8px;z-index:5;display:flex;align-items:center;gap:8px;background:#131d2bd9;border:1px solid var(--line);padding:5px 8px}.activity .canvas .lens input[type=range]{width:110px;margin:0;accent-color:var(--ask);cursor:pointer;flex:1 1 auto;min-width:0}.activity .canvas .reset{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer;flex:0 0 auto;background:var(--ground-2);border:1px solid var(--line);color:var(--ink-3);transition:color .15s,border-color .15s}.activity .canvas .reset:hover,.activity .canvas .reset:focus-visible{color:var(--ask);border-color:var(--ask)}.activity .canvas .trash:hover:not(:disabled),.activity .canvas .trash:focus-visible:not(:disabled){color:var(--reveal);border-color:var(--reveal)}.activity .canvas .trash:disabled{opacity:.35;cursor:default}.activity .canvas svg{display:block;width:100%;height:auto}.activity .canvas{user-select:none;-webkit-user-select:none}.activity .canvas svg{touch-action:none}.activity .canvas svg [data-point-id]{cursor:grab;pointer-events:all}.activity .canvas svg [data-seg]{cursor:pointer;pointer-events:all}.activity .canvas.done svg [data-point-id],.activity .canvas.done svg [data-seg]{cursor:default}.activity .canvas.choosing svg [data-point-id],.activity .canvas.choosing svg [data-seg]{cursor:pointer}.activity .canvas .bet-tag{position:absolute;z-index:4;pointer-events:none;transform:translate(var(--tx,14px),var(--ty, calc(-100% - 14px) ));max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink);background:#131d2beb;border:1px solid var(--line);padding:2px 6px}.activity .mode{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-3)}.loading{padding:80px 0;color:var(--ink-3);font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase}.diagram,.dtable{position:relative}.zoom{position:absolute;top:8px;right:8px;z-index:4;background:var(--ground-2);border:1px solid var(--line);color:var(--ink-3);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:7px 11px;cursor:pointer;opacity:.55;transition:opacity .15s,color .15s}.zoom:hover,.zoom:focus-visible{opacity:1;color:var(--ask);border-color:var(--ask)}figure:hover>.zoom{opacity:1}.zoomed{position:fixed;inset:0;width:auto;height:auto;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--ground);color:var(--ink);flex-direction:column}.zoomed[open]{display:flex}.zoomed::backdrop{background:#060c14eb}.zoom-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;border-bottom:1px solid var(--line-soft);background:var(--ground-2)}.zoom-bar p{margin:0;font-family:var(--mono);font-size:11.5px;line-height:1.45;color:var(--ink-3);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.zoom-bar button{flex:0 0 auto;min-height:44px;padding:10px 16px;cursor:pointer;background:none;border:1px solid var(--line);color:var(--ink-2);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.zoom-bar button:hover,.zoom-bar button:focus-visible{color:var(--ask);border-color:var(--ask)}.zoom-body{flex:1 1 auto;overflow:auto;padding:14px;touch-action:pinch-zoom}.rotor{touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none}.rotor:active{cursor:grabbing}@media(max-width:720px){.rail button{padding:13px 16px;min-height:44px;scroll-snap-align:start}.rail{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.rail button .rname{font-size:14px}.panel{padding:40px 0 80px;gap:36px}.masthead{padding:40px 0 22px}}@media(max-width:560px){.row{grid-template-columns:1fr;gap:8px;padding:22px 0}.row .n{padding-top:0;font-size:13px}.row .t{max-width:none}.row .o{max-width:none;font-size:16px}button.row:hover{padding-left:0}.cover{padding:0 0 70px}}@media(max-width:640px){body{font-size:17px;line-height:1.6}.wrap{padding:0 16px}.masthead{padding:32px 0 20px}.masthead .subtitle{font-size:17px}.cover .stats{font-size:11.5px;gap:6px 18px;margin-top:20px}.index{margin-top:30px}.panel{padding:32px 0 70px;gap:30px}.rail-top{flex-wrap:wrap;gap:10px;padding-bottom:10px}.back{width:100%;justify-content:center;padding:12px 16px;min-height:44px;font-size:12px}.back .long{display:none}.back .short{display:inline}.rail-session{flex:1 1 100%;font-size:11.5px}.rail button{padding:12px 14px}.rail button:first-child{padding-left:0}.task{padding:18px;max-width:none}.task .label{font-size:11px}.task ol li{font-size:17px;padding-left:30px}.task p:last-child{font-size:16px}.idea{max-width:none;padding-top:16px}.lead{font-size:19px;max-width:none}.prose{max-width:none}.diagram .frame{padding:16px}.dtable .frame{margin-left:-16px;margin-right:-16px;border-left:0;border-right:0;-webkit-overflow-scrolling:touch}.dtable .frame{max-height:max(74vh,320px)}.diagram figcaption,.dtable figcaption{max-width:none}.plate,.plate.portrait,.plate.medium{max-width:100%}.plate .mount{padding:12px}.card{padding:20px 18px}.card .t{font-size:21px}.card .d{font-size:16px}.nots span{font-size:12px;padding:7px 11px}.story{gap:26px;padding-top:32px}.pair{gap:22px}.milestone{grid-template-columns:64px 1fr;gap:14px;padding:14px 0}.milestone .t{font-size:19px}.milestone .d{font-size:16px}.foot{padding:22px 0 50px;font-size:11.5px}.activity{padding:16px 14px;gap:14px}.activity input{flex-basis:100%}.activity input.num{flex:1 1 60px}.activity button.act{flex:1 1 auto}.activity .hint{font-size:15px}.activity .canvas{padding:12px}}@media(max-width:400px){.diagram .frame,.rail button{padding:12px}.task{padding:16px 14px}}
