/* KDS identity and shared primitives. Layouts live in pages.css. */
:root{--paper:#f7f5f0;--ink:#20201e;--muted:#64645d;--line:#c4c3b9;--white:#f7f5f0;--gutter:clamp(1.5rem,4vw,4rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}::selection{background:#dedcd2;color:var(--ink)}
p,h1,h2,h3,h4,ul,ol,figure{margin:0}ul,ol{padding:0}h1,h2,h3{overflow-wrap:anywhere}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}
a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}section:focus,main:focus{outline:none}.wrap{max-width:1368px;width:100%;padding-inline:var(--gutter);margin-inline:auto}.wrap>*{min-width:0}.section-space{padding-block:4.75rem}.eyebrow{font-size:.8125rem;line-height:1.5;letter-spacing:.09em;font-weight:500}.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}.skip-link{position:absolute;left:1rem;top:-6rem;z-index:10;padding:.8rem 1.2rem;background:var(--ink);color:var(--paper)}.skip-link:focus{top:1rem}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:108px}.site-header{flex-wrap:wrap}.wordmark{display:inline-flex;flex-shrink:0}.wordmark>.brand-mark{width:190px;height:auto}.site-header nav{display:flex;align-items:center;gap:2rem;font-size:.9375rem}.site-header nav{min-width:0;max-width:100%}.site-header nav a{display:inline-flex;align-items:center;min-height:44px;padding:.6rem 0;border-bottom:1px solid transparent}.site-header nav a:hover,.site-header nav a[aria-current=page]{border-bottom-color:var(--ink)}.site-header nav .nav-contact{border:1px solid var(--ink);border-radius:100px;padding:.55rem 1.15rem}.site-header nav .nav-contact:hover{background:var(--ink);color:var(--paper)}.menu-toggle{font-size:.9375rem;min-height:44px;padding:.5rem 0 .5rem 1rem;border:0;background:none;color:var(--ink);cursor:pointer}.menu-toggle [data-menu-icon]{display:inline-block;width:1em;margin-left:.5rem;text-align:center}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:.75rem 1.5rem;border-radius:100px;font-size:1rem;line-height:1.5;cursor:pointer;text-align:center}.button:hover{background:var(--muted);border-color:var(--muted)}.button:focus-visible{outline-color:var(--ink)}.text-link{display:inline-block;width:fit-content;max-width:100%;font-size:.9375rem;line-height:1.5;padding:.4rem 0;border-bottom:1px solid currentColor}.text-link:hover{color:var(--muted)}
.hero{display:flex;flex-direction:column}.hero>.eyebrow{font-size:.875rem;font-weight:600;letter-spacing:.11em;line-height:1.6}.hero h1{font-weight:400;line-height:1.025;letter-spacing:-.067em;text-wrap:balance}.hero h1>span{display:block}.hero h1 .soft{color:var(--muted);max-width:10.2em}.hero-bottom{display:grid;gap:3rem;align-items:start}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.2rem 2rem}.hero-intro{min-width:0}
@keyframes hero-reveal{from{opacity:.92;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){.hero>.eyebrow,.hero h1{animation:hero-reveal .65s cubic-bezier(.2,.65,.3,1) both}}
.site-footer{display:flex;justify-content:space-between;align-items:start;gap:3rem;padding-block:2.5rem;font-size:.8125rem}.footer-wordmark{display:block;width:fit-content}.footer-wordmark .brand-mark{width:130px;height:auto}.site-footer p{margin-top:1rem;color:var(--muted)}.footer-links{display:flex;flex-wrap:wrap;gap:.25rem 1.4rem;max-width:37rem;font-size:.875rem}.footer-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}.footer-links a:hover{text-decoration:underline;text-underline-offset:4px}
.app-project-title{display:flex;align-items:center;gap:1rem;min-width:0}.app-project-title h2,.app-project-title h3{min-width:0}.app-project-icon{flex:0 0 48px;width:48px;height:48px;border-radius:10px}.coachkit-app-icon{background:var(--ink)}.project-entry-image img{width:100%;border:1px solid var(--line)}.project-entry-image figcaption{font-size:.8125rem;color:var(--muted);margin-top:.7rem}
.coachkit-gallery{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;align-items:start}.coachkit-gallery>figure{margin:0;min-width:0}.coachkit-gallery img{height:auto;aspect-ratio:1474/922;object-fit:contain;background:#efede6}
/* Only remove the captured scrollbar strip from the two older website captures. */
.website-capture{overflow:hidden;border:1px solid var(--line)}.website-capture>img{display:block;width:101.304348%;max-width:none;height:auto;aspect-ratio:auto;border:0;object-fit:contain}.dw-legal-preview{width:100%;height:auto;aspect-ratio:1269/881;object-fit:contain}
/* eTegami: one settled frame without JS, a pausable crossfade with enhancement. */
.project-preview-stack{position:relative;aspect-ratio:1456/934;overflow:hidden;border:1px solid var(--line)}.project-entry-image .project-preview-frame{width:100%;height:100%;object-fit:contain;border:0}.project-preview[data-preview-enhanced] .project-preview-frame{position:absolute;inset:0;opacity:0;transition:opacity .8s ease}.project-preview[data-preview-enhanced] .project-preview-frame.is-active{opacity:1}.project-preview.preview-paused .project-preview-frame{transition:none}.project-preview>figcaption{display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:1rem;line-height:1.5}.project-preview [data-preview-toggle]{flex-shrink:0;font-size:.875rem;line-height:1.4;color:var(--ink);background:none;border:0;border-bottom:1px solid currentColor;padding:.3rem 0;min-height:44px;cursor:pointer}
.platform-context>ul{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;list-style:none}.platform-context>ul>li{flex:0 0 3rem}.platform-mark{width:3rem;height:3rem;object-fit:contain;opacity:.25}
@media(max-width:899px){.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:96px;padding-block:1.25rem;gap:0 1rem}.site-header .brand-mark{width:160px}.site-header nav{grid-column:1/-1;display:grid;grid-template-columns:1fr;padding-top:1.5rem;gap:0;font-size:1rem}.site-header nav a,.site-header nav .nav-contact{width:100%;justify-self:start;border-radius:0;border:0;border-top:1px solid var(--line);padding:.8rem 0;min-height:44px}.site-header nav a{max-width:100%;overflow-wrap:anywhere}.site-footer{display:grid;grid-template-columns:1fr;gap:1.5rem}.footer-links{max-width:none}.section-space{padding-block:3rem}}
@media(max-width:700px){.coachkit-gallery{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Purposeful full-width section tones; content remains aligned by .wrap. */
:root{--stone:#e8e5dc}
.band{width:100%}.band-stone{background:var(--stone)}
.band-charcoal{--ink:#f7f5f0;--muted:#d2d0c7;--line:#69695f;background:#20201e;color:var(--ink)}
.band-charcoal .button{background:var(--ink);color:#20201e;border-color:var(--ink)}.band-charcoal .button:hover{background:#d2d0c7;color:#20201e}
.band-charcoal a:focus-visible,.band-charcoal button:focus-visible,.band-charcoal summary:focus-visible{outline-color:var(--ink)}
.surface-stone{background:var(--stone)}
