:root{--frame:#1e3a2c;--frame-deep:#0f2219;--frame-line:#4e7a62;--paper:#f4f1e1;--paper-band:#e0ead3;--ink:#1e3a2c;--ink-soft:#3f5a4b;--on-frame:#e8f0d8;--on-frame-soft:#b9cdb0;--gold:#f2c14e;--red:#a8261c;--red-on-dark:#ff8a7a;--plum:#8a2f73;--plum-hover:#a03a87;--plum-light:#e391d6;--gold-bright:#ffd95e;--ok:#2f7a4a;--display:"Space Mono", ui-monospace, monospace;--body:"IBM Plex Mono", ui-monospace, monospace;--band:32px;--shadow:6px 6px 0 var(--frame-deep);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-padding-bottom:140px}html,body{background:var(--frame);color:var(--on-frame);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}button,select{font:inherit;color:inherit}a{color:var(--gold)}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell{flex-direction:column;gap:20px;max-width:1080px;min-height:100vh;margin:0 auto;padding:20px 16px 64px;display:flex}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.wordmark{font-family:var(--display);color:var(--gold);letter-spacing:-.01em;font-size:22px;font-weight:700;text-decoration:none}.wordmark span{color:var(--on-frame)}.crumb{color:var(--on-frame-soft);text-transform:uppercase;letter-spacing:.04em;font-size:13px}.toplinks{flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:14px;display:flex}.playtest-note{color:var(--frame-deep);background:var(--gold);align-self:flex-start;margin:0;padding:6px 12px;font-size:13px}.paper{background:repeating-linear-gradient(var(--paper) 0 var(--band), var(--paper-band) var(--band) calc(var(--band) * 2));color:var(--ink);border:3px solid var(--frame-deep);box-shadow:var(--shadow);padding:24px}.terminal{background:var(--frame-deep);border:3px solid var(--gold);color:var(--on-frame);padding:18px 20px}.tag{font-family:var(--display);background:var(--ink);color:var(--paper);letter-spacing:.04em;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}h1,h2,h3{font-family:var(--display);margin:0;font-weight:700;line-height:1.15}.btn{border:3px solid var(--frame-deep);background:var(--paper);min-height:48px;color:var(--ink);cursor:pointer;text-transform:uppercase;letter-spacing:.03em;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:#fffdf2}.btn-primary{background:var(--gold);color:var(--frame-deep);box-shadow:4px 4px 0 var(--frame-deep)}.btn-primary:hover{background:#f7cf6c}.btn-primary:active{box-shadow:2px 2px 0 var(--frame-deep);transform:translate(2px,2px)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-ghost{border-color:var(--frame-line);color:var(--on-frame);background:0 0}.btn-ghost:hover{background:#ffffff0d}.linkish{color:var(--gold);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.portrait{border:3px solid var(--on-frame);background:#2d5240;flex:none;padding:6px;display:block}.speaker{align-items:flex-start;gap:16px;display:flex}.speaker-name{font-family:var(--display);color:var(--gold);font-size:15px;font-weight:700}.speaker-role{color:var(--on-frame-soft);text-transform:uppercase;font-size:12px}.speaker-line{margin:6px 0 0;font-size:18px;line-height:1.5}.formula{font-family:var(--display);flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:20px;font-weight:700;display:flex}.formula .op{color:var(--red)}.formula .term{border:3px solid var(--ink);background:var(--paper);padding:4px 10px}.stmt{border-collapse:collapse;width:100%;font-size:15px}.stmt caption{text-align:left;text-transform:uppercase;letter-spacing:.04em;padding-bottom:6px;font-size:13px;font-weight:700}.stmt td{height:var(--band);vertical-align:middle;padding:4px 0}.stmt td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.stmt .neg{color:var(--red)}.stmt tr.subtotal td{border-top:2px solid var(--ink);font-weight:700}.stmt tr.total td{border-top:2px solid var(--ink);border-bottom:5px double var(--ink);font-weight:700}.ledger{border-top:3px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ledger>div{padding:8px 12px 0 0}.ledger>div+div{border-left:3px solid var(--ink);padding:8px 0 0 12px}.ledger h4{letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:13px}.ledger-title{text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:13px;font-weight:700}.timeline{border-top:3px solid var(--ink);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:0;display:grid}.timeline>div{border-left:2px dashed var(--ink-soft);padding:8px 10px}.timeline>div:first-child{border-left:none;padding-left:0}.timeline strong{font-family:var(--display);display:block}.card-stage{flex-direction:column;gap:18px;width:100%;max-width:720px;margin:0 auto;display:flex}.card h2{text-transform:uppercase;margin:12px 0;font-size:clamp(26px,5vw,36px)}.card p{margin:0 0 18px;font-size:18px;line-height:1.6}.card-more{border-top:2px dashed var(--frame-line);margin-top:18px;padding-top:12px}.card-more summary{cursor:pointer;font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;min-height:32px;font-size:14px;font-weight:700;list-style:none;display:flex}.card-more summary::-webkit-details-marker{display:none}.card-more summary:before{content:"▸";transition:transform .15s;display:inline-block}.card-more[open] summary:before{transform:rotate(90deg)}.card-more summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.card .card-more p{margin:12px 0 0;font-size:16px}.card-note{background:var(--paper);border:1px solid #1e3a2c40;border-left:3px solid var(--frame-line);align-items:flex-start;gap:10px;margin-top:16px;padding:10px 14px 12px;display:flex}.card-note-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:12px}.card .card-note p{margin:0;font-size:15px}.card .card-note-label+p{margin-top:4px}.card-note-source{color:var(--ink-soft);text-underline-offset:2px;overflow-wrap:anywhere;margin-top:6px;font-size:12px;text-decoration-color:#1e3a2c59;display:inline-block}.card-note-source:hover{color:inherit}.dots{gap:6px;display:flex}.dots span{background:var(--frame-line);width:12px;height:12px}.dots span.on{background:var(--gold)}.nav-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.puzzle{flex-direction:column;gap:18px;display:flex}.progress{flex-wrap:wrap;gap:4px;display:flex}.progress span{background:var(--frame-line);width:28px;height:8px}.progress span.done{background:var(--gold)}.progress span.now{background:var(--on-frame)}.prompt{margin:0;font-size:19px;line-height:1.45}.feedback{background:var(--frame-deep);border:3px solid var(--on-frame);z-index:5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:14px 18px;display:flex;position:sticky;bottom:12px}.feedback p{flex:280px;margin:0;font-size:16px}.feedback.wrong{border-color:var(--red-on-dark)}.feedback.right{border-color:var(--gold)}.feedback .lead-wrong{color:var(--red-on-dark);font-weight:700}.feedback .lead-right{color:var(--gold);font-weight:700}.tray{border:3px dashed var(--frame-line);flex-wrap:wrap;align-items:center;gap:10px;min-height:68px;padding:12px;display:flex}.tray-empty{color:var(--on-frame-soft);font-size:14px}.chip{background:var(--paper);color:var(--ink);border:3px solid var(--frame-deep);box-shadow:3px 3px 0 var(--frame-deep);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;text-align:left;align-items:center;gap:12px;min-height:44px;padding:8px 12px;font-size:15px;font-weight:500;display:inline-flex}.chip .amt{font-variant-numeric:tabular-nums;color:var(--ink-soft)}.chip.selected{background:var(--gold);box-shadow:5px 5px 0 var(--frame-deep);transform:translate(-2px,-2px)}.chip.dragging{opacity:.3}.chip.overlay{cursor:grabbing;box-shadow:8px 8px 0 var(--frame-deep);transform:rotate(-2deg)}.chip.wrong{border-color:var(--red);color:var(--red);text-decoration:line-through;text-decoration-thickness:2px}.buckets{border:3px solid var(--frame-deep);box-shadow:var(--shadow);background:repeating-linear-gradient(var(--paper) 0 36px, var(--paper-band) 36px 72px);color:var(--ink);grid-template-rows:auto 1fr;display:grid}.bucket{grid-row:span 2;grid-template-rows:subgrid;border-right:3px solid var(--ink);row-gap:8px;min-height:200px;margin-right:-3px;padding:0 14px 16px;display:grid}.bucket.over{background:#f2c14e59}.bucket-head{border:none;border-bottom:3px solid var(--ink);text-align:left;cursor:default;color:var(--ink);background:0 0;flex-direction:column;justify-content:flex-end;gap:2px;padding:14px 0 6px;display:flex}.bucket-body{flex-direction:column;gap:8px;display:flex}.bucket-head.can-drop{cursor:pointer}.bucket-head.can-drop:hover .bucket-name{text-decoration:underline}.bucket-name{font-family:var(--display);text-transform:uppercase;font-size:19px;font-weight:700}.bucket-sub{text-transform:uppercase;font-size:12px}.bucket .chip{box-shadow:none;justify-content:space-between;width:100%}.bucket .chip.selected{box-shadow:3px 3px 0 var(--frame-deep)}.drop-hint{border:2px dashed var(--ink-soft);text-align:center;color:var(--ink-soft);cursor:pointer;background:0 0;margin-top:auto;padding:8px;font-size:13px}.order-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.order-row{background:var(--paper);color:var(--ink);border:3px solid var(--frame-deep);touch-action:none;align-items:center;gap:10px;padding:4px 4px 4px 12px;display:flex}.order-row.wrong{border-color:var(--red)}.order-row .grip{cursor:grab;color:var(--ink-soft);background:0 0;border:none;padding:8px 4px}.order-row .label{flex:1}.order-row .idx{font-family:var(--display);width:1.6em;font-weight:700}.icon-btn{border:2px solid var(--ink);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:disabled{opacity:.3;cursor:default}.options{flex-direction:column;gap:10px;display:flex}.option{text-align:left;background:var(--paper);color:var(--ink);border:3px solid var(--frame-deep);cursor:pointer;align-items:center;gap:14px;min-height:52px;padding:12px 16px;font-size:16px;display:flex}.option .box{border:3px solid var(--ink);flex:none;width:22px;height:22px}.option[aria-checked=true]{background:var(--gold);box-shadow:4px 4px 0 var(--frame-deep)}.option[aria-checked=true] .box{background:var(--ink)}.option.wrong{border-color:var(--red);background:#f6dcd6}.option:disabled{cursor:default}.fill-select{appearance:none;border:3px solid var(--ink);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231e3a2c' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 10px center;font-variant-numeric:tabular-nums;cursor:pointer;text-align:right;min-width:120px;min-height:44px;padding:6px 34px 6px 10px;font-weight:700}.fill-select.empty{background-color:#fff6d6;border-style:dashed}.fill-select.wrong{border-color:var(--red);color:var(--red)}.event{font-size:18px;font-weight:500}.event:before{content:"> ";color:var(--gold)}.accounts{flex-direction:column;display:flex}.account{border-bottom:1px solid #1e3a2c40;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:4px 0;display:flex}.account.wrong .account-label{color:var(--red);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.account-group{text-transform:uppercase;letter-spacing:.06em;border-bottom:3px solid var(--ink);padding-top:12px;font-size:12px;font-weight:700}.seg{border:3px solid var(--ink);display:inline-flex}.seg button{width:52px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:none;font-size:18px;font-weight:700}.seg button+button{border-left:2px solid var(--ink)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.seg button[aria-pressed=true].up{background:var(--ok)}.seg button[aria-pressed=true].down{background:var(--red)}.match-row{border-bottom:1px solid #1e3a2c40;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-height:56px;display:flex}.hero{flex-direction:column;gap:10px;padding:12px 0;display:flex}.hero h1 em{color:var(--gold);white-space:nowrap;font-style:normal}.hero h1{color:var(--on-frame);font-size:clamp(28px,6vw,46px)}.hero p{max-width:640px;color:var(--on-frame-soft);margin:0;font-size:17px}.act{padding:0}.act-head{border-bottom:3px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:18px 20px 14px;display:flex}.act-head h2{text-transform:uppercase;font-size:22px}.act-setting{text-transform:uppercase;color:var(--ink-soft);font-size:13px}.chapter-row{min-height:52px;color:var(--ink);border-bottom:1px solid #1e3a2c33;grid-template-columns:3.2em minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 20px;text-decoration:none;display:grid}a.chapter-row:hover{background:#f2c14e59}.chapter-row .no{font-family:var(--display);font-weight:700}.chapter-row.locked{color:#6f7d6f}.chapter-status{text-transform:uppercase;white-space:nowrap;font-size:13px}.stars{color:#9a6b00;letter-spacing:.08em}.free{vertical-align:2px;border:2px solid;margin-left:8px;padding:0 6px;font-size:11px}.backstory{flex-direction:column;gap:20px;max-width:720px;margin:0 auto;display:flex}.backstory p{margin:0 0 1em;font-size:18px;line-height:1.75}.backstory p:last-child{margin-bottom:0}.stamp{font-family:var(--display);border:3px solid;align-self:flex-start;padding:4px 14px;font-size:18px;font-weight:700;transform:rotate(-4deg)}.stamp.red{color:var(--red)}.guide-entry{border-bottom:1px solid #1e3a2c40;padding:10px 0}.guide-entry dt{font-weight:700}.guide-entry dd{margin:2px 0 0}.overlay-backdrop{z-index:20;background:#0f2219cc;justify-content:center;align-items:flex-start;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.overlay-panel{flex-direction:column;gap:16px;width:100%;max-width:720px;display:flex}@media (width<=560px){.bucket{row-gap:6px;min-height:150px;padding:0 6px 10px}.bucket-body{gap:6px}.bucket-head{gap:0;padding-top:10px}.bucket-name{font-size:14px}.bucket-sub{font-size:10px}.bucket .chip{flex-direction:column;align-items:flex-start;gap:2px;padding:6px;font-size:12px}.tray .chip{font-size:14px}.drop-hint{padding:6px 2px;font-size:12px}.paper{padding:18px 14px}.speaker-line{font-size:16px}.seg button{width:44px}.chapter-row{grid-template-columns:2.6em minmax(0,1fr) auto;padding:0 12px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.lede{color:var(--on-frame-soft);margin:0;font-size:18px}.section-title{text-transform:uppercase;font-size:18px}.catalog-row{color:var(--ink);border-bottom:1px solid #1e3a2c33;grid-template-columns:3.2em minmax(0,1fr);gap:12px;padding:12px 20px;text-decoration:none;display:grid}a.catalog-row:hover{background:#f2c14e59}.catalog-row .no{font-family:var(--display);font-weight:700}.catalog-summary{color:var(--ink-soft);margin-top:2px;font-size:14px;display:block}.guide-source{color:var(--ink-soft);font-size:13px}.guide-source:before{content:"→ "}.signin-providers{flex-direction:column;gap:10px;max-width:360px;margin:16px auto;display:flex}.signin-ids{flex-direction:column;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.signin-notice{border-color:var(--red-on-dark)}.signin-notice.good{border-color:var(--gold)}.purchase{border-bottom:3px solid var(--ink);margin-bottom:20px;padding-bottom:20px}.purchase h2{text-transform:uppercase;margin-bottom:8px;font-size:22px}.purchase-error{color:var(--red);font-weight:700}.site-footer{border-top:1px solid var(--frame-line);flex-wrap:wrap;gap:8px 20px;margin-top:40px;padding-top:16px;font-size:14px;display:flex}.site-footer a{color:var(--on-frame-soft)}.legal h2{text-transform:uppercase;margin:28px 0 8px;font-size:19px}.legal .paper>:first-child{margin-top:0}.legal .paper p,.legal .paper li{font-size:16px;line-height:1.7}.legal .paper ul,.legal .paper ol{margin:0 0 1em;padding-left:22px}.legal .paper li{margin-bottom:6px}.signin-terms{color:var(--ink-soft);font-size:14px}.account-id{color:var(--ink-soft);overflow-wrap:anywhere;font-size:14px}.legal .paper a,.signin-terms a,.account-id a{color:var(--ink);font-weight:700}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.modal-backdrop{z-index:10;background:#0f2219cc;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:440px;max-height:calc(100vh - 32px);position:relative;overflow-y:auto}.modal h2{text-transform:uppercase;margin:0 32px 8px 0;font-size:22px}.modal .signin-providers{max-width:none}.modal-close{width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:28px;line-height:1;position:absolute;top:8px;right:10px}.card-note-icon{flex:none;margin-top:2px}.btn-buy{background:var(--plum);color:var(--paper);box-shadow:4px 4px 0 var(--frame-deep)}.btn-buy:hover{background:var(--plum-hover)}.btn-buy:active{box-shadow:2px 2px 0 var(--frame-deep);transform:translate(2px,2px)}.modal-actions{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.linkish.crumb{color:var(--plum-light);font-size:13px;font-weight:700}.linkish.crumb:hover{color:#f0b3e6}.toplinks a[aria-current=page]{color:var(--gold-bright);font-weight:700;text-decoration-thickness:2px}.card-more:not([open]) .when-open,.card-more[open] .when-closed{display:none}.progress-summary{flex-wrap:wrap;gap:12px;display:flex}.progress-summary>div{background:var(--frame-deep);border:3px solid var(--frame-line);flex-direction:column;flex:160px;gap:2px;padding:12px 16px;display:flex}.progress-summary strong{font-family:var(--display);color:var(--gold);font-size:24px}.progress-summary span{color:var(--on-frame-soft);font-size:13px}.progress-chapter{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;display:flex}@media (width<=420px){.toplinks{gap:4px 12px;font-size:13px}}.site-footer .linkish{color:var(--on-frame-soft);font:inherit}.feedback-form label{flex-direction:column;gap:6px;margin-bottom:14px;font-weight:700;display:flex}.feedback-form .optional{color:var(--ink-soft);font-weight:400}.feedback-form textarea,.feedback-form input{font:inherit;color:var(--ink);border:3px solid var(--frame-deep);background:#fffdf2;width:100%;padding:8px 10px;font-weight:400}.feedback-form textarea{resize:vertical;min-height:120px}.feedback-form textarea:focus,.feedback-form input:focus{outline:3px solid var(--gold);outline-offset:0}
