/* Shared component chrome. All components in components/ map onto these classes. */
.i3-icon{display:inline-block;flex:none;background:currentColor;-webkit-mask:var(--i3-icon) center/contain no-repeat;mask:var(--i3-icon) center/contain no-repeat}

/* Buttons */
.i3-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);height:var(--control-height);padding:0 20px;border-radius:var(--radius-full);border:1px solid transparent;font:inherit;font-size:var(--type-link-size);line-height:var(--type-link-lh);font-weight:var(--weight-title);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}
.i3-btn:active:not(:disabled){transform:scale(0.98)}
.i3-btn:disabled,.i3-btn[aria-disabled="true"]{cursor:not-allowed;opacity:1}
.i3-btn--primary{background:var(--color-primary);color:var(--text-on-primary)}
.i3-btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}
.i3-btn--primary:active:not(:disabled){background:var(--color-primary-active)}
.i3-btn--primary:disabled{background:var(--color-hairline);color:var(--text-faint)}
.i3-btn--outline{background:var(--color-canvas);color:var(--color-ink);border-color:var(--border-control)}
.i3-btn--outline:hover:not(:disabled){border-color:var(--border-control-hover);background:var(--color-canvas-soft)}
.i3-btn--outline:disabled{color:var(--text-faint);border-color:var(--color-hairline-soft)}
.i3-btn--soft{background:var(--surface-soft);color:var(--color-ink)}
.i3-btn--soft:hover:not(:disabled){background:var(--surface-soft-hover)}
.i3-btn--soft:disabled{color:var(--text-faint)}
.i3-btn--inverse{background:var(--color-canvas);color:var(--color-ink)}
.i3-btn--inverse:hover:not(:disabled){background:var(--color-canvas-soft)}
.i3-btn--sm{height:var(--control-height-sm);padding:0 var(--space-md);font-size:var(--type-body-sm-size)}
.i3-btn--lg{height:var(--control-height-lg);padding:0 var(--space-lg)}
.i3-btn--block{width:100%}
.i3-btn--icon{width:var(--control-height);padding:0}
.i3-btn--icon.i3-btn--sm{width:var(--control-height-sm)}

.i3-textlink{display:inline-flex;align-items:center;gap:var(--space-xxs);font-size:var(--type-body-sm-size);line-height:var(--type-body-sm-lh);font-weight:var(--weight-title);color:var(--color-ink);text-decoration:none;border-radius:var(--radius-full)}
.i3-textlink:hover{text-decoration:underline;text-underline-offset:3px}

/* Badges */
.i3-badge{display:inline-flex;align-items:center;gap:var(--space-xxs);height:24px;padding:0 10px;border-radius:var(--radius-full);font-size:var(--type-label-size);line-height:var(--type-label-lh);font-weight:var(--weight-title);white-space:nowrap}
.i3-badge--soft{background:var(--surface-soft);color:var(--color-ink)}
.i3-badge--outline{background:var(--color-canvas);color:var(--color-ink);box-shadow:inset 0 0 0 1px var(--border-control)}
.i3-badge--ink{background:var(--color-ink);color:var(--text-on-primary)}
.i3-badge--accent{background:var(--color-accent);color:var(--text-on-primary)}
.i3-badge--overlay{background:var(--color-overlay);color:var(--text-on-primary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* Segmented control */
.i3-seg{display:inline-flex;padding:4px;gap:4px;background:var(--surface-soft);border-radius:var(--radius-full)}
.i3-seg__opt{height:36px;padding:0 var(--space-md);border:0;border-radius:var(--radius-full);background:transparent;color:var(--text-muted);font:inherit;font-size:var(--type-body-sm-size);font-weight:var(--weight-title);cursor:pointer;transition:background-color var(--duration-fast),color var(--duration-fast)}
.i3-seg__opt:hover{color:var(--color-ink)}
.i3-seg__opt[aria-checked="true"]{background:var(--color-canvas);color:var(--color-ink);box-shadow:var(--shadow-segment)}
.i3-seg__opt:disabled{color:var(--text-faint);cursor:not-allowed}

/* Section heading */
.i3-sh{display:flex;flex-direction:column;gap:var(--space-md);max-width:760px}
.i3-sh--center{align-items:center;text-align:center;margin:0 auto}
.i3-sh__eyebrow{font-size:var(--type-body-sm-size);font-weight:var(--weight-title);color:var(--text-muted)}
.i3-sh__title{font-size:var(--type-h2-size);line-height:var(--type-h2-lh);font-weight:var(--weight-heading);color:var(--text-heading)}
.i3-sh--h1 .i3-sh__title{font-size:var(--type-h1-size);line-height:var(--type-h1-lh)}
.i3-sh__sub{font-size:var(--type-lead-size);line-height:var(--type-lead-lh);font-weight:var(--weight-light);color:var(--text-muted)}

/* Forms */
.i3-field{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}
.i3-field__label{font-size:var(--type-body-sm-size);line-height:var(--type-body-sm-lh);font-weight:var(--weight-title);color:var(--color-ink)}
.i3-field__opt{font-weight:var(--weight-text);color:var(--text-muted)}
.i3-field__hint{font-size:var(--type-caption-size);line-height:var(--type-caption-lh);color:var(--text-muted)}
.i3-field__error{font-size:var(--type-caption-size);line-height:var(--type-caption-lh);font-weight:var(--weight-title);color:var(--color-ink);display:flex;gap:6px;align-items:center}
.i3-input{width:100%;min-height:var(--control-height-lg);padding:var(--space-sm) var(--space-md);border:0;border-radius:var(--radius-sm);background:var(--surface-field);color:var(--color-ink);font:inherit;font-size:var(--type-body-size);outline:none;box-shadow:inset 0 0 0 2px transparent;transition:box-shadow var(--duration-fast),background-color var(--duration-fast)}
.i3-input::placeholder{color:var(--text-faint)}
.i3-input:hover:not(:disabled){background:#ebebeb}
.i3-input:focus{box-shadow:inset 0 0 0 2px var(--focus-ring);background:var(--surface-field)}
.i3-input[aria-invalid="true"]{box-shadow:inset 0 0 0 1px var(--color-ink)}
.i3-input[aria-invalid="true"]:focus{box-shadow:inset 0 0 0 2px var(--focus-ring)}
.i3-input:disabled{color:var(--text-faint);cursor:not-allowed;background:var(--color-canvas-soft)}
textarea.i3-input{min-height:132px;resize:vertical;line-height:var(--type-body-lh)}
select.i3-input{appearance:none;padding-right:44px;background-image:url("https://unpkg.com/lucide-static@0.452.0/icons/chevron-down.svg");background-repeat:no-repeat;background-position:right 16px center;background-size:18px}

.i3-check{display:inline-flex;align-items:flex-start;gap:var(--space-sm);cursor:pointer;font-size:var(--type-body-sm-size);line-height:var(--type-body-sm-lh);color:var(--color-ink)}
.i3-check input{position:absolute;opacity:0;width:1px;height:1px}
.i3-check__box{flex:none;width:20px;height:20px;margin-top:0;border-radius:6px;background:var(--surface-field);display:grid;place-items:center;color:transparent;transition:background-color var(--duration-fast)}
.i3-check:hover .i3-check__box{background:#e6e6e6}
.i3-check input:checked+.i3-check__box{background:var(--color-ink);color:var(--text-on-primary)}
.i3-check input:focus-visible+.i3-check__box{outline:2px solid var(--focus-ring);outline-offset:2px}
.i3-check input:disabled+.i3-check__box{background:var(--color-canvas-soft)}
.i3-check--disabled{color:var(--text-faint);cursor:not-allowed}

.i3-chipset{display:flex;flex-wrap:wrap;gap:var(--space-xs)}
.i3-chip{display:inline-flex;align-items:center;gap:6px;height:var(--control-height-sm);padding:0 14px;border-radius:var(--radius-full);background:var(--surface-field);color:var(--color-ink);border:0;font:inherit;font-size:var(--type-body-sm-size);font-weight:var(--weight-title);cursor:pointer}
.i3-chip:hover{background:#e6e6e6}
.i3-chip[aria-pressed="true"]{background:var(--color-ink);color:var(--text-on-primary)}

/* Cards */
.i3-card{background:var(--surface-card);border:1px solid var(--border-card);border-radius:var(--radius-md);padding:var(--space-lg)}
.i3-card--soft{background:var(--surface-soft);border-color:transparent}

.i3-service{display:flex;flex-direction:column;gap:var(--space-md);min-height:100%;transition:border-color var(--duration-base) var(--ease-standard),background-color var(--duration-base) var(--ease-standard)}
.i3-service:hover{border-color:var(--border-control);background:#fcfcfc}
.i3-service__icon{width:48px;height:48px;border-radius:var(--radius-squircle);background:var(--surface-soft);display:grid;place-items:center;color:var(--color-ink)}
.i3-service__title{font-size:var(--type-title-size);line-height:var(--type-title-lh);font-weight:var(--weight-title)}
.i3-service__desc{font-size:var(--type-body-sm-size);line-height:var(--type-body-sm-lh);color:var(--text-muted);flex:1}

.i3-feature{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-xl) 0 0;border-top:1px solid var(--color-hairline)}
.i3-feature__num{font-size:var(--type-body-sm-size);font-weight:var(--weight-title);color:var(--text-muted)}
.i3-feature__title{font-size:var(--type-h4-size);line-height:var(--type-h4-lh);font-weight:var(--weight-heading)}
.i3-feature__desc{font-size:var(--type-body-size);line-height:var(--type-body-lh);color:var(--text-muted)}
.i3-feature--card{border:0;padding:var(--space-xl);background:var(--surface-soft);border-radius:var(--radius-md)}

.i3-step{display:flex;flex-direction:column;gap:var(--space-sm)}
.i3-step__num{font-size:var(--type-display-size);line-height:var(--type-display-lh);font-weight:var(--weight-heading);color:var(--color-ink);font-variant-numeric:tabular-nums}
.i3-step__title{font-size:var(--type-h4-size);line-height:var(--type-h4-lh);font-weight:var(--weight-heading);margin-top:var(--space-sm)}
.i3-step__desc{font-size:var(--type-body-size);color:var(--text-muted)}

.i3-portfolio{display:flex;flex-direction:column;gap:var(--space-md);text-decoration:none;color:inherit}
.i3-portfolio__media{position:relative;aspect-ratio:4/3;border-radius:var(--radius-md);overflow:hidden;background:var(--surface-soft)}
.i3-portfolio--wide .i3-portfolio__media{aspect-ratio:16/9}
.i3-portfolio__media img{width:100%;height:100%;object-fit:cover;transition:transform 400ms var(--ease-standard)}
.i3-portfolio:hover .i3-portfolio__media img{transform:scale(1.02)}
.i3-portfolio__tags{position:absolute;left:var(--space-md);top:var(--space-md);display:flex;gap:6px;flex-wrap:wrap}
.i3-portfolio__meta{display:flex;flex-direction:column;gap:6px}
.i3-portfolio__cat{font-size:var(--type-body-sm-size);color:var(--text-muted)}
.i3-portfolio__title{font-size:var(--type-h4-size);line-height:var(--type-h4-lh);font-weight:var(--weight-heading)}
.i3-portfolio__sum{font-size:var(--type-body-size);color:var(--text-muted)}
.i3-portfolio__foot{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

.i3-testimonial{display:flex;flex-direction:column;gap:var(--space-lg);border-radius:var(--radius-sm)}
.i3-testimonial__quote{font-size:var(--type-body-size);line-height:var(--type-body-lh)}
.i3-testimonial__who{display:flex;align-items:center;gap:var(--space-sm)}
.i3-avatar{position:relative;flex:none;width:40px;height:40px;border-radius:var(--radius-full);background:var(--surface-soft);overflow:visible;display:grid;place-items:center;font-size:var(--type-label-size);font-weight:var(--weight-title);color:var(--text-muted)}
.i3-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:cover;filter:grayscale(1)}
.i3-avatar__logo{position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;border-radius:var(--radius-squircle);background:var(--color-canvas);box-shadow:0 0 0 2px var(--color-canvas);overflow:hidden}
.i3-testimonial__name{font-size:var(--type-link-size);font-weight:var(--weight-title)}
.i3-testimonial__co{font-size:var(--type-body-sm-size);color:var(--text-muted)}

.i3-faq{display:flex;flex-direction:column;gap:var(--space-xs)}
.i3-faq__item{background:var(--surface-soft);border-radius:var(--radius-sm)}
.i3-faq__q{display:flex;width:100%;align-items:center;justify-content:space-between;gap:var(--space-md);padding:20px var(--space-lg);border:0;background:transparent;font:inherit;font-size:var(--type-body-size);font-weight:var(--weight-title);color:var(--color-ink);text-align:left;cursor:pointer;border-radius:var(--radius-sm)}
.i3-faq__q:hover{background:var(--surface-soft-hover)}
.i3-faq__chev{transition:transform var(--duration-base) var(--ease-standard)}
.i3-faq__q[aria-expanded="true"] .i3-faq__chev{transform:rotate(180deg)}
.i3-faq__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--duration-base) var(--ease-standard)}
.i3-faq__panel[data-open="true"]{grid-template-rows:1fr}
.i3-faq__panel>div{overflow:hidden}
.i3-faq__a{padding:0 var(--space-lg) var(--space-lg);color:var(--text-muted);max-width:720px}

.i3-cta{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-lg);padding:var(--space-section) var(--space-xl);border-radius:var(--radius-md)}
.i3-cta--soft{background:var(--surface-soft)}
.i3-cta--inverse{background:var(--surface-inverse);color:var(--text-on-primary)}
.i3-cta--inverse .i3-sh__title{color:var(--text-on-primary)}
.i3-cta--inverse .i3-sh__sub{color:var(--text-faint)}
.i3-cta__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center}
.i3-cta__note{font-size:var(--type-body-sm-size);color:var(--text-muted)}

.i3-pricing{display:flex;flex-direction:column;gap:var(--space-lg);border-radius:var(--radius-md)}
.i3-pricing--featured{background:var(--surface-soft);border-color:transparent}
.i3-pricing__head{display:flex;align-items:center;gap:var(--space-sm)}
.i3-pricing__name{font-size:var(--type-h4-size);line-height:var(--type-h4-lh);font-weight:var(--weight-heading)}
.i3-pricing__price{display:flex;align-items:flex-end;gap:var(--space-xs)}
.i3-pricing__fig{font-size:var(--type-h2-size);line-height:1;font-weight:var(--weight-heading)}
.i3-pricing__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:var(--type-body-sm-size)}
.i3-pricing__list li{display:flex;gap:10px;align-items:flex-start}

/* Navigation */
.i3-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);height:64px;padding:0 10px 0 var(--space-lg);background:var(--surface-soft);border-radius:var(--radius-full);max-width:1120px;width:100%;margin:0 auto}
.i3-nav__brand{display:flex;align-items:center;text-decoration:none;color:var(--color-ink)}
.i3-nav__links{display:flex;align-items:center;gap:var(--space-xxs);list-style:none;margin:0;padding:0}
.i3-nav__link{display:inline-flex;align-items:center;height:var(--control-height);padding:0 14px;border-radius:var(--radius-full);color:var(--color-ink);text-decoration:none;font-size:var(--type-link-size);font-weight:var(--weight-title)}
.i3-nav__link:hover{background:var(--surface-soft-hover)}
.i3-nav__link[aria-current="page"]{background:var(--color-canvas)}
.i3-nav__right{display:flex;align-items:center;gap:var(--space-xs)}
.i3-nav__toggle{display:none}
.i3-nav-wrap{position:sticky;top:var(--space-md);z-index:50;padding:0 var(--space-md)}
@media (max-width:1024px){.i3-nav__links{display:none}.i3-nav__toggle{display:inline-flex}}
@media (max-width:600px){.i3-nav{padding-left:18px;height:60px}.i3-nav__cta{display:none}}

.i3-wordmark{display:inline-flex;align-items:baseline;gap:0.28em;font-weight:var(--weight-heading);font-size:20px;line-height:1;color:inherit;white-space:nowrap}
.i3-wordmark__b{font-weight:var(--weight-light)}

.i3-mnav{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:var(--color-canvas);padding:var(--space-md)}
.i3-mnav__bar{display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 10px 0 18px;background:var(--surface-soft);border-radius:var(--radius-full)}
.i3-mnav__list{list-style:none;margin:var(--space-xl) 0 0;padding:0 var(--space-xs);display:flex;flex-direction:column}
.i3-mnav__link{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) 0;border-bottom:1px solid var(--border-card);font-size:var(--type-h3-size);line-height:var(--type-h3-lh);font-weight:var(--weight-heading);color:var(--color-ink);text-decoration:none}
.i3-mnav__foot{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) var(--space-xs)}

.i3-footer{background:var(--surface-inverse);color:var(--text-on-primary);border-radius:var(--radius-md) var(--radius-md) 0 0;padding:var(--space-section) 0 var(--space-xl)}
.i3-footer__top{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:var(--space-xxl)}
.i3-footer__brand{display:flex;flex-direction:column;gap:var(--space-md)}
.i3-footer__tag{color:var(--text-faint);font-size:var(--type-body-size);max-width:340px}
.i3-footer__col{display:flex;flex-direction:column;gap:var(--space-sm)}
.i3-footer__h{font-size:var(--type-body-sm-size);font-weight:var(--weight-title);color:var(--text-on-primary)}
.i3-footer__col a{color:var(--text-faint);text-decoration:none;font-size:var(--type-body-sm-size)}
.i3-footer__col a:hover{color:var(--text-on-primary)}
.i3-footer__ph{color:#8a8a8a;font-size:var(--type-body-sm-size);font-style:italic}
.i3-footer__big{margin-top:var(--space-section);font-size:clamp(48px,11vw,152px);line-height:0.9;font-weight:var(--weight-heading);color:var(--text-on-primary);white-space:nowrap;overflow:hidden}
.i3-footer__big span{font-weight:var(--weight-light)}
.i3-footer__base{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid #2a2a2a;display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-md);font-size:var(--type-body-sm-size);color:var(--text-faint)}
.i3-footer__base a{color:var(--text-faint);text-decoration:none}
.i3-footer__base a:hover{color:var(--text-on-primary)}
@media (max-width:1024px){.i3-footer__top{grid-template-columns:repeat(3,minmax(0,1fr))}.i3-footer__brand{grid-column:1/-1}}
@media (max-width:640px){.i3-footer__top{grid-template-columns:1fr;gap:var(--space-xl)}}

/* Hero */
.i3-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-lg);padding:var(--space-section-lg) 0 var(--space-section)}
.i3-hero__title{font-size:var(--type-display-size);line-height:var(--type-display-lh);font-weight:var(--weight-heading);max-width:15ch}
.i3-hero__sub{font-size:var(--type-lead-size);line-height:var(--type-lead-lh);font-weight:var(--weight-light);color:var(--text-muted);max-width:620px}
.i3-hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center;margin-top:var(--space-xs)}
.i3-hero__trust{font-size:var(--type-body-sm-size);font-weight:var(--weight-title);color:var(--text-muted)}
.i3-hero--left{align-items:flex-start;text-align:left}
.i3-hero--left .i3-hero__actions{justify-content:flex-start}

/* Feedback */
.i3-modal-scrim{position:fixed;inset:0;z-index:200;background:var(--color-scrim);display:grid;place-items:center;padding:var(--space-md)}
.i3-modal{position:relative;width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow:auto;background:var(--color-canvas);border-radius:var(--radius-md);padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md);box-shadow:var(--shadow-float)}
.i3-modal__close{position:absolute;top:var(--space-md);right:var(--space-md)}
.i3-modal__title{font-size:var(--type-h3-size);line-height:var(--type-h3-lh);font-weight:var(--weight-heading);padding-right:var(--space-xxl)}
.i3-modal__body{color:var(--text-muted)}
.i3-modal__actions{display:flex;gap:var(--space-sm);justify-content:flex-end;flex-wrap:wrap;margin-top:var(--space-xs)}

.i3-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-sm);padding:var(--space-xxl) var(--space-lg);border-radius:var(--radius-md);border:1px dashed var(--color-hairline)}
.i3-empty__icon{width:56px;height:56px;border-radius:var(--radius-squircle);background:var(--surface-soft);display:grid;place-items:center;margin-bottom:var(--space-xs)}
.i3-empty__title{font-size:var(--type-title-size);line-height:var(--type-title-lh);font-weight:var(--weight-title)}
.i3-empty__desc{font-size:var(--type-body-sm-size);color:var(--text-muted);max-width:380px}
.i3-empty__actions{display:flex;gap:var(--space-xs);margin-top:var(--space-xs)}

.i3-toast{display:flex;align-items:flex-start;gap:var(--space-sm);width:100%;max-width:400px;padding:14px 14px 14px var(--space-md);border-radius:var(--radius-sm);background:var(--color-ink);color:var(--text-on-primary);box-shadow:var(--shadow-float)}
.i3-toast--light{background:var(--color-canvas);color:var(--color-ink);box-shadow:inset 0 0 0 1px var(--color-hairline),var(--shadow-float)}
.i3-toast__body{flex:1;display:flex;flex-direction:column;gap:2px;padding-top:1px}
.i3-toast__title{font-size:var(--type-body-sm-size);font-weight:var(--weight-title)}
.i3-toast__desc{font-size:var(--type-body-sm-size);color:var(--text-faint)}
.i3-toast--light .i3-toast__desc{color:var(--text-muted)}
.i3-toast__x{flex:none;width:28px;height:28px;border:0;border-radius:var(--radius-full);background:transparent;color:inherit;display:grid;place-items:center;cursor:pointer;margin-top:-4px}
.i3-toast__x:hover{background:rgba(255,255,255,0.12)}
.i3-toast--light .i3-toast__x:hover{background:var(--surface-soft)}
.i3-toast-stack{position:fixed;bottom:var(--space-lg);left:50%;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;gap:var(--space-xs);width:calc(100% - 32px);max-width:400px}

/* Placeholder media */
.i3-ph{position:relative;display:flex;align-items:flex-end;justify-content:flex-start;width:100%;height:100%;padding:var(--space-md);background:repeating-linear-gradient(135deg,var(--color-canvas-soft) 0 12px,#ececec 12px 24px);color:var(--text-muted);font-size:var(--type-caption-size);font-weight:var(--weight-title)}
