:root{--bone: #faf6ec;--paper: #ffffff;--ink: #141414;--rule: #1a1a1a;--muted: #5a5a5a;--coral: #ff5a4e;--cobalt: #1545c4;--mustard:#e8b53a;--sage: #7a8f4a;--plum: #5d2e5f;--display: "Bricolage Grotesque", "Inter", system-ui, sans-serif;--sans: "Inter", system-ui, sans-serif;--mono: "JetBrains Mono", Menlo, monospace;--max-width: 64rem;--gutter: 1.5rem}*,*::before,*::after{box-sizing:border-box}html{font-size:17px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased}.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--bone);padding:0.6rem 1rem;font-family:var(--sans);font-weight:600;text-decoration:none;z-index:100}.skip-link:focus{left:0}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}main:focus,main:focus-visible,body:focus,body:focus-visible{outline:none}.content-wrap{max-width:var(--max-width);margin:0 auto;padding:2.5rem var(--gutter) 3rem}.page-content>:first-child{margin-top:0}.page-content h1,.page-content h2,.page-content h3,.page-content h4{font-family:var(--display);color:var(--ink);line-height:1.05;letter-spacing:-0.02em;margin:2.4rem 0 0.6rem}.page-content h1{font-size:clamp(2rem, 4.5vw, 3rem);font-variation-settings:"opsz" 96, "wdth" 108, "wght" 700;margin-top:0.5rem;animation:heroRise 480ms cubic-bezier(0.2, 0.7, 0.2, 1) both}.page-content h2{font-size:clamp(1.45rem, 2.6vw, 1.85rem);font-variation-settings:"opsz" 48, "wdth" 105, "wght" 700}.page-content h3{font-size:1.18rem;font-variation-settings:"opsz" 24, "wdth" 100, "wght" 600}.page-content h4{font-size:0.95rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);font-variation-settings:"opsz" 14, "wdth" 100, "wght" 600;margin-top:1.6rem}@keyframes heroRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-content p{margin:0.7rem 0 1rem;max-width:42rem}.page-content ul,.page-content ol{padding-left:1.4rem;max-width:42rem}.page-content li{margin:0.35rem 0}a{color:var(--cobalt);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;text-decoration-style:dashed}a:hover,a:focus{color:var(--ink);text-decoration-style:solid;text-decoration-color:var(--coral)}.page-content code{font-family:var(--mono);font-size:0.9em;background:rgba(232,181,58,0.22);padding:0.1rem 0.35rem;border-radius:2px}.page-content pre{font-family:var(--mono);background:var(--ink);color:var(--bone);padding:1rem 1.1rem;border:2px solid var(--ink);overflow-x:auto;font-size:0.88em;line-height:1.55}.page-content pre code{background:transparent;padding:0;color:inherit}.page-content blockquote{border-left:4px solid var(--coral);margin:1.2rem 0;padding:0.4rem 1rem;color:var(--muted);background:transparent;font-style:italic}.page-content table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-family:var(--sans);font-size:0.95rem;border:2px solid var(--ink)}.page-content th,.page-content td{border:1px solid var(--ink);padding:0.55rem 0.7rem;text-align:left;vertical-align:top}.page-content th{background:var(--mustard);color:var(--ink);font-family:var(--display);font-variation-settings:"opsz" 14, "wdth" 100, "wght" 700;text-transform:uppercase;letter-spacing:0.04em;font-size:0.82rem}.page-content hr{border:0;height:4px;background-image:linear-gradient(90deg, var(--ink) 0 8px, transparent 8px 16px);background-size:16px 4px;background-repeat:repeat-x;margin:2rem 0}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;transition-delay:0s !important}}@media (max-width: 640px){html{font-size:16px}.content-wrap{padding:1.75rem var(--gutter) 2rem}}.site-header{background:var(--bone);border-bottom:2px solid var(--ink);padding:2.25rem var(--gutter) 1.75rem;position:relative;overflow:hidden}.header-content{max-width:var(--max-width);margin:0 auto;position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"plus titles" "nav  nav";column-gap:1.25rem;row-gap:1.25rem;align-items:center}.header-plus{grid-area:plus;position:relative;width:56px;height:56px;display:block;animation:plusTurn 18s linear infinite;flex-shrink:0}.header-plus::before,.header-plus::after{content:"";position:absolute;background:var(--coral)}.header-plus::before{left:50%;top:0;bottom:0;width:12px;transform:translateX(-50%)}.header-plus::after{top:50%;left:0;right:0;height:12px;transform:translateY(-50%)}@keyframes plusTurn{to{transform:rotate(360deg)}}.header-titles{grid-area:titles;min-width:0}.site-title-link{text-decoration:none;color:inherit;display:inline-block}.site-title-link:hover,.site-title-link:focus{color:inherit;text-decoration:none}.site-title{font-family:var(--display);font-variation-settings:"opsz" 96, "wdth" 110, "wght" 700;font-size:clamp(1.6rem, 3.6vw, 2.4rem);letter-spacing:-0.025em;margin:0 0 0.15rem;line-height:1;color:var(--ink);animation:none}.site-tagline{font-family:var(--sans);font-style:italic;margin:0;color:var(--muted);font-size:0.98rem;max-width:38rem}.site-nav{grid-area:nav;display:flex;flex-wrap:wrap;gap:1.5rem;border-top:1px dashed var(--ink);padding-top:1rem}.nav-link{font-family:var(--display);font-variation-settings:"opsz" 14, "wdth" 100, "wght" 600;font-size:0.95rem;letter-spacing:0.02em;color:var(--ink);text-decoration:none;position:relative;padding-bottom:8px;text-transform:uppercase}.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;width:0;background-image:linear-gradient(90deg, var(--coral) 0 6px, transparent 6px 12px);background-size:12px 3px;background-repeat:repeat-x;transition:width 380ms cubic-bezier(0.55, 0.06, 0.26, 1)}.nav-link:hover::after,.nav-link:focus::after,.nav-link.is-active::after{width:100%}.nav-link:hover,.nav-link:focus{color:var(--ink);text-decoration:none}@media (max-width: 640px){.header-plus{width:40px;height:40px}.header-plus::before{width:9px}.header-plus::after{height:9px}.site-nav{gap:1rem}.nav-link{font-size:0.85rem}}.weeks-grid{list-style:none;padding:0;margin:1.5rem 0 2rem;display:grid;grid-template-columns:repeat(4, 1fr);gap:0;border:2px solid var(--ink);background:var(--ink);max-width:none}.week-block{position:relative;background:var(--bone);margin:0;border:0;outline:1px solid var(--ink);transition:transform 220ms ease, box-shadow 220ms ease, z-index 0s linear 220ms}.week-block:hover{z-index:2;transform:translate(-3px, -3px);box-shadow:6px 6px 0 var(--ink);transition:transform 220ms ease, box-shadow 220ms ease}.week-block-link{display:flex;flex-direction:column;gap:0.25rem;padding:1.1rem 1rem 1rem;text-decoration:none;color:inherit;min-height:9.5rem}.week-block-link:hover,.week-block-link:focus{text-decoration:none;color:inherit}.week-num{font-family:var(--display);font-variation-settings:"opsz" 96, "wdth" 115, "wght" 700;font-size:2.6rem;line-height:1;letter-spacing:-0.04em}.week-kind{font-family:var(--display);font-variation-settings:"opsz" 14, "wdth" 100, "wght" 700;font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase}.week-theme{font-family:var(--sans);font-size:0.9rem;line-height:1.35;margin-top:auto}.week-date{font-family:var(--mono);font-size:0.72rem;margin-top:0.4rem;opacity:0.85}.week-block.is-color-coral{background:var(--coral);color:var(--ink)}.week-block.is-color-cobalt{background:var(--cobalt);color:var(--bone)}.week-block.is-color-mustard{background:var(--mustard);color:var(--ink)}.week-block.is-color-plum{background:var(--plum);color:var(--bone)}.week-block.is-async{background:var(--bone);color:var(--ink)}@media (max-width: 880px){.weeks-grid{grid-template-columns:repeat(2, 1fr)}.week-num{font-size:2.2rem}.week-block-link{min-height:8rem}}@media (max-width: 480px){.weeks-grid{grid-template-columns:1fr}.week-block-link{min-height:0;padding:0.85rem 1rem 1rem}}.video-embed{margin:1.5rem 0 2rem;max-width:56rem}.video-embed-frame{position:relative;aspect-ratio:16 / 9;background:var(--ink);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--coral);overflow:hidden}.video-embed-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-embed figcaption{margin-top:0.55rem;font-family:var(--mono);font-size:0.85rem;letter-spacing:0.03em;color:var(--muted)}.video-embed figcaption a{color:var(--ink);border-bottom:1.5px solid var(--coral);text-decoration:none}.video-embed figcaption a:hover{background:rgba(255,90,78,0.12)}.page-summary{font-family:var(--display);font-variation-settings:"opsz" 16, "wdth" 100, "wght" 500;font-size:clamp(1.15rem, 1.6vw, 1.35rem);line-height:1.45;color:var(--ink);max-width:64ch;margin:0.5rem 0 1.75rem;padding-left:1rem;border-left:4px solid var(--coral)}.schedule-list{list-style:none;padding:0;margin:1.5rem 0 2.5rem;display:grid;grid-template-columns:1fr;gap:1.1rem}.schedule-card{position:relative;padding:1.1rem 1.4rem 1.2rem;border:2px solid var(--ink);background:var(--paper);box-shadow:4px 4px 0 var(--ink)}.schedule-card.is-async{background:var(--bone);border-style:dashed;box-shadow:none}.schedule-card.is-color-coral{background:var(--coral);color:var(--ink)}.schedule-card.is-color-cobalt{background:var(--cobalt);color:var(--bone)}.schedule-card.is-color-mustard{background:var(--mustard);color:var(--ink)}.schedule-card.is-color-plum{background:var(--plum);color:var(--bone)}.schedule-card.is-color-cobalt a,.schedule-card.is-color-plum a{color:var(--mustard)}.schedule-card.is-color-cobalt .schedule-theme,.schedule-card.is-color-plum .schedule-theme,.schedule-card.is-color-cobalt .schedule-opener,.schedule-card.is-color-plum .schedule-opener{color:var(--bone)}.schedule-card-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.85rem;font-family:var(--mono);font-size:0.82rem;letter-spacing:0.05em;text-transform:uppercase;margin-bottom:0.2rem}.schedule-num{font-family:var(--display);font-size:1.6rem;font-variation-settings:"opsz" 18, "wdth" 100, "wght" 700;letter-spacing:0;text-transform:none}.schedule-kind{padding:0.1rem 0.5rem;border:1.5px solid currentColor}.schedule-card.is-async .schedule-kind{border-style:dashed}.schedule-date{opacity:0.85}.schedule-title{margin:0.15rem 0 0.35rem;font-family:var(--display);font-size:clamp(1.25rem, 2.2vw, 1.55rem);font-variation-settings:"opsz" 16, "wdth" 100, "wght" 600;line-height:1.15}.schedule-title a{color:inherit;text-decoration:none}.schedule-title a:hover{text-decoration:underline;text-decoration-thickness:2px}.schedule-theme{margin:0 0 0.55rem;font-style:italic;font-size:0.95rem;opacity:0.95}.schedule-opener{margin:0 0 0.7rem;font-size:1rem;line-height:1.5;max-width:70ch}.schedule-actions{margin:0;display:flex;flex-wrap:wrap;gap:0.9rem;font-family:var(--mono);font-size:0.85rem}.schedule-link{color:inherit;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:1px}.schedule-link:hover{background:rgba(0,0,0,0.06)}.schedule-link-deck{font-weight:700}@media (max-width: 600px){.schedule-card{padding:1rem 1.1rem 1.1rem;box-shadow:3px 3px 0 var(--ink)}.schedule-num{font-size:1.3rem}}.schedule-card.is-locked{opacity:0.62;background:var(--bone);color:var(--ink);box-shadow:none;border-style:dashed}.schedule-card.is-locked .schedule-theme,.schedule-card.is-locked .schedule-opener{color:var(--ink)}.schedule-soon{margin-left:auto;padding:0.1rem 0.55rem;border:1.5px dashed currentColor;font-family:var(--mono);font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase}.schedule-link.is-disabled{cursor:not-allowed;border-bottom-style:dashed;opacity:0.85}.schedule-link.is-disabled:hover{background:transparent}.week-block.is-locked{opacity:0.6;background:var(--bone) !important;color:var(--ink) !important}.week-block.is-locked:hover{transform:none;box-shadow:none}.week-block.is-locked .week-block-link{cursor:not-allowed}.week-soon{margin-top:0.4rem;align-self:flex-start;padding:0.1rem 0.5rem;border:1.25px dashed currentColor;font-family:var(--mono);font-size:0.65rem;letter-spacing:0.14em;text-transform:uppercase}.workshop-callout{position:relative;background:var(--paper);padding:1.1rem 1.35rem;margin:1.5rem 0;font-family:var(--sans);isolation:isolate}.workshop-callout strong{font-family:var(--display);font-variation-settings:"opsz" 14, "wdth" 100, "wght" 700;color:var(--cobalt)}.workshop-callout::before{content:"";position:absolute;inset:0;border:2px solid var(--ink);pointer-events:none}.workshop-callout::after{content:"";position:absolute;inset:4px;pointer-events:none;background:linear-gradient(90deg, var(--coral) 50%, transparent 0) repeat-x top left/16px 3px,linear-gradient(90deg, var(--coral) 50%, transparent 0) repeat-x bottom left/16px 3px,linear-gradient(0deg, var(--coral) 50%, transparent 0) repeat-y left top/3px 16px,linear-gradient(0deg, var(--coral) 50%, transparent 0) repeat-y right top/3px 16px;animation:stitchRun 18s linear infinite}@keyframes stitchRun{to{background-position:16px top, -16px bottom, left -16px, right 16px}}.workshop-callout a.btn,a.deck-link{display:inline-block;margin-top:0.6rem;padding:0.45rem 0.95rem;background:var(--coral);color:var(--ink);font-family:var(--display);font-variation-settings:"opsz" 14, "wdth" 100, "wght" 600;font-size:0.95rem;text-decoration:none;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);transition:transform 0.1s ease, box-shadow 0.1s ease}.workshop-callout a.btn:hover,a.deck-link:hover{transform:translate(-2px, -2px);box-shadow:5px 5px 0 var(--ink)}.workshop-callout a.btn:active,a.deck-link:active{transform:translate(1px, 1px);box-shadow:1px 1px 0 var(--ink)}.async-callout{position:relative;background:rgba(232,181,58,0.18);border:2px dashed var(--ink);padding:1.1rem 1.35rem;margin:1.5rem 0;font-family:var(--sans)}.async-callout strong{font-family:var(--display);font-variation-settings:"opsz" 14, "wdth" 100, "wght" 700;color:var(--ink)}.tag{display:inline-block;font-family:var(--display);font-variation-settings:"opsz" 14, "wdth" 100, "wght" 700;font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;padding:0.18rem 0.6rem;margin-right:0.4rem;border:2px solid var(--ink);background:var(--bone);color:var(--ink);white-space:nowrap}.tag-required{background:var(--cobalt);color:var(--bone)}.tag-light{background:var(--sage);color:var(--ink)}.tag-standard{background:var(--mustard);color:var(--ink)}.tag-deep{background:var(--plum);color:var(--bone)}.stitch-divider{height:4px;margin:2.25rem auto;max-width:100%;background-image:linear-gradient(90deg, var(--ink) 0 8px, transparent 8px 16px);background-size:16px 4px;background-repeat:repeat-x;animation:stitchDraw 1.4s 0.1s cubic-bezier(0.55, 0.06, 0.26, 1) both;width:100%;transform-origin:left center}@keyframes stitchDraw{from{transform:scaleX(0)}to{transform:scaleX(1)}}.site-footer{background:var(--bone);color:var(--ink);padding:2.5rem var(--gutter) 3rem;margin-top:4rem;border-top:2px solid var(--ink)}.footer-content{max-width:var(--max-width);margin:0 auto;font-family:var(--sans);font-size:0.9rem;line-height:1.55;position:relative}.footer-stitch{height:4px;margin:0 0 1.5rem;background-image:linear-gradient(90deg, var(--coral) 0 8px, transparent 8px 16px);background-size:16px 4px;background-repeat:repeat-x}.footer-copy{margin:0 0 0.6rem;color:var(--ink)}.footer-note{margin:0;color:var(--muted);font-style:italic;max-width:56rem}
