  @font-face {
    font-family: 'Instrument Serif'; font-style: normal; font-weight: 400; font-display: swap;
    src: url(/fonts/InstrumentSerif-400-latin.woff2) format('woff2');
    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: 'Instrument Serif'; font-style: normal; font-weight: 400; font-display: swap;
    src: url(/fonts/InstrumentSerif-400-latin-ext.woff2) format('woff2');
    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;
  }
  @font-face {
    font-family: 'Instrument Serif'; font-style: italic; font-weight: 400; font-display: swap;
    src: url(/fonts/InstrumentSerif-400i-latin.woff2) format('woff2');
    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: 'Instrument Serif'; font-style: italic; font-weight: 400; font-display: swap;
    src: url(/fonts/InstrumentSerif-400i-latin-ext.woff2) format('woff2');
    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;
  }
  @font-face {
    font-family: 'Archivo'; font-style: normal; font-weight: 300 500; font-display: swap;
    src: url(/fonts/Archivo-var-latin.woff2) format('woff2');
    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: 'Archivo'; font-style: normal; font-weight: 300 500; font-display: swap;
    src: url(/fonts/Archivo-var-latin-ext.woff2) format('woff2');
    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;
  }
  @font-face {
    font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap;
    src: url(/fonts/IBMPlexMono-400-latin.woff2) format('woff2');
    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: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap;
    src: url(/fonts/IBMPlexMono-400-latin-ext.woff2) format('woff2');
    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;
  }
  @font-face {
    font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap;
    src: url(/fonts/IBMPlexMono-500-latin.woff2) format('woff2');
    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: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap;
    src: url(/fonts/IBMPlexMono-500-latin-ext.woff2) format('woff2');
    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;
  }

  :root {
    --ink:          #1A1917;
    --ink-deep:     #0F0E0C;
    --paper:        #FFFFFF;
    --paper-warm:   #F7F6F3;
    --paper-tile:   #F3F1EC;
    --canvas:       #EFEDE8;
    --canvas-deep:  #E4E1DA;
    --skeleton:     #EAE7E0;
    --rule:         #E6E2DA;
    --rule-strong:  #DFDBD2;
    --rule-strong2: #D8D3C9;
    --text-2:       #4A463F;
    --text-muted:   #625E57;
    --text-faint:   #6C675F;
    --text-faint2:  #746F66;
    --error:        #8C3B2E;
    --error-wash:   #FBF4F2;

    --surround:     #F8F6F3;

    --serif: 'Instrument Serif', Georgia, 'Times New Roman', serif;
    --sans:  'Archivo', ui-sans-serif, system-ui, -apple-system, sans-serif;
    --mono:  'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

    --ease:      cubic-bezier(.2,.7,.2,1);
    --ease-draw: cubic-bezier(.4,0,.2,1);
    --hover:     520ms;
    --reveal:    900ms;
  }

  :root {
    --cjk-sans: 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei',
                'Noto Sans CJK SC', 'Source Han Sans SC', sans-serif;
    --cjk-serif: 'Songti SC', 'Noto Serif CJK SC', 'Source Han Serif SC',
                 SimSun, serif;
  }

  :lang(zh-Hans) :is(.eyebrow, .tier-name, .tier-range, .tier-eg, .tier-rate-unit,
                     .est-label, .fine-print-head, .lic-amt, .card-tag,
                     .card-link-tag, #pricing-eyebrow, #pricing-title,
                     #gallery-project-num, #gallery-project-name,
                     #pricing-doc .tier-name) {
    letter-spacing: 0.08em;
  }

  html, body { margin: 0; padding: 0; overflow: hidden; height: 100%; background: var(--ink); }
  * { box-sizing: border-box; }
  ::-webkit-scrollbar { display: none; }

  @media (hover: hover) and (pointer: fine) {
    .scroll-pane {
      scrollbar-width: thin;
      scrollbar-color: rgba(28,28,28,0.26) transparent;

      scrollbar-gutter: stable;
    }
    .scroll-pane::-webkit-scrollbar { display: block; width: 11px; }
    .scroll-pane::-webkit-scrollbar-track { background: transparent; }
    .scroll-pane::-webkit-scrollbar-thumb {
      background: rgba(28,28,28,0.24);
      border-radius: 11px;

      border: 3px solid transparent;
      background-clip: content-box;
      transition: background-color 220ms ease;
    }
    .scroll-pane:hover::-webkit-scrollbar-thumb { background: rgba(28,28,28,0.42); background-clip: content-box; }

    #scroll-all::-webkit-scrollbar-thumb { background: rgba(28,28,28,0.3); background-clip: content-box; }
  }
  a { color: var(--ink); text-decoration: none; }
  button { cursor: pointer; border: none; background: none; font-family: 'Archivo', var(--cjk-sans); padding: 0; }
  h1, h2, h3, p, ul { margin: 0; }
  ul { list-style: none; padding: 0; }
  img { max-width: 100%; }

  :focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }

  .view:focus, .view:focus-visible { outline: none; }

  .eyebrow {
    font-weight: 300; font-size: 11px; letter-spacing: 0.22em; color: var(--text-muted);
  }
  .rule { width: 44px; height: 1px; background: var(--ink); display: block; }

  .view {
    position: fixed;
    inset: 0;
    transition: opacity 380ms ease, visibility 0s;
  }

  .view.hidden {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity 380ms ease, visibility 0s linear 380ms;
  }

  .scroll-pane {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
    font-family: 'Archivo', var(--cjk-sans);
    background: var(--surround);
  }

  #scroll-home { scroll-behavior: smooth; }
  #scroll-home > section { flex-shrink: 0; }

  @keyframes drift {
    from { transform: scale(1.0); }
    to   { transform: scale(1.07); }
  }

  #projects {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--ink);
  }

  #pricing-home .eyebrow, #pricing-doc .eyebrow { font-size: 12px; }

  .tier-row {
    display: flex;
    gap: clamp(12px, 1.4vw, 22px);
  }

  .tier-row > li { display: flex; flex: 1 1 0; min-width: 0; }
  .tier { flex: 1 1 auto; min-width: 0; }

  .tier {
    display: flex;
    flex-direction: column;
    gap: clamp(5px, 0.9vh, 11px);
    padding: clamp(18px, 2.8vh, 34px) clamp(16px, 1.8vw, 30px);
    background: var(--paper-tile);
    border: 1px solid var(--rule);
  }

  #pricing-doc .tier {
    gap: clamp(7px, 1.1vh, 13px);
    padding: clamp(26px, 3.6vh, 44px) clamp(24px, 2.4vw, 40px);
  }
  #pricing-doc .tier-rate-num { font-size: clamp(34px, 5.4vh, 54px); }
  #pricing-doc .tier-name  { font-size: 13px; letter-spacing: 0.24em; }
  #pricing-doc .tier-range { font-size: 13px; }
  #pricing-doc .tier-for   { font-size: 17px; padding-top: clamp(12px, 1.8vh, 20px); }

  #pricing-doc #rate .tier-row { gap: clamp(16px, 1.8vw, 30px); }

  .tier-pick { border-color: rgba(200,169,110,0.5); }

  .tier-name { font-weight: 300; font-size: 12px; letter-spacing: 0.22em; color: var(--text-muted); }
  .tier-rate { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
  .tier-rate-num {
    font-weight: 700;
    font-size: clamp(28px, 4.8vh, 46px);
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--ink);
  }

  .tier-range { font-weight: 500; font-size: 12px; letter-spacing: 0.18em; color: var(--ink); }
  .tier-for {
    font-family: 'Instrument Serif', var(--cjk-serif);
    font-size: 16px; line-height: 1.45; color: var(--text-muted);

    margin-top: auto; padding-top: clamp(8px, 1.4vh, 16px);
  }

  @media (hover: hover) and (pointer: fine) and (min-width: 861px) {

    #pricing-home .tier-row:has(li:hover) li:not(:hover) { opacity: 0.5; }

  }

  #scroll-pricing { background: var(--surround); }
  #pricing-doc {
    width: 100%;
    max-width: 940px;
    margin: 0 auto;

    padding: calc(76px + clamp(30px, 6vh, 68px)) clamp(24px, 5vw, 48px) clamp(64px, 11vh, 120px);
  }

  @media (min-width: 1000px) {

    #pricing-doc {
      max-width: 1280px;
      display: grid;
      grid-template-columns: repeat(12, minmax(0, 1fr));

      grid-template-rows: auto 1fr;
      column-gap: clamp(20px, 2vw, 34px);
      align-items: start;
    }
    .pricing-open     { grid-column: 1 / span 5; grid-row: 1; max-width: none; }
    .pricing-open-sub { grid-column: 1 / span 5; grid-row: 2; max-width: none; align-self: start; }

    #estimator        { grid-column: 6 / span 7; grid-row: 1 / span 2; margin-bottom: 0; }

    #rate { grid-column: 1 / -1; margin-top: clamp(52px, 8vh, 92px); }

    .fine-print { grid-column: 1 / -1; }

    .fine-print .pricing-list,
    .fine-print .pricing-terms,
    .fine-print .pricing-doc-note,
    .fine-print .pricing-open-sub { max-width: 76ch; }

  }
  .pricing-open {
    font-family: 'Instrument Serif', var(--cjk-serif);
    font-size: clamp(23px, 3.7vw, 36px);
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: var(--ink);
    max-width: 22ch;
  }
  .pricing-open-sub {
    font-size: 16px; line-height: 1.7; color: var(--text-muted);
    max-width: 58ch; margin-top: clamp(16px, 2.4vh, 24px);
  }
  .pricing-block { margin-top: clamp(46px, 7.5vh, 82px); }
  .pricing-block .eyebrow { display: block; }
  .pricing-block .rule { margin: 12px 0 clamp(20px, 3vh, 30px); }

  #estimator {
    background: var(--paper-tile);
    border: 1px solid var(--rule);
    padding: clamp(22px, 3.4vh, 34px) clamp(20px, 2.6vw, 34px);
    margin-bottom: clamp(20px, 3vh, 30px);
  }
  .est-head {
    display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  }
  .est-label {
    font-weight: 300; font-size: 11px; letter-spacing: 0.22em; color: var(--text-muted);
  }
  .est-n {
    font-family: 'Instrument Serif', var(--cjk-serif);
    font-size: clamp(26px, 3.4vw, 36px);
    line-height: 1; color: var(--ink);
    font-variant-numeric: tabular-nums;
  }

  .est-track {
    display: flex; align-items: center; gap: 4px;
    margin: clamp(10px, 1.6vh, 16px) 0 0;
  }
  .est-step {
    flex: 0 0 auto;
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Archivo', var(--cjk-sans);
    font-weight: 400; font-size: 17px; line-height: 1;
    color: var(--text-muted);
    border: 1px solid var(--rule);
    background: none; cursor: pointer;
    transition: color 200ms ease, border-color 200ms ease, background-color 200ms ease;
  }
  .est-step:hover { color: var(--ink); border-color: var(--ink); }
  .est-step:active { background: var(--rule); }
  .est-step:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

  .est-slider {
    -webkit-appearance: none; appearance: none;
    flex: 1 1 auto; min-width: 0; height: 44px;
    margin: 0;
    background: none; cursor: pointer;
  }
  .est-slider::-webkit-slider-runnable-track {
    height: 2px; background: rgba(28,28,28,0.16);
  }
  .est-slider::-moz-range-track { height: 2px; background: rgba(28,28,28,0.16); }
  .est-slider::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 22px; height: 22px; margin-top: -10px;
    border-radius: 50%;
    background: var(--ink);
    border: 3px solid var(--paper-tile);
    box-shadow: 0 2px 10px -2px rgba(28,28,28,0.5);
    transition: transform 200ms ease;
  }
  .est-slider::-moz-range-thumb {
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--ink); border: 3px solid var(--paper-tile);
    box-shadow: 0 2px 10px -2px rgba(28,28,28,0.5);
  }
  .est-slider:focus-visible { outline: none; }
  .est-slider:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--ink); outline-offset: 3px; }
  .est-slider:focus-visible::-moz-range-thumb { outline: 2px solid var(--ink); outline-offset: 3px; }

  .est-scale {
    display: flex; justify-content: space-between;
    font-weight: 300; font-size: 10px; letter-spacing: 0.18em; color: var(--text-muted);
    margin-top: 2px;
    padding: 0 48px;
  }

  .est-addons { margin-top: clamp(14px, 2.2vh, 20px); }
  .est-addon {
    display: flex; align-items: center; gap: 12px;
    padding: 11px 0;
    border-top: 1px solid var(--rule);
    font-size: 15px; color: var(--ink);
    cursor: pointer;
  }
  .est-addon input { accent-color: var(--ink); width: 16px; height: 16px; flex: 0 0 16px; }
  .est-addon-name { flex: 1 1 auto; min-width: 0; }
  .est-addon-price { flex: 0 0 auto; font-weight: 500; white-space: nowrap; }
  .est-addon-price .unit { font-weight: 300; color: var(--text-muted); }

  .est-total {
    font-weight: 700;
    font-size: clamp(32px, 5vw, 48px);
    line-height: 1; letter-spacing: -0.03em; color: var(--ink);
    font-variant-numeric: tabular-nums;
  }
  .est-detail {
    font-size: 13px; line-height: 1.5; color: var(--text-muted);
    text-align: right; flex: 1 1 200px;
  }
  .est-hint {
    display: flex; gap: 10px;
    margin-top: 12px;
    font-size: 14px; line-height: 1.5; color: var(--ink);
  }

  .est-hint[hidden] { display: none; }
  .est-hint::before {
    content: '\2192'; flex: 0 0 auto; color: var(--ink);
  }
  .est-note {
    font-size: 12px; line-height: 1.6; color: var(--text-muted);
    margin-top: clamp(10px, 1.6vh, 14px);
  }

  @media (max-width: 860px) {
    .est-detail { text-align: left; flex-basis: 100%; }
  }

  .pricing-block.pricing-sub { margin-top: clamp(24px, 3.4vh, 38px); }
  .pricing-sub > .eyebrow { color: var(--text-muted); }
  .pricing-sub > .rule { margin: 10px 0 clamp(14px, 2vh, 20px); }

  .pricing-terms li {
    position: relative;
    padding: 8px 0 8px 22px;
    font-size: 14px; line-height: 1.65; color: var(--text-muted);
  }
  .pricing-terms li::before {
    content: ''; position: absolute; left: 0; top: 19px;
    width: 10px; height: 1px; background: var(--ink);
  }

  .fine-print {
    margin-top: clamp(56px, 9vh, 104px);
    padding: clamp(26px, 4vh, 46px) clamp(22px, 2.6vw, 40px) clamp(28px, 4.4vh, 50px);
    background: var(--paper-tile);
    border: 1px solid var(--rule);
  }
  .fine-print-head {
    font-weight: 500; font-size: 11px; letter-spacing: 0.26em;
    color: var(--ink);
    padding-bottom: clamp(14px, 2vh, 20px);
    border-bottom: 1px solid rgba(28,28,28,0.18);
  }

  .fine-print .pricing-block { margin-top: clamp(26px, 3.6vh, 40px); }
  .fine-print .pricing-block > .rule { margin-bottom: clamp(16px, 2.4vh, 24px); }

  .fine-print .lic { background: var(--surround); }

  .print-head { display: none; }

  .lic-row { margin-top: clamp(20px, 3vh, 30px); align-items: stretch; }
  .lic { gap: 0; }

  .lic-head {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 16px; flex-wrap: wrap;
  }
  .lic-title {
    font-family: 'Instrument Serif', var(--cjk-serif);
    font-size: clamp(19px, 2.4vw, 24px);
    line-height: 1.2;
    color: var(--ink);
  }
  .lic-amt {
    font-weight: 500; font-size: 12px; letter-spacing: 0.16em;
    text-transform: uppercase; white-space: nowrap; color: var(--ink);
  }
  .lic-points { margin-top: clamp(14px, 2vh, 20px); }
  .lic-points li {
    position: relative;
    padding: 7px 0 7px 22px;
    font-size: 15px; line-height: 1.55; color: var(--text-muted);
  }
  .lic-points li::before {
    content: ''; position: absolute; left: 0; top: 19px;
    width: 10px; height: 1px; background: var(--ink);
  }

  #scroll-all { scroll-snap-type: y mandatory; }

  #all-grid {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;

    padding: 0 clamp(88px, 5vw, 100px);
    background: var(--surround);
  }

  .sr-only {
    position: absolute; width: 1px; height: 1px; margin: -1px;
    padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }

  #view-all.sheet #scroll-all { scroll-snap-type: none; }

  #view-all.sheet #all-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(26px, 3.4vw, 58px);
    row-gap: clamp(40px, 6vh, 78px);
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: calc(76px + clamp(30px, 5vh, 60px)) clamp(24px, 4vw, 56px)
             clamp(60px, 10vh, 120px);
    align-items: start;
  }

  #view-all.sheet .book-unit:nth-child(even) { margin-top: clamp(34px, 7vw, 96px); }

  @media (max-width: 899px) {
    #view-all.sheet #all-grid {
      grid-template-columns: 1fr;
      row-gap: clamp(34px, 6vh, 54px);
      padding: calc(60px + 26px) clamp(20px, 5vw, 34px) 56px;
      max-width: 560px;
    }

    #view-all.sheet .book-unit:nth-child(even) { margin-top: 0; }

  }

  #contact-home {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    background: var(--paper-tile);
    position: relative;
    padding: clamp(40px, 6vw, 88px) clamp(24px, 5vw, 64px);
    text-align: center;
  }

  .card-stage {
    container-type: inline-size;

    width: min(700px, 100%, (100dvh - 300px) * 1.75);
    margin: clamp(22px, 4vh, 46px) 0 clamp(16px, 2.4vh, 26px);
  }

  .card-tilt { perspective: 1400px; }
  .biz-card {
    --u: calc(100cqw / 700);
    position: relative;
    width: 100%;
    aspect-ratio: 7 / 4;
    transform-style: preserve-3d;
    cursor: pointer;

    transform: rotateY(0deg);
  }
  .biz-card.card-still { transition: transform 520ms cubic-bezier(0.42, 0.04, 0.22, 1); }
  @media (prefers-reduced-motion: reduce) {
    .biz-card.card-still { transition: none; }
  }

  .card-face {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border-radius: calc(10 * var(--u));
    overflow: hidden;

    text-align: left;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    box-shadow: 0 calc(30 * var(--u)) calc(60 * var(--u)) calc(-30 * var(--u)) rgba(28,28,28,0.55);
  }
  .card-front {
    background: var(--surround);
    padding: calc(44 * var(--u)) calc(48 * var(--u));
  }
  .card-back {
    background: var(--ink);
    padding: calc(40 * var(--u)) calc(48 * var(--u));
    transform: rotateY(180deg);
  }

  .card-row { display: flex; justify-content: space-between; align-items: flex-start; gap: calc(16 * var(--u)); }
  .card-row-end { align-items: flex-end; }

  .card-tag {
    font-weight: 400;
    font-size: max(9px, calc(10 * var(--u)));
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--text-muted);
    white-space: nowrap;
  }
  .card-tag-dark { position: relative; color: #8D867A; letter-spacing: 0.2em; }

  .card-back-name {
    position: relative;
    font-family: 'Instrument Serif', var(--cjk-serif);
    font-size: max(17px, calc(26 * var(--u)));
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: var(--surround);
  }

  .card-foil {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
  }
  .card-name-foil, .card-disc-foil,
  .card-tag-dark .card-foil, .card-back-name .card-foil {
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }

  .card-rule {
    position: relative;
    height: max(1px, calc(2 * var(--u)));
    margin: calc(22 * var(--u)) 0 calc(16 * var(--u));
    background: rgba(28,28,28,0.13);
    overflow: hidden;
  }
  .card-back .card-rule { margin: 0; background: rgba(248,246,243,0.17); }

  .card-back-head { display: flex; flex-direction: column; gap: calc(14 * var(--u)); }
  .card-links { display: flex; flex-direction: column; }

  .card-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 44px;
    gap: calc(16 * var(--u));
    padding: calc(11 * var(--u)) 0;
    border-top: 1px solid rgba(248,246,243,0.17);
    font-size: max(11px, calc(13 * var(--u)));
    color: var(--surround);
    transition: padding-left 200ms ease, color 200ms ease;
  }
  .card-link:last-child { border-bottom: 1px solid rgba(248,246,243,0.17); }
  .card-link-tag {
    flex: 0 0 auto;
    font-size: max(8.5px, calc(10 * var(--u)));
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #8D867A;
  }

  .card-hint {
    font-weight: 300; font-size: 11px; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--text-muted);
  }

  #scroll-top {
    position: absolute; right: clamp(20px, 4vw, 60px); bottom: clamp(20px, 4vh, 40px);
    font-weight: 300; font-size: 11px; letter-spacing: 0.2em; color: var(--text-muted);
    min-height: 44px; display: flex; align-items: center;
    transition: color 220ms ease;
  }

  #gallery-project-num, #all-eyebrow, #pricing-eyebrow {
    font-weight: 300; font-size: 10px; letter-spacing: 0.35em; color: var(--ink);
  }
  #gallery-project-name, #all-title, #pricing-title {
    font-weight: 600; font-size: 15px; letter-spacing: 0.18em; color: var(--ink); text-align: center;
  }

  #gallery-count, #all-count, #pricing-year { font-weight: 300; font-size: 10px; letter-spacing: 0.15em; color: var(--text-muted); }

  #lang-switch {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; min-height: 44px;
    font-weight: 500; font-size: 11px; letter-spacing: 0.14em;
    color: var(--ink);
    padding: 3px 8px;
    border: 1px solid var(--rule);
    transition: border-color 200ms ease, color 200ms ease;
  }
  #lang-switch:lang(zh-Hans) { letter-spacing: 0.06em; }

  #masonry {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 92px 16px 32px;
    background: var(--surround);
  }

  #lightbox {
    position: fixed; inset: 0; z-index: 500;
    display: flex; align-items: center; justify-content: center;
    touch-action: pan-y pinch-zoom;
  }
  #lightbox.lb-hidden { display: none; }
  #lb-overlay {
    position: absolute; inset: 0;
    background: rgba(0,0,0,0.94);
    cursor: zoom-out;
  }
  #lb-img {
    position: relative; z-index: 1;
    max-width: 90vw; max-height: 90vh;
    width: auto; height: auto;
    display: block; object-fit: contain;
    opacity: 0;
    transition: opacity 220ms ease;
    pointer-events: none;
    user-select: none;
  }
  #lb-img.lb-ready { opacity: 1; }

  #lb-close {
    position: fixed; z-index: 2;
    top: calc(20px + env(safe-area-inset-top));
    right: calc(20px + env(safe-area-inset-right));
    color: rgba(255,255,255,0.45); font-size: 11px;
    letter-spacing: 0.2em; font-family: 'Archivo', var(--cjk-sans);
    font-weight: 300; transition: color 200ms;
    min-width: 44px; min-height: 44px;
    display: flex; align-items: center; justify-content: center;
  }
  .lb-nav {
    position: fixed; top: 50%; transform: translateY(-50%); z-index: 2;
    color: rgba(255,255,255,0.3); font-size: 15px;
    letter-spacing: 0.18em; font-family: 'Archivo', var(--cjk-sans);
    font-weight: 300; transition: color 220ms, opacity 220ms;
    min-width: 56px; min-height: 56px;
    display: flex; align-items: center; justify-content: center;
  }
  .lb-nav.lb-dim { opacity: 0; pointer-events: none; }
  #lb-prev { left: calc(4px + env(safe-area-inset-left)); }
  #lb-next { right: calc(4px + env(safe-area-inset-right)); }

  .bar-wrap {
    position: fixed; left: 0; bottom: 0;
    width: 100%; height: 4px;
    background: rgba(28,28,28,0.08);
    z-index: 300;
  }
  .bar-fill {
    height: 100%; width: 0%;
    background: var(--ink);
    transition: width 80ms linear;
  }

  @media (hover: hover) and (pointer: fine) {

    a:hover { color: var(--text-2); }

    .card-link:hover { padding-left: calc(8 * var(--u)); }
    #scroll-top:hover, #gallery-back:hover, #all-back:hover { color: var(--text-2); }

    #lb-close:hover { color: var(--paper); }
    .lb-nav:hover { color: rgba(255,255,255,1); }
  }

  @media (max-width: 860px) {

    #projects { height: auto; min-height: 100vh; min-height: 100dvh; }

    .tier-row { flex-direction: column; gap: 10px; }

    .tier-row > li, .tier { flex: 0 0 auto; }

    #contact-home { height: auto; min-height: 100vh; min-height: 100dvh; }
    .card-stage { width: 100%; }
    .biz-card { --u: calc(100cqw / 370); aspect-ratio: 5 / 6; }
    .card-front { padding: calc(34 * var(--u)) calc(32 * var(--u)); }
    .card-back  { padding: calc(30 * var(--u)) calc(32 * var(--u)); }

    .card-tag   { letter-spacing: 0.16em; }

    .card-link  { padding: calc(13 * var(--u)) 0; }

    .card-tag, .card-link-tag, .card-disc { font-size: 11px; }
    .card-link { font-size: 14px; }
    #scroll-top { position: static; margin-top: 30px; justify-content: center; }

    #gallery-project-name, #pricing-title { font-size: 12px; letter-spacing: 0.14em; }
    #gallery-project-num, #pricing-eyebrow { font-size: 9px; letter-spacing: 0.28em; }
    #masonry { padding: 74px 8px 28px; }

    #pricing-doc { padding-top: calc(60px + 40px); }

    #all-grid { padding: 0 70px 0 clamp(14px, 3.5vw, 24px); }

    #lb-img { max-width: 96vw; max-height: 82vh; }
    .lb-nav { font-size: 13px; }

  }

  @media (max-height: 520px) and (orientation: landscape) {

  }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }

  @media print {
    @page { size: A4; margin: 12mm 15mm 10mm; }

    html, body { overflow: visible; height: auto; background: #fff; }

    #view-home, #view-all, #view-gallery, .top-bar, .bar-wrap, #lightbox { display: none !important; }

    #view-pricing {
      position: static; opacity: 1 !important; visibility: visible !important;
      transition: none;
    }
    #scroll-pricing {
      position: static; overflow: visible; height: auto;
      background: var(--surround);
    }

    #pricing-doc {
      max-width: none; margin: 0; padding: 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      column-gap: 10mm;
      row-gap: 4mm;
      align-content: start;
    }

    .alk-rates-head, .alk-rates-included { display: contents; }

    .print-head { grid-column: 1 / -1; grid-row: 1; }

    .pricing-open     { grid-column: 1; grid-row: 2; align-self: center; }
    .pricing-open-sub { grid-column: 2; grid-row: 2; margin-top: 0; }

    #rate     { grid-column: 1 / -1; grid-row: 3; }

    #included { grid-column: 1 / -1; grid-row: 4; }

    .fine-print { grid-column: 1 / -1; grid-row: 5; }

    #estimator { display: none !important; }
    .alk-rates-est { display: none; }

    #licence { display: none; }

    #pricing-doc .pricing-block, #pricing-doc .fine-print { margin-top: 0; }

    .fine-print {
      background: none; border: 0; padding: 0;
    }
    .fine-print-head { display: none; }

    #pricing-doc .print-head { display: block; margin-bottom: 3mm; }
    .print-name {
      font-family: 'Instrument Serif', var(--cjk-serif);
      font-size: 30px; line-height: 1; color: var(--ink);
    }
    .print-meta {
      display: flex; justify-content: space-between; align-items: baseline;
      gap: 16px; margin-top: 7px;
      padding-top: 7px; border-top: 1px solid var(--rule);
      font-weight: 300; font-size: 8.5px; letter-spacing: 0.24em; color: var(--text-muted);
    }
    .print-meta .print-doc { color: var(--ink); }

    .print-contact {
      margin-top: 4px;
      font-weight: 300; font-size: 8.5px; letter-spacing: 0.16em;
      color: var(--text-muted);
    }

    .pricing-open { font-size: 20px; max-width: 26ch; }
    .pricing-open-sub { font-size: 10.5px; line-height: 1.6; max-width: none; margin-top: 8px; }
    #pricing-doc .eyebrow { font-size: 8.5px; }
    .pricing-block .rule { margin: 7px 0 10px; }

    .tier-row { gap: 8px; }
    .tier { padding: 12px 13px; gap: 4px; }
    .tier-name { font-size: 8.5px; }
    .tier-rate-num { font-size: 25px; }

    .tier-range { font-size: 8.5px; }
    .tier-for { font-size: 10.5px; padding-top: 9px; }

    .rule { width: 32px; }

    .pricing-terms li { font-size: 9.5px; padding: 4px 0 4px 16px; line-height: 1.55; }
    .pricing-terms li::before { top: 12px; width: 8px; }

    .tier-row { flex-direction: row; }
    .tier-row > li { flex: 1 1 0; }
    .tier {
      display: flex; flex-direction: column;
      flex: 1 1 auto; min-height: 0;
    }

    .tier-for { display: block; }

    .pricing-block, .fine-print, .tier-row, .print-head { break-inside: avoid; }
    .pricing-list li, .pricing-steps li, .pricing-terms li { break-inside: avoid; }
  }

.alk { background: var(--paper); color: var(--ink); font-family: var(--sans); }

.alk-nav {
  position: fixed; z-index: 20; top: 0; left: 0; right: 0;
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
  padding: 20px 52px; border-bottom: 1px solid var(--rule);
  background: var(--paper);
}

.alk-nav-links {
  display: flex; align-items: center; justify-content: flex-end; gap: 34px;
  font-family: var(--mono); font-size: 9.5px; text-transform: uppercase;
}

.alk-nav-item { position: relative; }
.alk-nav-trigger { display: inline-flex; align-items: center; min-height: 44px; }

.alk-nav-trigger {
  appearance: none; background: none; border: 0; padding: 0; cursor: pointer;
  font: inherit; color: rgba(26,25,23,.72); text-decoration: none;
  letter-spacing: 0.22em; transition: letter-spacing 450ms ease, color 450ms ease;
}
.alk-nav-item:hover .alk-nav-trigger,
.alk-nav-item:focus-within .alk-nav-trigger,
.alk-nav-trigger[aria-current="page"] { letter-spacing: 0.28em; color: var(--ink); }
.alk-nav-rule {
  position: absolute; left: 0; bottom: 8px; height: 1px; width: 0;
  background: var(--ink); transition: width 450ms var(--ease);
}
.alk-nav-item:hover .alk-nav-rule,
.alk-nav-item:focus-within .alk-nav-rule,
.alk-nav-trigger[aria-current="page"] + .alk-nav-rule { width: 100%; }

.alk-menu {
  position: absolute; right: -24px; top: calc(100% + 21px);
  width: 400px; overflow: hidden;

  height: 0; opacity: 0; pointer-events: none;
  transition: height 450ms var(--ease), opacity 350ms ease;
}
.alk-nav-item:hover .alk-menu,
.alk-nav-item:focus-within .alk-menu {
  height: var(--alk-menu-h, 292px); opacity: 1; pointer-events: auto;
}
.alk-menu-inner {
  background: var(--paper); border: 1px solid var(--rule);
  box-shadow: 0 24px 40px rgba(26,25,23,.12);
  padding: 22px 26px 24px; display: flex; flex-direction: column; gap: 2px;
  transform: translateY(-10px); transition: transform 450ms var(--ease);
}
.alk-nav-item:hover .alk-menu-inner,
.alk-nav-item:focus-within .alk-menu-inner { transform: translateY(0); }
.alk-menu-eyebrow {
  font-size: 8.5px; letter-spacing: 0.24em; color: var(--text-faint);
  padding-bottom: 10px;
}
.alk-menu-row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  padding: 9px 0; border-top: 1px solid #F0EDE7; text-decoration: none;
}
.alk-menu-row > span:first-child {
  font-family: var(--serif); font-size: 17px; letter-spacing: 0;
  text-transform: none; color: var(--ink);
}
.alk-menu-row > span:last-child {
  font-size: 8px; letter-spacing: 0.16em; color: var(--text-faint);
}
.alk-menu-note {
  font-family: var(--sans); font-size: 12px; line-height: 1.6; letter-spacing: 0;
  text-transform: none; color: var(--text-muted);
  padding-top: 10px; border-top: 1px solid #F0EDE7;
}

.alk-masthead {
  padding: 80px 52px 72px; display: flex; flex-direction: column;
  align-items: center; gap: 22px; border-bottom: 1px solid var(--rule);
  text-align: center;
}

.alk-mark {
  position: relative; width: 112px; height: 112px; flex: 0 0 auto;
  animation: alk-mark-settle .9s cubic-bezier(.2, .7, .2, 1) 5.2s both;
}
.alk-mark svg {
  position: absolute; inset: 0; width: 100%; height: 100%; color: var(--ink);
}
.alk-masthead-eyebrow {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.34em;
  text-transform: uppercase; color: var(--text-muted);
}
.alk-wordmark {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(52px, 8.4vw, 104px); line-height: .95; margin: 0;
}
.alk-rule { width: 120px; height: 1px; background: var(--ink); }
.alk-lede {
  margin: 0; font-family: var(--serif); font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.45; color: #33302B; max-width: 44ch; text-wrap: pretty;
}
.alk-meta {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 44px;
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--text-faint); padding-top: 6px;
}

.alk-plates { padding: 56px 52px 40px; display: flex; flex-direction: column; gap: 34px; }
.alk-section-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 20px;
  font-family: var(--mono); font-size: 10px; text-transform: uppercase;
}
.alk-section-head > :first-child { letter-spacing: 0.24em; color: var(--text-muted); }
.alk-section-head > :last-child  { letter-spacing: 0.2em;  color: var(--text-faint); }

.alk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 26px; }
.alk-plate { display: flex; flex-direction: column; gap: 12px; text-decoration: none; color: inherit; }
.alk-plate-crop {
  position: relative; aspect-ratio: 4 / 5; overflow: hidden;
  background: var(--ink);
}
.alk-plate-crop img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transform: scale(1); transition: transform 900ms var(--ease);
}
.alk-plate:hover .alk-plate-crop img,
.alk-plate:focus-visible .alk-plate-crop img { transform: scale(1.04); }

.alk-wm {
  position: absolute; left: 20px; bottom: 18px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
  z-index: 1; pointer-events: none;
}
.alk-wm-mark {
  width: 34px; height: 34px; color: #FFF; opacity: .5;
  transform: translateY(0);
  transition: transform 600ms var(--ease), opacity 500ms ease;
}
.alk-plate:hover .alk-wm-mark,
.alk-plate:focus-visible .alk-wm-mark { opacity: 1; transform: translateY(-8px); }
.alk-wm-words {
  display: flex; flex-direction: column; gap: 3px;
  opacity: .35; transform: translateY(6px);
  transition: opacity 600ms var(--ease) 80ms, transform 600ms var(--ease) 80ms;
}
.alk-plate:hover .alk-wm-words,
.alk-plate:focus-visible .alk-wm-words { opacity: 1; transform: translateY(0); }
.alk-wm-a { font-family: var(--serif); font-size: 16px; line-height: 1; color: var(--paper-warm); }
.alk-wm-s {
  font-family: var(--mono); font-size: 7.5px; letter-spacing: .24em;
  text-transform: uppercase; color: var(--rule-strong2);
  transition: letter-spacing 600ms ease;
}
.alk-plate:hover .alk-wm-s,
.alk-plate:focus-visible .alk-wm-s { letter-spacing: .34em; }

.alk-plate-cap {
  display: flex; flex-direction: column; gap: 5px;
  padding-top: 6px; border-top: 1px solid var(--rule);
}
.alk-plate-num {
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--text-faint);
}
.alk-plate-name { font-family: var(--serif); font-size: 24px; line-height: 1.05; }
.alk-plate-meta {
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--text-muted);
}

.alk-colophon {
  margin: 40px 52px 0; padding: 44px 0; border-top: 1px solid var(--rule);
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px;
}
.alk-col { display: flex; flex-direction: column; gap: 10px; }
.alk-col-head {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--text-faint);
}
.alk-col p { margin: 0; font-size: 14px; line-height: 1.75; color: var(--text-2); text-wrap: pretty; }
.alk-col-mail {
  font-family: var(--serif); font-size: 24px; color: inherit;
  border-bottom: 1px solid var(--rule-strong2); align-self: flex-start;
  text-decoration: none;
}
.alk-col-handle {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--text-muted); text-decoration: none;
}
.alk-foot {
  padding: 26px 52px 34px; display: flex; align-items: center;
  justify-content: space-between; gap: 24px;
}
.alk-foot-brand { display: flex; align-items: center; gap: 12px; }
.alk-foot-brand svg { width: 24px; height: 24px; color: var(--ink); }
.alk-foot-brand span, .alk-foot-legal {
  font-family: var(--mono); font-size: 9px; text-transform: uppercase;
  color: var(--text-muted);
}
.alk-foot-brand span { letter-spacing: 0.24em; }
.alk-foot-legal { letter-spacing: 0.18em; color: var(--text-faint); }

@keyframes alk-draw   { from { stroke-dashoffset: 180; } to { stroke-dashoffset: 0; } }
@keyframes alk-datum  { from { transform: scaleX(0); }   to { transform: scaleX(1); } }
@keyframes alk-star   { from { opacity: 0; transform: scale(.4); } to { opacity: .78; transform: scale(1); } }
@keyframes alk-halo   { from { opacity: 0; transform: scale(.6); } to { opacity: .42; transform: scale(1); } }
@keyframes alk-alkaid { from { opacity: 0; transform: scale(.5); } to { opacity: 1; transform: scale(1); } }
@keyframes alk-word   { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes alk-mark-settle {
  from { width: 190px; height: 190px; }
  to   { width: 112px; height: 112px; }
}

.alk-mark .m-poly  { stroke-dasharray: 180; animation: alk-draw 1.4s var(--ease-draw) .15s both; }
.alk-mark .m-datum { transform-box: fill-box; transform-origin: left center;
                     animation: alk-datum 1s var(--ease-draw) .1s both; }
.alk-mark .m-star  { transform-box: fill-box; transform-origin: center;
                     animation: alk-star .5s ease both; }
.alk-mark .m-star:nth-of-type(1) { animation-delay: .50s; }
.alk-mark .m-star:nth-of-type(2) { animation-delay: .65s; }
.alk-mark .m-star:nth-of-type(3) { animation-delay: .80s; }
.alk-mark .m-star:nth-of-type(4) { animation-delay: .95s; }
.alk-mark .m-star:nth-of-type(5) { animation-delay: 1.10s; }
.alk-mark .m-star:nth-of-type(6) { animation-delay: 1.25s; }
.alk-mark .m-halo   { transform-box: fill-box; transform-origin: center;
                      animation: alk-halo .8s var(--ease) 1.3s both; }
.alk-mark .m-alkaid { transform-box: fill-box; transform-origin: center;
                      animation: alk-alkaid .6s var(--ease) 1.35s both; }
.alk-in   { animation: alk-word .9s var(--ease) both; }
.alk-in-1 { animation-delay: 1.50s; }
.alk-in-2 { animation-delay: 1.62s; }
.alk-in-3 { animation-delay: 1.80s; }
.alk-in-4 { animation-delay: 1.90s; }
.alk-in-5 { animation-delay: 2.05s; }

@media (max-width: 860px) {
  .alk-nav { padding: 9px 20px; gap: 16px; }

  .alk-nav-links { display: none; }

  .alk-menu { display: none; }
  .alk-masthead { padding: 30px 20px 26px; gap: 13px; }

  .alk-mark { width: 84px; height: 84px; animation: none; }
  .alk-wordmark { font-size: 40px; }
  .alk-lede { font-size: 17px; line-height: 1.5; }
  .alk-meta { gap: 14px; font-size: 8.5px; letter-spacing: 0.16em; }
  .alk-plates { padding: 22px 20px 24px; gap: 20px; }

  .alk-grid { grid-template-columns: 1fr 1fr; gap: 20px 14px; }
  .alk-plate-name { font-size: 18px; }
  .alk-plate-num, .alk-plate-meta { font-size: 8px; letter-spacing: 0.14em; }

  .alk-wm { display: none; }
  .alk-colophon { margin: 20px 20px 0; padding: 28px 0; grid-template-columns: 1fr; gap: 24px; }
  .alk-foot { padding: 18px 20px 26px; flex-direction: column; align-items: flex-start; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .alk-mark { animation: none; }
  .alk-mark .m-poly, .alk-mark .m-datum, .alk-mark .m-star,
  .alk-mark .m-halo, .alk-mark .m-alkaid, .alk-in { animation: none; }
  .alk-plate-crop img, .alk-wm-mark, .alk-wm-words, .alk-wm-s,
  .alk-menu, .alk-menu-inner, .alk-nav-trigger, .alk-nav-rule { transition: none; }
}

#projects.alk {
  background: var(--paper); color: var(--ink);
  padding: 0; min-height: 0; display: block;
}
#projects.alk .alk-plates { max-width: none; margin: 0; }

#projects.alk { height: auto; flex: 0 0 auto; align-self: start; }
#projects.alk .alk-grid { height: auto; overflow: visible; }

#contact-home.alk {
  background: var(--paper); color: var(--ink);
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  gap: 18px; padding: 60px 52px 52px;

  min-height: 0; height: auto; flex: 0 0 auto;
}
#contact-home.alk .alk-card-eyebrow {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.24em;
  text-transform: uppercase; color: var(--text-faint);
}

#contact-home.alk .card-front,
#contact-home.alk .card-back { background: #141412; border-radius: 0; }

#contact-home.alk .card-front {
  align-items: center; justify-content: center;
  padding: 30px 34px;
}
#contact-home.alk .card-brand {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
}
#contact-home.alk .card-mark-wrap {
  width: 96px; height: 96px;
  --alk-hover-dot: 7px; --alk-hover-flare-x: 144px; --alk-hover-flare-y: 100px;
  --alk-hover-lift: -6px; --alk-hover-dot-colour: #FFFFFF;
  --alk-hover-flare-colour: rgba(255,255,255,.9);
  --alk-hover-shadow: 0 0 22px 5px rgba(255,255,255,.32);
}
#contact-home.alk .card-mark { width: 100%; height: 100%; color: #9A948A; }
#contact-home.alk .card-studio {
  position: relative; margin: 0;
  font-family: var(--serif); font-weight: 400; font-size: 26px;
  line-height: 1; color: #B7B1A6; letter-spacing: 0;
}

#contact-home.alk .card-studio-foil {
  position: absolute; left: 0; top: 0; white-space: nowrap;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
#contact-home.alk .card-kind {
  font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.3em;
  text-transform: uppercase; color: #6E6A63;
}

#contact-home.alk .card-corners {
  position: absolute; left: 22px; right: 22px; bottom: 16px;
}
#contact-home.alk .card-tag-dark {
  font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.2em;
  text-transform: uppercase; color: #8A857C; font-weight: 400;
}
#contact-home.alk .card-eta { letter-spacing: 0.14em; text-transform: none; }
#contact-home.alk .card-back { padding: 32px 34px; }
#contact-home.alk .card-back-name {
  font-family: var(--serif); font-size: 30px; line-height: 1; color: var(--paper-warm);
  display: flex; flex-direction: column; gap: 6px; position: relative;
}
#contact-home.alk .card-back-kind {
  font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.28em;
  text-transform: uppercase; color: #8A857C;
}
#contact-home.alk .card-back-mark { width: 38px; height: 38px; color: #8A857C; flex: none; }
#contact-home.alk .card-back .card-rule { background: rgba(247,246,243,.16); }
#contact-home.alk .card-link {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em;
  color: var(--rule-strong2); text-transform: none;
}
#contact-home.alk .card-link-tag {
  font-family: var(--mono); font-size: 8px; letter-spacing: 0.2em; color: #8A857C;
}
#contact-home.alk .card-hint {
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--text-faint2);
}
#contact-home.alk #scroll-top {
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.2em;
  color: var(--text-muted);
}

@media (max-width: 860px) {
  #contact-home.alk { padding: 34px 20px 30px; }
  #contact-home.alk .card-mark-wrap {
    width: 68px; height: 68px;
    --alk-hover-flare-x: 102px; --alk-hover-flare-y: 71px;
    --alk-hover-lift: -4px;
  }
  #contact-home.alk .card-studio { font-size: 20px; }
  #contact-home.alk .card-back-name { font-size: 22px; }
}

.alk-shine {
  position: absolute; left: 14%; top: 20%; width: 0; height: 0;
  opacity: var(--g, 1);
  transition: opacity 50ms linear;
  animation: alk-shine-in .6s ease 1.7s both;
}
.alk-shine i { position: absolute; display: block; }

@keyframes alk-shine-in { from { opacity: 0; } to { opacity: var(--g, 1); } }

.alk-dot {
  left: -4px; top: -4px; width: 8px; height: 8px; border-radius: 50%;
  background: var(--ink);
  box-shadow: 0 0 6px 1px rgba(26,25,23,.28);
  transition: box-shadow 500ms ease;
}
.alk-mark:hover .alk-dot { box-shadow: 0 0 22px 5px rgba(26,25,23,.28); }

.alk-sp {
  top: -4px; width: 8px; height: 8px; border-radius: 50%;
  mix-blend-mode: multiply; opacity: var(--sp, 0);
}
.alk-sp-a { left: calc(-4px - 3px * var(--sp, 0)); background: #2E7F9E; }
.alk-sp-b { left: calc(-4px + 3px * var(--sp, 0)); background: #A85C7A; }

.alk-fl-h {
  left: -58px; top: -.625px; width: 116px; height: 1.25px;
  background: linear-gradient(90deg, transparent, rgba(26,25,23,.7), transparent);
}
.alk-fl-v {
  top: -40px; left: -.625px; height: 80px; width: 1.25px;
  background: linear-gradient(180deg, transparent, rgba(26,25,23,.6), transparent);
}
.alk-fl-a, .alk-fl-b { mix-blend-mode: multiply; opacity: var(--sp, 0); }
.alk-fl-a {
  top: calc(-.625px - 1.8px * var(--sp, 0));
  background: linear-gradient(90deg, transparent, rgba(46,127,158,.6), transparent);
}
.alk-fl-b {
  top: calc(-.625px + 1.8px * var(--sp, 0));
  background: linear-gradient(90deg, transparent, rgba(168,92,122,.6), transparent);
}

.alk-hv { opacity: 0; transition: all 550ms var(--ease); }
.alk-hv-h {
  left: 0; top: -.7px; width: 0; height: 1.4px;
  background: linear-gradient(90deg, transparent, rgba(26,25,23,.85), transparent);
}
.alk-hv-v {
  top: 0; left: -.7px; height: 0; width: 1.4px;
  transition-delay: 60ms;
  background: linear-gradient(180deg, transparent, rgba(26,25,23,.8), transparent);
}
.alk-mark:hover .alk-hv-h { left: -84px; width: 168px; opacity: 1; }
.alk-mark:hover .alk-hv-v { top: -58px; height: 116px; opacity: 1; }

.alk-mark svg, .alk-shine { transition: transform 600ms var(--ease); }
.alk-mark:hover svg, .alk-mark:hover .alk-shine { transform: translateY(-6px); }

@media (max-width: 860px) {

  .alk-dot {
    left: -3px; top: -3px; width: 6px; height: 6px;
    box-shadow: none;
  }
  .alk-sp { top: -3px; width: 6px; height: 6px; }
  .alk-sp-a { left: calc(-3px - 2.6px * var(--sp, 0)); }
  .alk-sp-b { left: calc(-3px + 2.6px * var(--sp, 0)); }
  .alk-fl-h { left: -42px; width: 84px; }
  .alk-fl-v { top: -30px; height: 60px; }
  .alk-fl-a { top: calc(-.625px - 1.6px * var(--sp, 0)); }
  .alk-fl-b { top: calc(-.625px + 1.6px * var(--sp, 0)); }
  .alk-mark:hover .alk-hv-h { left: -46px; width: 92px; }
  .alk-mark:hover .alk-hv-v { top: -32px; height: 64px; }
}

@media (prefers-reduced-motion: reduce) {
  .alk-shine { animation: none; }
  .alk-hv, .alk-mark svg, .alk-shine, .alk-dot { transition: none; }
}

.alk-subnav {
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
  padding: 20px 52px; border-bottom: 1px solid var(--rule);
  background: var(--paper);
}
.alk-lockup {
  display: flex; align-items: center; gap: 12px;
  min-width: 44px; min-height: 44px;
  text-decoration: none; color: inherit;
}
.alk-lockup-mark {
  width: 24px; height: 24px;
  --alk-hover-dot: 3px; --alk-hover-flare-x: 36px; --alk-hover-flare-y: 25px;
  --alk-hover-lift: -2px; --alk-hover-dot-colour: var(--ink);
  --alk-hover-flare-colour: rgba(26,25,23,.85);
  --alk-hover-shadow: 0 0 10px 2px rgba(26,25,23,.25);
}
.alk-lockup-mark > svg { width: 100%; height: 100%; color: var(--ink); }
.alk-lockup > span:last-child {
  font-family: var(--serif); font-size: 19px; line-height: 1;
}

.alk-hover-mark {
  position: relative; display: block; flex: none;
  transition: transform 600ms var(--ease);
}
.alk-hover-mark > svg { display: block; }
.alk-hover-light {
  position: absolute; left: 14%; top: 20%;
  width: var(--alk-hover-dot); height: var(--alk-hover-dot);
  border-radius: 50%; background: var(--alk-hover-dot-colour);
  opacity: 0; transform: translate(-50%, -50%); pointer-events: none;
  transition: opacity 300ms ease, box-shadow 500ms ease;
}
.alk-hover-light::before,
.alk-hover-light::after {
  content: ''; position: absolute; left: 50%; top: 50%; opacity: 0;
  transform: translate(-50%, -50%);
  transition: width 550ms var(--ease), height 550ms var(--ease),
              opacity 400ms ease;
}
.alk-hover-light::before {
  width: 0; height: 1.4px;
  background: linear-gradient(90deg, transparent, var(--alk-hover-flare-colour), transparent);
}
.alk-hover-light::after {
  width: 1.4px; height: 0; transition-delay: 60ms;
  background: linear-gradient(180deg, transparent, var(--alk-hover-flare-colour), transparent);
}

@media (hover: hover) {
  .alk-lockup:hover .alk-hover-mark,
  #contact-home.alk .card-front:hover .card-mark-wrap {
    transform: translateY(var(--alk-hover-lift));
  }
  .alk-lockup:hover .alk-hover-light,
  #contact-home.alk .card-front:hover .alk-hover-light {
    opacity: 1; box-shadow: var(--alk-hover-shadow);
  }
  .alk-lockup:hover .alk-hover-light::before,
  #contact-home.alk .card-front:hover .alk-hover-light::before {
    width: var(--alk-hover-flare-x); opacity: 1;
  }
  .alk-lockup:hover .alk-hover-light::after,
  #contact-home.alk .card-front:hover .alk-hover-light::after {
    height: var(--alk-hover-flare-y); opacity: 1;
  }
}
.alk-lockup:focus-visible .alk-hover-mark,
#contact-home.alk .card-front:focus-visible .card-mark-wrap {
  transform: translateY(var(--alk-hover-lift));
}
.alk-lockup:focus-visible .alk-hover-light,
#contact-home.alk .card-front:focus-visible .alk-hover-light {
  opacity: 1; box-shadow: var(--alk-hover-shadow);
}
.alk-lockup:focus-visible .alk-hover-light::before,
#contact-home.alk .card-front:focus-visible .alk-hover-light::before {
  width: var(--alk-hover-flare-x); opacity: 1;
}
.alk-lockup:focus-visible .alk-hover-light::after,
#contact-home.alk .card-front:focus-visible .alk-hover-light::after {
  height: var(--alk-hover-flare-y); opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .alk-hover-mark, .alk-hover-light,
  .alk-hover-light::before, .alk-hover-light::after { transition: none; }
  .alk-lockup:hover .alk-hover-mark,
  .alk-lockup:focus-visible .alk-hover-mark,
  #contact-home.alk .card-front:hover .card-mark-wrap,
  #contact-home.alk .card-front:focus-visible .card-mark-wrap { transform: none; }
  .alk-lockup:hover .alk-hover-light,
  .alk-lockup:focus-visible .alk-hover-light,
  #contact-home.alk .card-front:hover .alk-hover-light,
  #contact-home.alk .card-front:focus-visible .alk-hover-light { opacity: 0; box-shadow: none; }
  .alk-lockup:hover .alk-hover-light::before,
  .alk-lockup:focus-visible .alk-hover-light::before,
  #contact-home.alk .card-front:hover .alk-hover-light::before,
  #contact-home.alk .card-front:focus-visible .alk-hover-light::before { width: 0; opacity: 0; }
  .alk-lockup:hover .alk-hover-light::after,
  .alk-lockup:focus-visible .alk-hover-light::after,
  #contact-home.alk .card-front:hover .alk-hover-light::after,
  #contact-home.alk .card-front:focus-visible .alk-hover-light::after { height: 0; opacity: 0; }
}
.alk-subnav-links {
  display: flex; align-items: center; gap: 34px;
  font-family: var(--mono); font-size: 9.5px; text-transform: uppercase;
}
.alk-subnav-links a {
  position: relative; display: inline-flex; align-items: center; min-height: 44px;
  text-decoration: none; color: rgba(26,25,23,.72); letter-spacing: 0.22em;
  transition: letter-spacing 450ms ease, color 450ms ease;
}
.alk-subnav-links a::after {
  content: ''; position: absolute; left: 0; bottom: 8px;
  height: 1px; width: 0; background: var(--ink);
  transition: width 450ms var(--ease);
}
.alk-subnav-links a:hover, .alk-subnav-links a:focus-visible,
.alk-subnav-links a[aria-current="page"] { letter-spacing: 0.28em; color: var(--ink); }
.alk-subnav-links a:hover::after, .alk-subnav-links a:focus-visible::after,
.alk-subnav-links a[aria-current="page"]::after { width: 100%; }

.alk-index-head {
  padding: 64px 52px 40px; display: flex; align-items: flex-end;
  justify-content: space-between; gap: 40px; border-bottom: 1px solid var(--rule);
}
.alk-index-headings { display: flex; flex-direction: column; gap: 16px; }
.alk-index-eyebrow {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.28em;
  text-transform: uppercase; color: var(--text-muted);
}
.alk-index-title {
  margin: 0; font-family: var(--serif); font-weight: 400;
  font-size: clamp(40px, 6vw, 72px); line-height: 1;
}

#all-grid.alk-index-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  flex-direction: row; align-items: stretch;
  width: auto; padding: 44px 52px 48px; gap: 34px 26px;
}

.alk-plate[hidden] { display: none; }

.alk-index-foot {
  margin: 0 52px; padding: 34px 0 40px; border-top: 1px solid var(--rule);
}

@media (max-width: 860px) {
  .alk-subnav { padding: 9px 20px; gap: 16px; }
  .alk-lockup { flex: 0 0 auto; justify-content: flex-start; gap: 9px; }
  .alk-lockup-mark {
    width: 20px; height: 20px;
    --alk-hover-dot: 3px; --alk-hover-flare-x: 30px; --alk-hover-flare-y: 21px;
    --alk-hover-lift: -1.5px;
  }
  .alk-lockup > span:last-child { display: inline; font-size: 17px; }
  .alk-subnav-links { gap: 16px; font-size: 8.5px; }
  .alk-subnav-links a { letter-spacing: 0.16em; }
  .alk-index-head {
    padding: 28px 20px 22px; flex-direction: column;
    align-items: flex-start; gap: 20px;
  }
  .alk-index-grid { padding: 22px 20px 28px; gap: 20px 14px; }
  .alk-index-foot { margin: 0 20px; padding: 24px 0 30px; }
}

@media (max-width: 860px) {

  #projects.alk .alk-grid {
    display: flex; grid-template-columns: none;
    gap: 14px; padding: 0 20px;
    overflow-x: auto; scroll-snap-type: x mandatory;
    scrollbar-width: none; -webkit-overflow-scrolling: touch;

    scroll-padding-left: 20px;
  }
  #projects.alk .alk-grid::-webkit-scrollbar { display: none; }
  #projects.alk .alk-plate {
    flex: 0 0 236px; scroll-snap-align: start; gap: 9px;
  }
  #projects.alk .alk-plates { padding: 22px 0 24px; gap: 14px; }
  #projects.alk .alk-section-head { padding: 0 20px; }

  #projects.alk .alk-wm {
    display: flex; flex-direction: row; align-items: center; gap: 6px;
    left: 12px; bottom: 11px; opacity: .62;
  }
  #projects.alk .alk-wm-mark { width: 20px; height: 20px; opacity: 1; transform: none; }
  #projects.alk .alk-wm-words {
    flex-direction: row; gap: 4px; opacity: 1; transform: none;
  }
  #projects.alk .alk-wm-a, #projects.alk .alk-wm-s {
    font-family: var(--mono); font-size: 9px; letter-spacing: .24em;
    text-transform: uppercase; color: #FFF;
  }
  #projects.alk .alk-plate-name { font-size: 20px; line-height: 1.02; }
  #projects.alk .alk-plate-num,
  #projects.alk .alk-plate-meta { font-size: 10px; letter-spacing: 0.2em; }
  #projects.alk .alk-plate-cap { border-top: 0; padding-top: 0; gap: 4px; }

  .alk-rail-dots { display: flex; gap: 5px; padding: 0 20px; }
  .alk-rail-dots i { flex: 1; height: 2px; background: var(--rule-strong); }
  .alk-rail-dots i.on { background: var(--ink); }

  .alk-featured { display: block; position: relative; height: 300px; overflow: hidden;
                  background: var(--ink); text-decoration: none; }
  .alk-featured img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .alk-featured::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(15,14,12,.78), transparent 62%);
  }
  .alk-featured-cap {
    position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 1;
    display: flex; flex-direction: column; gap: 7px;
  }
  .alk-featured-eyebrow {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.24em;
    text-transform: uppercase; color: #C9C4B9;
  }
  .alk-featured-name {
    font-family: var(--serif); font-size: 34px; line-height: 1; color: var(--paper-warm);
  }
  .alk-featured-meta {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em;
    text-transform: uppercase; color: #9A948A;
  }
}

@media (min-width: 861px) {
  .alk-rail-dots, .alk-featured { display: none; }
}

@media (max-width: 860px) {
  #all-grid.alk-index-grid {
    grid-template-columns: 1fr 1fr;
    padding: 20px 20px 26px; gap: 22px 14px;
  }
  #all-grid.alk-index-grid .alk-plate-crop { aspect-ratio: 3 / 4; }
  #all-grid.alk-index-grid .alk-plate { gap: 9px; }
  #all-grid.alk-index-grid .alk-wm { display: none; }
  #all-grid.alk-index-grid .alk-plate-cap {
    border-top: 0; padding-top: 0; gap: 3px;
  }
  #all-grid.alk-index-grid .alk-plate-name { font-size: 19px; line-height: 1.1; }
  #all-grid.alk-index-grid .alk-plate-num { font-size: 10px; letter-spacing: 0.2em; }
  #all-grid.alk-index-grid .alk-plate-meta { font-size: 10px; letter-spacing: 0.14em; }

  .alk-plate-client { display: none; }

  .alk-index-head { padding: 26px 20px 18px; gap: 10px; }
  .alk-index-title { font-size: 42px; line-height: 1.02; }
  .alk-index-eyebrow { font-size: 10px; letter-spacing: 0.24em; }
}

.alk-spread {
  display: flex; flex-direction: column; gap: 26px;
  padding: 44px 52px 20px; background: var(--paper);
}
.alk-row { display: grid; gap: 26px; }
.alk-cell {
  position: relative; display: block; padding: 0; border: 0;
  background: var(--ink); overflow: hidden; cursor: zoom-in;
  width: 100%;
}
.alk-cell img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 900ms var(--ease);
}
.alk-cell:hover img, .alk-cell:focus-visible img { transform: scale(1.03); }

.alk-cell-cap {
  position: absolute; left: 0; bottom: -22px;
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--text-faint);
}
.alk-row { margin-bottom: 22px; }

.alk-next {
  display: block; position: relative; height: 300px; margin-top: 44px;
  overflow: hidden; background: var(--ink); text-decoration: none;

  flex: 0 0 auto;
}
.view.alk .alk-foot, .alk-index-foot { flex: 0 0 auto; }
.alk-next img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transform: scale(1); transition: transform 900ms var(--ease);
}
.alk-next:hover img, .alk-next:focus-visible img { transform: scale(1.03); }
.alk-next::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(15,14,12,.72), rgba(15,14,12,.25));
}
.alk-next-cap {
  position: absolute; inset: 0; z-index: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; text-align: center; padding: 0 20px;
}
.alk-next-eyebrow {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.28em;
  text-transform: uppercase; color: #C9C4B9;
}
.alk-next-name {
  font-family: var(--serif); font-size: clamp(30px, 4vw, 46px); line-height: 1;
  color: var(--paper-warm);
}
.alk-next-rule {
  width: 60px; height: 1px; background: rgba(247,246,243,.7);
  transition: width 550ms var(--ease);
}
.alk-next:hover .alk-next-rule, .alk-next:focus-visible .alk-next-rule { width: 120px; }

@media (max-width: 860px) {
  .alk-spread { padding: 20px 20px 12px; gap: 20px; }
  .alk-row { grid-template-columns: 1fr !important; gap: 20px; margin-bottom: 20px; }

  .alk-cell { aspect-ratio: 3 / 2 !important; }
  .alk-cell-cap { bottom: -18px; font-size: 8.5px; }
  .alk-next { height: 220px; margin-top: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  .alk-cell img, .alk-next img, .alk-next-rule { transition: none; }
}

.alk-plate-head {
  padding: 60px 52px 36px; display: grid; grid-template-columns: 1.3fr 1fr;
  gap: 56px; align-items: end; border-bottom: 1px solid var(--rule);
  background: var(--paper);
}
.alk-plate-headings { display: flex; flex-direction: column; gap: 14px; }
.alk-plate-title {
  margin: 0; font-family: var(--serif); font-weight: 400;
  font-size: clamp(38px, 6vw, 76px); line-height: .98;
}
.alk-plate-aside { display: flex; flex-direction: column; gap: 16px; padding-bottom: 8px; }
.alk-plate-stand {
  margin: 0; font-size: 14.5px; line-height: 1.75; color: var(--text-2);
  text-wrap: pretty;
}
.alk-plate-facts {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px;
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--text-muted);
}
.alk-plate-facts > span {
  display: flex; flex-direction: column; gap: 3px;
  padding-top: 8px; border-top: 1px solid var(--rule);
}
.alk-fact-v { color: var(--ink); }

@media (max-width: 860px) {

  .alk-plate-head {
    grid-template-columns: 1fr; gap: 18px; padding: 24px 20px 20px;
  }
  .alk-plate-title { font-size: 34px; }
  .alk-plate-aside { padding-bottom: 0; gap: 14px; }
  .alk-plate-stand { font-size: 13.5px; line-height: 1.7; }
  .alk-plate-facts { grid-template-columns: 1fr 1fr; gap: 10px 16px; }
}

.view.alk { display: flex; flex-direction: column; }
.view.alk > .scroll-pane {
  position: relative; inset: auto; flex: 1 1 auto; min-height: 0;
}
.view.alk > .alk-subnav { flex: 0 0 auto; }

#scroll-home { padding-top: 85px; }
@media (max-width: 860px) {
  #scroll-home { padding-top: 63px; }
}

#gallery-project-name.alk-plate-title {
  font-size: clamp(38px, 6vw, 76px); line-height: .98; letter-spacing: 0;
  text-align: left; text-transform: none; font-weight: 400;
  font-family: var(--serif); color: var(--ink);
}
#gallery-project-num.alk-index-eyebrow {
  font-size: 10px; letter-spacing: 0.28em; text-align: left;
  color: var(--text-muted); font-family: var(--mono);
}
@media (max-width: 860px) {
  #gallery-project-name.alk-plate-title { font-size: 34px; }
}

#view-pricing.alk #pricing-doc {
  background: var(--paper); color: var(--ink);
  font-family: var(--sans); max-width: none; padding: 0;

  display: block;
}
#view-pricing.alk #pricing-doc > * { grid-column: auto; }
.alk-rates-head {
  padding: 64px 52px 44px; display: flex; flex-direction: column;
  align-items: center; gap: 18px; text-align: center;
  border-bottom: 1px solid var(--rule);
}
.alk-rates-eyebrow {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.3em;
  text-transform: uppercase; color: var(--text-muted);
}
#view-pricing.alk .pricing-open {
  margin: 0; font-family: var(--serif); font-weight: 400;
  font-size: clamp(38px, 6vw, 68px); line-height: 1; letter-spacing: 0;
  text-transform: none; color: var(--ink);
}
#view-pricing.alk .pricing-open-sub {
  margin: 0; font-family: var(--serif); font-size: clamp(18px, 2vw, 23px);
  line-height: 1.45; color: #33302B; max-width: 48ch; text-wrap: pretty;

  align-self: center; text-align: center;
}

#view-pricing.alk #pricing-doc .tier-row {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px;

  background: var(--rule); margin: 0; padding: 48px 52px 40px;
  list-style: none; border: 0;
}
#view-pricing.alk #pricing-doc .tier-row > li {
  background: var(--paper); padding: 32px 30px 36px; margin: 0; border: 0;
}
#view-pricing.alk .tier {
  display: flex; flex-direction: column; gap: 14px; width: 100%;
  background: none; padding: 0; border: 0;
}

#view-pricing.alk .tier-name {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.24em;
  text-transform: uppercase; color: var(--text-faint); margin: 0;
}
#view-pricing.alk .tier-rate {
  font-family: var(--serif); font-size: 46px; line-height: 1; margin: 0;
  display: flex; align-items: baseline; gap: 8px; color: var(--ink);
}
#view-pricing.alk .tier-rate-num { font-size: 46px; letter-spacing: 0; }

#view-pricing.alk .tier-range {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--text-muted); margin: 0;
}
#view-pricing.alk .tier-for {
  margin: 8px 0 0; font-size: 14px; line-height: 1.7; color: var(--text-2);
  font-family: var(--sans); letter-spacing: 0; text-transform: none;
}

#view-pricing.alk #pricing-doc .tier-row > li:nth-child(2) { background: var(--ink); }
#view-pricing.alk #pricing-doc .tier-row > li:nth-child(2) .tier-rate,
#view-pricing.alk #pricing-doc .tier-row > li:nth-child(2) .tier-rate-num {
  color: var(--paper-warm);
}
#view-pricing.alk #pricing-doc .tier-row > li:nth-child(2) .tier-name { color: #C9C4B9; }
#view-pricing.alk #pricing-doc .tier-row > li:nth-child(2) .tier-range,
#view-pricing.alk #pricing-doc .tier-row > li:nth-child(2) .tier-rate-unit { color: #9A948A; }
#view-pricing.alk #pricing-doc .tier-row > li:nth-child(2) .tier-for { color: var(--rule-strong2); }

#view-pricing.alk .pricing-block { padding: 8px 52px 48px; border: 0; }
#view-pricing.alk #rate { padding: 0 0 32px; }

#view-pricing.alk #rate > *:not(.tier-row) { padding-inline: 52px; }
#view-pricing.alk .eyebrow {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.24em;
  text-transform: uppercase; color: var(--text-faint);
}
#view-pricing.alk h2, #view-pricing.alk h3 {
  font-family: var(--serif); font-weight: 400; letter-spacing: 0;
  text-transform: none; color: var(--ink);
}
#view-pricing.alk .rule { background: var(--rule); }
#view-pricing.alk p, #view-pricing.alk li { color: var(--text-2); }

#view-pricing.alk #estimator {
  margin: 0 52px; padding: 44px 0 48px; border-top: 1px solid var(--rule);
}
#view-pricing.alk .est-total {
  font-family: var(--serif); font-size: clamp(34px, 4vw, 52px); line-height: 1;
  color: var(--ink); letter-spacing: 0;
}
#view-pricing.alk .est-label, #view-pricing.alk .est-note,
#view-pricing.alk .est-detail, #view-pricing.alk .est-hint {
  font-family: var(--mono); letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--text-muted);
}
#view-pricing.alk .est-step {
  border: 1px solid var(--rule-strong); background: transparent;
  color: var(--ink); border-radius: 0;
}

@media (max-width: 860px) {
  .alk-rates-head { padding: 28px 20px 24px; gap: 12px; }
  #view-pricing.alk .pricing-open { font-size: 34px; }
  #view-pricing.alk .pricing-open-sub { font-size: 17px; }

  #view-pricing.alk #rate > .tier-row {
    display: flex; flex-direction: row; align-items: stretch;
    grid-template-columns: none; gap: 10px;
    padding: 20px 20px 24px; overflow-x: auto;
    scroll-snap-type: x mandatory; scroll-padding-left: 20px;
    scrollbar-width: none; overscroll-behavior-inline: contain;
  }
  #view-pricing.alk #rate > .tier-row::-webkit-scrollbar { display: none; }
  #view-pricing.alk #rate > .tier-row:focus-visible {
    outline: 2px solid var(--ink); outline-offset: -4px;
  }
  #view-pricing.alk #rate > .tier-row > li {
    flex: 0 0 calc(100% - 54px); padding: 22px 20px 24px;
    scroll-snap-align: start; scroll-snap-stop: always;
  }
  #view-pricing.alk #rate > .tier-row > li:nth-child(2) { order: -1; }
  #view-pricing.alk .tier-rate, #view-pricing.alk .tier-rate-num { font-size: 38px; }
  #view-pricing.alk .pricing-block { padding: 8px 20px 32px; }
  #view-pricing.alk #rate { padding: 0 0 24px; }
  #view-pricing.alk #estimator { margin: 0 20px; padding: 28px 0 32px; }
}

#view-pricing.alk .alk-rates-included {
  display: block; padding: 8px 52px 36px;
}
#view-pricing.alk .alk-rates-included > section {
  padding: 0; margin: 0; border: 0;
  display: block; grid-column: auto; grid-row: auto;
}
#view-pricing.alk .alk-rates-included .rule { display: none; }
#view-pricing.alk .alk-rates-included .eyebrow {
  display: block; margin: 0 0 14px;
}
#view-pricing.alk .alk-inclusion-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0; padding: 0; list-style: none;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
#view-pricing.alk .alk-inclusion {
  display: grid; grid-template-columns: 28px minmax(0, 1fr);
  grid-template-rows: auto 1fr; column-gap: 12px; row-gap: 10px;
  padding: 22px 24px 24px; margin: 0; list-style: none;
  border-left: 1px solid var(--rule);
}
#view-pricing.alk .alk-inclusion:first-child { border-left: 0; }
#view-pricing.alk .alk-inclusion-n {
  grid-row: 1 / span 2; padding-top: 5px;
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.18em;
  color: var(--text-faint);
}
#view-pricing.alk .alk-inclusion-title {
  margin: 0; font-family: var(--serif); font-size: 26px;
  line-height: 1; color: var(--ink);
}
#view-pricing.alk .alk-inclusion-copy {
  display: flex; flex-direction: column; gap: 4px; margin: 0;
  font-family: var(--sans); font-size: 14px; line-height: 1.55;
  color: var(--text-2); text-wrap: pretty;
}
#view-pricing.alk .alk-inclusion-copy > span { color: inherit; }

#view-pricing.alk .alk-rates-est {
  margin: 0 52px; padding: 44px 0 48px; border-top: 1px solid var(--rule);
}
#view-pricing.alk #estimator {
  margin: 0; padding: 0; border: 0; background: none;
  display: grid; grid-template-columns: 1fr 400px; gap: 56px; align-items: start;
}
#view-pricing.alk .est-controls { display: flex; flex-direction: column; gap: 28px; }
#view-pricing.alk .est-lede {
  font-family: var(--serif); font-size: clamp(28px, 3vw, 38px); line-height: 1.05;
  color: var(--ink); margin: 0;
}
#view-pricing.alk .est-panel {
  background: var(--paper-warm); border: 1px solid var(--rule);
  padding: 30px 30px 34px; display: flex; flex-direction: column; gap: 16px;
}
#view-pricing.alk .est-panel .est-total {
  font-family: var(--serif); font-size: 40px; line-height: 1; color: var(--ink);
}
#view-pricing.alk .est-total-row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  padding-top: 14px; border-top: 1px solid var(--ink);
}
#view-pricing.alk .est-line {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  padding: 10px 0; border-top: 1px solid var(--rule);
  font-family: var(--mono); font-size: 11px; color: var(--text-2);
}
#view-pricing.alk .est-line > :last-child { color: var(--ink); }

#view-pricing.alk .est-line-save { border-top-style: dashed; }
#view-pricing.alk .est-line-save > span { font-weight: 500; }

#view-pricing.alk .est-addon-price {
  display: inline-flex; align-items: baseline; gap: 8px;
}
#view-pricing.alk .est-addon-was {
  color: var(--text-faint); text-decoration-thickness: 1px;
}
#view-pricing.alk .est-addon-save {
  padding: 2px 6px; background: var(--ink); color: var(--paper);
  font-size: 10px; letter-spacing: 0.06em;
}

#view-pricing.alk .est-addon-when {
  color: var(--text-faint); font-size: 10px; letter-spacing: 0.04em;
  white-space: normal; text-align: right;
}

#view-pricing.alk .est-panel .est-detail,
#view-pricing.alk .est-panel .est-note {
  text-align: left; margin: 0; letter-spacing: 0.14em; line-height: 1.7;
}
#view-pricing.alk .est-panel .est-detail { flex: 0 0 auto; }
#view-pricing.alk .est-panel .est-note {
  font-size: 12px; letter-spacing: 0; text-transform: none;
  font-family: var(--sans); color: var(--text-faint); padding-top: 6px;
}
#view-pricing.alk .est-hint {
  padding: 14px 16px; background: var(--canvas); border-left: 2px solid var(--ink);
  font-family: var(--sans); font-size: 13px; line-height: 1.6; color: #33302B;
  letter-spacing: 0; text-transform: none;
}

#view-pricing.alk #terms .pricing-terms {
  columns: 3; column-gap: clamp(28px, 3vw, 48px);
  margin: 0; padding: 0; list-style: none;
  counter-reset: term;
}
#view-pricing.alk #terms .pricing-terms > li {
  break-inside: avoid;
  display: grid; grid-template-columns: 26px minmax(0, 1fr); column-gap: 10px;
  margin: 0; padding: 13px 0 15px;
  border: 0; border-top: 1px solid var(--rule);
  font-size: 13px; line-height: 1.65; color: var(--text-muted);
  list-style: none; counter-increment: term;
}
#view-pricing.alk #terms .pricing-terms > li::before {
  content: counter(term, decimal-leading-zero);

  position: static; width: auto; height: auto; background: none;
  padding-top: 4px;
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.18em;
  color: var(--text-faint);
}

@media (max-width: 860px) {
  #view-pricing.alk .alk-rates-included {
    padding: 8px 20px 28px;
  }
  #view-pricing.alk .alk-inclusion-grid { grid-template-columns: 1fr; }
  #view-pricing.alk .alk-inclusion {
    grid-template-columns: 28px minmax(0, 1fr);
    padding: 18px 0 19px; border-left: 0; border-top: 1px solid var(--rule);
  }
  #view-pricing.alk .alk-inclusion:first-child { border-top: 0; }
  #view-pricing.alk .alk-inclusion-title { font-size: 23px; }
  #view-pricing.alk .alk-inclusion-copy { font-size: 14px; }
  #view-pricing.alk .alk-rates-est { margin: 0 20px; padding: 28px 0 32px; }

  #view-pricing.alk #estimator { grid-template-columns: 1fr; gap: 24px; }
  #view-pricing.alk .est-panel { padding: 22px 20px 24px; }
  #view-pricing.alk #terms .pricing-terms { columns: 1; }

  #view-pricing.alk .est-addon { flex-wrap: wrap; row-gap: 4px; }
  #view-pricing.alk .est-addon-name { flex: 1 1 auto; min-width: 0; }
  #view-pricing.alk .est-addon-price {
    flex: 0 1 auto; margin-left: auto;
    flex-wrap: wrap; justify-content: flex-end; white-space: normal;
  }
}

#scroll-contact { background: var(--surround); }
.alk-contact-page {
  width: 100%; max-width: calc(var(--page) + 104px); min-height: 100%;
  margin-inline: auto; display: grid;
  grid-template-columns: minmax(330px, .82fr) minmax(0, 1.3fr);
  background: var(--paper);
}
.alk-contact-intro {
  min-width: 0; padding: clamp(42px, 6vh, 64px) 52px 42px;
  display: flex; flex-direction: column;
  border-right: 1px solid var(--rule); background: var(--paper-warm);
}
.alk-contact-headings { display: flex; flex-direction: column; gap: 14px; }
.alk-contact-title {
  margin: 0; font-family: var(--serif); font-weight: 400;
  font-size: clamp(48px, 5vw, 72px); line-height: .98;
}
.alk-contact-stand {
  max-width: 39ch; margin: 26px 0 0;
  font-size: 15px; line-height: 1.7; color: var(--text-2); text-wrap: pretty;
}
.alk-contact-form-panel {
  min-width: 0; padding: clamp(42px, 6vh, 64px) 52px;
  display: flex; align-items: center; background: var(--paper);
}
.alk-contact-form-panel #enquiry { width: 100%; }

.alk-contact-quick {
  margin-top: clamp(34px, 5vh, 54px); border-top: 1px solid var(--rule-strong2);
}
.alk-contact-quick > a {
  position: relative; min-height: 66px; padding: 12px 30px 12px 0;
  display: flex; flex-direction: column; justify-content: center; gap: 5px;
  border-bottom: 1px solid var(--rule); color: var(--ink); text-decoration: none;
}
.alk-contact-k {
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--text-faint);
}
.alk-contact-v {
  min-width: 0; font-family: var(--serif); font-size: 19px; line-height: 1.2;
  color: var(--ink); overflow-wrap: anywhere;
}
.alk-contact-arrow {
  position: absolute; right: 1px; top: 50%; transform: translateY(-50%);
  font-family: var(--mono); font-size: 13px; color: var(--text-faint);
  transition: transform 450ms var(--ease), color 450ms ease;
}
.alk-contact-quick > a:hover .alk-contact-arrow,
.alk-contact-quick > a:focus-visible .alk-contact-arrow {
  color: var(--ink); transform: translate(3px, calc(-50% - 3px));
}
.alk-contact-notes {
  margin: auto 0 0; padding-top: 30px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 22px;
}
.alk-contact-notes div { margin: 0; }
.alk-contact-notes dt {
  font-family: var(--mono); font-size: 8.5px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--text-faint);
}
.alk-contact-notes dd {
  margin: 7px 0 0; font-size: 13px; line-height: 1.45; color: var(--text-2);
}

.alk-form {
  position: relative; display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 28px; row-gap: clamp(18px, 2.4vh, 24px);
}
.alk-honeypot {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.alk-estimate-carried {
  grid-column: 1 / -1;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 12px 0; border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--rule);
}
.alk-estimate-carried > div { display: flex; flex-direction: column; gap: 5px; }
.alk-estimate-carried span,
.alk-estimate-carried button {
  font-family: var(--mono); font-size: 9px; letter-spacing: .18em;
  text-transform: uppercase; color: var(--text-muted);
}
.alk-estimate-carried strong {
  font-family: var(--serif); font-size: 24px; line-height: 1;
  font-weight: 400; color: var(--ink);
}
.alk-estimate-carried button {
  appearance: none; min-height: 44px; padding: 0; border: 0;
  border-bottom: 1px solid var(--rule-strong2); background: none; cursor: pointer;
}
.alk-field { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.alk-field-kind { grid-column: 2; }
.alk-field[data-for="brief"] { grid-column: 1 / -1; }

.alk-field-label {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--text-faint);
}
.alk-field-opt { letter-spacing: 0.18em; color: var(--text-faint2); }

.alk-field.is-bad .alk-field-opt { color: var(--text-faint2); }
.alk-input {
  font-family: var(--sans); font-size: 15px; line-height: 1.7;
  color: var(--ink); background: transparent;
  border: 0; border-bottom: 1px solid var(--rule-strong2);
  border-radius: 0; padding: 9px 0; min-height: 44px; width: 100%;
  transition: border-color 250ms ease;
}
textarea.alk-input { min-height: 104px; resize: vertical; }
.alk-input::placeholder { color: var(--text-faint); opacity: 1; }
.alk-input:focus { outline: none; border-bottom-color: var(--ink); }

.alk-field.is-bad .alk-field-label { color: var(--error); }
.alk-field.is-bad .alk-input {
  border-bottom-color: var(--error); background: var(--error-wash);
}
.alk-field-why {
  margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--error);
}

.alk-select-wrap { position: relative; display: block; min-width: 0; }
.alk-select {
  appearance: none; cursor: pointer;
  padding-right: 22px; text-overflow: ellipsis;
}

.alk-select-wrap::after {
  content: ''; position: absolute; right: 3px; top: 50%;
  width: 6px; height: 6px; margin-top: -5px;
  border-right: 1px solid var(--text-faint);
  border-bottom: 1px solid var(--text-faint);
  transform: rotate(45deg); pointer-events: none;
}

.alk-select option { color: var(--ink); background: var(--paper); }

.alk-form-foot {
  grid-column: 1 / -1; display: flex; align-items: center;
  gap: 20px; padding-top: 2px; flex-wrap: wrap;
}
.alk-send {
  appearance: none; cursor: pointer; border: 0; border-radius: 0;
  padding: 14px 24px; min-height: 44px;
  background: var(--ink); color: var(--paper-warm);
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: background-color 250ms ease;
}
.alk-send:disabled { background: #5C574F; cursor: default; }
.alk-form-alt {
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--text-faint2);
  text-decoration: none; background: none; border: 0; cursor: pointer;
  display: inline-flex; align-items: center; min-height: 44px;
}
.alk-form-status {
  grid-column: 1 / -1;
  margin: -8px 0 0; padding: 12px 14px; border-left: 2px solid var(--error);
  background: var(--error-wash); color: var(--error);
  font-size: 13px; line-height: 1.6;
}
.alk-form-status[hidden] { display: none; }
.alk-form-status a { color: inherit; }

.alk-sent { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.alk-sent-mark { width: 56px; height: 56px; color: var(--ink); }
.alk-sent-head { margin: 0; font-family: var(--serif); font-size: 30px; line-height: 1; }
.alk-sent-note {
  margin: 0; font-size: 14.5px; line-height: 1.7; color: var(--text-2);
  max-width: 46ch; text-wrap: pretty;
}

@media (max-width: 860px) {

  #scroll-contact { background: var(--paper); }
  .alk-contact-page {
    min-height: 100%; display: flex; flex-direction: column;
  }
  .alk-contact-intro {
    padding: 20px 20px 16px; border-right: 0; border-bottom: 1px solid var(--rule);
  }
  .alk-contact-headings { gap: 8px; }
  .alk-contact-title { font-size: 34px; line-height: .98; }
  .alk-contact-stand {
    max-width: none; margin-top: 10px; font-size: 13.5px; line-height: 1.5;
  }
  .alk-contact-quick {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 14px; border-bottom: 1px solid var(--rule);
  }

  .alk-contact-quick > a {
    min-height: 46px; padding: 0 10px; border-bottom: 0;
    border-left: 1px solid var(--rule);
    align-items: center; justify-content: center; text-align: center;
  }
  .alk-contact-quick > a:first-child { border-left: 0; }
  .alk-contact-quick .alk-contact-v { display: none; }

  .alk-contact-quick .alk-contact-arrow { display: none; }

  .alk-contact-quick .alk-contact-k {
    letter-spacing: 0.16em; margin-right: -0.16em;
  }
  .alk-contact-notes { display: none; }
  .alk-contact-form-panel {
    flex: 1 0 auto; padding: 16px 20px 20px; display: block;
  }
  .alk-form {
    grid-template-columns: 1fr; column-gap: 0; row-gap: 13px;
  }
  .alk-field-kind, .alk-field[data-for="brief"],
  .alk-form-foot, .alk-form-status, .alk-estimate-carried { grid-column: 1; }

  .alk-input { font-size: 16px; line-height: 1.45; padding: 6px 0; }
  textarea.alk-input { height: 82px; min-height: 82px; resize: none; }
  .alk-form-foot { gap: 12px; padding-top: 0; flex-wrap: nowrap; }
  .alk-send { flex: 1 1 auto; padding-inline: 14px; }
  .alk-form-alt { flex: 0 0 auto; font-size: 8px; letter-spacing: .14em; }
  .alk-estimate-carried { padding: 8px 0; }
  .alk-estimate-carried strong { font-size: 20px; }
  .alk-contact-page.has-estimate .alk-contact-intro {
    padding-top: 16px; padding-bottom: 12px;
  }
  .alk-contact-page.has-estimate .alk-contact-stand { display: none; }
  .alk-contact-page.has-estimate .alk-contact-quick { margin-top: 8px; }
}

@media (max-width: 860px) and (max-height: 720px) {
  .alk-contact-intro { padding-top: 12px; padding-bottom: 10px; }
  .alk-contact-stand { display: none; }
  .alk-contact-quick { margin-top: 10px; }
  .alk-contact-page.has-estimate .alk-contact-quick { display: none; }
  .alk-contact-form-panel { padding-top: 10px; padding-bottom: 12px; }
  .alk-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px; row-gap: 8px;
  }
  .alk-field[data-for="phone"], .alk-field-kind,
  .alk-field[data-for="brief"], .alk-form-foot, .alk-form-status,
  .alk-estimate-carried { grid-column: 1 / -1; }
  textarea.alk-input { height: 64px; min-height: 64px; }
  .alk-field { gap: 3px; }
}

@media (min-width: 861px) and (max-height: 720px) {
  .alk-contact-intro, .alk-contact-form-panel { padding-top: 34px; padding-bottom: 34px; }
  .alk-contact-notes { display: none; }
}

@media (max-width: 860px) and (max-height: 600px) {
  .alk-contact-intro { padding-top: 8px; padding-bottom: 8px; }
  .alk-contact-headings { gap: 5px; }
  .alk-contact-title { font-size: 30px; }
  .alk-contact-quick { display: none; }
  .alk-contact-form-panel { padding-top: 7px; padding-bottom: 8px; }
  .alk-form { row-gap: 6px; }
  textarea.alk-input { height: 58px; min-height: 58px; }
  .alk-contact-page.has-estimate .alk-contact-intro { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .alk-input, .alk-send, .alk-contact-arrow { transition: none; }
}

#view-pricing.alk #pricing-doc > * { margin-top: 0; margin-bottom: 0; }

#view-pricing.alk .fine-print {
  padding-left: 52px; padding-right: 52px;
  padding-top: 34px; padding-bottom: 40px;
  border-top: 1px solid var(--rule);
}

#view-pricing.alk .alk-rates-est { margin: 0 52px; }

@media (max-width: 860px) {
  #view-pricing.alk .fine-print {
    padding-left: 20px; padding-right: 20px;
    padding-top: 24px; padding-bottom: 28px;
  }
  #view-pricing.alk .alk-rates-est { margin: 0 20px; }

}

.alk-plate-crop, .alk-cell, .alk-featured, .alk-next {
  position: relative; background: var(--skeleton);
}
.alk-plate-crop::after, .alk-cell::after {
  content: 'LOADING';
  position: absolute; left: 12px; bottom: 10px; z-index: 0;
  font-family: var(--mono); font-size: 8px; letter-spacing: 0.24em;
  color: var(--text-faint2); pointer-events: none;
  opacity: 1; transition: opacity 200ms ease;
}

.alk-plate-crop.img-in::after, .alk-cell.img-in::after { opacity: 0; }

.alk-plate-crop img, .alk-cell img, .alk-featured img, .alk-next img {
  position: relative; z-index: 1;
  opacity: 0; transform: scale(1.02);
  transition: opacity 400ms ease, transform 700ms var(--ease);
}
.img-in > img, img.img-in { opacity: 1; transform: scale(1); }

.alk-plate-crop img[data-loaded], .alk-cell img[data-loaded] { opacity: 1; transform: none; }

.alk-plate:hover .alk-plate-crop.img-in img,
.alk-plate:focus-visible .alk-plate-crop.img-in img { transform: scale(1.04); }
.alk-cell.img-in:hover img, .alk-cell.img-in:focus-visible img { transform: scale(1.03); }

.alk-subnav, .alk-nav { transition: border-color 250ms ease, box-shadow 250ms ease; }
.is-scrolled .alk-subnav, .is-scrolled .alk-nav {
  border-bottom-color: var(--rule-strong);
  box-shadow: 0 6px 20px rgba(26,25,23,.07);
}

.alk :focus-visible,
.alk-cell:focus-visible, .alk-plate:focus-visible {
  outline: 2px solid var(--ink); outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .alk-plate-crop img, .alk-cell img, .alk-featured img, .alk-next img {
    opacity: 1; transform: none; transition: none;
  }
  .alk-plate:hover .alk-plate-crop img, .alk-cell:hover img,
  .alk-next:hover img, .alk-plate-crop::after, .alk-cell::after {
    transition: none;
  }
  .alk-plate:hover .alk-plate-crop.img-in img,
  .alk-cell.img-in:hover img { transform: none; }
  .alk-subnav, .alk-nav { transition: none; }
}

#view-pricing.alk .est-slider { accent-color: var(--ink); }
#view-pricing.alk .est-slider::-webkit-slider-runnable-track,
#view-pricing.alk .est-slider::-moz-range-track {
  height: 2px; background: var(--rule-strong);
}
#view-pricing.alk .est-slider::-webkit-slider-thumb {
  background: var(--ink); border: 3px solid var(--paper);
}
#view-pricing.alk .est-slider::-moz-range-thumb {
  background: var(--ink); border: 3px solid var(--paper);
}
#view-pricing.alk .est-slider:focus-visible::-webkit-slider-thumb,
#view-pricing.alk .est-slider:focus-visible::-moz-range-thumb {
  outline: 2px solid var(--ink); outline-offset: 3px;
}

#view-pricing.alk .est-step { border-color: var(--rule-strong); color: var(--ink); }
#view-pricing.alk .est-addons li { border-top-color: var(--rule); }
#view-pricing.alk .est-scale { color: var(--text-faint2); }

.alk, .view.alk .scroll-pane, .view.alk #pricing-doc {
  font-family: var(--sans);
}

.view.alk .tier-more-text,
.view.alk .est-n,
.view.alk .lic-title,
.view.alk .pricing-open,
.view.alk .tier-rate,
.view.alk .tier-rate-num {
  font-family: var(--serif);
}

.view.alk .est-step,
.view.alk .lb-nav,

.view.alk button:not(.alk-send):not(.alk-filter),
.view.alk .eyebrow,
.view.alk .print-head,
.view.alk .fine-print-head,

.alk #lb-close, .alk #lb-prev, .alk #lb-next, .alk #lb-counter,
#lb-close, #lb-prev, #lb-next, #lb-counter {
  font-family: var(--mono);
}

#view-pricing.alk .pricing-open,
#view-pricing.alk .pricing-open-sub,
#view-pricing.alk h2,
#view-pricing.alk h3,
#view-pricing.alk .tier-rate,
#view-pricing.alk .tier-rate-num,
#view-pricing.alk .est-lede,
#view-pricing.alk .est-total,
#view-pricing.alk .lic-title {
  font-family: var(--serif); font-weight: 400;
}

#view-pricing.alk .tier-for,
#view-pricing.alk #included li,
#view-pricing.alk .est-note,
#view-pricing.alk .est-hint,
#view-pricing.alk .lic-points,
#view-pricing.alk .pricing-terms,
#view-pricing.alk .pricing-doc-note {
  font-family: var(--sans); font-weight: 400;
}

#view-pricing.alk .alk-rates-eyebrow,
#view-pricing.alk .eyebrow,
#view-pricing.alk .fine-print-head,
#view-pricing.alk .tier-name,
#view-pricing.alk .tier-range,
#view-pricing.alk .tier-rate-unit,
#view-pricing.alk .est-label,
#view-pricing.alk .est-n,
#view-pricing.alk .est-step,
#view-pricing.alk .est-scale,
#view-pricing.alk .est-addon,
#view-pricing.alk .est-addon-name,
#view-pricing.alk .est-addon-price,
#view-pricing.alk .est-addon-price .unit,
#view-pricing.alk .est-line,
#view-pricing.alk .est-detail,
#view-pricing.alk .est-send,
#view-pricing.alk .lic-amt {
  font-family: var(--mono); font-weight: 400;
}

.alk-lb { display: flex; flex-direction: column; }

.alk-lb #lb-overlay { background: rgba(15,14,12,.94); z-index: 1; }
.alk-lb-stage, .alk-lb-bar { z-index: 2; }
.alk-lb-bar {
  position: relative; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 18px 22px;
}
.alk-lb-where {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.22em;
  text-transform: uppercase; color: #C9C4B9;
}
.alk-lb-hint {
  font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.18em;
  text-transform: uppercase; color: #B7B1A6;
}
.alk-lb-btn {
  appearance: none; background: none; border: 0; cursor: pointer;
  min-height: 44px; min-width: 44px;
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--paper-warm);
  transition: color 250ms ease;
}

.alk-lb-btn.lb-dim { color: #918B81; cursor: default; }

.alk-lb-stage {
  position: relative; z-index: 2; flex: 1 1 auto; min-height: 0;
  display: flex; align-items: center; justify-content: center; padding: 0 22px;
}
.alk-lb #lb-img {
  max-width: 100%; max-height: 100%; width: auto; height: auto;
  object-fit: contain;
}

.alk-lb-end {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  text-align: center;
}
.alk-lb-end[hidden] { display: none; }
.alk-lb-end-mark { width: 52px; height: 52px; color: var(--paper-warm); opacity: .7; }
.alk-lb-end-head {
  margin: 0; font-family: var(--serif); font-size: clamp(22px, 3vw, 28px);
  color: var(--paper-warm);
}
.alk-lb-end-acts { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding-top: 4px; }
.alk-lb-ghost, .alk-lb-solid {
  appearance: none; cursor: pointer; min-height: 42px;
  display: inline-flex; align-items: center; padding: 0 18px;
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.2em;
  text-transform: uppercase; text-decoration: none; border-radius: 0;
}
.alk-lb-ghost { border: 1px solid rgba(247,246,243,.35); background: none; color: var(--paper-warm); }
.alk-lb-solid { border: 0; background: var(--paper-warm); color: var(--ink); }

.alk-lb :focus-visible { outline: 2px solid var(--paper-warm); outline-offset: 3px; }

@media (max-width: 860px) {
  .alk-lb-bar { padding: 12px 16px; }
  .alk-lb-stage { padding: 0 12px; }
  .alk-lb-hint { display: none; }
  .alk-lb-end-acts { flex-direction: column; width: 100%; }
  .alk-lb-ghost, .alk-lb-solid { justify-content: center; }
}

@media (prefers-reduced-motion: no-preference) {
  .alk-rise { opacity: 0; transform: translateY(28px); }
  .alk-rise.is-in {
    opacity: 1; transform: none;
    transition: opacity var(--reveal) var(--ease),
                transform var(--reveal) var(--ease);
    transition-delay: calc(var(--alk-stagger, 0) * 80ms);
  }
}

.alk-menu-toggle,
.alk-sheet { display: none; }
@media (max-width: 1023px) {
  .alk-menu-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; min-height: 44px; margin-left: auto;
    appearance: none; background: none; border: 0; cursor: pointer;
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.22em;
    text-transform: uppercase; color: var(--text-2);
  }

  .alk-subnav .alk-subnav-links,
  .alk-nav .alk-nav-links { display: none; }

  .alk-sheet {
    position: fixed; inset: 0; z-index: 400;
    background: var(--paper);
    display: flex; flex-direction: column;
    opacity: 0; visibility: hidden;
    transition: opacity 300ms ease, visibility 0s linear 300ms;
  }
  .alk-sheet.is-open {
    opacity: 1; visibility: visible;
    transition: opacity 300ms ease, visibility 0s;
  }
  .alk-sheet-top {
    display: flex; align-items: center; justify-content: space-between;
    padding: 9px 20px; border-bottom: 1px solid var(--rule);
  }
  .alk-sheet-links { display: flex; flex-direction: column; padding: 8px 20px; }
  .alk-sheet-links a {
    display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
    min-height: 64px; padding: 18px 0; border-bottom: 1px solid var(--rule);
    text-decoration: none; color: var(--ink);
    font-family: var(--serif); font-size: 26px; line-height: 1;
  }
  .alk-sheet-links a span {
    font-family: var(--mono); font-size: 9px; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--text-faint);
  }
  .alk-sheet-foot {
    margin-top: auto; padding: 20px; display: flex; flex-direction: column; gap: 6px;
    border-top: 1px solid var(--rule);
  }
  .alk-sheet-foot a {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em;
    color: var(--text-muted); text-decoration: none;
  }
}
@media (min-width: 861px) and (max-width: 1023px) {
  .alk-sheet-top { padding: 20px 52px; }
  .alk-sheet-links { padding-inline: 52px; }
  .alk-sheet-foot { padding: 20px 52px; }
}
@media (prefers-reduced-motion: reduce) {
  .alk-sheet,
  .alk-sheet.is-open { transition: none; }
}

#view-pricing.alk #est-lines { display: flex; flex-direction: column; }
#view-pricing.alk .est-line {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  padding: 10px 0; border-top: 1px solid var(--rule);
  font-family: var(--mono); font-size: 11px; color: var(--text-2);
}
#view-pricing.alk .est-line > :last-child { color: var(--ink); }

#view-pricing.alk .est-panel .est-detail {
  display: flex; flex-direction: column; gap: 5px;
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.14em;
  text-transform: none; color: var(--text-faint); text-align: left; margin: 0;
}
#view-pricing.alk .est-send {
  margin-top: 6px; padding: 13px 18px; text-align: center;
  background: var(--ink); color: var(--paper-warm); text-decoration: none;
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.2em;
  text-transform: uppercase;
  min-height: 44px; display: flex; align-items: center; justify-content: center;
}

#view-pricing.alk .est-n {
  font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em;
  color: var(--ink); white-space: nowrap;
}
#view-pricing.alk .est-scale {
  display: flex; justify-content: space-between;
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.16em;
  color: var(--text-faint2);

  padding: 4px 52px 0;
}

:root { --page: 1180px; }

.alk-masthead, .alk-plates, .alk-foot,
.alk-index-head, .alk-index-foot,
.alk-plate-head, .alk-spread, .alk-next,
.alk-contact-head, .alk-contact-body,
#all-grid.alk-index-grid,
#view-pricing.alk #pricing-doc > * {
  max-width: calc(var(--page) + 104px);
  margin-inline: auto;

  width: 100%;
}

.alk-nav, .alk-subnav {
  width: 100%; max-width: none; margin-inline: 0;
}

.alk-subnav { position: relative; }
.alk-nav > .alk-lockup,
.alk-subnav > .alk-lockup {
  position: absolute; left: 50%; transform: translateX(-50%);
}
.alk-nav-links, .alk-subnav-links { margin-left: auto; }

#view-pricing.alk .alk-rates-est,
#view-pricing.alk .fine-print {
  margin-inline: auto; padding-inline: 52px;
}

@media (max-width: 860px) {
  #view-pricing.alk .alk-rates-est,
  #view-pricing.alk .fine-print { padding-inline: 20px; }
}

#contact-home.alk {
  border-top: 1px solid var(--rule);
  padding-top: 60px; padding-bottom: 52px;
}

@media (max-width: 860px) {
    #contact-home.alk { padding-top: 30px; padding-bottom: 34px; }
}

#contact-home.alk .biz-card,
#contact-home.alk .card-stage { aspect-ratio: 16 / 9; }
#contact-home.alk .card-stage { width: min(700px, 100%); height: auto; }

@media (max-width: 860px) {

  #contact-home.alk .card-stage { width: min(540px, 100%); }

  #contact-home.alk .card-mark-wrap {
    width: 46px; height: 46px;
    --alk-hover-dot: 5px; --alk-hover-flare-x: 69px; --alk-hover-flare-y: 48px;
    --alk-hover-lift: -3px;
  }
  #contact-home.alk .card-brand { gap: 8px; }
  #contact-home.alk .card-studio { font-size: 17px; }
  #contact-home.alk .card-kind { font-size: 7px; letter-spacing: 0.24em; }
  #contact-home.alk .card-front { padding: 16px 18px; }
  #contact-home.alk .card-corners { left: 14px; right: 14px; bottom: 11px; }
  #contact-home.alk .card-tag-dark { font-size: 7px; letter-spacing: 0.16em; }
}

.alk-actions { display: none; }

@media (max-width: 860px) {
  .alk-colophon { display: none; }

  .alk-foot {

    margin: 0 20px; width: auto; padding: 22px 0 24px;
    border-top: 1px solid var(--rule);
    flex-direction: row; align-items: center; justify-content: space-between;
    gap: 16px;
  }

  .alk-foot-brand svg { display: none; }
  .alk-foot-brand span { font-size: 10px; letter-spacing: 0.22em; }
  .alk-foot-legal { font-size: 10px; letter-spacing: 0.18em; }

  .alk-actions {
    position: sticky; bottom: 0; z-index: 5;
    display: flex; gap: 10px; padding: 12px 20px 26px;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid var(--rule);
  }
  .alk-action-solid, .alk-action-ghost {
    min-height: 48px; display: flex; align-items: center; justify-content: center;
    text-decoration: none;
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.2em;
    text-transform: uppercase;
  }
  .alk-action-solid { flex: 1; background: var(--ink); color: var(--paper-warm); }
  .alk-action-ghost { flex: 0 0 40%; border: 1px solid var(--rule-strong); color: var(--text-2); }
}

@media (max-width: 860px) {

  .alk-foot-licence { display: none; }
}

@media (max-width: 860px) {

  #contact-home.alk .card-back { padding: 14px 16px; }
  #contact-home.alk .card-back-head { gap: 6px; }
  #contact-home.alk .card-back-name { font-size: 16px; gap: 3px; }
  #contact-home.alk .card-back-kind { font-size: 6.5px; letter-spacing: 0.2em; }
  #contact-home.alk .card-back-mark { width: 24px; height: 24px; }
  #contact-home.alk .card-back .card-rule { margin: 6px 0; }

  #contact-home.alk .card-links {
    display: grid; grid-template-columns: 1fr 1fr; gap: 2px 12px;
  }
  #contact-home.alk .card-link {
    min-height: 44px; display: flex; flex-direction: column;
    justify-content: center; gap: 1px; font-size: 8.5px; letter-spacing: 0.04em;
  }
  #contact-home.alk .card-link-tag { font-size: 6.5px; letter-spacing: 0.16em; }

  #contact-home.alk .card-link:nth-child(4) { display: none; }
  #contact-home.alk .card-back > .card-row:last-child { display: none; }
}

@media (max-width: 860px) {
  #view-pricing.alk #rate > *:not(.tier-row) { padding-inline: 20px; }
  #view-pricing.alk #pricing-doc .tier-row { padding: 22px 20px 24px; }
}

#contact-home.alk {

  position: relative;

  width: auto;
  margin: 40px 52px 0;
  padding: 60px 0 52px;
  border-top: 1px solid var(--rule);
  background: none;
}

#scroll-home { background: var(--paper); }

@media (max-width: 860px) {

  #contact-home.alk { margin: 0 20px; padding: 30px 0 34px; gap: 13px; }
}

@media screen {
  #view-pricing.alk .fine-print {
    display: flex; flex-direction: column; gap: clamp(20px, 2.6vh, 30px);
    background: var(--paper-warm);
  }
  #view-pricing.alk .fine-print-head {
    margin: 0; padding: 0 0 clamp(14px, 1.8vh, 20px); border: 0;
    border-bottom: 1px solid var(--rule-strong2);
  }
  #view-pricing.alk .fine-print .pricing-block {
    margin: 0; padding: 0; max-width: none;
  }
  #view-pricing.alk .fine-print .pricing-block > .rule { display: none; }
  #view-pricing.alk .fine-print .pricing-terms { max-width: none; }
  #view-pricing.alk #licence,
  #view-pricing.alk #terms {
    display: flex; flex-direction: column; gap: clamp(14px, 1.8vh, 20px);
  }
  #view-pricing.alk #licence > .eyebrow,
  #view-pricing.alk #terms > .eyebrow { margin: 0; }
  #view-pricing.alk #terms {
    border-top: 1px solid var(--rule); padding-top: clamp(18px, 2.4vh, 26px);
  }
}

#view-pricing.alk #pricing-doc #licence .lic-row {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px;
  margin: 0; padding: 1px; background: var(--rule);
}

#view-pricing.alk #pricing-doc #licence .lic-row > li {
  background: var(--paper); color: var(--ink);
  padding: 24px 28px 26px;
  box-shadow: inset 0 2px 0 var(--rule-strong);
}
#view-pricing.alk #pricing-doc #licence .lic-row > li.lic-have {
  box-shadow: inset 0 2px 0 var(--ink);
}
#view-pricing.alk #pricing-doc #licence .lic-row .lic-head {
  padding-bottom: 14px; border-bottom: 1px solid var(--rule);
}
#view-pricing.alk #pricing-doc #licence .lic-row .lic-title {
  color: var(--ink);
}
#view-pricing.alk #pricing-doc #licence .lic-row .lic-amt {
  color: var(--text-faint);
}

#view-pricing.alk #pricing-doc #licence .lic-row .lic-offer {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  margin: 12px 0 0;
  font-family: var(--mono); font-size: 10.5px; line-height: 1.5;
  color: var(--text-2);
}
#view-pricing.alk #pricing-doc #licence .lic-row .lic-offer-save {
  padding: 3px 7px; background: var(--ink); color: var(--paper);
  letter-spacing: 0.06em; white-space: nowrap;
}

#view-pricing.alk #pricing-doc #licence .lic-row > li.lic-have .lic-amt {
  color: var(--ink);
}
#view-pricing.alk #pricing-doc #licence .lic-row .lic-points li {
  color: var(--text-2);
}
#view-pricing.alk #pricing-doc #licence .lic-row .lic-points li::before {
  background: var(--rule-strong);
}

@media (max-width: 860px) {
  .alk-nav-trigger { min-width: 44px; justify-content: center; }
  #view-pricing.alk .fine-print { gap: 16px; }
  #view-pricing.alk #pricing-doc #licence .lic-row {
    grid-template-columns: 1fr;
  }
  #view-pricing.alk #pricing-doc #licence .lic-row > li {
    padding: 22px 20px 24px;
  }
  #view-pricing.alk #terms { padding-top: 18px; gap: 14px; }
  .alk-estimate-carried { align-items: flex-start; }
  .alk-estimate-carried strong { font-size: 21px; }
}
