/* layer: properties */
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*, ::before, ::after, ::backdrop{--un-bg-opacity:100%;--un-border-opacity:100%;--un-border-style:solid;--un-divide-y-reverse:initial;--un-ease:initial;--un-leading:initial;--un-placeholder-opacity:100%;--un-ring-opacity:100%;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-space-y-reverse:initial;--un-text-opacity:100%;}}
@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
@property --un-leading{syntax:"*";inherits:false;}
@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
@property --un-inset-ring-color{syntax:"*";inherits:false;}
@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
@property --un-inset-shadow-color{syntax:"*";inherits:false;}
@property --un-ring-color{syntax:"*";inherits:false;}
@property --un-ring-inset{syntax:"*";inherits:false;}
@property --un-ring-offset-color{syntax:"*";inherits:false;}
@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0px;}
@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}
@property --un-shadow-color{syntax:"*";inherits:false;}
@property --un-ring-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
@property --un-scale-x{syntax:"*";inherits:false;initial-value:1;}
@property --un-scale-y{syntax:"*";inherits:false;initial-value:1;}
@property --un-scale-z{syntax:"*";inherits:false;initial-value:1;}
@property --un-ease{syntax:"*";inherits:false;}
@property --un-placeholder-opacity{syntax:"<percentage>";inherits:false;initial-value:100%;}
@property --un-space-y-reverse{syntax:"*";inherits:false;initial-value:0;}
@property --un-border-style{syntax:"*";inherits:false;initial-value:solid;}
@property --un-divide-y-reverse{syntax:"*";inherits:false;initial-value:0;}
/* layer: theme */
:root, :host {
--spacing: 0.25rem;
--fontWeight-normal: 400;
--leading-relaxed: 1.625;
--fontWeight-medium: 500;
--default-transition-timingFunction: cubic-bezier(0.4, 0, 0.2, 1);
--default-transition-duration: 150ms;
--font-mono: var(--font-mono);
--font-display: var(--font-display);
--leading-snug: 1.375;
--container-sm: 24rem;
--container-md: 28rem;
--text-lg-fontSize: 1.125rem;
--text-lg-lineHeight: 1.75rem;
--text-base-fontSize: 1rem;
--text-base-lineHeight: 1.5rem;
--text-sm-fontSize: 0.875rem;
--text-sm-lineHeight: 1.25rem;
--text-3xl-fontSize: 1.875rem;
--text-3xl-lineHeight: 2.25rem;
--text-4xl-fontSize: 2.25rem;
--text-4xl-lineHeight: 2.5rem;
--text-xs-fontSize: 0.75rem;
--text-xs-lineHeight: 1rem;
--text-xl-fontSize: 1.25rem;
--text-xl-lineHeight: 1.75rem;
--text-2xl-fontSize: 1.5rem;
--text-2xl-lineHeight: 2rem;
--text-5xl-fontSize: 3rem;
--text-5xl-lineHeight: 1;
--text-6xl-fontSize: 3.75rem;
--text-6xl-lineHeight: 1;
--fontWeight-bold: 700;
--tracking-tight: -0.025em;
--tracking-wider: 0.05em;
--tracking-widest: 0.1em;
--container-7xl: 80rem;
--fontWeight-semibold: 600;
--leading-none: 1;
--radius-md: 0.375rem;
--container-2xl: 42rem;
--radius-lg: 0.5rem;
--radius-DEFAULT: 0.25rem;
--container-lg: 32rem;
--container-3xl: 48rem;
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--tracking-wide: 0.025em;
--font-sans: var(--font-body);
--default-font-family: var(--font-sans);
--default-monoFont-family: var(--font-mono);
}
/* layer: base */
/*
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
  2. Remove default margins and padding
  3. Reset all borders.
*/

*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 2 */
  border: 0 solid; /* 3 */
}

/*
  1. Use a consistent sensible line-height in all browsers.
  2. Prevent adjustments of font size after orientation changes in iOS.
  3. Use a more readable tab size.
  4. Use the user's configured `sans` font-family by default.
  5. Use the user's configured `sans` font-feature-settings by default.
  6. Use the user's configured `sans` font-variation-settings by default.
  7. Disable tap highlights on iOS.
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
  font-family: var(
    --default-font-family,
    ui-sans-serif,
    system-ui,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji',
    'Segoe UI Symbol',
    'Noto Color Emoji'
  ); /* 4 */
  font-feature-settings: var(--default-font-featureSettings, normal); /* 5 */
  font-variation-settings: var(--default-font-variationSettings, normal); /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
  1. Add the correct height in Firefox.
  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
  3. Reset the default border style to a 1px solid border.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
  Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
  Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
  Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

/*
  Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
  1. Use the user's configured `mono` font-family by default.
  2. Use the user's configured `mono` font-feature-settings by default.
  3. Use the user's configured `mono` font-variation-settings by default.
  4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: var(
    --default-monoFont-family,
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    'Liberation Mono',
    'Courier New',
    monospace
  ); /* 1 */
  font-feature-settings: var(--default-monoFont-featureSettings, normal); /* 2 */
  font-variation-settings: var(--default-monoFont-variationSettings, normal); /* 3 */
  font-size: 1em; /* 4 */
}

/*
  Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
  3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
  Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
  Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
  Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
  Make lists unstyled by default.
*/

ol,
ul,
menu {
  list-style: none;
}

/*
  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
      This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/*
  1. Inherit font styles in all browsers.
  2. Remove border radius in all browsers.
  3. Remove background color in all browsers.
  4. Ensure consistent opacity for disabled states in all browsers.
*/

button,
input,
select,
optgroup,
textarea,
::file-selector-button {
  font: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  border-radius: 0; /* 2 */
  background-color: transparent; /* 3 */
  opacity: 1; /* 4 */
}

/*
  Restore default font weight.
*/

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

/*
  Restore indentation.
*/

:where(select:is([multiple], [size])) optgroup option {
  padding-inline-start: 20px;
}

/*
  Restore space after button.
*/

::file-selector-button {
  margin-inline-end: 4px;
}

/*
  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
*/

::placeholder {
  opacity: 1;
}

/*
  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
*/

@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }
}

/*
  Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
  Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
  1. Ensure date/time inputs have the same height when empty in iOS Safari.
  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
*/

::-webkit-date-and-time-value {
  min-height: 1lh; /* 1 */
  text-align: inherit; /* 2 */
}

/*
  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
*/

::-webkit-datetime-edit {
  display: inline-flex;
}

/*
  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
*/

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-millisecond-field,
::-webkit-datetime-edit-meridiem-field {
  padding-block: 0;
}

/*
  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
*/

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

/*
  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
  Correct the inability to style the border radius in iOS Safari.
*/

button,
input:where([type='button'], [type='reset'], [type='submit']),
::file-selector-button {
  appearance: button;
}

/*
  Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
  Make elements with the HTML hidden attribute stay hidden by default.
*/

[hidden]:where(:not([hidden~='until-found'])) {
  display: none !important;
}
/* layer: preflights */

*, *::before, *::after { box-sizing: border-box; }

:root {
    --surface: #faf9f5;
    --surface-2: #f1efe7;
    --surface-alt: #ebe9e0;
    --elevated: #ffffff;
    --overlay: rgba(31, 36, 33, 0.55);
    --text: #1f2421;
    --text-muted: #6b6f68;
    --text-invert: #ffffff;
    --border: #d9d6c9;
    --border-strong: #b8b5a6;
    --brand-primary: #2e3a35;
    --brand-primary-dark: #1f2a26;
    --brand-primary-soft: rgba(46, 58, 53, 0.06);
    --brand-accent: #7a8a6f;
    --brand-accent-hover: #6a7a5f;
    --brand-soft: rgba(122, 138, 111, 0.14);
    --success: #5e6b53;
    --danger: #8a4a4a;
    --ring: rgba(122, 138, 111, 0.55);
    --noise: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='128' height='128'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.18 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', monospace;
}

:root[data-theme='dark'] {
    --surface: #14130f;
    --surface-2: #1c1b18;
    --surface-alt: #2a2925;
    --elevated: #232220;
    --overlay: rgba(0, 0, 0, 0.65);
    --text: #ece8df;
    --text-muted: #9c988e;
    --text-invert: #14130f;
    --border: #34322c;
    --border-strong: #48463e;
    --brand-primary: #e8e6dc;
    --brand-primary-dark: #f4f1e6;
    --brand-primary-soft: rgba(232, 230, 220, 0.06);
    --brand-accent: #a8b59a;
    --brand-accent-hover: #bdc9af;
    --brand-soft: rgba(168, 181, 154, 0.16);
    --success: #8a9a7b;
    --danger: #c08585;
    --ring: rgba(168, 181, 154, 0.55);
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme='light']) {
    --surface: #14130f;
    --surface-2: #1c1b18;
    --surface-alt: #2a2925;
    --elevated: #232220;
    --overlay: rgba(0, 0, 0, 0.65);
    --text: #ece8df;
    --text-muted: #9c988e;
    --text-invert: #14130f;
    --border: #34322c;
    --border-strong: #48463e;
    --brand-primary: #e8e6dc;
    --brand-primary-dark: #f4f1e6;
    --brand-primary-soft: rgba(232, 230, 220, 0.06);
    --brand-accent: #a8b59a;
    --brand-accent-hover: #bdc9af;
    --brand-soft: rgba(168, 181, 154, 0.16);
    --success: #8a9a7b;
    --danger: #c08585;
    --ring: rgba(168, 181, 154, 0.55);
    }
}

html {
    font-family: var(--font-body);
    overflow-y: scroll;
    scrollbar-gutter: stable;
}

body {
    font-family: var(--font-body);
    color: var(--text);
    background-color: var(--surface);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-feature-settings: 'ss01', 'cv11';
}

html, body,
.bg-surface, .bg-elevated, .bg-surface-2,
.text-default, .text-muted {
    transition:
        background-color 0.25s ease,
        color            0.25s ease,
        border-color     0.25s ease;
}

[v-cloak] { display: none; }

:focus-visible {
    outline: 2px solid var(--brand-accent);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ---- Eyebrow pair (number + tracked label + hairline) -------------- */
.eyebrow-number {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}
.eyebrow-label {
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--brand-accent);
}
.eyebrow-rule {
    display: inline-block;
    width: 24px;
    height: 1px;
    background-color: var(--brand-accent);
    vertical-align: middle;
    margin-right: 0.5rem;
}

/* ---- Hairline rules ------------------------------------------------- */
.rule        { height: 1px; background-color: var(--border);          width: 100%; }
.rule-strong { height: 1px; background-color: var(--border-strong);   width: 100%; }

/* ---- Service row (hover translates right) -------------------------- */
.service-row {
    display: grid;
    grid-template-columns: 60px 1fr auto;
    align-items: center;
    gap: 1.5rem;
    padding: 1.5rem 0;
    border-top: 1px solid var(--border);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.2s ease;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}
.service-row:last-child { border-bottom: 1px solid var(--border); }
.service-row:hover { transform: translateX(4px); }
.service-row:hover .service-row-arrow {
    color: var(--brand-accent);
    transform: translateX(4px);
}
.service-row-arrow {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.2s ease;
}

/* ---- Underline link (animated underline) --------------------------- */
.ulink {
    position: relative;
    display: inline-block;
    color: inherit;
    text-decoration: none;
}
.ulink::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 1px;
    background-color: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.ulink:hover::after { transform: scaleX(1); }

/* ---- Film grain (subtle 128×128 noise, per design.md §9.2) --------- */
.grain { position: relative; }
.grain::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--noise);
    background-size: 128px 128px;
    pointer-events: none;
    opacity: 0.12;
    mix-blend-mode: multiply;
}
:root[data-theme='dark'] .grain::before {
    mix-blend-mode: screen;
    opacity: 0.10;
}

/* ---- Heavier grain for night-portrait sections (hero, last frame) ---
   Pairs with a 1px scanline pattern at 5% opacity to suggest a 16mm
   projector without becoming literal. The result is a section that
   reads "this is the studio's flagship work, the night portrait."
*/
.grain-night { position: relative; isolation: isolate; }
.grain-night::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(0deg, var(--text) 0px, var(--text) 1px, transparent 1px, transparent 3px),
        var(--noise);
    background-size: 100% 3px, 128px 128px;
    background-blend-mode: overlay;
    pointer-events: none;
    opacity: 0.05;
    mix-blend-mode: multiply;
    z-index: 0;
}
.grain-night::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--noise);
    background-size: 128px 128px;
    pointer-events: none;
    opacity: 0.22;
    mix-blend-mode: multiply;
    z-index: 0;
}
:root[data-theme='dark'] .grain-night::before {
    opacity: 0.04;
    mix-blend-mode: screen;
}
:root[data-theme='dark'] .grain-night::after {
    mix-blend-mode: screen;
    opacity: 0.18;
}
.grain-night > * { position: relative; z-index: 1; }

/* ---- Process step (vertical hairline + circular nodes) ------------- */
.process-step {
    position: relative;
    padding-left: 2.5rem;
    padding-bottom: 3rem;
}
.process-step::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 14px;
    bottom: 0;
    width: 1px;
    background-color: var(--border);
}
.process-step:last-child { padding-bottom: 0; }
.process-step:last-child::before { display: none; }
.process-step-dot {
    position: absolute;
    left: 0;
    top: 8px;
    width: 13px;
    height: 13px;
    border-radius: 1px;
    background-color: var(--surface);
    border: 1px solid var(--border-strong);
}
.process-step:first-child .process-step-dot {
    background-color: var(--brand-accent);
    border-color: var(--brand-accent);
    box-shadow: 0 0 0 3px var(--brand-soft);
}

/* ---- Marquee (continuous horizontal scroll, ~40s cycle) ------------ */
.marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
            mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}
.marquee-track {
    display: inline-flex;
    white-space: nowrap;
    animation: marquee-scroll 40s linear infinite;
    will-change: transform;
}
.marquee-track > span { padding-right: 3rem; }
@keyframes marquee-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ---- Reveal (fade-in on viewport entry) ---------------------------- */
.reveal {
    opacity: 0;
    transform: translateY(12px);
    transition:
        opacity   0.8s ease,
        transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ---- Hero slideshow (fade crossfade, JS toggles .is-active) -------- */
.hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.hero-slide.is-active {
    opacity: 1;
    z-index: 1;
}

/* ---- Navbar: scrolled state + scroll-progress hairline ------------- */
#site-nav {
    border-bottom-color: transparent;
    --nav-progress: 0;
}
#site-nav.is-scrolled {
    background-color: color-mix(in srgb, var(--surface) 85%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom-color: var(--border);
}
.nav-progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background-color: var(--brand-accent);
    transform-origin: left center;
    transform: scaleX(var(--nav-progress, 0));
    transition: transform 0.15s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
    will-change: transform;
}

/* ---- Navbar: segmented language toggle ----------------------------- */
.nav-segmented {
    display: inline-flex;
    align-items: center;
    gap: 0.125rem;
    padding: 0.1875rem;
    border: 1px solid var(--border);
    border-radius: 9999px;
    background-color: var(--surface-alt);
    line-height: 1;
}
.nav-chip {
    padding: 0.3125rem 0.625rem;
    border-radius: 9999px;
    color: var(--text-muted);
    background: transparent;
    border: none;
    cursor: pointer;
    font: inherit;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 1;
    transition: color 0.2s ease, background-color 0.2s ease;
}
.nav-chip:hover { color: var(--text); }
.nav-chip.is-active {
    color: var(--text);
    background-color: var(--elevated);
    box-shadow: 0 0 0 1px var(--border);
}

/* ---- Navbar: icon button (theme toggle, mobile menu) --------------- */
.nav-icon-btn {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    color: var(--text);
    background-color: transparent;
    border: 1px solid var(--border);
    cursor: pointer;
    font: inherit;
    line-height: 0;
    transition:
        color 0.2s ease,
        border-color 0.2s ease,
        background-color 0.2s ease,
        transform 0.2s ease;
}
.nav-icon-btn:hover {
    color: var(--brand-accent);
    border-color: var(--border-strong);
    background-color: var(--brand-soft);
}
.nav-icon-btn:focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: 2px;
}

/* ---- Navbar: primary CTA pill -------------------------------------- */
.nav-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.4375rem 0.875rem;
    border-radius: 9999px;
    background-color: var(--brand-primary);
    color: var(--text-invert);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    line-height: 1;
    border: 1px solid var(--brand-primary);
    text-decoration: none;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}
.nav-pill:hover {
    background-color: var(--brand-primary-dark);
    border-color: var(--brand-primary-dark);
}
.nav-pill:focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: 2px;
}
.nav-pill-arrow {
    display: inline-block;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.nav-pill:hover .nav-pill-arrow {
    transform: translate(2px, -2px);
}

/* ---- Navbar: wordmark location badge (mono caption) ---------------- */
.nav-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.1875rem 0.5rem;
    border: 1px solid var(--border);
    border-radius: 9999px;
    background-color: transparent;
    font-family: var(--font-mono);
    font-size: 0.625rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
    line-height: 1;
}
.nav-badge-dot {
    width: 4px;
    height: 4px;
    border-radius: 9999px;
    background-color: var(--brand-accent);
}

/* ---- Navbar: nav-link (text-sm font-medium tracking-wide) ----------
   The class is a wrapper that also removes the browser-default
   underline on <a>. Use this for any editorial nav item.
*/
.nav-link {
    position: relative;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    color: var(--text);
    text-decoration: none;
    transition: color 0.2s ease;
}
.nav-link:hover { color: var(--brand-accent); }

.nav-link-dot {
    position: absolute;
    top: -2px;
    left: 50%;
    transform: translateX(-50%) scale(0.4);
    width: 4px;
    height: 4px;
    border-radius: 9999px;
    background-color: var(--brand-accent);
    opacity: 0;
    transition:
        opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.nav-link.is-active { color: var(--brand-accent); }
.nav-link.is-active .nav-link-dot {
    opacity: 1;
    transform: translateX(-50%) scale(1);
}

/* ---- Mobile menu panel --------------------------------------------- */
#mobile-menu {
    overflow: hidden;
    max-height: 0;
    background-color: var(--surface);
    border-top: 1px solid transparent;
    transition:
        max-height 0.35s cubic-bezier(0.16, 1, 0.3, 1),
        border-top-color 0.35s ease;
}
#mobile-menu.is-open {
    max-height: 80vh;
    border-top-color: var(--border);
    overflow-y: auto;
}
.mobile-link {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 1.125rem 0;
    font-family: var(--font-display);
    font-size: 1.5rem;
    line-height: 1.1;
    color: var(--text);
    text-decoration: none;
    border-bottom: 1px solid var(--border);
    transition: color 0.2s ease;
}
.mobile-link:last-child { border-bottom: none; }
.mobile-link:hover { color: var(--brand-accent); }
.mobile-link-num {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}
body.menu-open { overflow: hidden; }

/* ---- Reduced motion: disable marquee and reveals, keep color fades -- */
@media (prefers-reduced-motion: reduce) {
    .marquee-track { animation: none; }
    .reveal        { opacity: 1; transform: none; transition: none; }
    .service-row   { transition: none; }
    .service-row-arrow { transition: none; }
    .hero-slide    { transition: none; }
}

/* layer: icons */
.i-carbon-arrow-left{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m14 26l1.41-1.41L7.83 17H28v-2H7.83l7.58-7.59L14 6L4 16z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-arrow-right{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m18 6l-1.43 1.393L24.15 15H4v2h20.15l-7.58 7.573L18 26l10-10z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-arrow-up-right{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M10 6v2h12.59L6 24.59L7.41 26L24 9.41V22h2V6z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-camera{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M29 26H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h6.46l1.71-2.55A1 1 0 0 1 12 4h8a1 1 0 0 1 .83.45L22.54 7H29a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1M4 24h24V9h-6a1 1 0 0 1-.83-.45L19.46 6h-6.92l-1.71 2.55A1 1 0 0 1 10 9H4Z'/%3E%3Cpath fill='currentColor' d='M16 22a6 6 0 1 1 6-6a6 6 0 0 1-6 6m0-10a4 4 0 1 0 4 4a4 4 0 0 0-4-4'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-checkmark{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m13 24l-9-9l1.414-1.414L13 21.171L26.586 7.586L28 9z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-close{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17.414 16L24 9.414L22.586 8L16 14.586L9.414 8L8 9.414L14.586 16L8 22.586L9.414 24L16 17.414L22.586 24L24 22.586z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-event{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M28 6a2 2 0 0 0-2-2h-4V2h-2v2h-8V2h-2v2H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h4v-2H6V6h4v2h2V6h8v2h2V6h4v6h2Z'/%3E%3Cpath fill='currentColor' d='m21 15l2.549 4.938l5.451.791l-4 3.844L26 30l-5-2.562L16 30l1-5.427l-4-3.844l5.6-.791z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-face-cool{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 24a8 8 0 0 0 6.85-3.89l-1.71-1a6 6 0 0 1-10.28 0l-1.71 1A8 8 0 0 0 16 24'/%3E%3Cpath fill='currentColor' d='M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m0 2a12 12 0 0 1 10.89 7H25a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1H5.11A12 12 0 0 1 16 4m0 24A12 12 0 0 1 4 16a12 12 0 0 1 .4-3H7v2a2 2 0 0 0 2 2h3.31a2 2 0 0 0 2-1.67l.52-3.33h2.34l.55 3.33a2 2 0 0 0 2 1.67H23a2 2 0 0 0 2-2v-2h2.6a12 12 0 0 1 .4 3a12 12 0 0 1-12 12'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-gift{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M26 10h-2.762A4.487 4.487 0 0 0 16 4.707A4.487 4.487 0 0 0 8.762 10H6a2.003 2.003 0 0 0-2 2v4a2.003 2.003 0 0 0 2 2v10a2.003 2.003 0 0 0 2 2h16a2.003 2.003 0 0 0 2-2V18a2.003 2.003 0 0 0 2-2v-4a2.003 2.003 0 0 0-2-2m-9-2.5a2.5 2.5 0 1 1 2.5 2.5H17ZM12.5 5A2.503 2.503 0 0 1 15 7.5V10h-2.5a2.5 2.5 0 0 1 0-5M6 12h9v4H6Zm2 6h7v10H8Zm16.001 10H17V18h7ZM17 16v-4h9l.001 4Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-image{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M19 14a3 3 0 1 0-3-3a3 3 0 0 0 3 3m0-4a1 1 0 1 1-1 1a1 1 0 0 1 1-1'/%3E%3Cpath fill='currentColor' d='M26 4H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2m0 22H6v-6l5-5l5.59 5.59a2 2 0 0 0 2.82 0L21 19l5 5Zm0-4.83l-3.59-3.59a2 2 0 0 0-2.82 0L18 19.17l-5.59-5.59a2 2 0 0 0-2.82 0L6 17.17V6h20Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-logo-facebook{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M26.67 4H5.33A1.34 1.34 0 0 0 4 5.33v21.34A1.34 1.34 0 0 0 5.33 28h11.49v-9.28H13.7v-3.63h3.12v-2.67c0-3.1 1.89-4.79 4.67-4.79c.93 0 1.86 0 2.79.14V11h-1.91c-1.51 0-1.8.72-1.8 1.77v2.31h3.6l-.47 3.63h-3.13V28h6.1A1.34 1.34 0 0 0 28 26.67V5.33A1.34 1.34 0 0 0 26.67 4'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-logo-instagram{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Ccircle cx='22.406' cy='9.594' r='1.44' fill='currentColor'/%3E%3Cpath fill='currentColor' d='M16 9.838A6.162 6.162 0 1 0 22.162 16A6.16 6.16 0 0 0 16 9.838M16 20a4 4 0 1 1 4-4a4 4 0 0 1-4 4'/%3E%3Cpath fill='currentColor' d='M16 6.162c3.204 0 3.584.012 4.849.07a6.6 6.6 0 0 1 2.228.413a3.98 3.98 0 0 1 2.278 2.278a6.6 6.6 0 0 1 .413 2.228c.058 1.265.07 1.645.07 4.85s-.012 3.583-.07 4.848a6.6 6.6 0 0 1-.413 2.228a3.98 3.98 0 0 1-2.278 2.278a6.6 6.6 0 0 1-2.228.413c-1.265.058-1.645.07-4.849.07s-3.584-.012-4.849-.07a6.6 6.6 0 0 1-2.228-.413a3.98 3.98 0 0 1-2.278-2.278a6.6 6.6 0 0 1-.413-2.228c-.058-1.265-.07-1.645-.07-4.849s.012-3.584.07-4.849a6.6 6.6 0 0 1 .413-2.228a3.98 3.98 0 0 1 2.278-2.278a6.6 6.6 0 0 1 2.228-.413c1.265-.058 1.645-.07 4.849-.07M16 4c-3.259 0-3.668.014-4.948.072a8.8 8.8 0 0 0-2.912.558a6.14 6.14 0 0 0-3.51 3.51a8.8 8.8 0 0 0-.558 2.913C4.014 12.333 4 12.74 4 16s.014 3.668.072 4.948a8.8 8.8 0 0 0 .558 2.912a6.14 6.14 0 0 0 3.51 3.51a8.8 8.8 0 0 0 2.913.558c1.28.058 1.688.072 4.947.072s3.668-.014 4.948-.072a8.8 8.8 0 0 0 2.913-.558a6.14 6.14 0 0 0 3.51-3.51a8.8 8.8 0 0 0 .557-2.913C27.986 19.667 28 19.26 28 16s-.014-3.668-.072-4.948a8.8 8.8 0 0 0-.558-2.912a6.14 6.14 0 0 0-3.51-3.51a8.8 8.8 0 0 0-2.913-.557C19.667 4.013 19.26 4 16 4'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-logo-wechat{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M27.086 24.78A6.62 6.62 0 0 0 30 19.465c0-3.88-3.776-7.027-8.434-7.027s-8.434 3.147-8.434 7.027s3.777 7.028 8.434 7.028a10 10 0 0 0 2.754-.385l.247-.037a.9.9 0 0 1 .448.13l1.847 1.066l.162.053a.28.28 0 0 0 .281-.282l-.045-.205l-.38-1.417l-.03-.18a.56.56 0 0 1 .236-.458M12.12 4.68C6.53 4.68 2 8.455 2 13.114a7.94 7.94 0 0 0 3.497 6.374a.67.67 0 0 1 .283.55l-.035.215l-.456 1.701l-.055.246a.34.34 0 0 0 .337.338l.196-.063l2.216-1.28a1.06 1.06 0 0 1 .536-.155l.298.044a12 12 0 0 0 3.304.464l.555-.014a6.5 6.5 0 0 1-.34-2.067c0-4.247 4.133-7.691 9.23-7.691l.55.014c-.762-4.029-4.947-7.11-9.995-7.11m6.633 13.663a1.125 1.125 0 1 1 1.125-1.125a1.124 1.124 0 0 1-1.125 1.125m5.624 0a1.125 1.125 0 1 1 1.123-1.125a1.125 1.125 0 0 1-1.123 1.125m-15.631-6.58a1.35 1.35 0 1 1 1.35-1.348a1.35 1.35 0 0 1-1.35 1.349m6.747 0a1.35 1.35 0 1 1 1.35-1.348a1.35 1.35 0 0 1-1.35 1.349'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-menu{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M4 6h24v2H4zm0 18h24v2H4zm0-12h24v2H4zm0 6h24v2H4z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-moon{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M13.503 5.414a15.076 15.076 0 0 0 11.593 18.194a11.1 11.1 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1 1 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.07 13.07 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-store{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m30 10.68l-2-6A1 1 0 0 0 27 4H5a1 1 0 0 0-1 .68l-2 6A1.2 1.2 0 0 0 2 11v6a1 1 0 0 0 1 1h1v10h2V18h6v10h16V18h1a1 1 0 0 0 1-1v-6a1.2 1.2 0 0 0 0-.32M26 26H14v-8h12Zm2-10h-4v-4h-2v4h-5v-4h-2v4h-5v-4H8v4H4v-4.84L5.72 6h20.56L28 11.16Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-sun{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6M5.394 6.813L6.81 5.399l3.505 3.506L8.9 10.319zM2 15.005h5v2H2zm3.394 10.193L8.9 21.692l1.414 1.414l-3.505 3.506zM15 25.005h2v5h-2zm6.687-1.9l1.414-1.414l3.506 3.506l-1.414 1.414zm3.313-8.1h5v2h-5zm-3.313-6.101l3.506-3.506l1.414 1.414l-3.506 3.506zM15 2.005h2v5h-2z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-user{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 4a5 5 0 1 1-5 5a5 5 0 0 1 5-5m0-2a7 7 0 1 0 7 7a7 7 0 0 0-7-7m10 28h-2v-5a5 5 0 0 0-5-5h-6a5 5 0 0 0-5 5v5H6v-5a7 7 0 0 1 7-7h6a7 7 0 0 1 7 7Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-user-avatar{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 8a5 5 0 1 0 5 5a5 5 0 0 0-5-5m0 8a3 3 0 1 1 3-3a3.003 3.003 0 0 1-3 3'/%3E%3Cpath fill='currentColor' d='M16 2a14 14 0 1 0 14 14A14.016 14.016 0 0 0 16 2m-6 24.377V25a3.003 3.003 0 0 1 3-3h6a3.003 3.003 0 0 1 3 3v1.377a11.9 11.9 0 0 1-12 0m13.993-1.451A5 5 0 0 0 19 20h-6a5 5 0 0 0-4.992 4.926a12 12 0 1 1 15.985 0'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-carbon-view{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M30.94 15.66A16.69 16.69 0 0 0 16 5A16.69 16.69 0 0 0 1.06 15.66a1 1 0 0 0 0 .68A16.69 16.69 0 0 0 16 27a16.69 16.69 0 0 0 14.94-10.66a1 1 0 0 0 0-.68M16 25c-5.3 0-10.9-3.93-12.93-9C5.1 10.93 10.7 7 16 7s10.9 3.93 12.93 9C26.9 21.07 21.3 25 16 25'/%3E%3Cpath fill='currentColor' d='M16 10a6 6 0 1 0 6 6a6 6 0 0 0-6-6m0 10a4 4 0 1 1 4-4a4 4 0 0 1-4 4'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
.i-simple-icons-xiaohongshu{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M22.405 9.879c.002.016.01.02.07.019h.725a.797.797 0 0 0 .78-.972a.794.794 0 0 0-.884-.618a.795.795 0 0 0-.692.794c0 .101-.002.666.001.777m-11.509 4.808c-.203.001-1.353.004-1.685.003a2.5 2.5 0 0 1-.766-.126a.025.025 0 0 0-.03.014L7.7 16.127a.025.025 0 0 0 .01.032c.111.06.336.124.495.124c.66.01 1.32.002 1.981 0q.017 0 .023-.015l.712-1.545a.025.025 0 0 0-.024-.036zM.477 9.91c-.071 0-.076.002-.076.01l-.01.08c-.027.397-.038.495-.234 3.06c-.012.24-.034.389-.135.607c-.026.057-.033.042.003.112c.046.092.681 1.523.787 1.74c.008.015.011.02.017.02c.008 0 .033-.026.047-.044q.219-.282.371-.606c.306-.635.44-1.325.486-1.706c.014-.11.021-.22.03-.33l.204-2.616l.022-.293c.003-.029 0-.033-.03-.034zm7.203 3.757a1.4 1.4 0 0 1-.135-.607c-.004-.084-.031-.39-.235-3.06a.4.4 0 0 0-.01-.082c-.004-.011-.052-.008-.076-.008h-1.48c-.03.001-.034.005-.03.034l.021.293q.114 1.473.233 2.946c.05.4.186 1.085.487 1.706c.103.215.223.419.37.606c.015.018.037.051.048.049c.02-.003.742-1.642.804-1.765c.036-.07.03-.055.003-.112m3.861-.913h-.872a.126.126 0 0 1-.116-.178l1.178-2.625a.025.025 0 0 0-.023-.035l-1.318-.003a.148.148 0 0 1-.135-.21l.876-1.954a.025.025 0 0 0-.023-.035h-1.56q-.017 0-.024.015l-.926 2.068c-.085.169-.314.634-.399.938a.5.5 0 0 0-.02.191a.46.46 0 0 0 .23.378a1 1 0 0 0 .46.119h.59c.041 0-.688 1.482-.834 1.972a.5.5 0 0 0-.023.172a.47.47 0 0 0 .23.398c.15.092.342.12.475.12l1.66-.001q.017 0 .023-.015l.575-1.28a.025.025 0 0 0-.024-.035m-6.93-4.937H3.1a.032.032 0 0 0-.034.033c0 1.048-.01 2.795-.01 6.829c0 .288-.269.262-.28.262h-.74c-.04.001-.044.004-.04.047c.001.037.465 1.064.555 1.263c.01.02.03.033.051.033c.157.003.767.009.938-.014c.153-.02.3-.06.438-.132c.3-.156.49-.419.595-.765c.052-.172.075-.353.075-.533q.003-3.495-.007-6.991a.03.03 0 0 0-.032-.032zm11.784 6.896q-.002-.02-.024-.022h-1.465c-.048-.001-.049-.002-.05-.049v-4.66c0-.072-.005-.07.07-.07h.863c.08 0 .075.004.075-.074V8.393c0-.082.006-.076-.08-.076h-3.5c-.064 0-.075-.006-.075.073v1.445c0 .083-.006.077.08.077h.854c.075 0 .07-.004.07.07v4.624c0 .095.008.084-.085.084c-.37 0-1.11-.002-1.304 0c-.048.001-.06.03-.06.03l-.697 1.519s-.014.025-.008.036s.013.008.058.008q2.622.003 5.243.002c.03-.001.034-.006.035-.033zm4.177-3.43q0 .021-.02.024c-.346.006-.692.004-1.037.004q-.021-.003-.022-.024q-.006-.651-.01-1.303c0-.072-.006-.071.07-.07l.733-.003c.041 0 .081.002.12.015c.093.025.16.107.165.204c.006.431.002 1.153.001 1.153m2.67.244a1.95 1.95 0 0 0-.883-.222h-.18c-.04-.001-.04-.003-.042-.04V10.21q.001-.198-.025-.394a1.8 1.8 0 0 0-.153-.53a1.53 1.53 0 0 0-.677-.71a2.2 2.2 0 0 0-1-.258c-.153-.003-.567 0-.72 0c-.07 0-.068.004-.068-.065V7.76c0-.031-.01-.041-.046-.039H17.93s-.016 0-.023.007q-.008.008-.008.023v.546c-.008.036-.057.015-.082.022h-.95c-.022.002-.028.008-.03.032v1.481c0 .09-.004.082.082.082h.913c.082 0 .072.128.072.128v1.148s.003.117-.06.117h-1.482c-.068 0-.06.082-.06.082v1.445s-.01.068.064.068h1.457c.082 0 .076-.006.076.079v3.225c0 .088-.007.081.082.081h1.43c.09 0 .082.007.082-.08v-3.27c0-.029.006-.035.033-.035l2.323-.003a.7.7 0 0 1 .28.061a.46.46 0 0 1 .274.407c.008.395.003.79.003 1.185c0 .259-.107.367-.33.367h-1.218c-.023.002-.029.008-.028.033q.276.655.57 1.303a.05.05 0 0 0 .04.026c.17.005.34.002.51.003c.15-.002.517.004.666-.01a2 2 0 0 0 .408-.075c.59-.18.975-.698.976-1.313v-1.981q.001-.191-.034-.38c0 .078-.029-.641-.724-.998'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1.2em;height:1.2em;}
/* layer: shortcuts */
.btn{font-size:var(--text-sm-fontSize);line-height:var(--un-leading, var(--text-sm-lineHeight));--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);--un-border-style:none;border-style:none;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition-property:all;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));--un-duration:200ms;transition-duration:200ms;align-items:center;justify-content:center;}
.btn-ghost{font-size:var(--text-sm-fontSize);line-height:var(--un-leading, var(--text-sm-lineHeight));color:color-mix(in oklab, var(--text-muted) var(--un-text-opacity), transparent) /* var(--text-muted) */;--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);border-radius:calc(infinity * 1px);--un-border-style:none;border-style:none;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition-property:all;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));--un-duration:200ms;transition-duration:200ms;align-items:center;justify-content:center;}
.btn-lg{font-size:var(--text-base-fontSize);line-height:var(--un-leading, var(--text-base-lineHeight));padding-inline:calc(var(--spacing) * 8);padding-block:calc(var(--spacing) * 4);}
.btn-light{font-size:var(--text-sm-fontSize);line-height:var(--un-leading, var(--text-sm-lineHeight));color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);border-width:1px;border-color:color-mix(in oklab, var(--border) var(--un-border-opacity), transparent) /* var(--border) */;border-radius:calc(infinity * 1px);--un-border-style:none;border-style:none;background-color:color-mix(in srgb, var(--surface-alt) var(--un-bg-opacity), transparent) /* var(--surface-alt) */;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition-property:all;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));--un-duration:200ms;transition-duration:200ms;align-items:center;justify-content:center;}
.btn-primary{font-size:var(--text-sm-fontSize);line-height:var(--un-leading, var(--text-sm-lineHeight));color:color-mix(in oklab, var(--text-invert) var(--un-text-opacity), transparent) /* var(--text-invert) */;--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 6);padding-block:calc(var(--spacing) * 3);border-radius:calc(infinity * 1px);--un-border-style:none;border-style:none;background-color:color-mix(in oklab, var(--brand-primary) var(--un-bg-opacity), transparent) /* var(--brand-primary) */;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition-property:all;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));--un-duration:200ms;transition-duration:200ms;align-items:center;justify-content:center;}
.eyebrow{font-size:var(--text-xs-fontSize);line-height:var(--un-leading, var(--text-xs-lineHeight));display:inline-flex;gap:calc(var(--spacing) * 3);align-items:center;}
.figure-num,
.service-num{font-size:var(--text-sm-fontSize);line-height:var(--un-leading, var(--text-sm-lineHeight));color:color-mix(in oklab, var(--text-muted) var(--un-text-opacity), transparent) /* var(--text-muted) */;font-family:var(--font-mono);}
.form-label{font-size:var(--text-sm-fontSize);line-height:var(--un-leading, var(--text-sm-lineHeight));color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);margin-bottom:calc(var(--spacing) * 2);display:block;}
.process-label{font-size:var(--text-xs-fontSize);line-height:var(--un-leading, var(--text-xs-lineHeight));color:color-mix(in oklab, var(--text-muted) var(--un-text-opacity), transparent) /* var(--text-muted) */;font-family:var(--font-mono);}
.process-title{font-size:var(--text-xl-fontSize);line-height:var(--un-leading, var(--text-xl-lineHeight));font-family:var(--font-display);}
.pull-quote{font-size:var(--text-3xl-fontSize);line-height:var(--un-leading, var(--text-3xl-lineHeight));color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;--un-leading:1.15;line-height:1.15;--un-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);font-family:var(--font-display);}
.service-title{font-size:var(--text-2xl-fontSize);line-height:var(--un-leading, var(--text-2xl-lineHeight));font-family:var(--font-display);--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold);}
.wordmark{font-size:var(--text-2xl-fontSize);line-height:var(--un-leading, var(--text-2xl-lineHeight));color:color-mix(in oklab, var(--brand-primary) var(--un-text-opacity), transparent) /* var(--brand-primary) */;--un-leading:var(--leading-none);line-height:var(--leading-none);--un-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);font-family:var(--font-display);--un-font-weight:var(--fontWeight-bold);font-weight:var(--fontWeight-bold);}
.contact-headline{font-size:clamp(2.5rem,8vw,6.5rem);--un-leading:1.02;line-height:1.02;--un-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);font-family:var(--font-display);--un-font-weight:var(--fontWeight-bold);font-weight:var(--fontWeight-bold);}
.eyebrow-lbl{color:color-mix(in oklab, var(--brand-accent) var(--un-text-opacity), transparent) /* var(--brand-accent) */;--un-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);text-transform:uppercase;}
.eyebrow-num{color:color-mix(in oklab, var(--text-muted) var(--un-text-opacity), transparent) /* var(--text-muted) */;--un-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);font-family:var(--font-mono);}
.form-input{color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);border-width:1px;border-color:color-mix(in oklab, var(--border) var(--un-border-opacity), transparent) /* var(--border) */;border-radius:var(--radius-md);background-color:color-mix(in srgb, var(--surface-alt) var(--un-bg-opacity), transparent) /* var(--surface-alt) */;width:100%;}
.h-section{color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;--un-leading:1.1;line-height:1.1;--un-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);font-family:var(--font-display);--un-font-weight:var(--fontWeight-bold);font-weight:var(--fontWeight-bold);}
.h-sub{color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;--un-leading:1.2;line-height:1.2;--un-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);font-family:var(--font-display);--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold);}
.hero-headline{color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;font-size:clamp(2.5rem,5vw,4.25rem);--un-leading:1.05;line-height:1.05;--un-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);font-family:var(--font-display);--un-font-weight:var(--fontWeight-bold);font-weight:var(--fontWeight-bold);}
.text-accent{color:color-mix(in oklab, var(--brand-accent) var(--un-text-opacity), transparent) /* var(--brand-accent) */;}
.text-danger{color:color-mix(in oklab, var(--danger) var(--un-text-opacity), transparent) /* var(--danger) */;}
.text-default{color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;}
.text-invert{color:color-mix(in oklab, var(--text-invert) var(--un-text-opacity), transparent) /* var(--text-invert) */;}
.text-muted{color:color-mix(in oklab, var(--text-muted) var(--un-text-opacity), transparent) /* var(--text-muted) */;}
.text-success{color:color-mix(in oklab, var(--success) var(--un-text-opacity), transparent) /* var(--success) */;}
.tile-caption{color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;--un-leading:var(--leading-snug);line-height:var(--leading-snug);font-style:italic;}
.btn-ghost:hover{color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;}
.hover\:text-accent:hover{color:color-mix(in oklab, var(--brand-accent) var(--un-text-opacity), transparent) /* var(--brand-accent) */;}
.hover\:text-default:hover{color:color-mix(in oklab, var(--text) var(--un-text-opacity), transparent) /* var(--text) */;}
.disabled\:hover\:text-muted:hover:disabled{color:color-mix(in oklab, var(--text-muted) var(--un-text-opacity), transparent) /* var(--text-muted) */;}
.disabled\:text-muted:disabled{color:color-mix(in oklab, var(--text-muted) var(--un-text-opacity), transparent) /* var(--text-muted) */;}
.container{margin-inline:auto;padding-inline:calc(var(--spacing) * 6);max-width:var(--container-7xl);}
.container-sm{margin-inline:auto;padding-inline:calc(var(--spacing) * 6);max-width:var(--container-2xl);}
.section{padding-block:calc(var(--spacing) * 20);}
.section-lg{padding-block:calc(var(--spacing) * 24);}
.form-input:focus{outline-style:none;border-color:transparent;--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color, currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);--un-ring-color:color-mix(in oklab, var(--ring) var(--un-ring-opacity), transparent) /* var(--ring) */;}
.card{border-width:1px;border-color:color-mix(in oklab, var(--border) var(--un-border-opacity), transparent) /* var(--border) */;border-radius:var(--radius-lg);background-color:color-mix(in srgb, var(--elevated) var(--un-bg-opacity), transparent) /* var(--elevated) */;}
.hero-frame{border-width:1px;border-color:color-mix(in oklab, var(--border) var(--un-border-opacity), transparent) /* var(--border) */;background-color:color-mix(in srgb, var(--surface-2) var(--un-bg-opacity), transparent) /* var(--surface-2) */;display:flex;flex-direction:column;width:100%;aspect-ratio:4/5;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));--un-duration:300ms;transition-duration:300ms;position:relative;overflow:hidden;}
.border-accent{border-color:color-mix(in oklab, var(--brand-accent) var(--un-border-opacity), transparent) /* var(--brand-accent) */;}
.border-danger{border-color:color-mix(in oklab, var(--danger) var(--un-border-opacity), transparent) /* var(--danger) */;}
.border-default{border-color:color-mix(in oklab, var(--border) var(--un-border-opacity), transparent) /* var(--border) */;}
.border-strong,
.group:hover .group-hover\:border-strong{border-color:color-mix(in oklab, var(--border-strong) var(--un-border-opacity), transparent) /* var(--border-strong) */;}
.btn-light:hover{border-color:color-mix(in oklab, var(--border-strong) var(--un-border-opacity), transparent) /* var(--border-strong) */;}
.disabled\:hover\:border-default:hover:disabled{border-color:color-mix(in oklab, var(--border) var(--un-border-opacity), transparent) /* var(--border) */;}
.bg-brand{background-color:color-mix(in oklab, var(--brand-primary) var(--un-bg-opacity), transparent) /* var(--brand-primary) */;}
.bg-brand-soft{background-color:color-mix(in oklab, var(--brand-soft) var(--un-bg-opacity), transparent) /* var(--brand-soft) */;}
.hover\:bg-brand-soft:hover{background-color:color-mix(in oklab, var(--brand-soft) var(--un-bg-opacity), transparent) /* var(--brand-soft) */;}
.btn-primary:hover{background-color:color-mix(in oklab, var(--brand-primary-dark) var(--un-bg-opacity), transparent) /* var(--brand-primary-dark) */;}
.form-input::placeholder{color:color-mix(in srgb, var(--text-muted) var(--un-placeholder-opacity), transparent) /* var(--text-muted) */;}
@media (forced-colors: active){
.form-input:focus{outline:2px solid transparent;outline-offset:2px;}
}
@media (min-width: 48rem){
.process-title{font-size:var(--text-2xl-fontSize);line-height:var(--un-leading, var(--text-2xl-lineHeight));}
.pull-quote{font-size:var(--text-5xl-fontSize);line-height:var(--un-leading, var(--text-5xl-lineHeight));--un-leading:1.15;line-height:1.15;}
.service-title{font-size:var(--text-3xl-fontSize);line-height:var(--un-leading, var(--text-3xl-lineHeight));}
.container,
.container-sm{padding-inline:calc(var(--spacing) * 10);}
.section{padding-block:calc(var(--spacing) * 28);}
.section-lg{padding-block:calc(var(--spacing) * 36);}
.hero-frame{height:100%;aspect-ratio:auto;}
}
/* layer: default */
.text-\[10px\]{font-size:10px;}
.text-\[11px\]{font-size:11px;}
.text-2xl{font-size:var(--text-2xl-fontSize);line-height:var(--un-leading, var(--text-2xl-lineHeight));}
.text-3xl{font-size:var(--text-3xl-fontSize);line-height:var(--un-leading, var(--text-3xl-lineHeight));}
.text-4xl{font-size:var(--text-4xl-fontSize);line-height:var(--un-leading, var(--text-4xl-lineHeight));}
.text-base{font-size:var(--text-base-fontSize);line-height:var(--un-leading, var(--text-base-lineHeight));}
.text-lg{font-size:var(--text-lg-fontSize);line-height:var(--un-leading, var(--text-lg-lineHeight));}
.text-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading, var(--text-sm-lineHeight));}
.text-xl{font-size:var(--text-xl-fontSize);line-height:var(--un-leading, var(--text-xl-lineHeight));}
.text-xs{font-size:var(--text-xs-fontSize);line-height:var(--un-leading, var(--text-xs-lineHeight));}
.text-\[clamp\(1\.75rem\,3vw\,2\.5rem\)\]{font-size:clamp(1.75rem,3vw,2.5rem);}
.leading-\[1\.15\]{--un-leading:1.15;line-height:1.15;}
.leading-\[1\.7\]{--un-leading:1.7;line-height:1.7;}
.leading-none{--un-leading:var(--leading-none);line-height:var(--leading-none);}
.leading-relaxed{--un-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);}
.leading-snug{--un-leading:var(--leading-snug);line-height:var(--leading-snug);}
.tracking-\[0\.18em\]{--un-tracking:0.18em;letter-spacing:0.18em;}
.tracking-\[0\.2em\]{--un-tracking:0.2em;letter-spacing:0.2em;}
.tracking-tight{--un-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);}
.tracking-wide{--un-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide);}
.font-bold{--un-font-weight:var(--fontWeight-bold);font-weight:var(--fontWeight-bold);}
.font-display{font-family:var(--font-display);}
.font-medium{--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);}
.font-mono{font-family:var(--font-mono);}
.font-normal{--un-font-weight:var(--fontWeight-normal);font-weight:var(--fontWeight-normal);}
.font-semibold{--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold);}
.m\[1\]{margin:1;}
.mx-4{margin-inline:calc(var(--spacing) * 4);}
.mx-auto{margin-inline:auto;}
.mb-1{margin-bottom:calc(var(--spacing) * 1);}
.mb-10{margin-bottom:calc(var(--spacing) * 10);}
.mb-12{margin-bottom:calc(var(--spacing) * 12);}
.mb-16{margin-bottom:calc(var(--spacing) * 16);}
.mb-2{margin-bottom:calc(var(--spacing) * 2);}
.mb-4{margin-bottom:calc(var(--spacing) * 4);}
.mb-5{margin-bottom:calc(var(--spacing) * 5);}
.mb-6{margin-bottom:calc(var(--spacing) * 6);}
.mb-8{margin-bottom:calc(var(--spacing) * 8);}
.ml-1{margin-left:calc(var(--spacing) * 1);}
.ml-2{margin-left:calc(var(--spacing) * 2);}
.ml-auto{margin-left:auto;}
.mt-1{margin-top:calc(var(--spacing) * 1);}
.mt-10{margin-top:calc(var(--spacing) * 10);}
.mt-12{margin-top:calc(var(--spacing) * 12);}
.mt-2{margin-top:calc(var(--spacing) * 2);}
.mt-6{margin-top:calc(var(--spacing) * 6);}
.p-10{padding:calc(var(--spacing) * 10);}
.p-2{padding:calc(var(--spacing) * 2);}
.p-3{padding:calc(var(--spacing) * 3);}
.p-4{padding:calc(var(--spacing) * 4);}
.p-6{padding:calc(var(--spacing) * 6);}
.p-8{padding:calc(var(--spacing) * 8);}
.px-1{padding-inline:calc(var(--spacing) * 1);}
.px-4{padding-inline:calc(var(--spacing) * 4);}
.px-6{padding-inline:calc(var(--spacing) * 6);}
.py-1{padding-block:calc(var(--spacing) * 1);}
.py-12{padding-block:calc(var(--spacing) * 12);}
.py-14{padding-block:calc(var(--spacing) * 14);}
.py-24{padding-block:calc(var(--spacing) * 24);}
.py-3{padding-block:calc(var(--spacing) * 3);}
.py-4{padding-block:calc(var(--spacing) * 4);}
.py-5{padding-block:calc(var(--spacing) * 5);}
.py-8{padding-block:calc(var(--spacing) * 8);}
.pt-16{padding-top:calc(var(--spacing) * 16);}
.pt-4{padding-top:calc(var(--spacing) * 4);}
.pt-6{padding-top:calc(var(--spacing) * 6);}
.pt-8{padding-top:calc(var(--spacing) * 8);}
.text-center{text-align:center;}
.text-left{text-align:left;}
.text-right{text-align:right;}
.align-middle{vertical-align:middle;}
.list-disc{list-style-type:disc;}
.list-inside{list-style-position:inside;}
.border{border-width:1px;}
.border-y{border-block-width:1px;}
.border-b{border-bottom-width:1px;}
.border-b-2{border-bottom-width:2px;}
.border-t{border-top-width:1px;}
.rounded{border-radius:var(--radius-DEFAULT);}
.rounded-full{border-radius:calc(infinity * 1px);}
.rounded-lg{border-radius:var(--radius-lg);}
.bg-elevated{background-color:color-mix(in srgb, var(--elevated) var(--un-bg-opacity), transparent) /* var(--elevated) */;}
.bg-surface{background-color:color-mix(in srgb, var(--surface) var(--un-bg-opacity), transparent) /* var(--surface) */;}
.bg-surface-2{background-color:color-mix(in srgb, var(--surface-2) var(--un-bg-opacity), transparent) /* var(--surface-2) */;}
.bg-surface-alt{background-color:color-mix(in srgb, var(--surface-alt) var(--un-bg-opacity), transparent) /* var(--surface-alt) */;}
.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent;}
.opacity-20{opacity:20%;}
.opacity-50{opacity:50%;}
.opacity-70{opacity:70%;}
.opacity-80{opacity:80%;}
.opacity-90{opacity:90%;}
.hover\:opacity-100:hover{opacity:100%;}
.disabled\:opacity-40:disabled{opacity:40%;}
.hover\:underline:hover{text-decoration-line:underline;}
.disabled\:line-through:disabled{text-decoration-line:line-through;}
.flex{display:flex;}
.inline-flex{display:inline-flex;}
.flex-1{flex:1 1 0%;}
.shrink-0{flex-shrink:0;}
.flex-col{flex-direction:column;}
.gap-10{gap:calc(var(--spacing) * 10);}
.gap-2{gap:calc(var(--spacing) * 2);}
.gap-3{gap:calc(var(--spacing) * 3);}
.gap-4{gap:calc(var(--spacing) * 4);}
.gap-5{gap:calc(var(--spacing) * 5);}
.gap-6{gap:calc(var(--spacing) * 6);}
.gap-8{gap:calc(var(--spacing) * 8);}
.grid{display:grid;}
.col-span-1{grid-column:span 1/span 1;}
.col-span-2{grid-column:span 2/span 2;}
.row-span-2{grid-row:span 2/span 2;}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.h-16{height:calc(var(--spacing) * 16);}
.h-8{height:calc(var(--spacing) * 8);}
.h-full{height:100%;}
.max-w-\[140px\]{max-width:140px;}
.max-w-\[28ch\]{max-width:28ch;}
.max-w-3xl{max-width:var(--container-3xl);}
.max-w-lg{max-width:var(--container-lg);}
.max-w-md{max-width:var(--container-md);}
.max-w-sm{max-width:var(--container-sm);}
.min-h-\[100px\]{min-height:100px;}
.min-h-0{min-height:calc(var(--spacing) * 0);}
.min-h-screen{min-height:100vh;}
.min-w-0{min-width:calc(var(--spacing) * 0);}
.w-16{width:calc(var(--spacing) * 16);}
.w-full{width:100%;}
.w-px{width:1px;}
.aspect-\[16\/9\]{aspect-ratio:16/9;}
.aspect-\[4\/5\]{aspect-ratio:4/5;}
.block{display:block;}
.inline-block{display:inline-block;}
.hidden{display:none;}
.visible{visibility:visible;}
.cursor-not-allowed{cursor:not-allowed;}
.disabled\:cursor-not-allowed:disabled{cursor:not-allowed;}
.resize{resize:both;}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.uppercase{text-transform:uppercase;}
.italic{font-style:italic;}
.not-italic{font-style:normal;}
.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.scale-125{--un-scale-x:125%;--un-scale-y:125%;scale:var(--un-scale-x) var(--un-scale-y);}
.group:hover .group-hover\:scale-105{--un-scale-x:105%;--un-scale-y:105%;scale:var(--un-scale-x) var(--un-scale-y);}
.transition-all{transition-property:all;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--un-ease, var(--default-transition-timingFunction));transition-duration:var(--un-duration, var(--default-transition-duration));}
.duration-300{--un-duration:300ms;transition-duration:300ms;}
.duration-500{--un-duration:500ms;transition-duration:500ms;}
.ease-out{--un-ease:var(--ease-out);transition-timing-function:var(--ease-out);}
.items-start{align-items:flex-start;}
.items-center{align-items:center;}
.inset-0{inset:calc(var(--spacing) * 0);}
.left-0{left:calc(var(--spacing) * 0);}
.right-0{right:calc(var(--spacing) * 0);}
.top-0{top:calc(var(--spacing) * 0);}
.justify-end{justify-content:flex-end;}
.justify-center{justify-content:center;}
.justify-between{justify-content:space-between;}
.absolute{position:absolute;}
.fixed{position:fixed;}
.relative{position:relative;}
.static{position:static;}
.z-50{z-index:50;}
.overflow-hidden{overflow:hidden;}
.object-cover{object-fit:cover;}
.divide-y{
:where(&>:not(:last-child)){--un-divide-y-reverse:0;border-top-width:calc(1px * var(--un-divide-y-reverse));border-top-style:var(--un-border-style);border-bottom-width:calc(1px * calc(1 - var(--un-divide-y-reverse)));border-bottom-style:var(--un-border-style);}
}
.space-y-2{
:where(&>:not(:last-child)){--un-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--un-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--un-space-y-reverse)));}
}
.space-y-5{
:where(&>:not(:last-child)){--un-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--un-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--un-space-y-reverse)));}
}
.space-y-6{
:where(&>:not(:last-child)){--un-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--un-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--un-space-y-reverse)));}
}
@media (min-width: 40rem){
.sm\:inline-flex{display:inline-flex;}
.sm\:gap-2\.5{gap:calc(var(--spacing) * 2.5);}
.sm\:inline-block{display:inline-block;}
}
@media (min-width: 48rem){
.md\:text-3xl{font-size:var(--text-3xl-fontSize);line-height:var(--un-leading, var(--text-3xl-lineHeight));}
.md\:text-5xl{font-size:var(--text-5xl-fontSize);line-height:var(--un-leading, var(--text-5xl-lineHeight));}
.md\:text-6xl{font-size:var(--text-6xl-fontSize);line-height:var(--un-leading, var(--text-6xl-lineHeight));}
.md\:mb-0{margin-bottom:calc(var(--spacing) * 0);}
.md\:mb-12{margin-bottom:calc(var(--spacing) * 12);}
.md\:mb-16{margin-bottom:calc(var(--spacing) * 16);}
.md\:mb-6{margin-bottom:calc(var(--spacing) * 6);}
.md\:mt-16{margin-top:calc(var(--spacing) * 16);}
.md\:py-0{padding-block:calc(var(--spacing) * 0);}
.md\:py-16{padding-block:calc(var(--spacing) * 16);}
.md\:py-32{padding-block:calc(var(--spacing) * 32);}
.md\:pr-6{padding-right:calc(var(--spacing) * 6);}
.md\:border-r{border-right-width:1px;}
.md\:flex{display:flex;}
.md\:inline-flex{display:inline-flex;}
.md\:flex-row{flex-direction:row;}
.md\:flex-col{flex-direction:column;}
.md\:gap-16{gap:calc(var(--spacing) * 16);}
.md\:gap-4{gap:calc(var(--spacing) * 4);}
.md\:gap-6{gap:calc(var(--spacing) * 6);}
.md\:gap-8{gap:calc(var(--spacing) * 8);}
.md\:grid{display:grid;}
.md\:col-span-2{grid-column:span 2/span 2;}
.md\:col-span-3{grid-column:span 3/span 3;}
.md\:col-span-4{grid-column:span 4/span 4;}
.md\:col-span-5{grid-column:span 5/span 5;}
.md\:col-span-7{grid-column:span 7/span 7;}
.md\:col-span-8{grid-column:span 8/span 8;}
.md\:col-span-9{grid-column:span 9/span 9;}
.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr));}
.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr));}
.md\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr));}
.md\:h-full{height:100%;}
.md\:max-w-3xl{max-width:var(--container-3xl);}
.md\:min-h-\[max\(560px\,calc\(100vh-4rem\)\)\]{min-height:max(560px,calc(100vh - 4rem));}
.md\:block{display:block;}
.md\:hidden{display:none;}
.md\:items-start{align-items:flex-start;}
.md\:items-end{align-items:flex-end;}
.md\:items-center{align-items:center;}
.md\:top-24{top:calc(var(--spacing) * 24);}
.md\:top-32{top:calc(var(--spacing) * 32);}
.md\:justify-center{justify-content:center;}
.md\:justify-between{justify-content:space-between;}
.md\:sticky{position:sticky;}
}
@media (min-width: 64rem){
.lg\:pr-10{padding-right:calc(var(--spacing) * 10);}
.lg\:flex{display:flex;}
.lg\:gap-10{gap:calc(var(--spacing) * 10);}
.lg\:hidden{display:none;}
}
@media (min-width: 80rem){
.xl\:inline-flex{display:inline-flex;}
}