.ds-h1{font-family:var(--ds-font-display);font-weight:var(--ds-w-display,var(--ds-w-regular));font-size:var(--ds-h1-size);line-height:var(--ds-h1-lh);letter-spacing:var(--ds-h1-ls);color:var(--ds-text);margin:0}.ds-h2{font-family:var(--ds-font-display);font-weight:var(--ds-w-display,var(--ds-w-regular));font-size:var(--ds-h2-size);line-height:var(--ds-h2-lh);letter-spacing:var(--ds-h2-ls);color:var(--ds-text);margin:0}.ds-h3{font-family:var(--ds-font-display);font-weight:var(--ds-w-display,var(--ds-w-regular));font-size:var(--ds-h3-size);line-height:var(--ds-h3-lh);letter-spacing:var(--ds-h3-ls);color:var(--ds-text);margin:0}.ds-italic{font-style:italic}.ds-body-lg{font-family:var(--ds-font-body);font-size:var(--ds-body-lg-size);line-height:var(--ds-body-lh);color:var(--ds-text-secondary);margin:0}.ds-body{font-family:var(--ds-font-body);font-size:var(--ds-body-size);line-height:var(--ds-body-lh);color:var(--ds-text-secondary);margin:0}.ds-body-sm{font-family:var(--ds-font-body);font-size:var(--ds-body-sm-size);line-height:var(--ds-body-sm-lh);color:var(--ds-text-muted);margin:0}.ds-label{font-family:var(--ds-font-mono);font-size:var(--ds-label-size);line-height:var(--ds-label-lh);letter-spacing:var(--ds-label-ls);text-transform:uppercase;color:var(--ds-text-muted);margin:0}.ds-overline{font-family:var(--ds-font-mono);font-size:var(--ds-overline-size);line-height:var(--ds-overline-lh);letter-spacing:var(--ds-overline-ls);text-transform:uppercase;color:var(--ds-text-muted);margin:0}.ds-container{width:100%;max-width:var(--ds-content-max);padding-inline:var(--ds-space-5);margin-inline:auto}.ds-container--wide{max-width:var(--ds-container-max)}.ds-section{display:block}.ds-section--lg{padding-top:var(--ds-section-lg-top);padding-bottom:var(--ds-section-lg-bottom)}.ds-section--md{padding-top:var(--ds-section-md-top);padding-bottom:var(--ds-section-md-bottom)}.ds-section--sm{padding-top:var(--ds-section-sm-top);padding-bottom:var(--ds-section-sm-bottom)}.ds-section--dark{background:var(--ds-bg);color:var(--ds-text)}.ds-btn{justify-content:center;align-items:center;gap:var(--ds-space-2);font-family:var(--ds-font-body);font-weight:var(--ds-w-medium);font-size:var(--ds-body-sm-size);letter-spacing:.01em;border-radius:var(--ds-radius-pill);cursor:pointer;white-space:nowrap;transition:background-color var(--ds-dur-hover) var(--ds-ease-standard), color var(--ds-dur-hover) var(--ds-ease-standard), border-color var(--ds-dur-hover) var(--ds-ease-standard), box-shadow var(--ds-dur-hover) var(--ds-ease-standard), transform var(--ds-dur-hover) var(--ds-ease-standard);border:1px solid #0000;padding:14px 26px;line-height:1;text-decoration:none;display:inline-flex}.ds-btn__arrow{transition:transform var(--ds-dur-hover) var(--ds-ease-out);display:inline-block}.ds-btn:hover .ds-btn__arrow{transform:translate(3px)}.ds-btn:focus-visible{outline:2px solid var(--ds-focus-ring);outline-offset:2px}.ds-btn--sm{font-size:var(--ds-body-sm-size);padding:10px 18px}.ds-btn--lg{font-size:var(--ds-body-size);padding:17px 34px}.ds-btn--primary{background:var(--ds-btn-primary-bg);color:var(--ds-btn-primary-fg);box-shadow:var(--ds-elev-1)}.ds-btn--primary:hover{background:var(--ds-btn-primary-hover);box-shadow:var(--ds-elev-2);transform:translateY(-1px)}.ds-btn--secondary{background:var(--ds-btn-secondary-bg);color:var(--ds-btn-secondary-fg);border-color:var(--ds-btn-secondary-border);box-shadow:var(--ds-elev-1)}.ds-btn--secondary:hover{background:var(--ds-btn-secondary-hover-bg);box-shadow:var(--ds-elev-2);transform:translateY(-1px)}.ds-btn--solid{background:var(--ds-btn-solid-bg);color:var(--ds-btn-solid-fg);box-shadow:var(--ds-shadow-sm)}.ds-btn--solid:hover{background:var(--ds-btn-solid-hover);box-shadow:var(--ds-shadow-md);transform:translateY(-1px)}.ds-btn--ghost{color:var(--ds-accent);padding-inline:var(--ds-space-2);box-shadow:none;background:0 0}.ds-btn--ghost:hover{color:var(--ds-text)}.ds-btn.is-hover.ds-btn--primary{background:var(--ds-btn-primary-hover);box-shadow:var(--ds-elev-2);transform:translateY(-1px)}.ds-btn.is-hover.ds-btn--secondary{background:var(--ds-btn-secondary-hover-bg);box-shadow:var(--ds-elev-2);transform:translateY(-1px)}.ds-btn.is-hover .ds-btn__arrow{transform:translate(3px)}.ds-link{align-items:center;gap:var(--ds-space-2);font-family:var(--ds-font-mono);font-size:var(--ds-label-size);letter-spacing:var(--ds-label-ls);text-transform:uppercase;color:var(--ds-text);cursor:pointer;transition:color var(--ds-dur-hover) var(--ds-ease-standard);background:0 0;border:0;padding:0;text-decoration:none;display:inline-flex}.ds-link__arrow{transition:transform var(--ds-dur-hover) var(--ds-ease-out)}.ds-link:hover{color:var(--ds-accent)}.ds-link:hover .ds-link__arrow{transform:translate(3px)}.ds-nav{justify-content:space-between;align-items:center;gap:var(--ds-space-6);width:100%;padding:13px 13px 13px var(--ds-space-6);background:var(--ds-raised-bg);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-elev-1);border:1px solid #0000;display:flex}.ds-nav__links{align-items:center;gap:var(--ds-space-6);display:flex}.ds-nav__link{font-family:var(--ds-font-body);font-size:var(--ds-body-sm-size);color:var(--ds-text-secondary);transition:color var(--ds-dur-hover) var(--ds-ease-standard);text-decoration:none}.ds-nav__link:hover,.ds-nav__link--active{color:var(--ds-text)}@media (max-width:720px){.ds-nav__links{display:none}}.ds-typerow{gap:var(--ds-space-6);border-bottom:1px solid var(--ds-border);padding-bottom:var(--ds-space-6);grid-template-columns:minmax(0,1fr) 280px;align-items:end;display:grid}@media (max-width:720px){.ds-typerow{grid-template-columns:1fr;align-items:start}}.ds-card{background:var(--ds-raised-bg);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-elev-1);transition:box-shadow var(--ds-dur-hover) var(--ds-ease-standard), transform var(--ds-dur-hover) var(--ds-ease-standard);border:1px solid #0000;flex-direction:column;display:flex;overflow:hidden}.ds-project-card{cursor:pointer;padding:10px}.ds-project-card:hover{box-shadow:var(--ds-elev-2);transform:translateY(-3px)}.ds-project-card__media{aspect-ratio:4/3;border-radius:var(--ds-radius-md);background:var(--ds-surface-2);position:relative;overflow:hidden}.ds-project-card__media img{object-fit:cover;width:100%;height:100%;transition:transform var(--ds-dur-reveal) var(--ds-ease-out);display:block}.ds-project-card:hover .ds-project-card__media img{transform:scale(1.04)}.ds-project-card__body{padding:var(--ds-space-4) var(--ds-space-3) var(--ds-space-3);gap:var(--ds-space-2);flex-direction:column;display:flex}.ds-project-card__title{font-family:var(--ds-font-display);font-weight:var(--ds-w-display,var(--ds-w-regular));font-size:var(--ds-h3-size);line-height:var(--ds-h3-lh);color:var(--ds-text);margin:0}.ds-project-card__desc{font-family:var(--ds-font-body);font-size:var(--ds-body-sm-size);color:var(--ds-text-muted);margin:0;line-height:1.55}.ds-project-card__link{margin-top:var(--ds-space-2)}.ds-project-card__link .ds-link{font-family:var(--ds-font-body);font-size:var(--ds-body-sm-size);letter-spacing:0;text-transform:none;color:var(--ds-text);font-weight:var(--ds-w-medium)}.ds-project-card__link .ds-link__arrow,.ds-project-card__link .ds-link:hover{color:var(--ds-accent-earth)}.ds-quote-card{padding:var(--ds-space-6);gap:var(--ds-space-5);justify-content:flex-start}.ds-quote-card__mark{font-family:var(--ds-font-display);color:var(--ds-text-muted);height:26px;font-size:56px;line-height:.5}.ds-quote-card__text{font-family:var(--ds-font-body);font-style:normal;font-weight:var(--ds-w-regular);color:var(--ds-text);margin:0;font-size:1.25rem;line-height:1.45}.ds-quote-card__cite{font-family:var(--ds-font-body);font-size:var(--ds-body-sm-size);letter-spacing:0;text-transform:none;color:var(--ds-text-muted);margin:0;font-style:normal}.ds-field{gap:var(--ds-space-2);flex-direction:column;display:flex}.ds-field__label{font-family:var(--ds-font-mono);font-size:var(--ds-overline-size);letter-spacing:var(--ds-label-ls);text-transform:uppercase;color:var(--ds-text-muted)}.ds-input{font-family:var(--ds-font-body);font-size:var(--ds-body-size);color:var(--ds-text);background:var(--ds-input-bg);border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-md);padding:13px var(--ds-space-4);width:100%;transition:border-color var(--ds-dur-hover) var(--ds-ease-standard), box-shadow var(--ds-dur-hover) var(--ds-ease-standard)}.ds-input::placeholder{color:var(--ds-text-muted)}.ds-input:hover{border-color:var(--ds-btn-secondary-fg)}.ds-input:focus,.ds-input:focus-visible{border-color:var(--ds-focus-ring);box-shadow:0 0 0 3px var(--ds-focus-ring-soft);outline:none}.ds-input--focus{border-color:var(--ds-focus-ring);box-shadow:0 0 0 3px var(--ds-focus-ring-soft)}textarea.ds-input{resize:vertical;min-height:104px}.ds-tag{align-items:center;gap:var(--ds-space-2);font-family:var(--ds-font-mono);font-size:var(--ds-overline-size);letter-spacing:var(--ds-label-ls);text-transform:uppercase;color:var(--ds-text-secondary);background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--ds-radius-pill);transition:background var(--ds-dur-hover) var(--ds-ease-standard), color var(--ds-dur-hover) var(--ds-ease-standard);padding:6px 14px;display:inline-flex}.ds-tag--solid{background:var(--ds-accent);color:var(--ds-warm-cream);border-color:#0000}.ds-tag--soft{background:color-mix(in srgb, var(--ds-accent-soft) 26%, transparent);color:var(--ds-forest-green);border-color:#0000}.ds-icon{color:var(--ds-text);display:inline-flex}.ds-icon-btn{border-radius:var(--ds-radius-pill);width:40px;height:40px;color:var(--ds-text-secondary);cursor:pointer;transition:background var(--ds-dur-hover) var(--ds-ease-standard), color var(--ds-dur-hover) var(--ds-ease-standard);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.ds-icon-btn:hover{background:var(--ds-btn-secondary-hover-bg);color:var(--ds-text)}.ds-motion-swatch{border-radius:var(--ds-radius-md);background:var(--ds-surface);border:1px solid var(--ds-border)}@keyframes ds-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.82)}}.ds-spinner{border:2px solid var(--ds-border-strong);border-top-color:var(--ds-text);width:30px;height:30px;animation:ds-spin var(--ds-dur-loader) linear infinite;border-radius:50%}@keyframes ds-spin{to{transform:rotate(360deg)}}.ds-pulse-dot{background:var(--ds-text);width:14px;height:14px;animation:ds-pulse 1.4s var(--ds-ease-standard) infinite;border-radius:50%}.ds-progress{border-radius:var(--ds-radius-pill);background:var(--ds-border-strong);width:100%;height:4px;position:relative;overflow:hidden}.ds-progress__fill{border-radius:inherit;background:var(--ds-text);width:40%;animation:ds-progress 1.6s var(--ds-ease-standard) infinite;position:absolute;inset:0}@keyframes ds-progress{0%{transform:translate(-100%)}60%{transform:translate(160%)}to{transform:translate(160%)}}.ds-anim-tile{border-radius:var(--ds-radius-md);border:1px solid var(--ds-border);background:var(--ds-surface-2);aspect-ratio:16/9;position:relative;overflow:hidden}.ds-anim-tile>*{font-family:var(--ds-font-display);font-size:var(--ds-h3-size);color:var(--ds-text);place-items:center;display:grid;position:absolute;inset:0}@keyframes ds-fade{0%,12%{opacity:0}40%,72%{opacity:1}to{opacity:0}}@keyframes ds-slide{0%,12%{opacity:0;transform:translateY(18px)}40%,72%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18px)}}.ds-anim-fade>*{animation:ds-fade 3.2s var(--ds-ease-standard) infinite}.ds-anim-slide>*{animation:ds-slide 3.2s var(--ds-ease-out) infinite}@keyframes ds-reveal{0%,10%{opacity:0;transform:translateY(22px)}38%,80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(22px)}}.ds-reveal-item{opacity:0;animation:ds-reveal 3.4s var(--ds-ease-out) infinite}@keyframes ds-parallax{0%{transform:translate(0)}50%{transform:translate(-14%)}to{transform:translate(0)}}.ds-parallax{border-radius:var(--ds-radius-md);border:1px solid var(--ds-border);background:linear-gradient(180deg, var(--ds-surface), var(--ds-surface-2));height:150px;position:relative;overflow:hidden}.ds-parallax__layer{will-change:transform;align-items:center;gap:40px;padding-inline:20px;display:flex;position:absolute;inset:0}.ds-parallax__blob{background:var(--ds-text);opacity:.14;border-radius:50%;flex:none}@media (prefers-reduced-motion:reduce){.ds-spinner,.ds-pulse-dot,.ds-progress__fill,.ds-anim-fade>*,.ds-anim-slide>*,.ds-reveal-item,.ds-parallax__layer{animation:none!important}.ds-reveal-item{opacity:1}}
