@layer se.reset, se.base, se.section, se.direction, se.menu, se.dock, se.compose, se.util, se.custom;

@layer se.reset {
  .se-site *, .se-site *::before, .se-site *::after { box-sizing: border-box; }
  .se-site :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote) { margin: 0; }
  .se-site :where(ul, ol)[role="list"] { list-style: none; padding: 0; }
  .se-site img, .se-site video, .se-site svg { display: block; max-inline-size: 100%; }
  .se-site :where(button, input, textarea, select) { font: inherit; color: inherit; }
  .se-site :where(a) { color: inherit; }
}

@layer se.base {
  html { scroll-padding-block-start: var(--se-scroll-pad, 88px); -webkit-text-size-adjust: 100%; }
  body { margin: 0; background: var(--se-bg); }
  .se-site {
    --se-gutter: clamp(1rem, 4vw, 2.5rem);
    --se-max: 72rem;
    --se-space: clamp(3.5rem, 8vw, 7rem);
    --se-radius: 10px;
    --se-radius-lg: 18px;
    --se-rule-w: 1px;
    --se-fs-0: 1rem;
    --se-fs-1: calc(1rem * var(--se-scale, 1.25));
    --se-fs-2: calc(var(--se-fs-1) * var(--se-scale, 1.25));
    --se-fs-3: calc(var(--se-fs-2) * var(--se-scale, 1.25));
    --se-fs-4: calc(var(--se-fs-3) * var(--se-scale, 1.25));
    --se-fs-hero: clamp(2.4rem, 1.4rem + 4.6vw, calc(var(--se-fs-4) * 1.35));
    --se-fs-h2: clamp(1.7rem, 1.2rem + 2.2vw, var(--se-fs-3));
    background: var(--se-bg);
    color: var(--se-fg);
    font-family: var(--se-font-text);
    font-weight: var(--se-text-weight, 400);
    font-size: 1.0625rem;
    line-height: 1.6;
    min-block-size: 100vh;
    overflow-x: clip;
    text-rendering: optimizeLegibility;
  }
  .se-site :where(h1, h2, h3, .se-title, .se-display) {
    font-family: var(--se-font-display);
    font-weight: var(--se-display-weight, 700);
    letter-spacing: var(--se-display-tracking, -0.01em);
    line-height: var(--se-display-leading, 1.1);
    font-stretch: var(--se-display-stretch, 100%);
    text-wrap: balance;
  }
  .se-site :where(p, li, dd) { text-wrap: pretty; }
  .se-site a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
  .se-site :where(.se-prose a, .se-item-body a) { color: var(--se-link); }
  .se-site :focus-visible { outline: 3px solid var(--se-focus); outline-offset: 3px; border-radius: 4px; }

  .se-skip { position: absolute; inset-inline-start: 1rem; inset-block-start: -4rem; z-index: 100;
    background: var(--se-btn-bg); color: var(--se-btn-fg); padding: 0.6rem 1rem; border-radius: var(--se-radius); }
  .se-skip:focus { inset-block-start: 1rem; }

  .se-main { display: block; }
  .se-s { padding-block: calc(var(--se-space) * var(--se-density, 1)); position: relative; }
  .se-s.se-k-hero:first-child { padding-block-start: calc(var(--se-space) * 0.6); }
  .se-wrap { inline-size: 100%; max-inline-size: calc(var(--se-max) + 2 * var(--se-gutter)); margin-inline: auto; padding-inline: var(--se-gutter); }
  .se-narrow { max-inline-size: calc(46rem + 2 * var(--se-gutter)); }
  .se-wrap .se-narrow { padding-inline: 0; margin-inline: 0; }
  .se-wide { max-inline-size: calc(90rem + 2 * var(--se-gutter)); }
  .se-center { text-align: center; }
  .se-center .se-head, .se-center .se-actions { justify-content: center; margin-inline: auto; }
  .se-muted { color: var(--se-muted); }

  .se-head { display: grid; gap: 0.7rem; margin-block-end: clamp(1.5rem, 3vw, 2.5rem); max-inline-size: 48rem; }
  .se-kicker { font-family: var(--se-font-label); text-transform: var(--se-label-case, none); letter-spacing: var(--se-label-tracking, 0.06em);
    font-size: 0.8rem; font-weight: var(--se-strong-weight, 600); color: var(--se-muted); }
  .se-title { font-size: var(--se-fs-h2); }
  h1.se-title { font-size: var(--se-fs-hero); }
  .se-lede { font-size: clamp(1.1rem, 1rem + 0.5vw, 1.3rem); color: var(--se-muted); max-inline-size: 40rem; }
  .se-prose { display: grid; gap: 1em; max-inline-size: 42rem; }
  .se-lede-prose { font-size: clamp(1.15rem, 1rem + 0.8vw, 1.5rem); }
  .se-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block-start: 1.5rem; }

  .se-btn { display: inline-flex; align-items: center; gap: 0.55rem; min-block-size: 48px; padding: 0.7rem 1.25rem;
    border-radius: var(--se-radius); font-weight: var(--se-strong-weight, 600); text-decoration: none; line-height: 1.2;
    border: var(--se-rule-w) solid var(--se-btn-border); transition: transform 160ms ease, background-color 160ms ease; }
  .se-btn-primary { background: var(--se-btn-bg); color: var(--se-btn-fg); }
  .se-btn-ghost { background: transparent; color: inherit; border-color: currentColor; }
  .se-btn-link { background: none; border: 0; padding-inline: 0; color: var(--se-link); text-decoration: underline; }
  .se-btn:hover { transform: translateY(-1px); }
  .se-icon { flex: none; }

  .se-media { position: relative; overflow: hidden; border-radius: var(--se-radius); background: var(--se-media-bg, var(--se-surface)); }
  .se-media > img, .se-media > video { inline-size: 100%; block-size: 100%; object-fit: cover; }
  .se-wash { position: absolute; inset: 0; background: var(--se-wash); mix-blend-mode: soft-light; pointer-events: none; }
  /* No photograph yet: soft light in the palette's own colours, a fine ring, no words. Four compositions. */
  .se-ph { position: relative; overflow: hidden; min-block-size: 10rem; isolation: isolate;
    --ph-a: color-mix(in oklab, var(--se-accent) 62%, var(--se-bg)); --ph-b: color-mix(in oklab, var(--se-accent-2, var(--se-accent)) 46%, var(--se-bg));
    --ph-c: color-mix(in oklab, var(--se-fg) 9%, var(--se-bg)); --ph-x: 18%; --ph-y: 24%; --ph-rx: 74%; --ph-ry: 30%;
    background:
      radial-gradient(70% 85% at var(--ph-x) var(--ph-y), var(--ph-a) 0%, transparent 62%),
      radial-gradient(80% 70% at calc(100% - var(--ph-x)) calc(100% - var(--ph-y)), var(--ph-b) 0%, transparent 66%),
      linear-gradient(160deg, color-mix(in oklab, var(--se-accent) 14%, var(--se-bg)), var(--ph-c)); }
  .se-ph::after { content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(circle at var(--ph-rx) var(--ph-ry), transparent 0 21%, color-mix(in oklab, var(--se-fg) 22%, transparent) 21.3% 21.6%, transparent 22%),
      radial-gradient(circle at var(--ph-rx) var(--ph-ry), color-mix(in oklab, var(--se-bg) 35%, transparent) 0 12%, transparent 12.4%); }
  .se-ph[data-se-ph="1"] { --ph-x: 82%; --ph-y: 18%; --ph-rx: 28%; --ph-ry: 68%; }
  .se-ph[data-se-ph="2"] { --ph-x: 50%; --ph-y: 92%; --ph-rx: 50%; --ph-ry: 38%; }
  .se-ph[data-se-ph="3"] { --ph-x: 12%; --ph-y: 80%; --ph-rx: 80%; --ph-ry: 72%; }
  .se-ph-label { display: none; }
  .se-caption { margin-block-start: 0.75rem; color: var(--se-muted); font-size: 0.9rem; }

  .se-items { display: grid; gap: clamp(1rem, 2.5vw, 2rem); grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); padding: 0; list-style: none; }
  .se-item { display: grid; gap: 0.5rem; align-content: start; }
  .se-item .se-media { margin-block-end: 0.5rem; }
  .se-item-title { font-size: var(--se-fs-1); }
  .se-item-title a { text-decoration: none; }
  .se-item-title a:hover { text-decoration: underline; }
  .se-item-meta { font-family: var(--se-font-label); font-size: 0.8rem; color: var(--se-muted); letter-spacing: var(--se-label-tracking); text-transform: var(--se-label-case, none); }
  .se-item-value { font-family: var(--se-font-display); font-size: var(--se-fs-2); font-weight: var(--se-display-weight); line-height: 1.1; }
  .se-item-value small { font-family: var(--se-font-text); font-size: 0.9rem; font-weight: 400; color: var(--se-muted); }
  .se-item-body { color: var(--se-muted); }
  .se-item-price { font-size: var(--se-fs-0); font-family: var(--se-font-label); }
  .se-item-n { font-family: var(--se-font-label); color: var(--se-muted); font-size: 0.85rem; }
  .se-ticks { display: grid; gap: 0.35rem; padding-inline-start: 1.1rem; margin-block: 0.75rem 0; }
  .se-ticks li::marker { color: var(--se-accent); }

  .se-split { display: grid; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
  @media (min-width: 900px) { .se-split { grid-template-columns: 1fr 1fr; } }
  .se-hero-base { display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
  @media (min-width: 900px) { .se-hero-base { grid-template-columns: 1.1fr 1fr; } .se-hero-base.se-hero-nomedia { grid-template-columns: minmax(0, 46rem); } }

  .se-faq { display: grid; border-block-start: var(--se-rule-w) solid var(--se-rule); }
  .se-faq details { border-block-end: var(--se-rule-w) solid var(--se-rule); }
  .se-faq summary { display: flex; justify-content: space-between; gap: 1rem; align-items: center; cursor: pointer; list-style: none;
    padding-block: 1.1rem; font-weight: var(--se-strong-weight, 600); font-size: 1.1rem; min-block-size: 48px; }
  .se-faq summary::-webkit-details-marker { display: none; }
  .se-faq details[open] summary .se-icon { transform: rotate(45deg); }
  .se-faq details p { padding-block-end: 1.2rem; color: var(--se-muted); max-inline-size: 40rem; }

  .se-quote { display: grid; gap: 0.9rem; }
  .se-quote blockquote { font-family: var(--se-font-display); font-size: var(--se-fs-1); line-height: 1.35; }
  .se-quote figcaption { color: var(--se-muted); font-size: 0.95rem; }
  .se-stars { display: inline-flex; gap: 2px; color: var(--se-accent); }
  .se-stars .is-off { opacity: 0.25; }

  .se-stats { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
  .se-stats div { display: flex; flex-direction: column-reverse; gap: 0.3rem; border-block-start: var(--se-rule-w) solid var(--se-rule); padding-block-start: 1rem; }
  .se-stats dd { font-family: var(--se-font-display); font-size: var(--se-fs-3); font-weight: var(--se-display-weight); line-height: 1; margin: 0; }
  .se-stats dt { color: var(--se-muted); }

  .se-plan { border: var(--se-rule-w) solid var(--se-rule); border-radius: var(--se-radius-lg); padding: 1.5rem; }
  .se-plan.is-highlight { border-color: var(--se-accent); box-shadow: inset 0 0 0 1px var(--se-accent); }

  .se-contact { display: grid; gap: 1rem; }
  .se-contact div { display: grid; gap: 0.15rem; border-block-start: var(--se-rule-w) solid var(--se-rule); padding-block-start: 0.9rem; }
  .se-contact dt { font-family: var(--se-font-label); font-size: 0.8rem; color: var(--se-muted); text-transform: var(--se-label-case); letter-spacing: var(--se-label-tracking); }
  .se-contact dd { margin: 0; font-size: 1.15rem; }
  .se-hours { inline-size: 100%; border-collapse: collapse; }
  .se-hours th, .se-hours td { text-align: start; padding-block: 0.6rem; border-block-end: var(--se-rule-w) solid var(--se-rule); font-weight: 400; }
  .se-hours td { text-align: end; color: var(--se-muted); }

  .se-mapcard { position: relative; display: block; aspect-ratio: 400 / 260; border-radius: var(--se-radius-lg); overflow: hidden;
    background: var(--se-surface); border: var(--se-rule-w) solid var(--se-rule); color: var(--se-fg); text-decoration: none; }
  .se-mapcard svg { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; }
  .se-map-road { fill: none; stroke: var(--se-rule); stroke-width: 10; stroke-linecap: round; }
  .se-map-road-thin { stroke-width: 5; }
  .se-map-water { fill: var(--se-tint); }
  .se-map-pin { position: absolute; inset-block-start: 42%; inset-inline-start: 50%; translate: -50% -100%; color: var(--se-accent); }
  .se-map-label { position: absolute; inset-block-end: 1rem; inset-inline-start: 1rem; background: var(--se-bg); padding: 0.4rem 0.7rem; border-radius: 6px; font-weight: var(--se-strong-weight); }

  .se-maptiles { margin: 0; display: grid; gap: 0.4rem; }
  .se-maptiles > a { position: relative; display: block; overflow: hidden; border-radius: var(--se-radius-lg); border: var(--se-rule-w) solid var(--se-rule); background: var(--se-surface); color: var(--se-fg); text-decoration: none; }
  .se-maptiles img { position: absolute; block-size: auto; max-inline-size: none; }
  .se-maptiles .se-map-pin { translate: -50% -100%; }
  .se-map-credit { font-size: 0.75rem; color: var(--se-muted); }
  .se-maplinks { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
  .se-maplinks a { min-block-size: 44px; display: inline-flex; align-items: center; }
  .se-form { display: grid; gap: 1rem; }
  .se-help { color: var(--se-muted); font-size: 0.85rem; }
  .se-check { display: flex; gap: 0.6rem; align-items: center; min-block-size: 44px; }
  .se-check input { inline-size: 1.25rem; block-size: 1.25rem; accent-color: var(--se-accent); }
  .se-choices { border: 0; padding: 0; margin: 0; display: grid; gap: 0.2rem; }
  .se-choices legend { font-size: 0.9rem; color: var(--se-muted); margin-block-end: 0.3rem; }
  .se-booking-slots { display: grid; gap: 1rem; text-align: start; margin-block: 1.5rem; }
  .se-booking-day h3 { font-size: 1rem; margin: 0 0 0.5rem; }
  .se-booking-day ul { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0; margin: 0; list-style: none; }
  .se-booking-day button { min-block-size: 44px; min-inline-size: 5rem; padding-inline: 0.9rem; border-radius: calc(var(--se-radius) * 0.6);
    border: var(--se-rule-w) solid var(--se-accent); background: transparent; color: var(--se-fg); font: inherit; cursor: pointer; }
  .se-booking-day button[aria-pressed="true"] { background: var(--se-accent); color: var(--se-on-accent); }
  .se-field { display: grid; gap: 0.35rem; }
  .se-field span { font-size: 0.9rem; color: var(--se-muted); }
  .se-field :where(input, textarea) { inline-size: 100%; min-block-size: 48px; padding: 0.7rem 0.85rem; border-radius: calc(var(--se-radius) * 0.6);
    border: var(--se-rule-w) solid color-mix(in oklab, var(--se-fg) 35%, transparent); background: var(--se-bg); }
  .se-hp { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
  .se-form-status:empty { display: none; }

  .se-gallery { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
  .se-gallery figcaption { font-size: 0.9rem; margin-block-start: 0.4rem; }
  .se-logos { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; align-items: center; color: var(--se-muted);
    font-family: var(--se-font-display); font-size: var(--se-fs-1); }
  .se-logos img { max-block-size: 2.5rem; inline-size: auto; }
  .se-timeline { display: grid; gap: 1.5rem; padding-inline-start: 1.25rem; border-inline-start: 2px solid var(--se-rule); list-style: none; }
  .se-timeline li { display: grid; gap: 0.25rem; }
  .se-detail { display: grid; gap: 2rem; }
  .se-credits { display: grid; gap: 0.3rem; color: var(--se-muted); }


  /* markdown (a post's body) */
  .se-md { display: grid; gap: 1.15em; max-inline-size: 42rem; font-size: clamp(1.05rem, 1rem + 0.25vw, 1.2rem); line-height: 1.75; }
  .se-md > :first-child { margin-block-start: 0; }
  .se-md .se-md-h { margin-block-start: 1.4em; scroll-margin-block-start: 5.5rem; }
  .se-md h2.se-md-h { font-size: var(--se-fs-2); }
  .se-md h3.se-md-h { font-size: var(--se-fs-1); }
  .se-md h4.se-md-h { font-size: 1.1rem; }
  .se-md :where(ul, ol) { display: grid; gap: 0.4em; padding-inline-start: 1.3em; }
  .se-md li::marker { color: var(--se-accent); }
  .se-md a { color: var(--se-link); }
  .se-md blockquote { border-inline-start: 3px solid var(--se-accent); padding-inline-start: 1.1em; font-family: var(--se-font-display); font-size: 1.15em; line-height: 1.5; color: var(--se-fg); }
  .se-md blockquote p + p { margin-block-start: 0.6em; }
  .se-md pre { overflow-x: auto; padding: 1rem 1.2rem; background: var(--se-surface); color: var(--se-on-surface); border-radius: var(--se-radius); font-size: 0.9rem; line-height: 1.55; }
  .se-md code { font-family: var(--se-font-label); font-size: 0.92em; }
  .se-md :not(pre) > code { background: var(--se-tint); padding: 0.1em 0.35em; border-radius: 4px; }
  .se-md hr { border: 0; border-block-start: var(--se-rule-w) solid var(--se-rule); inline-size: 100%; }
  .se-md figure img { inline-size: 100%; block-size: auto; border-radius: var(--se-radius); }
  .se-md figcaption { color: var(--se-muted); font-size: 0.9rem; margin-block-start: 0.5rem; }
  .se-md-table { overflow-x: auto; }
  .se-md table { border-collapse: collapse; inline-size: 100%; font-size: 0.95rem; }
  .se-md th, .se-md td { text-align: start; padding: 0.55rem 0.8rem; border-block-end: var(--se-rule-w) solid var(--se-rule); }
  .se-md th { font-family: var(--se-font-label); font-size: 0.8rem; color: var(--se-muted); }
  .se-post { padding-block-start: 0; }
  .se-s.se-k-post-hero { padding-block-end: calc(var(--se-space) * 0.3); }
  .se-s.se-k-reading-meta, .se-s.se-k-toc { padding-block: calc(var(--se-space) * 0.12); }
  .se-s.se-k-post { padding-block-start: calc(var(--se-space) * 0.3); }
  .se-s.se-k-author-box { padding-block: calc(var(--se-space) * 0.3); }
  .se-md { max-inline-size: none; }

  /* blog */
  .se-badge { display: inline-block; justify-self: start; font-family: var(--se-font-label); font-size: 0.72rem; letter-spacing: var(--se-label-tracking, 0.06em); text-transform: var(--se-label-case, none); padding: 0.15rem 0.55rem; border: var(--se-rule-w) solid var(--se-accent); color: var(--se-accent); border-radius: 999px; }
  .se-posthead { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
  .se-posthead .se-head { margin-block-end: 0; max-inline-size: none; }
  .se-posthead h1.se-title { font-size: clamp(2rem, 1.3rem + 3.4vw, 3.6rem); }
  .se-readmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1.25rem; padding: 0; margin: 0; list-style: none; color: var(--se-muted); font-size: 0.95rem; }
  .se-readmeta li + li:not(.se-rm-author)::before { content: "·"; margin-inline-end: 1.25rem; opacity: 0.6; }
  .se-readmeta a { color: var(--se-fg); }
  .se-rm-author { display: inline-flex; align-items: center; gap: 0.6rem; }
  .se-avatar { inline-size: 2.5rem; block-size: 2.5rem; border-radius: 999px; flex: none; }
  .se-avatar-lg { inline-size: clamp(4rem, 10vw, 5.5rem); block-size: clamp(4rem, 10vw, 5.5rem); }
  .se-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0; margin: 0.9rem 0 0; list-style: none; }
  .se-chip { display: inline-flex; align-items: center; gap: 0.5rem; min-block-size: 36px; padding: 0.2rem 0.8rem; border: var(--se-rule-w) solid var(--se-rule); border-radius: 999px; font-size: 0.88rem; text-decoration: none; color: var(--se-fg); }
  a.se-chip:hover { background: var(--se-tint); }
  .se-chip-tag::before { content: "#"; color: var(--se-muted); }
  .se-chip-n { color: var(--se-muted); font-family: var(--se-font-label); font-size: 0.8rem; }
  .se-menu-tags .se-chip { min-block-size: 0; padding: 0.05rem 0.55rem; font-size: 0.75rem; }
  .se-toc { padding-block: 1rem; }
  .se-toc-title { font-family: var(--se-font-label); font-size: 0.8rem; letter-spacing: var(--se-label-tracking, 0.06em); text-transform: var(--se-label-case, none); color: var(--se-muted); margin-block-end: 0.6rem; }
  .se-toc ol { display: grid; gap: 0.1rem; padding: 0; margin: 0; list-style: none; border-inline-start: 2px solid var(--se-rule); }
  .se-toc li a { display: block; padding: 0.35rem 0.9rem; text-decoration: none; }
  .se-toc li[data-level="3"] a { padding-inline-start: 1.8rem; font-size: 0.95em; color: var(--se-muted); }
  .se-toc li a:hover { text-decoration: underline; }
  .se-author { display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.5rem; border: var(--se-rule-w) solid var(--se-rule); border-radius: var(--se-radius-lg); }
  .se-author + .se-author { margin-block-start: 1rem; }
  .se-author-text { display: grid; gap: 0.35rem; min-inline-size: 0; }
  .se-author-name { font-size: var(--se-fs-1); }
  .se-author-name a { text-decoration: none; }
  .se-author-bio { color: var(--se-muted); max-inline-size: 36rem; }
  .se-posts .se-item-title { font-size: var(--se-fs-1); }
  .se-archive-year + .se-archive-year { margin-block-start: 2rem; }
  .se-archive-y { font-size: var(--se-fs-1); color: var(--se-muted); border-block-end: var(--se-rule-w) solid var(--se-rule); padding-block-end: 0.4rem; margin-block-end: 0.4rem; }
  .se-archive-year ul { display: grid; padding: 0; margin: 0; list-style: none; }
  .se-archive-year li { display: grid; gap: 0.1rem 1.5rem; padding-block: 0.7rem; border-block-end: var(--se-rule-w) solid var(--se-rule); align-items: baseline; }
  @media (min-width: 640px) { .se-archive-year li { grid-template-columns: 11rem 1fr auto; } }
  .se-archive-year time { color: var(--se-muted); font-size: 0.9rem; }
  .se-archive-year a { text-decoration: none; font-weight: var(--se-strong-weight, 600); }
  .se-archive-year a:hover { text-decoration: underline; }
  .se-termhead { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; }
  .se-termhead .se-head { margin-block-end: 0; flex: 1 1 18rem; }

  /* hidden until the runtime shows it (search results, filters, copy buttons) */
  .se-search-results[hidden], .se-filter[hidden], .se-code-copy[hidden], [data-tags][hidden] { display: none !important; }

  /* markdown: code with its language and copy button; callouts */
  .se-code { display: grid; border-radius: var(--se-radius); overflow: hidden; background: var(--se-surface); color: var(--se-on-surface); }
  .se-code-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 0.3rem; padding-inline: 1.2rem 0.5rem; border-block-end: var(--se-rule-w) solid color-mix(in oklab, var(--se-on-surface) 20%, transparent); }
  .se-code-lang { font-family: var(--se-font-label); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.75; }
  .se-code-copy { min-block-size: 36px; min-inline-size: 44px; padding: 0.2rem 0.75rem; border: var(--se-rule-w) solid color-mix(in oklab, var(--se-on-surface) 35%, transparent); border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: 0.8rem; cursor: pointer; }
  .se-code-copy:hover { background: color-mix(in oklab, var(--se-on-surface) 12%, transparent); }
  .se-code pre { margin: 0; border-radius: 0; }
  .se-callout { display: grid; gap: 0.5em; padding: 0.9rem 1.1rem; border-inline-start: 4px solid var(--se-accent); background: var(--se-tint); border-radius: calc(var(--se-radius) * 0.6); font-size: 0.97em; }
  .se-callout > :where(p, ul, ol, div) { margin: 0; }
  .se-callout-title { font-family: var(--se-font-label); font-size: 0.8rem; letter-spacing: var(--se-label-tracking, 0.06em); text-transform: uppercase; font-weight: var(--se-strong-weight, 600); }
  .se-callout-tip { border-inline-start-color: var(--se-fg); }
  .se-callout-warning { border-inline-start-style: double; border-inline-start-width: 6px; }
  .se-callout-danger { border-inline-start-color: var(--se-fg); border-inline-start-width: 6px; background: color-mix(in oklab, var(--se-accent) 14%, var(--se-bg)); }
  .se-callout-danger .se-callout-title::before { content: "! "; }

  /* docs */
  .se-doc { display: grid; gap: clamp(1.25rem, 3vw, 3rem); align-items: start; }
  @media (min-width: 900px) { .se-doc { grid-template-columns: 15rem minmax(0, 1fr); } }
  .se-doc-main { display: grid; gap: 1.5rem; min-inline-size: 0; max-inline-size: 48rem; }
  .se-docside { display: grid; gap: 1rem; align-content: start; font-size: 0.95rem; }
  @media (min-width: 900px) { .se-docside { position: sticky; inset-block-start: 5.5rem; max-block-size: calc(100vh - 7rem); overflow-y: auto; padding-inline-end: 0.25rem; } .se-docside-fold { display: none; } }
  @media (max-width: 899.98px) { .se-docside-column { display: none; } }
  .se-docside-fold { border: var(--se-rule-w) solid var(--se-rule); border-radius: var(--se-radius); padding-inline: 1rem; }
  .se-docside-fold summary { min-block-size: 48px; display: flex; align-items: center; cursor: pointer; font-weight: var(--se-strong-weight, 600); }
  .se-doctree { display: grid; gap: 1.1rem; }
  .se-doctree-title { font-family: var(--se-font-label); font-size: 0.75rem; letter-spacing: var(--se-label-tracking, 0.06em); text-transform: uppercase; color: var(--se-muted); margin-block-end: 0.35rem; }
  .se-doctree ul { display: grid; gap: 0.1rem; padding: 0; margin: 0; list-style: none; }
  .se-doctree a { display: flex; align-items: center; gap: 0.5rem; min-block-size: 36px; padding: 0.3rem 0.7rem; border-radius: calc(var(--se-radius) * 0.6); text-decoration: none; color: var(--se-fg); }
  .se-doctree a:hover { background: var(--se-tint); }
  .se-doctree a[aria-current="page"] { background: var(--se-tint); color: var(--se-link); font-weight: var(--se-strong-weight, 600); box-shadow: inset 3px 0 0 var(--se-accent); }
  .se-doctree-index { gap: 1.75rem; }
  .se-vswitch { position: relative; border: var(--se-rule-w) solid var(--se-rule); border-radius: var(--se-radius); }
  .se-vswitch summary { display: flex; align-items: center; gap: 0.4rem; min-block-size: 44px; padding-inline: 0.9rem; cursor: pointer; }
  .se-vswitch-l { color: var(--se-muted); font-size: 0.85rem; }
  .se-vswitch ul { display: grid; padding: 0 0 0.4rem; margin: 0; list-style: none; }
  .se-vswitch a { display: block; padding: 0.45rem 0.9rem; text-decoration: none; }
  .se-vswitch a[aria-current] { font-weight: var(--se-strong-weight, 600); color: var(--se-link); }
  .se-dochead { display: grid; gap: 0.6rem; }
  .se-dochead h1.se-title { font-size: clamp(2rem, 1.4rem + 2.6vw, 3rem); }
  .se-dochead .se-item-meta { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
  .se-doctoc { font-size: 0.92rem; }
  .se-doctoc-title { font-family: var(--se-font-label); font-size: 0.75rem; letter-spacing: var(--se-label-tracking, 0.06em); text-transform: uppercase; color: var(--se-muted); margin-block-end: 0.4rem; }
  .se-doctoc ol { display: grid; gap: 0.1rem; padding: 0; margin: 0; list-style: none; border-inline-start: 2px solid var(--se-rule); }
  .se-doctoc a { display: block; padding: 0.3rem 0.8rem; text-decoration: none; }
  .se-doctoc a:hover { text-decoration: underline; }
  .se-doctoc li[data-level="3"] a { padding-inline-start: 1.6rem; color: var(--se-muted); }
  .se-doctoc-box { padding: 1rem 1.1rem; border: var(--se-rule-w) solid var(--se-rule); border-radius: var(--se-radius); }
  .se-docpager { display: grid; gap: 1rem; margin-block-start: 1.5rem; }
  @media (min-width: 640px) { .se-docpager { grid-template-columns: 1fr 1fr; } }
  .se-docpager a { display: grid; gap: 0.2rem; padding: 1rem 1.2rem; border: var(--se-rule-w) solid var(--se-rule); border-radius: var(--se-radius); text-decoration: none; min-block-size: 48px; }
  .se-docpager a:hover { border-color: var(--se-accent); }
  .se-docpager-next { text-align: end; grid-column: -2; }
  .se-docpager-l { font-size: 0.8rem; color: var(--se-muted); }
  .se-docpager-t { font-weight: var(--se-strong-weight, 600); color: var(--se-link); }
  .se-search { display: grid; gap: 0.5rem; position: relative; }
  .se-search-label { font-size: 0.9rem; color: var(--se-muted); }
  .se-search-row { display: flex; gap: 0.5rem; }
  .se-search-row input { flex: 1 1 auto; min-inline-size: 0; min-block-size: 48px; padding: 0.6rem 0.9rem; border-radius: calc(var(--se-radius) * 0.6); border: var(--se-rule-w) solid var(--se-rule); background: var(--se-bg); color: var(--se-fg); font: inherit; }
  .se-search-big .se-search-row input { min-block-size: 56px; font-size: 1.1rem; }
  .se-search-small .se-search-label, .se-search-small .se-search-row .se-btn { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .se-search-status { font-size: 0.85rem; color: var(--se-muted); min-block-size: 1em; }
  .se-search-results { display: grid; gap: 0.2rem; padding: 0.4rem; margin: 0; list-style: none; border: var(--se-rule-w) solid var(--se-rule); border-radius: var(--se-radius); background: var(--se-bg); }
  .se-search-results a { display: grid; gap: 0.1rem; padding: 0.55rem 0.7rem; border-radius: calc(var(--se-radius) * 0.6); text-decoration: none; color: var(--se-fg); }
  .se-search-results a:hover, .se-search-results a:focus-visible { background: var(--se-tint); }
  .se-search-results small { color: var(--se-muted); }
  .se-changelog { display: grid; gap: 1.75rem; padding: 0; margin: 0; list-style: none; }
  .se-changelog > li { display: grid; gap: 0.4rem; padding-block-end: 1.5rem; border-block-end: var(--se-rule-w) solid var(--se-rule); }
  .se-changelog-name { font-weight: 400; color: var(--se-muted); }

  /* portfolio */
  .se-filter { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-block-end: 1.5rem; }
  .se-filter .se-chip { background: transparent; font: inherit; font-size: 0.88rem; cursor: pointer; }
  .se-filter .se-chip[aria-pressed="true"] { background: var(--se-fg); color: var(--se-bg); border-color: var(--se-fg); }
  .se-projhead { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
  .se-projhead h1.se-title { font-size: clamp(2rem, 1.3rem + 3.4vw, 3.6rem); }
  .se-case { display: grid; gap: 2rem; }
  .se-case-part { display: grid; gap: 0.75rem; }
  .se-case-t { font-size: var(--se-fs-2); }
  .se-facts { display: grid; gap: 0; margin: 0; border-block-start: var(--se-rule-w) solid var(--se-rule); }
  .se-facts > div { display: grid; gap: 0.2rem 1.5rem; padding-block: 0.75rem; border-block-end: var(--se-rule-w) solid var(--se-rule); }
  @media (min-width: 640px) { .se-facts > div { grid-template-columns: 10rem 1fr; } }
  .se-facts dt { font-family: var(--se-font-label); font-size: 0.8rem; color: var(--se-muted); text-transform: var(--se-label-case, none); letter-spacing: var(--se-label-tracking, 0.04em); }
  .se-facts dd { margin: 0; }
  .se-facts-chips, .se-facts-links { display: flex; flex-wrap: wrap; gap: 0.4rem 0.9rem; }
  .se-facts-chips .se-chip { min-block-size: 0; padding: 0.05rem 0.6rem; font-size: 0.82rem; }
  .se-projgallery { display: grid; gap: clamp(0.75rem, 2vw, 1.5rem); padding: 0; margin: 0; list-style: none; }
  @media (min-width: 800px) { .se-projgallery { grid-template-columns: 1fr 1fr; } }
  .se-writing { display: grid; padding: 0; margin: 0; list-style: none; border-block-start: var(--se-rule-w) solid var(--se-rule); }
  .se-writing > li { display: grid; gap: 0.3rem; padding-block: 1.1rem; border-block-end: var(--se-rule-w) solid var(--se-rule); }

  /* sign-up (waitlist, newsletter) */
  .se-signup { display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
  @media (min-width: 900px) { .se-signup { grid-template-columns: 1.1fr 1fr; } .se-signup-media { grid-column: 1 / -1; } }
  .se-signup .se-head { margin-block-end: 1rem; }
  .se-signup-count { font-family: var(--se-font-label); color: var(--se-link); font-weight: var(--se-strong-weight, 600); margin-block-start: 1rem; }
  .se-signup-form { max-inline-size: 30rem; }
  .se-consent { color: var(--se-muted); font-size: 0.82rem; }

  /* menu (restaurant) */
  .se-menu { display: grid; gap: clamp(2rem, 4vw, 3.5rem); margin-block-start: 1.5rem; }
  @media (min-width: 900px) { .se-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(3rem, 7vw, 6rem); align-items: start; } }
  .se-menu-cat { font-size: var(--se-fs-2); padding-block-end: 0.6rem; margin-block-end: 0.4rem; border-block-end: 2px solid var(--se-fg); }
  .se-menu-group ul { display: grid; padding: 0; margin: 0; list-style: none; }
  .se-menu-item { padding-block: 0.85rem; display: grid; gap: 0.2rem; }
  .se-menu-line { display: flex; align-items: baseline; gap: 0.6rem; }
  .se-menu-name { font-weight: var(--se-strong-weight, 600); font-size: 1.1rem; }
  .se-menu-leader { flex: 1 1 1rem; min-inline-size: 1rem; border-block-end: 2px dotted var(--se-rule); translate: 0 -0.25em; }
  .se-menu-price { font-family: var(--se-font-label); white-space: nowrap; }
  .se-menu-desc { color: var(--se-muted); max-inline-size: 30rem; }
  .se-menu-note { margin-block-start: 2rem; font-size: 0.9rem; }

  .se-footer { display: grid; gap: 2rem; }
  @media (min-width: 900px) { .se-footer { grid-template-columns: 1.4fr 1fr 1.2fr; } .se-footer-end { grid-column: 1 / -1; } }
  .se-footer .se-navlist { display: grid; gap: 0.4rem; padding: 0; list-style: none; }
  .se-footer a { text-decoration: none; }
  .se-legal-links { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; padding: 0; margin: 0; list-style: none; }
  .se-legal-links a { display: inline-flex; min-block-size: 44px; align-items: center; }
  .se-footer a:hover { text-decoration: underline; }
  .se-footer-contact { display: grid; gap: 0.4rem; font-style: normal; }
  .se-footer-end { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; border-block-start: var(--se-rule-w) solid var(--se-rule); padding-block-start: 1.25rem; font-size: 0.85rem; }
  .se-k-footer { padding-block: calc(var(--se-space) * 0.6); background: var(--se-surface); color: var(--se-on-surface); }

  .se-brand { display: inline-flex; align-items: center; gap: 0.6rem; text-decoration: none; color: inherit; min-block-size: 44px; }
  .se-brand-name { font-family: var(--se-font-display); font-weight: var(--se-display-weight); font-size: 1.15rem; letter-spacing: var(--se-display-tracking); }
  .se-logo { block-size: var(--se-logo-h, 30px); inline-size: auto; }
  .se-logo-inline { --logo-cut: var(--se-panel-bg); display: inline-flex; block-size: var(--se-logo-h, 30px); color: currentColor; }
  .se-logo-inline svg { block-size: 100%; inline-size: auto; }
  .se-lang { display: flex; gap: 0.25rem; font-size: 0.85rem; }
  .se-lang a { display: inline-grid; place-items: center; min-inline-size: 44px; min-block-size: 44px; padding-inline: 0.4rem; text-decoration: none; border-radius: 6px; color: inherit; }
  .se-lang a[aria-current="true"] { font-weight: var(--se-strong-weight); text-decoration: underline; }
  .se-navlist { list-style: none; margin: 0; padding: 0; }
  .se-toggle { display: inline-grid; place-items: center; inline-size: 48px; block-size: 48px; border: 0; background: transparent; color: inherit; cursor: pointer; border-radius: 8px; }
  .se-toggle .se-ic-close { display: none; }
  .se-toggle[aria-expanded="true"] .se-ic-open { display: none; }
  .se-toggle[aria-expanded="true"] .se-ic-close { display: block; }

  /* header and panels */
  .se-header { position: sticky; inset-block-start: 0; z-index: 40; background: var(--se-panel-bg); color: var(--se-panel-fg);
    transition: transform 260ms ease, background-color 200ms ease, box-shadow 200ms ease; }
  .se-header[data-away="true"] { transform: translateY(-110%); }
  .se-header[data-stuck="true"] { box-shadow: 0 1px 0 var(--se-rule); }
  .se-panel { position: fixed; z-index: 60; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity 220ms ease, visibility 0s linear 260ms, transform 260ms ease; }
  .se-panel[data-open="true"] { visibility: visible; opacity: 1; pointer-events: auto; transition: opacity 220ms ease, transform 260ms ease; }
  .se-scrim { position: fixed; inset: 0; z-index: 55; background: color-mix(in oklab, var(--se-fg) 45%, transparent); opacity: 0; visibility: hidden; transition: opacity 200ms ease; }
  .se-site[data-panel-open="true"] .se-scrim { opacity: 1; visibility: visible; }

  /* desktop vs mobile chrome */
  .se-chrome-m { display: contents; }
  .se-chrome-d { display: none; }
  @media (min-width: 960px) {
    .se-chrome-m { display: none; }
    .se-chrome-d { display: contents; }
    .se-le-d-leftColumn .se-main, .se-le-d-leftColumn .se-foot { margin-inline-start: var(--se-left-col, 15rem); }
  }
  @media (max-width: 959.98px) {
    .se-le-m-bottomInset .se-dock-spacer { block-size: calc(var(--se-dock-space, 0px) + var(--se-bottom-inset, 4.5rem)); }
    .se-le-m-leftColumn .se-main { margin-inline-start: 0; }
  }

  /* dock */
  .se-dock { position: fixed; z-index: 50; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
    background: var(--se-btn-bg); color: var(--se-btn-fg); text-decoration: none; font-weight: var(--se-strong-weight, 600);
    min-block-size: 48px; min-inline-size: 48px; transition: transform 260ms ease, opacity 200ms ease; }
  .se-dock[data-shown="false"] { opacity: 0; pointer-events: none; transform: translateY(1.5rem); }
  .se-dkp-top-end .se-dock[data-shown="false"] { transform: translateY(-1.5rem); }
  .se-dock-spacer { block-size: var(--se-dock-space, 0px); }
  .se-dkp-bottom { --se-dock-space: 4.5rem; }
  .se-dkp-bottom-start, .se-dkp-bottom-end, .se-dkp-bottom-centre { --se-dock-space: 5.5rem; }

  /* reveal */
  /* Hidden until the runtime reveals it — and revealed anyway after 2.5 s, so a
     page whose script failed to load never stays blank. */
  .se-js .se-site[data-motion]:not([data-motion="0"]) [data-se-reveal]:not([data-in="true"]) { opacity: 0; transform: translateY(18px); animation: se-failsafe 1ms 2.5s forwards; }
  @keyframes se-failsafe { to { opacity: 1; transform: none; } }
  .se-site [data-se-reveal] { transition: opacity 600ms ease, transform 700ms cubic-bezier(.2,.7,.2,1); }
  [data-se-parallax] > img { will-change: transform; scale: 1.08; }

  /* bands */
  .se-band-alt { background: var(--se-alt-bg); color: var(--se-alt-fg); --se-muted: color-mix(in oklab, var(--se-alt-fg) 90%, var(--se-alt-bg)); --se-on-surface: var(--se-alt-fg); --se-tint: color-mix(in oklab, var(--se-alt-fg) 10%, var(--se-alt-bg)); --se-rule: color-mix(in oklab, var(--se-alt-fg) 22%, var(--se-alt-bg));
    --se-btn-bg: var(--se-alt-fg); --se-btn-fg: var(--se-alt-bg); --se-btn-border: var(--se-alt-fg); --se-link: var(--se-alt-fg); --se-surface: color-mix(in oklab, var(--se-alt-fg) 8%, var(--se-alt-bg)); }
  .se-band-accent { background: var(--se-alt2-bg); color: var(--se-alt2-fg); --se-muted: var(--se-alt2-fg); --se-on-surface: var(--se-alt2-fg); --se-surface: color-mix(in oklab, var(--se-alt2-fg) 10%, var(--se-alt2-bg)); --se-tint: color-mix(in oklab, var(--se-alt2-fg) 10%, var(--se-alt2-bg)); --se-rule: color-mix(in oklab, var(--se-alt2-fg) 30%, var(--se-alt2-bg));
    --se-btn-bg: var(--se-alt2-fg); --se-btn-fg: var(--se-alt2-bg); --se-btn-border: var(--se-alt2-fg); --se-link: var(--se-alt2-fg); --se-accent: var(--se-alt2-fg); }
}

/* A composition's chrome params (recipe.ts): generic shapes, drawn over the
   direction only when a design overrides one (root class se-cx-…). */
@layer se.compose {
  .se-cx-g-centred { --se-max: 72rem; }
  .se-cx-g-wide { --se-max: 88rem; }
  .se-cx-g-narrow { --se-max: 52rem; }
  .se-cx-g-asymmetric .se-s > .se-wrap > .se-head { margin-inline-start: clamp(0rem, 10vw, 9rem); }
  @media (min-width: 900px) {
    .se-cx-g-split .se-s:not(.se-k-hero):not(.se-k-footer) > .se-wrap:has(> .se-head + *) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 0 clamp(2rem, 5vw, 5rem); align-items: start; }
    .se-cx-g-split .se-s:not(.se-k-hero):not(.se-k-footer) > .se-wrap:has(> .se-head + *) > .se-head { position: sticky; inset-block-start: 6rem; }
    .se-cx-g-split .se-s:not(.se-k-hero):not(.se-k-footer) > .se-wrap:has(> .se-head + *) > :not(.se-head) { grid-column: 2; }
  }
  .se-cx-dv-none .se-s + .se-s { border-block-start: 0; }
  .se-cx-dv-rule .se-main > .se-s + .se-s { border-block-start: var(--se-rule-w) solid var(--se-rule); }
  .se-cx-dv-dots .se-main > .se-s + .se-s { border-block-start: 3px dotted var(--se-rule); }
  .se-cx-dv-slab .se-main > .se-s + .se-s { border-block-start: 0.6rem solid var(--se-accent); }
  .se-cx-dv-curve .se-main > .se-s + .se-s { border-start-start-radius: 50% 3rem; border-start-end-radius: 50% 3rem; }
  .se-cx-dv-arch .se-main > .se-s + .se-s { border-start-start-radius: 999px 4rem; border-start-end-radius: 999px 4rem; }
  .se-cx-dv-shear .se-main > .se-s.se-band-alt, .se-cx-dv-shear .se-main > .se-s.se-band-accent { clip-path: polygon(0 2.5rem, 100% 0, 100% calc(100% - 2.5rem), 0 100%); padding-block: calc(var(--se-space) * var(--se-density, 1) + 2.5rem); }
  .se-cx-dv-seam .se-main > .se-s + .se-s::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: 0; block-size: 2px; background: linear-gradient(90deg, transparent, var(--se-accent) 30% 70%, transparent); }
  .se-cx-ph-plain .se-media { border-radius: 0; }
  .se-cx-ph-round .se-media { border-radius: 1.5rem; }
  .se-cx-ph-arch .se-media { border-start-start-radius: 999px 60%; border-start-end-radius: 999px 60%; }
  .se-cx-ph-shear .se-media:not(.se-ph) { clip-path: polygon(6% 0, 100% 0, 94% 100%, 0 100%); }
  .se-cx-ph-wash .se-media:not(.se-ph)::after { content: ""; position: absolute; inset: 0; background: var(--se-accent); opacity: 0.18; mix-blend-mode: multiply; pointer-events: none; }
  .se-cx-ph-duotone .se-media:not(.se-ph) img { filter: grayscale(1) contrast(1.05); }
  .se-cx-ph-duotone .se-media:not(.se-ph)::after { content: ""; position: absolute; inset: 0; background: var(--se-accent); opacity: 0.45; mix-blend-mode: screen; pointer-events: none; }
  .se-cx-ph-grain .se-media:not(.se-ph) img { filter: contrast(1.12) saturate(0.8) sepia(0.12); }
}

@layer se.util {
  @media (prefers-reduced-motion: reduce) {
    .se-site *, .se-site *::before, .se-site *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
    .se-site [data-se-reveal] { opacity: 1 !important; transform: none !important; }
    [data-se-parallax] > img { transform: none !important; scale: 1 !important; }
  }
  .se-sr { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

@layer se.section {
.sx-cta-panel { background: var(--se-alt2-bg); color: var(--se-alt2-fg); border-radius: var(--se-radius-lg); padding: clamp(2rem, 6vw, 5rem);
        --se-muted: var(--se-alt2-fg); --se-btn-bg: var(--se-alt2-fg); --se-btn-fg: var(--se-alt2-bg); --se-btn-border: var(--se-alt2-fg); }
      .sx-cta-panel .se-btn-ghost { color: var(--se-alt2-fg); }
      .sx-cta-panel .se-title { font-size: clamp(2rem, 1.2rem + 3vw, 3.6rem); }
}
@layer se.section {
.sx-rail { display: grid; grid-auto-flow: column; grid-auto-columns: min(82vw, 22rem); gap: 1rem; overflow-x: auto; scroll-snap-type: inline mandatory;
        padding-inline: max(var(--se-gutter), calc((100vw - var(--se-max)) / 2)); padding-block-end: 1rem; scroll-padding-inline: max(var(--se-gutter), calc((100vw - var(--se-max)) / 2)); }
      .sx-rail li { scroll-snap-align: start; background: var(--se-surface); color: var(--se-on-surface); border-radius: var(--se-radius-lg); padding: 1.5rem; display: grid; gap: 0.6rem; align-content: start; min-block-size: 14rem; }
      .sx-rail-n { display: inline-grid; place-items: center; inline-size: 2.4rem; block-size: 2.4rem; border-radius: 999px; background: var(--se-accent); color: var(--se-on-accent); font-weight: var(--se-strong-weight); }
}
@layer se.section {
.sx-wall { columns: 3 17rem; column-gap: 1rem; }
      .sx-wall li { break-inside: avoid; margin-block-end: 1rem; }
      .sx-wall figure { margin: 0; background: var(--se-surface); color: var(--se-on-surface); border-radius: var(--se-radius-lg); padding: 1.4rem; display: grid; gap: 0.8rem; }
      .sx-wall blockquote { font-size: 1.05rem; }
      .sx-wall figcaption { font-size: 0.9rem; color: var(--se-muted); }
}
@layer se.section {
.sx-faqbox { display: grid; gap: 0.6rem; }
      .sx-faqbox details { background: var(--se-surface); color: var(--se-on-surface); border-radius: var(--se-radius); padding-inline: 1.25rem; }
      .sx-faqbox summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-block-size: 3.4rem; cursor: pointer; list-style: none; font-weight: var(--se-strong-weight); }
      .sx-faqbox summary::-webkit-details-marker { display: none; }
      .sx-faqbox details[open] summary .se-icon { transform: rotate(45deg); }
      .sx-faqbox p { padding-block-end: 1.1rem; color: var(--se-muted); }
}
@layer se.section {
.bz-visit { display: grid; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
      @media (min-width: 900px) { .bz-visit { grid-template-columns: 1.3fr 1fr; } }
      .bz-visit-t { inline-size: 100%; border-collapse: collapse; }
      .bz-visit-t th, .bz-visit-t td { text-align: start; padding-block: 0.8rem; border-block-end: var(--se-rule-w) solid var(--se-rule); vertical-align: baseline; overflow-wrap: anywhere; hyphens: auto; }
      .bz-visit-t th { font-weight: var(--se-strong-weight); padding-inline-end: 1rem; }
      .bz-visit-t td { text-align: end; font-variant-numeric: tabular-nums; }
      .bz-visit-t .is-closed { color: var(--se-muted); }
      .bz-visit-card { display: grid; gap: 0.75rem; padding: clamp(1.25rem, 3vw, 2rem); background: var(--se-surface); color: var(--se-on-surface); border-radius: var(--se-radius-lg); }
      .bz-visit-label { font-family: var(--se-font-label); font-size: 0.8rem; text-transform: var(--se-label-case, uppercase); letter-spacing: var(--se-label-tracking, 0.1em); }
      .bz-visit-addr { font-style: normal; display: grid; font-family: var(--se-font-display); font-size: var(--se-fs-1); overflow-wrap: anywhere; hyphens: auto; }
      .bz-visit-go { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-block-start: 0.5rem; }
}
@layer se.section {
.bz-lh { display: grid; gap: 2rem; padding-block: 1.75rem; border-block: var(--se-rule-w) solid var(--se-fg); }
      @media (min-width: 820px) { .bz-lh { grid-template-columns: 1fr 1fr; gap: 4rem; } }
      .bz-lh-name { font-family: var(--se-font-display); font-weight: var(--se-display-weight); font-size: var(--se-fs-2); line-height: 1.15; overflow-wrap: anywhere; hyphens: auto; }
      .bz-lh-from address { font-style: normal; display: grid; margin-block-start: 0.75rem; overflow-wrap: anywhere; hyphens: auto; }
      .bz-lh-lines { display: grid; gap: 0.7rem; margin: 0; }
      .bz-lh-lines div { display: grid; grid-template-columns: minmax(6rem, 9rem) minmax(0, 1fr); gap: 1rem; align-items: baseline; }
      .bz-lh-lines dt { font-family: var(--se-font-label); font-size: 0.78rem; text-transform: var(--se-label-case, uppercase); letter-spacing: var(--se-label-tracking, 0.1em); color: var(--se-muted); overflow-wrap: anywhere; hyphens: auto; }
      .bz-lh-lines dd { margin: 0; overflow-wrap: anywhere; hyphens: auto; }
      .bz-lh-reg { margin-block-start: 0.9rem; font-size: 0.85rem; color: var(--se-muted); overflow-wrap: anywhere; hyphens: auto; }
}
@layer se.section {
.se-k-hero:has(.hx-book-photo) { padding-block: 0; }
      .hx-book { position: relative; display: grid; }
      .hx-book-photo { min-block-size: min(86svh, 50rem); align-items: end; }
      .hx-book-media { position: absolute; inset: 0; border-radius: 0; }
      .hx-book-photo .hx-book-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, color-mix(in oklab, var(--se-dark) 88%, transparent), color-mix(in oklab, var(--se-dark) 58%, transparent)); }
      @media (min-width: 900px) { .hx-book-photo .hx-book-media::after { background: linear-gradient(to top, color-mix(in oklab, var(--se-dark) 88%, transparent), color-mix(in oklab, var(--se-dark) 20%, transparent) 75%); } }
      .hx-book-inner { position: relative; display: grid; gap: clamp(1.25rem, 3vw, 2rem); padding-block: clamp(2rem, 8vh, 5rem); }
      .hx-book-photo .hx-book-words { color: var(--se-light); --se-muted: var(--se-light); --se-link: var(--se-light); --se-focus: var(--se-light);
        --se-btn-bg: var(--se-light); --se-btn-fg: var(--se-dark); --se-btn-border: var(--se-light); }
      .hx-book-photo .hx-book-words .se-btn-ghost { color: var(--se-light); border-color: var(--se-light); }
      .hx-book-words { display: grid; gap: 0.7rem; }
      .hx-book-words .se-title { font-size: clamp(2.2rem, 1rem + 4.4vw, 5.2rem); line-height: 1; max-inline-size: 16ch; overflow-wrap: break-word; }
      .hx-book-bar { display: grid; gap: 0.75rem; padding: 0.75rem; border-radius: var(--se-radius-lg); background: var(--se-bg); color: var(--se-fg);
        box-shadow: 0 24px 60px -30px color-mix(in oklab, var(--se-dark) 80%, transparent); border: var(--se-rule-w) solid var(--se-rule); }
      .hx-book-field { display: grid; gap: 0.2rem; min-inline-size: 0; }
      .hx-book-field span { font-family: var(--se-font-label); font-size: 0.75rem; text-transform: var(--se-label-case, none); letter-spacing: var(--se-label-tracking); color: var(--se-muted); padding-inline: 0.2rem; }
      .hx-book-field :is(select, input) { min-block-size: 48px; inline-size: 100%; padding: 0.5rem 0.75rem; border-radius: var(--se-radius); border: var(--se-rule-w) solid var(--se-rule); background: var(--se-bg); color: var(--se-fg); }
      .hx-book-go { justify-content: center; align-self: end; }
      .hx-book-links ul { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; }
      .hx-book-links li > * { display: inline-flex; align-items: center; min-block-size: 44px; padding: 0.4rem 0.9rem; border-radius: 999px; background: var(--se-surface); color: var(--se-on-surface); text-decoration: none; }
      .hx-book-links a:hover { text-decoration: underline; }
      .hx-book:not(.hx-book-photo) .hx-book-inner { padding-block: clamp(1rem, 4vh, 3rem); }
      @media (min-width: 760px) {
        .hx-book-bar { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); align-items: end; }
        .hx-book-links { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
      }
      @media (min-width: 1100px) { .hx-book-bar { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; max-inline-size: 60rem; } }
}
@layer se.section {
.se-l-curved .se-band-alt, .se-l-curved .se-band-accent { border-start-start-radius: 50% 3rem; border-start-end-radius: 50% 3rem; }
     .se-l-curved .se-btn { border-radius: 999px; }
}
@layer se.direction {
.se-dir-sweep .se-band-alt { border-start-start-radius: 50% 4rem; border-start-end-radius: 50% 4rem; margin-block-start: -2rem; }
      .se-dir-sweep .se-media:not(.se-ph) { border-radius: 2rem 2rem 2rem 0.4rem; }
      .se-dir-sweep .se-btn { border-radius: 999px; }
      .se-dir-sweep .se-k-hero + .se-s { border-start-start-radius: 50% 3rem; border-start-end-radius: 50% 3rem; }
}
@layer se.menu {

.se-dm-index-directory .se-chrome-d .se-header { --se-hh: 4.5rem; }
.se-dm-index-directory .se-chrome-d .se-bar-in { display: flex; align-items: center; gap: 2rem; max-inline-size: calc(var(--se-max) + 2 * var(--se-gutter)); margin-inline: auto; padding-inline: var(--se-gutter); min-block-size: var(--se-hh); }
.se-dm-index-directory .se-chrome-d .se-bar-nav { flex: 1; min-inline-size: 0; }
.se-dm-index-directory .se-chrome-d .se-bar-nav .se-navlist { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; }
.se-dm-index-directory .se-chrome-d .se-bar-nav a { display: inline-flex; align-items: center; gap: 0.4rem; min-block-size: 44px; text-decoration: none; font-weight: var(--se-strong-weight, 600); font-size: 0.95rem; }
.se-dm-index-directory .se-chrome-d .se-bar-nav a:hover { text-decoration: underline; }
.se-dm-index-directory .se-chrome-d .se-bar-nav a[aria-current] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.45em; }
.se-dm-index-directory .se-chrome-d .se-bar-end { display: flex; align-items: center; gap: 0.75rem; margin-inline-start: auto; }
.se-dm-index-directory .se-chrome-d .se-bar-end .se-btn { min-block-size: 44px; padding-block: 0.45rem; }

.se-dm-index-directory .se-chrome-d .se-header { position: relative; border-block-end: calc(var(--se-rule-w, 1px) * 2) solid var(--se-panel-fg); }
.se-dm-index-directory .se-chrome-d .se-dir { max-inline-size: calc(var(--se-max) + 2 * var(--se-gutter)); margin-inline: auto; padding-inline: var(--se-gutter); padding-block: 0.5rem 1rem; border-block-start: var(--se-rule-w, 1px) solid var(--se-rule); }
.se-dm-index-directory .se-chrome-d .se-dir > .se-navlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: 0.25rem 1.5rem; }
.se-dm-index-directory .se-chrome-d .se-dir > .se-navlist > li > a { display: flex; align-items: center; min-block-size: 44px; font-weight: var(--se-strong-weight, 600); text-decoration: none; }
.se-dm-index-directory .se-chrome-d .se-dir .se-navlist-sub { list-style: none; margin: 0; padding: 0; }
.se-dm-index-directory .se-chrome-d .se-dir .se-navlist-sub a { display: flex; align-items: center; min-block-size: 36px; font-size: 0.88rem; color: var(--se-muted); text-decoration: none; }
.se-dm-index-directory .se-chrome-d .se-dir a:hover, .se-dm-index-directory .se-chrome-d .se-dir a[aria-current] { text-decoration: underline; color: var(--se-link); }
}
@layer se.menu {

.se-mm-dropdown .se-chrome-m .se-header { --se-hh: 4rem; }
.se-mm-dropdown .se-chrome-m .se-mbar { display: flex; align-items: center; gap: 0.5rem; min-block-size: var(--se-hh); padding-inline: var(--se-gutter); }
.se-mm-dropdown .se-chrome-m .se-mbar .se-brand { margin-inline-end: auto; --se-logo-h: 26px; min-inline-size: 0; }
.se-mm-dropdown[data-panel-open="true"] .se-chrome-m .se-header { z-index: 70; }
.se-mm-dropdown .se-chrome-m .se-header[data-stuck="true"] { box-shadow: 0 1px 0 var(--se-rule); }
.se-mm-dropdown .se-chrome-m .se-mpanel { background: var(--se-panel-bg); color: var(--se-panel-fg); overflow-y: auto; overscroll-behavior: contain; padding: 1.25rem var(--se-gutter) 2rem; }
.se-mm-dropdown .se-chrome-m .se-mpanel .se-navlist { display: grid; }
.se-mm-dropdown .se-chrome-m .se-mpanel a { text-decoration: none; }
.se-mm-dropdown .se-chrome-m .se-mlinks a { display: flex; align-items: center; gap: 0.75rem; min-block-size: 52px; font-size: 1.15rem; font-weight: var(--se-strong-weight, 600); border-block-end: var(--se-rule-w, 1px) solid var(--se-rule); }
.se-mm-dropdown .se-chrome-m .se-mlinks a[aria-current] { color: var(--se-link); }
.se-mm-dropdown .se-chrome-m .se-mlinks .se-navlist-sub { list-style: none; padding-inline-start: 1rem; }
.se-mm-dropdown .se-chrome-m .se-mlinks .se-navlist-sub a { font-size: 1rem; font-weight: 400; min-block-size: 46px; }
.se-mm-dropdown .se-chrome-m .se-mfoot { display: grid; gap: 1rem; margin-block-start: 1.5rem; color: var(--se-muted); }
.se-mm-dropdown .se-chrome-m .se-panel-contact { display: grid; gap: 0.25rem; }
.se-mm-dropdown .se-chrome-m .se-panel-contact a { display: inline-flex; align-items: center; min-block-size: 44px; }
.se-mm-dropdown .se-chrome-m .se-mfoot .se-btn { justify-self: start; }

.se-mm-dropdown .se-chrome-m .se-drop { inset-inline: 0; inset-block-start: var(--se-hh, 4rem); max-block-size: calc(100dvh - var(--se-hh, 4rem)); transform: translateY(-0.75rem); border-block-end: var(--se-rule-w, 1px) solid var(--se-rule);
  box-shadow: 0 18px 30px color-mix(in oklab, var(--se-fg) 16%, transparent); }
.se-mm-dropdown .se-chrome-m .se-drop[data-open="true"] { transform: none; }
}
@layer se.dock {
.se-dk-multi-stack.se-dkp-bottom .se-dock { inset-inline: 0; inset-block-end: 0; inline-size: 100%; border-radius: 0; min-block-size: 3.5rem; padding-block-end: env(safe-area-inset-bottom); }
.se-dk-multi-stack.se-dkp-bottom-start .se-dock { inset-inline-start: 1rem; inset-block-end: max(1rem, env(safe-area-inset-bottom)); }
.se-dk-multi-stack.se-dkp-bottom-end .se-dock { inset-inline-end: 1rem; inset-block-end: max(1rem, env(safe-area-inset-bottom)); }
.se-dk-multi-stack.se-dkp-bottom-centre .se-dock { inset-inline: 0; margin-inline: auto; inline-size: fit-content; max-inline-size: calc(100vw - 2rem); inset-block-end: max(1rem, env(safe-area-inset-bottom)); }
.se-dk-multi-stack.se-dkp-top-end .se-dock { inset-inline-end: 1rem; inset-block-start: 4.75rem; }
.se-dk-multi-stack.se-dkp-edge-end .se-dock { inset-inline-end: 0; inset-block-start: 42%; }
.se-dk-multi-stack.se-dkp-edge-start .se-dock { inset-inline-start: 0; inset-block-start: 42%; }
.se-dk-multi-stack .se-dock { gap: 0.2rem; padding: 0.25rem; border-radius: 999px; background: var(--se-panel-bg); color: var(--se-panel-fg); border: var(--se-rule-w, 1px) solid var(--se-rule); box-shadow: 0 10px 28px color-mix(in oklab, var(--se-fg) 24%, transparent); }
.se-dk-multi-stack:is(.se-dkp-edge-start, .se-dkp-edge-end) .se-dock { flex-direction: column; }
.se-dk-multi-stack.se-dkp-edge-end .se-dock { border-start-end-radius: 0; border-end-end-radius: 0; border-inline-end: 0; }
.se-dk-multi-stack.se-dkp-edge-start .se-dock { border-start-start-radius: 0; border-end-start-radius: 0; border-inline-start: 0; }
.se-dk-multi-stack.se-dkp-bottom .se-dock { border-radius: 0; justify-content: space-around; }
.se-dk-multi-stack .se-dock a { display: inline-grid; place-items: center; inline-size: 48px; block-size: 48px; border-radius: 50%; color: inherit; }
.se-dk-multi-stack .se-dock a:first-child { background: var(--se-btn-bg); color: var(--se-btn-fg); }
.se-dk-multi-stack .se-dock a:not(:first-child):hover { background: var(--se-tint); }
.se-dk-multi-stack:is(.se-dkp-edge-start, .se-dkp-edge-end) .se-dock { translate: 0 -50%; }
}
@font-face{font-family:"Onest";src:url("/fonts/onest/onest-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Onest";src:url("/fonts/onest/onest-latin-ext-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}