:root{color-scheme:light;--paper:#fbf9f5;--white:#fff;--ink:#262a35;--muted:#777983;--line:#e7e5e0;--accent:#e9694c;--accent-dark:#b54129;--lilac:#eeebf7;--violet:#746390;--green:#467360;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--paper);color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #af96d0;outline-offset:3px}button{color:inherit}button,select,input{transition:background .16s,border-color .16s,box-shadow .16s}button:hover:not(:disabled){filter:brightness(.97)}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{max-width:1480px;margin:auto;padding:25px 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{text-decoration:none;display:flex;align-items:center;gap:10px;font-size:25px;font-weight:750;letter-spacing:-1px}.brand-dot{color:var(--accent)}.brand-mark{background:var(--accent);color:#fffaf0;border-radius:9px;font-family:Georgia,serif;font-style:italic;font-size:27px;font-weight:700;letter-spacing:-5px;width:34px;height:35px;padding-left:6px;line-height:34px;transform:rotate(-5deg)}.brand-mark span{font-size:22px}.brand-caption{font-size:9px;letter-spacing:1.5px;color:var(--muted);font-weight:600;margin:4px 0 0 13px}.site-header nav{display:flex;align-items:center;gap:24px}.quiet{border:0;background:none;font-size:12px;padding:7px 0;color:#626570}.connection{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dedbd6;border-radius:7px;padding:9px 13px;font-size:12px;font-weight:600}.connection-dot{width:6px;height:6px;border-radius:50%;background:#b8a3ca}.connection.connected .connection-dot{background:var(--green)}main{max-width:1392px;margin:0 auto;padding:0 26px}.intro{display:flex;align-items:center;justify-content:space-between;padding:38px 0 30px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.8px;color:#86828b}.little-spark{color:var(--accent);font-size:15px;margin-right:6px}h1{font-weight:650;font-size:clamp(32px,3.2vw,47px);letter-spacing:-2px;line-height:1.16;margin:11px 0 10px}h1>span{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;color:var(--accent)}.intro p{font-size:14px;color:#7a7b82;margin:0}.intro-note{display:flex;align-items:center;gap:13px;padding:0 55px 0 30px;font-size:12px;color:#8c8383;line-height:1.7;font-family:Georgia,serif;font-style:italic;transform:rotate(-4deg)}.note-doodle{font-size:40px;font-family:Georgia,serif;color:#b29bab;transform:rotate(16deg)}
.workspace-top{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #e2dfda;margin-bottom:25px}.example-tabs{display:flex;align-items:stretch;gap:18px}.example-tab{background:none;border:0;border-bottom:2px solid transparent;padding:12px 0 14px;display:flex;align-items:center;gap:8px;font-size:12px;color:#878590;white-space:nowrap;margin-bottom:-1px}.example-tab.active{color:var(--ink);border-color:var(--accent);font-weight:600}.tab-icon{font-size:15px;color:var(--violet)}.tab-kind{font-size:8px;letter-spacing:.7px;padding:3px 4px;border-radius:3px;background:#efedf0;color:#97929f;font-weight:500}.workspace-note{font-size:10px;color:#99939b}.workspace{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:33px;align-items:start}.source-column{min-width:0;position:sticky;top:24px}.source-card{background:#fff;border:1px solid #e1dfdc;border-radius:12px;overflow:hidden;box-shadow:0 3px 12px #28202e03}.section-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:13px 17px;background:#faf9fb;border-bottom:1px solid #e9e6ec}.file-title{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;min-width:0}.file-title strong{font-weight:500;overflow:hidden;text-overflow:ellipsis}.file-icon{color:#928399;font-size:11px}.source-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}.icon-button{border:0;background:transparent;padding:3px 5px;font-size:20px;color:#8f8994;line-height:1}.small-button{background:white;border:1px solid #e3dfe6;border-radius:5px;font-size:10px;padding:6px 10px;white-space:nowrap}.code-view{padding:19px 0 20px;overflow:auto;min-height:235px;background:linear-gradient(110deg,#fff,#fdfcfe)}.code-line{display:flex;min-width:max-content;width:100%;text-align:left;border:0;border-left:3px solid transparent;padding:3px 18px 3px 11px;background:none;font-family:var(--mono);font-size:12px;line-height:1.7;white-space:pre;letter-spacing:-.15px;position:relative}.code-line:hover{background:#f8f5fb}.code-line.active{background:#fff0e9;border-left-color:var(--accent)}.code-line.trace-active{background:#efebfb;border-left-color:#8a6abd}.line-num{display:inline-block;min-width:30px;text-align:right;padding-right:14px;color:#b5aeba;user-select:none;flex-shrink:0}.code-line.active .line-num{color:var(--accent)}.syntax-keyword{color:#8853ac}.syntax-string{color:#58826b}.syntax-comment{color:#9b95a0;font-style:italic}.syntax-number{color:#c47640}.syntax-function{color:#477693}.code-content{padding-right:10px}.source-footer{display:flex;gap:7px;align-items:center;padding:12px 16px;font-size:10px;color:#8b8391;border-top:1px solid #f0ecf1;min-height:39px}.link-dot{width:5px;height:5px;background:#c6b2d1;border-radius:50%;flex-shrink:0}.notice{padding:11px 16px;background:#fff3e0;color:#886334;font-size:12px;line-height:1.5}.generation-controls{border-top:1px solid #e9e5e7;padding:16px;background:#fdfcfa}.control-row{display:flex;gap:14px;margin-bottom:14px}.control-row label{font-size:10px;letter-spacing:.2px;color:#928a93;display:flex;align-items:center;gap:8px;flex:1}.control-row select{min-width:0;max-width:100%;width:100%;border:1px solid #e6e0e4;background:#fff;border-radius:5px;padding:7px 22px 7px 8px;font-size:11px;color:#635a69}.generate-button{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #e56648;background:var(--accent);color:white;border-radius:7px;padding:12px 18px;box-shadow:0 3px 0 #c6573920;font-size:13px;font-weight:600}.generate-button>span:last-child{margin-left:auto}.generate-button>span:first-child{margin-right:auto}.generation-under{font-size:9px;color:#9e959c;margin:10px 1px 0;display:flex;justify-content:space-between;gap:10px;align-items:center;line-height:1.5}.auto-label{display:flex;gap:4px;align-items:center;white-space:nowrap}.auto-label input{accent-color:var(--accent);width:12px;height:12px}.generation-progress{margin-top:14px;display:flex;gap:10px;align-items:center;font-size:11px;color:#776681;line-height:1.5}.generation-progress .quiet{margin-left:auto}.spinner{width:13px;height:13px;border:2px solid #d9cce0;border-top-color:var(--accent);border-radius:50%;flex-shrink:0;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#source-editor{border:0;background:#fffdfb;resize:vertical;min-height:275px;max-height:650px;width:100%;padding:20px;font:12px/1.8 var(--mono);tab-size:4;outline-offset:-3px}.editor-meta{display:flex;justify-content:space-between;gap:8px;padding:0 16px 10px;color:#a295a4;font-size:10px}
.experiment-card{margin-top:17px;border:1px solid #e5e0e9;border-radius:10px;background:#f5f2f9;padding:18px}.experiment-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.experiment-top h3{margin:0;font-size:13px;font-weight:600;display:flex;gap:7px;align-items:center}.live-label{font-size:9px;color:var(--violet);display:flex;gap:5px;align-items:center;white-space:nowrap}.live-label::before{content:'';width:4px;height:4px;border-radius:50%;background:#aa90bd}.experiment-description{font-size:11px;color:#8c8093;line-height:1.6;margin:7px 0 14px}.variant-tabs{display:flex;background:#eae5f1;padding:3px;border-radius:6px;gap:3px;margin:12px 0}.variant-button{flex:1;background:none;border:0;color:#8c7e98;padding:7px 3px;border-radius:4px;font-size:10px;white-space:nowrap}.variant-button.active{background:#fff;color:#766086;box-shadow:0 1px 4px #34263f0c}.delivery-list{display:flex;gap:5px;flex-wrap:wrap;margin:13px 0}.delivery-slip{background:#fff;border:1px solid #e0d8e6;border-radius:4px;padding:6px 8px;font:10px var(--mono);color:#887396}.delivery-slip.duplicate{border-style:dashed;color:#b17f68;background:#fff8f3}.experiment-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.run-button{background:#7d698c;border:0;border-radius:5px;padding:8px 13px;color:white;font-size:11px;display:flex;gap:6px;align-items:center}.subtle-button{border:0;background:none;color:#9c8ba6;font-size:10px;padding:5px 0}.trace-result{margin-top:13px;padding-top:13px;border-top:1px solid #e4dce9}.trace-output-label{font-size:9px;letter-spacing:1px;color:#9b8ba5;margin-bottom:8px}.schedule-items{display:flex;flex-direction:column;gap:4px}.schedule-item{display:flex;gap:10px;font-size:11px;color:#7d6a89;align-items:center}.schedule-item code{font:9px var(--mono);color:#a393ad;min-width:50px}.trace-summary{font-size:11px;margin:10px 0;color:#725980;line-height:1.6}.trace-controls{display:flex;gap:9px;align-items:center;justify-content:space-between;font-size:10px;color:#9b8aa8}.trace-state{font:10px/1.7 var(--mono);overflow-wrap:anywhere;background:#ffffff80;padding:8px 10px;margin-top:9px;border-radius:5px;color:#7c6b88}.proof-facts{font-size:12px;line-height:1.8;color:#776d83}.proof-facts code{background:#fff;padding:3px 7px;border-radius:4px;color:#705a82}.source-footnote{display:flex;gap:9px;font-size:10px;line-height:1.7;color:#a399a5;padding:14px 5px}.source-footnote>span:first-child{font-size:15px;color:#b4a1c2}.source-footnote>span:last-child{max-width:480px}
.story-column{min-width:0}.story-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:1px}.story-eyebrow{font-size:8px;letter-spacing:1.4px;color:#a59392}.story-heading h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:29px;letter-spacing:-.8px;margin:7px 0 6px}.story-heading p{font-size:12px;color:#8b8186;margin:0;line-height:1.5}.save-button{border:1px solid #e8e2dc;background:#fffdf9;border-radius:50%;width:31px;height:31px;font-size:18px;color:#aa9796;flex-shrink:0}.story-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:15px 0 18px}.story-tags{display:flex;gap:5px;flex-wrap:wrap}.tag{background:#eeebf2;border:1px solid #e9e4ee;color:#9b89a6;font-size:9px;padding:4px 7px;border-radius:4px}.provenance{font-size:9px;color:#a39aa0;text-align:right}.manga-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.manga-panel{padding:0;border:1px solid #dcd5cc;background:#fffdfa;border-radius:7px;overflow:hidden;box-shadow:0 2px 4px #2e202507;text-align:left;position:relative;display:flex;flex-direction:column;transition:border-color .16s,box-shadow .16s,transform .16s;min-width:0}.manga-panel:hover{box-shadow:0 4px 15px #4e273514;filter:none!important;transform:translateY(-2px)}.manga-panel.selected{border-color:var(--accent);box-shadow:0 0 0 2px #eb876332}.manga-art{width:100%;aspect-ratio:1.5;background-repeat:no-repeat;background-size:200% 200%;position:relative;overflow:hidden;background-color:#eae2d8}.proof-mode .manga-art{aspect-ratio:1.16}.manga-panel .panel-number{position:absolute;top:9px;left:9px;background:#fffaf0eb;border:1px solid #ffffffcc;border-radius:4px;color:#675c57;font:10px var(--mono);padding:4px 6px;box-shadow:0 1px 4px #0001}.panel-line-ref{position:absolute;right:8px;bottom:7px;background:#27202cb8;color:#fffaf1;padding:4px 5px;border-radius:3px;font:8px var(--mono);backdrop-filter:blur(6px)}.panel-caption{padding:12px 13px 13px;flex:1;display:flex;flex-direction:column}.panel-speaker{font-size:8px;color:#a09291;letter-spacing:1.1px;font-weight:650;margin-bottom:5px}.panel-dialogue{font-family:Georgia,'Times New Roman',serif;font-size:14px;line-height:1.45;letter-spacing:-.15px;color:#51434b}.panel-title{font-size:8px;letter-spacing:.7px;text-transform:uppercase;color:#b3a6a7;margin-top:10px}.source-explanation{margin-top:14px;border-left:2px solid #d3bfdc;padding:4px 0 4px 13px}.explanation-head{font-size:9px;color:#9c86a8;letter-spacing:1px;margin-bottom:5px;display:flex;justify-content:space-between;gap:8px}.source-explanation p{font-size:12px;line-height:1.7;color:#827589;margin:0}.source-explanation code{background:#eeebf2;color:#826a95;font:10px var(--mono);padding:1px 4px;border-radius:3px}.challenge-card{margin-top:22px;padding:18px 20px;border:1px solid #eadfd2;border-radius:9px;background:#f5f0e7}.challenge-eyebrow{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:1px;color:#ad967f;margin-bottom:9px}.challenge-card h3{font-family:Georgia,serif;font-weight:400;font-size:16px;line-height:1.45;margin:0 0 13px;color:#6d5a50}.challenge-choices{display:flex;gap:8px}.challenge-choice{flex:1;font-size:11px;line-height:1.5;padding:9px 10px;text-align:left;background:#fffdfa;border:1px solid #e5d9cc;border-radius:5px;color:#8e7765;display:flex;gap:7px;align-items:flex-start}.challenge-choice span{font-size:9px;color:#b7a392;background:#f5eee7;border-radius:3px;padding:1px 4px;margin-top:1px}.challenge-choice.correct{background:#e9f0e7;border-color:#9eb899;color:#55764e}.challenge-choice.incorrect{background:#fbede4;border-color:#d3a68f;color:#aa7258}.challenge-feedback{font-size:11px;line-height:1.7;color:#8d785f;margin:11px 0 0}.reader-footer{display:flex;justify-content:space-between;font-size:10px;color:#b3a7a6;margin-top:19px;padding-bottom:8px}.footer-spark{color:#d4b0a1}.site-footer{max-width:1392px;margin:42px auto 0;padding:21px 26px 27px;border-top:1px solid #eae5de;display:flex;gap:10px;justify-content:space-between;font-size:10px;color:#b1a6aa}.footer-muted{margin-left:12px;color:#b9afb1}
.empty-state{grid-column:1/-1;border:1px dashed #dcceda;border-radius:12px;min-height:385px;padding:40px 25px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#f6eee6,transparent)}.empty-spark{font-family:Georgia,serif;font-size:65px;color:#e7b6a3;margin-bottom:10px}.empty-state h3{font:25px Georgia,serif;margin:0 0 12px;color:#826e7d}.empty-state p{font-size:12px;max-width:300px;line-height:1.8;color:#a2909e;margin:0}.art-pending{background:linear-gradient(125deg,#e9e3ed,#f3e8dc);display:flex;align-items:center;justify-content:center;color:#bea7bb;font-size:42px}.art-pending::before{content:'✦'}.art-pending .panel-number{font-size:10px}.manga-panel.text-panel .manga-art{aspect-ratio:2.8}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#302b37;color:#fff9f1;padding:12px 20px;border-radius:8px;font-size:12px;line-height:1.5;z-index:100;max-width:min(90vw,600px);box-shadow:0 4px 25px #36234225}.primary-button{border:0;background:var(--accent);color:white;border-radius:7px;padding:12px 18px;font-size:12px;font-weight:600}.primary-button span{margin-left:12px}dialog{border:1px solid #e5dad9;border-radius:16px;padding:29px 32px;background:#fffdf9;color:var(--ink);width:min(470px,calc(100vw - 30px));max-height:calc(100dvh - 40px);box-shadow:0 18px 80px #35253524}dialog::backdrop{background:#2e253b55;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}dialog h2{font:32px/1.15 Georgia,serif;letter-spacing:-1px;margin:0 0 13px}dialog p{font-size:13px;line-height:1.7;color:#968793;margin:0 0 19px}.field-label{display:block;font-size:12px;color:#8e7e8b;margin-bottom:7px}#api-key{width:100%;border:1px solid #e0d5df;border-radius:6px;padding:11px;font:12px var(--mono);background:white}.field-help{font-size:10px!important;line-height:1.7!important;color:#a79aa6!important;margin-top:7px!important;display:block}.checkbox-row{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:#857087;padding:12px 0}.checkbox-row input{accent-color:var(--accent);margin-top:3px}.checkbox-row .field-help{margin:4px 0!important}.provider-note{font-size:11px!important;background:#f4eff4;border-radius:7px;padding:12px;margin-top:7px!important}.dialog-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px;align-items:center}.how-steps{padding-left:24px;font-size:13px;color:#b49daf;margin:25px 0}.how-steps li{padding-left:6px;margin:18px 0}.how-steps strong{display:block;font-weight:600;color:#80687d;margin-bottom:5px}.how-steps span{font-size:12px;line-height:1.7;color:#a38da0}.how-note{background:#f4eff4;padding:14px;border-radius:7px;font-size:11px;line-height:1.8;color:#91788e;margin:20px 0}
@media(min-width:1440px){.code-line{font-size:13px}.panel-dialogue{font-size:15px}.panel-caption{padding:14px 16px 15px}}@media(max-width:1120px){.site-header{padding:22px 28px}.workspace{gap:22px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.workspace-note{display:none}.code-line{font-size:11px}.control-row{gap:9px}.control-row label{display:block}.control-row select{margin-top:5px}.intro-note{padding-right:15px}.manga-grid{gap:10px}.panel-caption{padding:10px}.panel-dialogue{font-size:13px}.story-heading h2{font-size:27px}.brand-caption{display:none}}@media(max-width:820px){.workspace{grid-template-columns:1fr;gap:30px}.source-column{position:static}.code-view{min-height:0}.code-line{font-size:13px}.intro{padding:28px 0}.intro-note{display:none}.story-heading h2{font-size:32px}.manga-art{aspect-ratio:1.5}.panel-dialogue{font-size:16px}.panel-caption{padding:15px}.source-card{max-width:none}.experiment-card{margin-top:14px}.control-row label{display:flex}.control-row select{margin-top:0}.source-footnote{padding-bottom:0}.tab-kind{display:none}.example-tabs{gap:20px}.example-tab{font-size:12px}.source-column{scroll-margin-top:15px}.story-column{scroll-margin-top:15px}}@media(max-width:480px){main{padding:0 17px}.site-header{padding:18px 17px}.brand{font-size:23px}.site-header nav{gap:15px}.site-header .quiet{display:none}.connection{padding:8px 10px;font-size:10px}h1{font-size:37px;letter-spacing:-1.8px}.intro p{font-size:12px}.eyebrow{font-size:9px}.example-tabs{gap:13px;justify-content:space-between;width:100%}.example-tab{font-size:10px;gap:4px}.tab-icon{font-size:12px}.example-tab.own-tab{font-size:10px}.workspace-top{margin-bottom:19px}.manga-grid{gap:9px}.panel-caption{padding:10px}.panel-dialogue{font-size:13px}.manga-art,.proof-mode .manga-art{aspect-ratio:1.05}.panel-title{font-size:7px;letter-spacing:.4px}.story-heading h2{font-size:29px}.story-meta{gap:7px}.provenance{font-size:8px}.challenge-choices{flex-direction:column}.code-line{font-size:11px;padding-left:5px}.line-num{min-width:26px;padding-right:10px}.source-actions{gap:4px}.section-toolbar{padding:12px}.generation-controls{padding:13px}.control-row label{font-size:9px}.generation-under{font-size:8px}.source-footnote{font-size:9px}.site-footer{padding:19px 17px;flex-direction:column;gap:8px}.site-footer>span:last-child{display:none}dialog{padding:23px}.experiment-actions{gap:10px}.challenge-card{padding:15px}.source-explanation p{font-size:11px}.panel-number{top:6px!important;left:6px!important}.panel-line-ref{font-size:7px;right:5px;bottom:5px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Essential reading text keeps sufficient contrast on the warm paper. */
.generation-under{color:#807580}.source-footnote{color:#827587}.provenance{color:#827782}.panel-speaker{color:#81707b}.panel-title{color:#95818b}.story-heading p{color:#786b77}.source-explanation p{color:#716279}.tag{color:#796586}.experiment-description{color:#7a6a84}.source-footer{color:#7c6c82}.code-line .syntax-comment{color:#807486}.field-help{color:#837386!important}.site-header .quiet{color:#756676}
@media(max-width:820px){.workspace{display:flex;flex-direction:column}.source-column,.story-column{width:100%}.source-column{order:2}.story-column{order:1}.workspace.custom-mode .source-column{order:0}.source-column{scroll-margin-top:18px}}
@media(max-width:480px){.source-actions{gap:5px}.source-actions .small-button{font-size:9px;padding:6px}.file-title{font-size:10px}}
/* The Fermat journey: a readable route into a large formal repository. */
.course-journey{margin:0 0 28px;padding:21px 23px 0;background:#f1edf5;border:1px solid #e3dcea;border-radius:12px}.journey-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.journey-heading .eyebrow{font-size:8px;color:#806d90}.journey-heading h2{font:24px/1.3 Georgia,serif;letter-spacing:-.5px;margin:6px 0;color:#51425b}.journey-heading p{font-size:12px;margin:0;color:#7c6b89;line-height:1.5}.journey-progress{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:9px;font-size:10px;color:#806d8c}.journey-progress a{font-size:10px;color:#755685;text-underline-offset:4px}.chapter-path{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:20px 0}.chapter-stop{display:flex;gap:9px;align-items:center;text-align:left;padding:13px 10px;border:1px solid #ddd4e6;border-radius:7px;background:#ffffff65;color:#796d83;min-width:0}.chapter-stop.active{background:#fff;border-color:#b796c8;box-shadow:0 2px 9px #6b37860b;color:#533f61}.stop-number{font:11px var(--mono);flex-shrink:0;color:#9b84aa}.chapter-stop.active .stop-number{color:#db7255}.chapter-stop strong{display:block;font-size:10px;line-height:1.4;font-weight:600}.chapter-stop small{display:block;font-size:8px;color:#928299;margin-top:4px;line-height:1.3}.chapter-stop.complete .stop-number{color:#4b7d5b}.reading-bar{padding:13px 0;display:flex;align-items:center;gap:15px;border-top:1px solid #dfd6e6;font-size:10px;color:#887493}.depth-arrow{margin-left:5px;color:#b08fbc}.reading-levels{display:flex;gap:5px}.reading-levels button{background:transparent;border:1px solid transparent;border-radius:5px;color:#877391;font-size:11px;font-weight:600;padding:8px 11px;white-space:nowrap}.reading-levels button span{font-size:9px;font-weight:400;margin-left:6px;color:#96839f}.reading-levels button.active{background:#fff;border-color:#e4dce9;box-shadow:0 1px 3px #44205006;color:#69477c}.reading-bar>span:last-child{margin-left:auto;font-size:10px}.case-notes{margin-bottom:17px;border:1px solid #e8dfd4;border-radius:10px;padding:19px 20px;background:#f7f1e6}.case-notes .eyebrow{font-size:8px;color:#9b7e62}.case-notes h3{font:20px/1.4 Georgia,serif;font-weight:400;color:#695346;letter-spacing:-.4px;margin:8px 0 15px}.case-notes dl{margin:0}.case-notes dl>div+div{margin-top:11px}.case-notes dt{font-size:11px;font-weight:600;color:#77614e;margin-bottom:4px}.case-notes dd{font-size:11px;line-height:1.65;color:#8a745e;margin:0}.metaphor-note{margin-top:16px;padding-top:12px;border-top:1px solid #e7d9c7;font-size:10px;color:#8f795f;line-height:1.6}.metaphor-note summary{cursor:pointer}.metaphor-note p{margin-bottom:0}.repository-source{display:flex;justify-content:space-between;gap:10px;padding:11px 14px;background:#f6f3f9;border-bottom:1px solid #e7e0ec;font-size:10px;line-height:1.5;color:#9a85a5}.repository-source a{color:#846494;text-decoration:none}.repository-source a:hover{text-decoration:underline}.course-mode .code-view{min-height:0;max-height:410px;padding:15px 0}.course-mode .code-line{white-space:pre-wrap;min-width:0;align-items:baseline;font-size:11px}.course-mode .code-content{min-width:0;overflow-wrap:anywhere;line-height:1.8}.course-mode .line-num{min-width:36px}.course-mode .source-column{position:static}.course-mode .proof-mode .manga-art{aspect-ratio:1.24}.course-mode .generation-controls{padding:12px 15px}.course-mode .source-card .control-row{margin-bottom:11px}.course-mode .source-card .generate-button{padding:10px}.course-mode .file-title{font-size:10px}.course-mode .source-actions #upload-button{display:none}.dependency-links{display:flex;flex-direction:column;gap:7px}.dependency-links a{font-size:11px;line-height:1.6;color:#755880;display:flex;justify-content:space-between;gap:12px;text-decoration:none;border:1px solid #e3d9e9;border-radius:6px;background:#ffffff80;padding:9px 11px}.dependency-links a:hover{background:#fff}.power-choices{display:flex;gap:6px}.power-choices button{flex:1;background:#ffffff60;border:1px solid #e1d7e8;color:#8f76a0;border-radius:5px;padding:7px;font-size:11px}.power-choices button.active{background:#fff;border-color:#b493c6;color:#6f4785}.power-result{margin-top:18px;text-align:center}.power-equation{font:28px Georgia,serif;color:#695477}.power-equation sup{font-size:14px}.power-equation>span{color:#dd8166}.power-values{font:11px var(--mono);margin:12px 0;color:#88719a}.power-result p{font-size:11px;line-height:1.7;color:#867192;margin:0}.chapter-next{margin-top:20px;padding:20px;border:1px solid #e1d9e8;border-radius:9px;background:#f2edf6}.chapter-next .eyebrow{font-size:8px;color:#9a83a6}.next-copy p{font:16px/1.6 Georgia,serif;color:#7d628b;margin:7px 0 15px}.next-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.next-actions .primary-button{font-size:11px;background:#856793;padding:11px 14px}.completion-note{font-size:9px;color:#94819f;line-height:1.6;margin:12px 0 0}.workspace-top{overflow-x:auto}.example-tabs{gap:22px}.workspace-note{display:none}.workspace{scroll-margin-top:20px}
@media(max-width:1120px){.chapter-stop{padding:11px 8px;gap:6px}.chapter-stop strong{font-size:9px}.reading-bar>span:last-child{display:none}.example-tabs{gap:19px}.example-tab{font-size:11px}.journey-heading h2{font-size:22px}}
@media(max-width:820px){.course-journey{padding:17px 17px 0}.chapter-path{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:16px 0}.chapter-stop strong{font-size:11px}.chapter-stop small{font-size:9px}.chapter-stop{padding:12px 10px;gap:10px}.journey-heading{align-items:flex-start}.journey-heading h2{font-size:22px}.journey-progress{font-size:9px;gap:7px}.journey-progress a{font-size:9px}.journey-heading p{font-size:11px}.course-mode .proof-mode .manga-art{aspect-ratio:1.1}.case-notes h3{font-size:21px}.course-mode .code-line{font-size:12px}.example-tabs{width:max-content;min-width:100%}.example-tabs .tab-kind{display:none}.example-tab{font-size:11px;flex-shrink:0}.course-mode .source-actions #upload-button{display:initial}}
@media(max-width:480px){.intro{padding:25px 0}.intro p{line-height:1.7;max-width:310px}.course-journey{padding:16px 13px 0;margin-bottom:23px}.journey-heading{display:block}.journey-heading h2{font-size:23px;line-height:1.3;max-width:270px;margin-top:7px}.journey-progress{flex-direction:row;align-items:center;justify-content:space-between;margin-top:13px;gap:4px;font-size:8px}.journey-progress a{font-size:8px}.chapter-path{gap:6px;margin:14px 0}.chapter-stop{padding:10px 7px;gap:6px;align-items:flex-start}.chapter-stop strong{font-size:9px}.chapter-stop small{font-size:8px}.stop-number{font-size:9px;padding-top:2px}.reading-bar{display:block;padding:11px 0}.reading-bar>span:first-child{display:block;font-size:9px;margin-bottom:7px}.reading-levels{width:100%;gap:4px}.reading-levels button{flex:1;padding:7px 6px;font-size:11px}.reading-levels button span{display:block;font-size:8px;margin:3px 0 0}.example-tabs{gap:19px;justify-content:flex-start}.example-tabs .example-tab{font-size:11px;padding-bottom:12px}.course-mode .code-line{font-size:10px}.course-mode .manga-grid{gap:9px}.course-mode .proof-mode .manga-art{aspect-ratio:1}.course-mode .panel-dialogue{font-size:13px;line-height:1.5}.course-mode .story-heading h2{font-size:28px}.course-mode .story-meta{align-items:flex-start}.course-mode .provenance{max-width:95px;font-size:8px}.course-mode .tag{font-size:8px}.repository-source{font-size:9px}.next-copy p{font-size:15px}.case-notes{padding:17px}.course-mode .source-actions #upload-button{display:none}}
/* Four acts keep the first visit small; the atlas provides optional depth. */
.journey-invitation{display:flex;gap:25px;align-items:center;padding:16px 0 20px}.journey-invitation p{font-size:12px;line-height:1.7;max-width:680px;margin:0;color:#716079}.journey-invitation button{flex-shrink:0;font-size:11px;background:#866c97}.act-path{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.act-stop{display:flex;flex-direction:column;text-align:left;gap:7px;background:#fbf9fc;border:1px solid #e6deec;border-radius:8px;padding:15px;color:#786784;min-width:0}.act-stop.active{background:#ede4f4;border-color:#9c7caf;box-shadow:inset 0 3px #9c7caf}.act-stop>span{font:9px var(--mono);letter-spacing:.1em}.act-stop strong{font-size:13px;line-height:1.4}.act-stop small{font-size:10px;color:#8b7797}.act-promise{font-size:11px;line-height:1.7;color:#897794;margin:16px 0 0}.chapter-path{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.proof-atlas{border-top:1px solid #e6deec;padding:17px 0;color:#766481}.proof-atlas>summary{cursor:pointer;font-size:13px;font-weight:600}.proof-atlas>summary small{display:inline-block;margin-left:15px;font-size:10px;font-weight:400;color:#9b87a7}.atlas-intro{display:flex;align-items:center;gap:20px}.atlas-intro p{font-size:12px;line-height:1.7;max-width:730px}.atlas-intro button{flex-shrink:0}.atlas-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}.atlas-controls label{font-size:11px;display:flex;flex-direction:column;gap:6px}.atlas-controls input,.atlas-controls select{width:100%;min-width:0;background:white;border:1px solid #ddd3e4;border-radius:6px;padding:11px;font:12px inherit;color:#65506f}.atlas-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;align-items:start}.atlas-results,.atlas-relations{display:flex;flex-direction:column;gap:6px;max-height:450px;overflow:auto}.atlas-node{padding:11px;text-align:left;border:1px solid #e9e2ee;border-radius:5px;background:#ffffffb0;color:#796387;min-width:0}.atlas-node:hover{background:#ece3f3}.atlas-node strong{display:block;font-size:11px;line-height:1.5}.atlas-node small,.atlas-name{display:block;font:9px/1.7 var(--mono);overflow-wrap:anywhere;color:#9a85a6;margin-top:4px}.atlas-small{font-size:10px;line-height:1.8;color:#8d7a99}.atlas-detail{border:1px solid #ded3e8;border-radius:8px;background:#fff;padding:18px;min-width:0}.atlas-detail h3{font:21px/1.4 Georgia,serif;margin:10px 0}.atlas-source-links{display:flex;gap:18px;margin:15px 0;font-size:11px}.atlas-source-links a{color:#866696}.atlas-detail .primary-button{font-size:11px;background:#876d98;white-space:normal;line-height:1.5}.atlas-detail details{margin-top:18px}.atlas-detail summary{font-size:12px;cursor:pointer;margin-bottom:12px}.atlas-relations{max-height:260px}.atlas-relations p{font-size:11px;line-height:1.7}.atlas-pagination{display:flex;gap:6px;align-items:center;justify-content:space-between;margin:12px 0;font-size:10px}.atlas-code{background:#f6f2f8;border:1px solid #e7deed;border-radius:6px;padding:12px;max-height:300px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:10px/1.7 var(--mono);color:#64516e}.course-mode .file-title{min-width:0}.course-mode #filename{overflow-wrap:anywhere;min-width:0}.course-mode .section-toolbar{align-items:flex-start}.course-mode .source-actions{flex-shrink:0}.atlas-controls :focus-visible,.act-stop:focus-visible,.atlas-node:focus-visible{outline:2px solid #9477a4;outline-offset:3px}
@media(max-width:820px){.act-path{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-invitation{display:block}.journey-invitation button{margin-top:12px}.atlas-layout{grid-template-columns:minmax(0,1fr)}.atlas-results{max-height:230px}.atlas-controls{grid-template-columns:minmax(0,1fr)}.atlas-intro{display:block}.proof-atlas>summary small{display:block;margin:7px 0 0}.atlas-detail{padding:13px}.chapter-path{grid-template-columns:repeat(2,minmax(0,1fr))}.act-stop{padding:12px}.act-stop strong{font-size:12px}.act-promise{font-size:10px}.journey-heading h2{max-width:100%}}

/* Japanese prose stays readable; Lean identifiers retain their spelling. */
:root{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif}body{line-height:1.75}button,input,select,textarea{font-family:inherit}.intro h1{line-height:1.3;letter-spacing:-.04em}.dialogue,.panel-note,.course-explanation,.reader-terms p{line-height:1.8;line-break:strict}.chapter-button,.act-button{line-height:1.55}.atlas-node strong,.atlas-name,.atlas-node small{overflow-wrap:anywhere;word-break:normal}.atlas-small{line-height:1.8}.source-language{font-size:12px;color:var(--muted)}

.panel-dialogue{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.75}.challenge-card h3{line-height:1.7}.act-stop,.chapter-stop{line-height:1.6}
/* Bilingual, static publication and an interactive proof workshop. */
.hero-main{font:inherit!important;color:inherit!important}.language-switch{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:7px;background:#fff}.language-switch button{border:0;background:none;border-radius:4px;padding:7px 10px;font-size:12px}.language-switch [aria-pressed=true]{background:var(--lilac);color:#655078;font-weight:700}.source-footnote{display:block}.source-footnote summary{cursor:pointer}.source-footnote p{margin-top:8px}.draft-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px}.draft-actions span{font-size:11px;color:#896449}.source-guide{margin-top:18px;background:#fff9ef;border:1px solid #eadfc9;border-radius:12px;padding:20px}.guide-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.difficulty-pill{border:1px solid #dfd5c7;border-radius:20px;padding:4px 8px;font-size:10px;color:#8b6e45}.source-guide h3{font-size:15px}.source-guide p{font-size:13px;line-height:1.85}.source-guide small,.source-guide details{color:#8b785f;font-size:11px}.source-guide details p{font-size:11px}.guide-try{margin-top:18px;border-top:1px solid #e8dfd2;padding-top:14px;display:flex;flex-direction:column;gap:10px;font-size:12px}.guide-try button{align-self:flex-start}.practice-heading{max-width:760px;margin:30px 0}.practice-heading h2{font:400 38px/1.35 Georgia,"Yu Mincho",serif;margin:8px 0}.practice-heading p{font-size:14px;color:var(--muted)}.lesson-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:24px}.lesson-stop{display:flex;gap:12px;text-align:left;align-items:center;padding:13px;border:1px solid #ded7e5;border-radius:8px;background:#fff;font-size:13px;color:#776582}.lesson-stop span{font:11px var(--mono);color:#aa91ad}.lesson-stop.active{background:#eee8f5;border-color:#9f87b1;color:#453451}.lab-banner{display:flex;justify-content:space-between;gap:25px;align-items:center;background:#f3eee6;border:1px solid #e9dfd1;border-radius:12px;padding:25px 28px;margin-bottom:22px}.lab-banner h3{font:400 30px/1.4 Georgia,"Yu Mincho",serif;margin:7px 0}.lab-banner p{font-size:14px;color:#857264;max-width:800px;margin:0}.difficulty-meter{flex-shrink:0;color:#bd8151;font-size:21px;letter-spacing:4px;text-align:right}.difficulty-meter small{display:block;font-size:10px;letter-spacing:0;color:#998777}.lab-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}.lab-editor{min-width:0;border:1px solid #ded8e2;background:#fff;border-radius:12px;overflow:hidden}.lab-editor .section-toolbar strong{font-size:13px}.lab-local{font-size:10px;color:#9c929d;text-align:right;max-width:230px}.lab-declaration{white-space:pre-wrap;overflow-wrap:anywhere;padding:18px 22px;margin:0;background:#f3f0f8;color:#796184;font:12px/1.9 var(--mono);border-bottom:1px solid #e6dfed}#proof-input{width:100%;min-height:230px;resize:vertical;border:0;border-left:3px solid #a887b9;background:#fffdf9;padding:20px 22px;font:15px/1.9 var(--mono);color:#384256;tab-size:2;outline-offset:-3px}#proof-input:focus{background:#fffcf5}.lab-actions{display:flex;flex-wrap:wrap;gap:8px;padding:15px;border-top:1px solid #eee7ec}.lab-hint{margin:0 15px 15px;background:#fff1d9;border-left:3px solid #d6ab63;padding:13px;font-size:13px;color:#8a6a3b;line-height:1.8}.checker-scope{padding:16px;background:#f8f6fa;font-size:11px;color:#85758d}.checker-scope strong{font-weight:600}.checker-scope p{line-height:1.8;margin:6px 0 0}.term-shelf{padding:18px}.term-shelf h4{font-size:13px;margin:0 0 10px}.term-shelf>div{display:flex;flex-wrap:wrap;gap:6px}.term-chip{background:#fff;border:1px solid #ded5e5;border-radius:6px;padding:5px 8px;font:12px var(--mono);color:#816b8e}.term-chip[aria-pressed=true]{background:#eee6f5;border-color:#a689ba}.term-shelf p{font-size:13px;color:#817089;min-height:3em;line-height:1.85}.lab-stage{min-width:0}.coach-cast{display:flex;gap:8px;font-size:28px;justify-content:flex-end;height:38px}.coach-cast span{display:inline-block;transform:rotate(-5deg)}.coach-cast span:nth-child(2){transform:rotate(8deg)}.lab-verdict{display:flex;justify-content:space-between;gap:8px;padding:13px 17px;margin:8px 0 14px;border-radius:8px;background:#eee9f5;color:#725589;align-items:center}.lab-verdict strong{font-size:14px}.lab-verdict>span{font-size:11px}.lab-verdict.solved{background:#e5efdf;color:#4c7744}.lab-verdict.investigate{background:#fff0d9;color:#976936}.coach-bubble{padding:18px 20px;background:#fff;border:1px solid #e6dfe9;border-radius:12px 12px 12px 0}.coach-bubble strong,.pip-bubble strong{font-size:11px;letter-spacing:.5px;color:#957ba1}.coach-bubble p{font-size:14px;line-height:1.85;margin:8px 0}.coach-bubble small{font-size:11px;line-height:1.7;color:#a28969}.pip-bubble{margin:9px 0 18px 35px;border-radius:12px 12px 0 12px;background:#faf0df;padding:13px 17px}.pip-bubble p{font-size:12px;color:#987c57;margin:5px 0;line-height:1.8}.type-comparison{display:grid;gap:7px;margin:10px 0;font-size:12px;color:#8d7d8d}.type-comparison code{display:block;background:#f4eff7;padding:7px;border-radius:5px;color:#746080;font-family:var(--mono)}.goals-card{background:#fff;border:1px solid #e0dce7;border-radius:11px;overflow:hidden}.goals-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 17px;background:#f4f1f8;border-bottom:1px solid #e5dfed}.goals-heading h4{font-size:13px;margin:0}.goals-heading span{font-size:11px;color:#9b8da3}.proof-goal{padding:16px 20px;border-bottom:1px solid #eee9f0}.goal-number{display:block;font-size:9px;color:#ae9ab9;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.context-label{font-size:10px;color:#a197a6}.hypothesis{font:13px/1.9 var(--mono);color:#76818a;overflow-wrap:anywhere}.hypothesis code{font:inherit}.goal-target{display:flex;gap:10px;align-items:center;margin-top:12px;color:#5e4777;font:17px/1.7 var(--mono);overflow-wrap:anywhere}.goal-target>span{color:#cb9378}.goal-target code{font:inherit}.empty-context{font-size:11px;color:#aaa0ae;margin:5px 0}.no-goals{padding:27px;text-align:center;color:#6c9860;font-size:30px}.no-goals strong{display:block;font-size:18px}.no-goals p{font-size:12px;color:#8da182}.timeline h4{font-size:12px;color:#9d8da4;margin:18px 0 10px}.proof-step{display:flex;align-items:center;gap:12px;width:100%;background:#fcfafc;border:1px solid #e8e1ec;border-radius:6px;margin:5px 0;padding:9px 12px;text-align:left;min-width:0}.proof-step span{font:10px var(--mono);color:#ad9eb7;min-width:26px}.proof-step code{font:12px var(--mono);color:#847091;overflow-wrap:anywhere;min-width:0}.proof-step small{font-size:10px;color:#ae9fb6;margin-left:auto;white-space:nowrap}.proof-step.active{background:#eee6f4;border-color:#b49ac5}.step-error{padding:10px;font-size:11px;color:#a07b48;line-height:1.7}.checkpoint-note,.lab-disclaimer{font-size:10px;color:#a095a7;line-height:1.8;margin:14px 4px}.code-view{max-height:380px}.source-footnote a{font-size:11px;color:#887395}.lab-stage code{overflow-wrap:anywhere}.source-column{position:static}.story-column{scroll-margin-top:20px}#practice-page{scroll-margin-top:24px}button{touch-action:manipulation}
@media(max-width:820px){.lab-grid{grid-template-columns:1fr}.lab-stage{grid-row:1}.lab-grid{gap:18px}.coach-cast{display:none}.lesson-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-banner{padding:20px}.practice-heading h2{font-size:30px}.lab-banner h3{font-size:26px}.lab-declaration{padding:15px}.lab-grid{display:flex;flex-direction:column}.lab-editor,.lab-stage{width:100%}.lab-stage{order:1}.lab-editor{order:0}}
@media(max-width:480px){.site-header nav{gap:8px}.language-switch button{font-size:10px;padding:6px 8px}.language-switch{gap:0}.brand{font-size:22px}.example-tabs{justify-content:flex-start;gap:24px}.example-tab{font-size:11px}.intro h1{font-size:32px}.lesson-picker{gap:7px}.lesson-stop{padding:10px 8px;font-size:11px;gap:7px}.lab-banner{align-items:flex-start;flex-direction:column;gap:10px}.difficulty-meter{font-size:17px;text-align:left}.difficulty-meter small{display:inline-block;margin-left:12px}.lab-banner h3{font-size:25px}.lab-banner p{font-size:12px}.lab-local{max-width:160px;font-size:9px}#proof-input{font-size:14px;min-height:195px}.guide-heading{flex-wrap:wrap}.lab-verdict{padding:12px}.lab-verdict strong{font-size:12px}.lab-verdict>span{font-size:10px}.coach-bubble p{font-size:13px}.lab-actions .small-button{font-size:10px}.term-shelf p{font-size:12px}.goal-target{font-size:16px}.site-header{padding:16px 17px}}
@media(max-width:820px){.lab-grid{display:grid;gap:0}.lab-editor{display:contents}.lab-editor>.section-toolbar{grid-row:1;border:1px solid #e4dce9;border-radius:10px 10px 0 0}.lab-declaration{grid-row:2;border-left:1px solid #e4dce9;border-right:1px solid #e4dce9}#proof-input{grid-row:3;border-right:1px solid #e4dce9}.lab-actions{grid-row:4;background:white;border:1px solid #e4dce9;border-radius:0 0 10px 10px}.lab-stage{grid-row:5;margin-top:16px}.lab-hint{grid-row:6;margin-top:12px}.checker-scope{grid-row:7;border-radius:10px}.term-shelf{grid-row:8;background:#fff;border:1px solid #e4dce9;border-radius:10px;margin-top:12px}.lab-editor>.sr-only{position:absolute}.lab-banner{margin-bottom:16px}}
