:root{--color-background:#FAFAF9;--color-primary-text:#182522;--color-secondary-text:#46574F;--color-accent:#006344;--color-dividers:#DDE2DF;--color-panel:#F4F4F2;--color-card:#FFFFFF;--color-code:#E6F0EC}@font-face{font-family:inter;src:url(../fonts/Inter.ttf)format("truetype");font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{max-width:calc(70rem + 4rem);margin:0 auto;padding:0 2rem;font-family:inter,system-ui,sans-serif;font-size:1.0625rem;line-height:1.5;color:var(--color-secondary-text);background:var(--color-background);display:flex;flex-direction:column;min-height:100svh}main{flex:1}a{color:inherit;text-decoration:underline;text-underline-offset:.15em}.skip-link,.site-title,.site-nav a,.site-footer a,.page-anchor,.katas a,.kata-pager a{text-decoration:none}@media(hover:hover){a:hover{color:var(--color-accent);text-decoration:underline}.site-nav a:hover,.site-footer a:hover{text-decoration:none;border-bottom-color:var(--color-accent)}}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:2;padding:.5rem 1rem;color:var(--color-primary-text);background:var(--color-card)}h1,h2{margin:0;color:var(--color-primary-text)}h1{font-weight:700;letter-spacing:-.025em}h2{font-weight:600;letter-spacing:-.02em}.site-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--color-dividers)}.site-title{display:inline-flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;line-height:3.85rem;letter-spacing:-.025em;color:var(--color-primary-text);margin-block:-.8rem}.site-menu{display:contents}.site-menu::details-content{display:contents;content-visibility:visible}.site-menu summary{display:none}.site-nav{display:flex;gap:2rem;font-weight:500;color:var(--color-primary-text)}.site-nav a,.site-footer a{padding:.25rem 0;border-block:2px solid transparent}.site-nav .active{border-bottom-color:var(--color-accent)}.eyebrow{margin:0 0 1rem;font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent)}.hero{display:grid;position:relative;grid-template-columns:minmax(0,3fr)minmax(0,2fr);gap:4rem;padding:1.875rem 0 2.5rem;border-bottom:1px solid var(--color-dividers)}.hero::after{content:"";position:absolute;left:50%;bottom:0;width:4.5rem;height:3.5rem;transform:translate(-50%,50%);background:var(--color-background)url(../icon-192.png)50%/3.5rem no-repeat}.hero h1{margin-bottom:1.5rem;font-size:3.25rem;line-height:1.08}.intro{margin:1rem 0 0}.how-to{align-self:center;padding-left:2rem;border-left:2px solid var(--color-accent)}.how-to p{margin:0 0 1.5rem}.how-to p:last-child{margin-bottom:0}.how-to strong{display:block;margin-bottom:.25rem;color:var(--color-primary-text)}.katas{padding-top:2.3125rem}main:has(>.not-found){display:grid;place-items:center}.not-found{padding:2.5rem 0;text-align:center}.not-found img{display:block;width:6rem;height:6rem;margin:0 auto 1.5rem}.not-found-code{margin:0 0 1.5rem;font-size:clamp(7rem,22vw,13rem);font-weight:700;line-height:1;letter-spacing:-.04em;color:var(--color-primary-text)}.not-found h1{font-size:2rem;line-height:1.2}.not-found .intro{max-width:34rem;margin-inline:auto}.katas h2,.katas h2+.page-anchor{margin-bottom:1.5rem;font-size:2rem;line-height:1.2}.katas table{width:100%;border-collapse:collapse}.katas thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.katas th,.katas thead td{padding:0 1rem 1rem 0;font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-align:left;text-transform:uppercase;color:var(--color-primary-text);border-bottom:1px solid var(--color-secondary-text)}.katas th:nth-child(1){width:4rem}.katas th:nth-child(2){width:20rem}.katas td{padding:1.125rem 1rem 1.125rem 0;border-bottom:1px solid var(--color-dividers)}.katas tbody tr:last-child,.katas tbody tr:last-child td{border-bottom:0}.kata-number{font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-accent)}.kata-title{font-weight:600;line-height:1.4;color:var(--color-primary-text)}.kata-behavior{font-size:.9375rem}.kata-arrow{text-align:right}.katas td.kata-arrow{padding-right:0}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:.25rem;padding:1.5rem 0;font-size:.8125rem;color:var(--color-primary-text);border-top:1px solid var(--color-dividers)}.site-footer svg{width:1em;height:1em;margin-right:.375rem;vertical-align:-.125em;fill:currentColor}.site-footer a:last-child{margin-left:auto}.site-footer .external::after{content:" ↗"/""}.page-intro{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,3fr);gap:4rem;padding:1.875rem 0 0}.page-intro h1{font-size:2.75rem;line-height:1.08}.page-lead{padding:1.5rem;background:var(--color-panel)}.page-lead p{margin:0 0 1rem;color:var(--color-primary-text)}.page-lead p:last-child{margin-bottom:0;font-weight:600;color:var(--color-accent)}.page-section{display:grid;gap:1.5rem;padding:2.5rem 0 0}.page-section:last-child{padding-bottom:1.5rem}.page-section h2,.page-section h2+.page-anchor{font-size:2rem;line-height:1.2}.anchored-heading{display:flex;align-items:baseline;gap:.5em}.page-anchor{font-weight:500;letter-spacing:-.02em;color:var(--color-accent)}@media(hover:hover){.page-anchor{opacity:0}.anchored-heading:hover .page-anchor,.page-anchor:focus-visible{opacity:1}}.page-body p{margin:0 0 1rem;line-height:1.6}.page-body p:last-child{margin-bottom:0}.page-body ul{padding-left:0;list-style:square inside}.page-body li::marker{color:var(--color-accent)}.kata{display:grid;grid-template-columns:minmax(0,2fr)minmax(0,3fr);gap:3rem;padding:2.5rem 0 1.5rem}.kata-pin{position:sticky;top:2.5rem}.kata-num{margin:0 0 1rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-accent)}.kata-main h1{font-size:2.75rem;line-height:1.08;text-wrap:balance}.kata-card{margin-top:1.5rem;padding:2rem;background:var(--color-card);border-top:4px solid var(--color-accent)}.kata-trigger p{margin:0;line-height:1.4;color:var(--color-primary-text);text-wrap:pretty}.kata-steps ol{margin:1.5rem 0 0;padding:0;list-style:none;counter-reset:step}.kata-steps li{position:relative;padding-left:2.25rem;counter-increment:step;color:var(--color-primary-text)}.kata-steps li+li{margin-top:.875rem}.kata-steps li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-accent)}.kata-steps em{font-style:normal;font-weight:700}.kata-principle{margin:1.5rem 0 0;font-weight:700;line-height:1.35;letter-spacing:-.02em;color:var(--color-accent);text-wrap:pretty}.kata-pager{display:flex;justify-content:space-between;grid-column:1/-1;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--color-dividers);font-size:.875rem;font-weight:500;color:var(--color-accent)}.kata-pager a[rel=next]{text-align:right}.kata-example h2{font-size:2rem;line-height:1.2;text-wrap:balance}.kata-story{max-width:40rem;margin-top:1.5rem}.kata-story p{margin:0 0 1rem;line-height:1.65}.kata-story>:last-child{margin-bottom:0}.kata-story h3{margin:2.5rem 0 1rem;font-size:1.375rem;line-height:1.3;letter-spacing:-.02em;color:var(--color-primary-text)}.kata-story blockquote{margin:1.5rem 0;padding:1rem 1.25rem;color:var(--color-primary-text);background:var(--color-card);border-left:3px solid var(--color-accent)}.kata-story blockquote p:last-child{margin-bottom:0}.kata-story blockquote ol,.kata-story blockquote ul{margin:0 0 1rem;padding-left:1.25rem}.kata-story blockquote li+li{margin-top:.5rem}.kata-story code{padding:.25em .4em;font-size:.85em;color:var(--color-accent);background:var(--color-code);border:1px solid var(--color-accent);border-radius:.5em;white-space:nowrap}@media(max-width:64rem){body{font-size:1rem}.hero{grid-template-columns:minmax(0,3fr)minmax(0,2fr);gap:3rem}.hero h1{font-size:2.5rem}.how-to{padding-left:1.5rem}.katas{padding-top:2.5rem}.katas h2,.katas h2+.page-anchor{font-size:1.625rem}.site-title{font-size:1.375rem}.site-footer{margin-top:.375rem}.page-intro h1{font-size:2.25rem}.eyebrow,.katas th,.site-footer{font-size:.75rem}.kata-pager{font-size:.8125rem}.kata-story h3{font-size:1.25rem}.page-section h2,.page-section h2+.page-anchor{font-size:1.625rem}.kata{grid-template-columns:1fr}.kata-main h1{font-size:2.25rem}.kata-example h2{font-size:1.625rem}}@media(max-width:47.5rem){body{padding:0 1.25rem;font-size:1rem}.eyebrow,.katas th,.site-footer{font-size:.75rem}.kata-pager{font-size:.75rem}.site-header{display:grid;grid-template-columns:1fr auto;gap:0;margin-inline:-1.25rem;padding:1rem 1.25rem;position:relative}.site-title{margin-block:-.925rem}.site-menu summary{display:block;padding:.5rem;margin-right:-.5rem;font-size:1.5rem;line-height:1;color:var(--color-primary-text);list-style:none;cursor:pointer}.site-menu summary::-webkit-details-marker{display:none}.site-menu summary::before{content:"☰"}.site-menu[open] summary::before{content:"✕"}.site-menu::details-content{display:block;position:absolute;top:100%;left:0;right:0;z-index:1;overflow:hidden;background:var(--color-background);box-shadow:0 .75rem 1.5rem rgba(24,37,34,.1);interpolate-size:allow-keywords;block-size:auto;opacity:1;transition:block-size .2s ease,opacity .2s ease,content-visibility .2s allow-discrete}.site-menu:not([open])::details-content{block-size:0;opacity:0;content-visibility:hidden}.site-nav{flex-direction:column;align-items:stretch;gap:0;padding-block:.5rem;border-block:1px solid var(--color-dividers)}.site-nav a{padding:.5rem 1.25rem}.site-nav .active{border-bottom-color:transparent}.site-footer a{padding:.6875rem 0}.hero{grid-template-columns:1fr;gap:2rem;margin-inline:-1.25rem;padding:1.5rem 1.25rem 2.5rem}.eyebrow{text-wrap:balance}.site-footer{margin-top:.5rem;margin-inline:-1.25rem;padding:.75rem 1.25rem}.hero h1{margin-bottom:1rem;font-size:2rem}.not-found h1{font-size:1.5rem}.katas h2,.katas h2+.page-anchor{margin-bottom:1rem}.katas h2,.katas h2+.page-anchor{font-size:1.5rem}.site-title{font-size:1.25rem}.how-to{padding-left:1.25rem}.how-to p{margin-bottom:1rem}.katas thead,.kata-arrow{display:none}.katas tr{display:grid;position:relative;grid-template-columns:3rem 1fr;row-gap:.25rem;padding:1rem 0;border-bottom:1px solid var(--color-dividers)}.kata-title a::after{content:"";position:absolute;inset:0}.katas td{padding:0;border:0}.kata-behavior{grid-column:2}.page-intro,.page-section{gap:1rem;margin-inline:-1.25rem;padding-inline:1.25rem}.page-intro{grid-template-columns:1fr;padding-block:1.5rem;background:var(--color-panel)}.page-lead{padding:0;background:0 0}.page-lead p{line-height:1.6;color:inherit}.page-intro h1{font-size:2rem}.page-section h2,.page-section h2+.page-anchor{font-size:1.5rem}.page-section:last-child{padding-bottom:1rem}.kata{gap:2rem;padding:1.5rem 0}.kata-pin{position:static}.kata-main h1{font-size:2rem}.kata-card{padding:1.25rem}.kata-steps ol,.kata-principle{margin-top:1.25rem}.kata-pager-title{display:none}.kata-example h2{font-size:1.5rem}.kata-story h3{font-size:1.125rem}.kata-story blockquote{padding:.875rem 1rem}}@media(prefers-reduced-motion:reduce){.site-menu::details-content{transition:none}}