/* A readable project notebook: warm paper, figures, and a quiet margin outline. */
.artifact-page,.listing-page{--bg:#eee7d9;--ink:#17212a;--muted:#535e63;--line:#263e4b2b;--accent:#aa4f31;background:var(--bg);color:var(--ink);color-scheme:light}
.artifact-page .site-header,.listing-page .site-header{background:#eee7d9ee;border-bottom:1px solid #243d4b1a;backdrop-filter:blur(12px)}
.artifact-page .site-header nav,.listing-page .site-header nav{color:#17212a}.artifact-page .wordmark img,.listing-page .wordmark img{filter:brightness(0)}
.artifact-page a:hover,.listing-page a:hover,.artifact-page button:hover,.listing-page button:hover{color:#9f4429}
.artifact-page a:focus-visible,.listing-page a:focus-visible,.artifact-page button:focus-visible,.listing-page button:focus-visible,.artifact-page input:focus-visible,.listing-page input:focus-visible{outline-color:#285769}
.artifact,.listing{position:relative}.artifact{max-width:1320px;padding-right:10%}
.artifact-back,.case-back{color:#586269;font-size:20px}.artifact h1,.listing>h1{font-weight:650;letter-spacing:-.045em}
.artifact .course-label,.course-section>.course-code{color:#995239;font-weight:650}.artifact-intro,.listing-intro,.course-intro{color:#3c4a52;font-size:24px;line-height:1.6}
.artifact-top a{color:#244e60;border-color:#244e6055;font-weight:550}.artifact-top a:first-child{background:#2e4652;color:#fff7e8;padding:13px 20px;border:0;border-radius:4px}.artifact-top a:first-child:hover{background:#203742;color:#fff7e8}
.artifact-metrics{background:#e6dece;padding:28px;border:1px solid #c9beaa;gap:30px;border-radius:6px}.artifact-metrics strong{color:#9b492f;font-weight:650}.artifact-metrics span{color:#445059;font-size:20px}
.artifact-copy{max-width:1100px;display:grid;grid-template-columns:minmax(210px,.8fr) minmax(0,2fr);gap:0 50px;border-top:1px solid #bcb19d;padding-top:34px;margin:70px 0;scroll-margin-top:130px}
.artifact-copy h2{grid-column:1;grid-row:1 / span 12;align-self:start;position:sticky;top:135px;font-size:31px;font-weight:600;line-height:1.2;letter-spacing:-.7px}.artifact-copy p{grid-column:2;font-size:22px;color:#394952;line-height:1.75;margin-bottom:23px}.artifact-copy p:last-child{margin-bottom:0}.artifact-copy code{color:#285568}.artifact-copy .boundary{color:#57636b;font-size:20px;border-color:#b66945}
.case-figure{background:#faf6ed;border:1px solid #cdc3b1;border-radius:5px;overflow:hidden;box-shadow:4px 5px 0 #ded5c4}
.case-figure .image-link{padding:24px;background:#faf6ed}.case-figure.dark .image-link{background:#e2dbd0}.case-figure figcaption{color:#4a5861;font-size:20px;padding:20px 24px;margin:0;max-width:none;border-top:1px solid #ded5c4;line-height:1.55}.brand-figure{padding:34px}
.course-section{border-color:#bfb29b}.course-project-title{color:#995239}.course-section .text-link{color:#285466;border-color:#28546666;font-weight:600}
.approximation{border:1px solid #c9bda7;background:#faf6ed;border-radius:6px;padding:30px}.approximation>p{color:#44535d;font-size:21px}.approximation math{color:#253f50}.lab-controls label{color:#3d4e58}.lab-controls output{color:#a44c2e;font-weight:650}.lab-legend{color:#556570;font-size:20px}.approximation input[type=range]{accent-color:#b96543}
.course-checkpoints a{color:#263e4b}.checkpoint-tick{background:#a49a87}.course-checkpoints a.is-current .checkpoint-tick{background:#ac5836}.course-checkpoints a:hover .checkpoint-tick,.course-checkpoints a:focus-visible .checkpoint-tick{background:#2b6675}.checkpoint-name{background:#faf6ed;border-color:#c9bda7;color:#253d48;box-shadow:3px 3px 0 #d6ccba}
.article-outline{position:fixed;right:20px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;z-index:20;gap:8px}.article-outline a{position:relative;width:32px;height:32px;display:grid;place-items:center}.article-outline a:after{content:'';display:block;width:12px;height:3px;background:#ada28e;transition:width .2s,background .2s}.article-outline a.is-current:after{background:#ad5637;width:25px}.article-outline a:hover:after{width:28px;background:#295768}.article-outline span{position:absolute;right:42px;white-space:nowrap;font-size:20px;background:#faf6ed;padding:11px 15px;border:1px solid #c9bda7;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;transform:translateX(7px)}.article-outline a:hover span,.article-outline a:focus-visible span{opacity:1;transform:none}
.ecdsa-primitives div,.artifact-demo .transaction{color:#3c4a52}.ecdsa-primitives b{color:#9b4c33}.ecdsa-primitives code,.artifact-demo #signature-value,.artifact-demo .signature-status{color:#2c5262}.artifact-demo .demo-caption{color:#53616b;font-size:20px}.artifact-demo .transaction input{color:#223b48;background:#faf6ed;border-color:#c4b59b}.artifact-demo .signature-status.valid{color:#27683d}.artifact-demo .signature-status.invalid{color:#a5392d}
.solid-button{background:#314d5b;color:#fff8eb}.outline-button{color:#294a5a;border-color:#9cacae}.solid-button:hover{background:#223b48;color:#fff8eb!important}
.connect-four-copy p{color:#354e5b}#connect-four-search,.companion-caption{color:#536777}.connect-column-controls button{color:#345468}.connect-column-controls button:hover,.connect-column-controls button:focus-visible{color:#a14a31;background:#dccfbb}
.artifact footer,.listing footer{color:#58656c;border-color:#c5bcae;font-size:18px}
.artifact-page .tone-green,.listing-page .tone-green{--tech:#246445}.artifact-page .tone-rose,.listing-page .tone-rose{--tech:#ad3b5e}.artifact-page .tone-amber,.listing-page .tone-amber{--tech:#9b5b15}.artifact-page .tech-word,.listing-page .tech-word{text-shadow:none;font-weight:650}.artifact-page .skill-tags li,.listing-page .skill-tags li{font-size:18px;padding:7px 12px;background:color-mix(in srgb,var(--tech) 8%,transparent);border:1px solid color-mix(in srgb,var(--tech) 23%,transparent);text-shadow:none}
@media(max-width:850px){.artifact-copy{display:block}.artifact-copy h2{position:static;font-size:32px;margin-bottom:25px}.artifact-copy p{font-size:21px}.artifact{padding-right:70px}.artifact-metrics{gap:22px;padding:22px}.artifact-intro,.listing-intro,.course-intro{font-size:22px}.article-outline{right:10px}.article-outline span{max-width:230px;white-space:normal;width:max-content}.approximation{padding:22px 14px}.case-figure .image-link{padding:12px}.case-figure figcaption{padding:16px;font-size:19px}}
@media(max-width:600px){.artifact{padding-left:6%;padding-right:52px}.artifact-intro,.listing-intro,.course-intro{font-size:21px}.artifact-copy p{font-size:20px;line-height:1.7}.artifact h1{font-size:45px}.artifact-metrics{flex-direction:column;gap:24px}.artifact-metrics>div{min-width:0}.artifact-top{gap:18px}.artifact-top a{font-size:19px}.artifact-copy{margin:48px 0}.artifact-copy h2{font-size:30px}.case-figure{box-shadow:3px 3px 0 #ded5c4}.lab-legend{font-size:19px}.approximation>p{font-size:20px}}
.course-section,.artifact-copy,.artifact-demo{scroll-margin-top:20px}
