/* ============ 1. Reset ============ */
*,
*::before,
*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

body,
h1, h2, h3, h4, h5, p,
ul, ol, figure, blockquote, dl, dd{ margin:0; }

ul, ol{ list-style:none; padding:0; }

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

button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

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

table{ border-collapse:collapse; }

/* ============ 2. Tokens ============ */
:root{
  --tb-ink:#0E2A47;
  --tb-ice:#1657B8;
  --tb-ice-lt:#4E8FE0;
  --tb-mist:#D6E6F7;
  --tb-paper:#F6F1E7;
  --tb-gold:#C8963C;
  --tb-gold-lt:#E8C77E;
  --tb-ember:#E2452F;
  --tb-grey:#3A3F47;
  --tb-white:#FFFFFF;

  --tb-top-h:56px;
  --tb-frame-w:88px;
  --tb-edge:3px;
  --tb-gutter:24px;
  --tb-max:1280px;

  --tb-ease:cubic-bezier(.2,.7,.3,1);

  --tb-font:"Source Han Sans SC","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --tb-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

/* ============ 3. Base ============ */
html{ background:var(--tb-paper); }

body{
  --tb-frame-w:88px;
  font-family:var(--tb-font);
  font-size:16px;
  line-height:1.75;
  color:var(--tb-grey);
  background-color:var(--tb-paper);
  background-image:repeating-linear-gradient(135deg, rgba(14,42,71,.028) 0 1px, transparent 1px 14px);
  padding-top:var(--tb-top-h);
  padding-left:var(--tb-frame-w);
  transition:padding-left .24s var(--tb-ease);
  -webkit-font-smoothing:antialiased;
}

body[data-compact="true"]{ --tb-frame-w:64px; }

h1, h2, h3, h4{
  font-weight:800;
  line-height:1.12;
  letter-spacing:-.02em;
  color:var(--tb-ink);
}

p{ text-wrap:pretty; }

#main-content{ display:block; scroll-margin-top:calc(var(--tb-top-h) + 16px); }

::selection{ background:var(--tb-gold-lt); color:var(--tb-ink); }

:focus-visible{
  outline:2px solid var(--tb-ice);
  outline-offset:2px;
}
.tb-top :focus-visible,
.tb-footer :focus-visible,
.tb-dock :focus-visible{ outline-color:var(--tb-gold-lt); }

/* ============ 4. Skip link ============ */
.tb-skip{
  position:fixed;
  top:8px;
  left:8px;
  z-index:200;
  padding:10px 18px;
  background:var(--tb-ink);
  color:var(--tb-white);
  border:2px solid var(--tb-gold);
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  transform:translateY(-240%);
  transition:transform .18s var(--tb-ease);
}
.tb-skip:focus{ transform:translateY(0); }

/* ============ 5. Header / top bar ============ */
.tb-header{ position:relative; z-index:60; }

.tb-top{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:var(--tb-top-h);
  display:flex;
  align-items:center;
  gap:14px;
  padding:0 20px;
  background:var(--tb-ink);
  color:var(--tb-white);
  border-bottom:var(--tb-edge) solid var(--tb-gold);
  z-index:60;
}

.tb-brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  color:var(--tb-white);
  font-weight:800;
  letter-spacing:-.01em;
  white-space:nowrap;
}
.tb-brand__mark{
  width:14px;
  height:14px;
  flex:none;
  background:var(--tb-gold);
  clip-path:polygon(0 0, 100% 0, 100% 100%);
}
.tb-brand__name{ font-size:19px; line-height:1; }
.tb-brand__line{
  font-family:var(--tb-mono);
  font-size:11px;
  font-weight:400;
  letter-spacing:.14em;
  color:rgba(255,255,255,.6);
  padding-left:10px;
  border-left:1px solid rgba(255,255,255,.22);
}

.tb-top__meta{
  display:flex;
  align-items:center;
  gap:14px;
  margin-left:auto;
  font-family:var(--tb-mono);
  font-size:11px;
  letter-spacing:.1em;
  color:rgba(255,255,255,.68);
}

.tb-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:3px 8px;
  border:1px solid var(--tb-ember);
  color:#FFD9D2;
  font-family:var(--tb-mono);
  font-size:11px;
  letter-spacing:.08em;
  line-height:1.4;
  white-space:nowrap;
}
.tb-badge::before{
  content:"";
  width:6px;
  height:6px;
  background:var(--tb-ember);
  display:block;
}

.tb-top__lang,
.tb-top__hours{ white-space:nowrap; }

.tb-account__list{
  display:flex;
  align-items:center;
  gap:16px;
}
.tb-account__item{ display:block; }
.tb-account__link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:var(--tb-font);
  font-size:12.5px;
  font-weight:600;
  letter-spacing:0;
  color:rgba(255,255,255,.78);
  transition:color .18s var(--tb-ease);
  white-space:nowrap;
}
.tb-account__link:hover{ color:var(--tb-gold-lt); }

/* 几何图标：门 / 信封 / 齿轮 */
.tb-ico{
  display:inline-block;
  position:relative;
  flex:none;
  width:13px;
  height:13px;
  color:currentColor;
}
.tb-ico--door{
  width:11px;
  height:14px;
  border:2px solid currentColor;
  border-right-width:5px;
}
.tb-ico--mail{
  width:14px;
  height:10px;
  border:2px solid currentColor;
}
.tb-ico--mail::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:5px solid currentColor;
}
.tb-ico--gear{
  width:12px;
  height:12px;
  border:2px solid currentColor;
  border-radius:50%;
}
.tb-ico--gear::before,
.tb-ico--gear::after{
  content:"";
  position:absolute;
  left:50%;
  width:2px;
  height:5px;
  background:currentColor;
  transform:translateX(-50%);
}
.tb-ico--gear::before{ top:-4px; }
.tb-ico--gear::after{ bottom:-4px; }

/* 移动端菜单按钮 */
.tb-nav-toggle{
  display:none;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:2px solid rgba(255,255,255,.5);
  color:var(--tb-white);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  transition:border-color .18s var(--tb-ease), background .18s var(--tb-ease);
}
.tb-nav-toggle:hover{ border-color:var(--tb-gold-lt); }
.tb-nav-toggle[aria-expanded="true"]{
  background:var(--tb-gold);
  border-color:var(--tb-gold);
  color:var(--tb-ink);
}
.tb-nav-toggle__bars{
  display:block;
  position:relative;
  width:18px;
  height:2px;
  background:currentColor;
}
.tb-nav-toggle__bars::before,
.tb-nav-toggle__bars::after{
  content:"";
  position:absolute;
  left:0;
  width:100%;
  height:2px;
  background:currentColor;
  transition:transform .2s var(--tb-ease), top .2s var(--tb-ease), opacity .2s var(--tb-ease);
}
.tb-nav-toggle__bars::before{ top:-6px; }
.tb-nav-toggle__bars::after{ top:6px; }
.tb-nav-toggle[aria-expanded="true"] .tb-nav-toggle__bars{ background:transparent; }
.tb-nav-toggle[aria-expanded="true"] .tb-nav-toggle__bars::before{ top:0; transform:rotate(45deg); }
.tb-nav-toggle[aria-expanded="true"] .tb-nav-toggle__bars::after{ top:0; transform:rotate(-45deg); }
.tb-nav-toggle__text{ line-height:1; }

/* 阅读进度 */
.tb-progress{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:3px;
  background:rgba(255,255,255,.14);
  pointer-events:none;
}
.tb-progress__bar{
  display:block;
  width:100%;
  height:100%;
  background:var(--tb-gold);
  transform:scaleX(0);
  transform-origin:left center;
}

/* ============ 6. Frame nav (desktop) ============ */
.tb-nav{
  position:fixed;
  top:var(--tb-top-h);
  left:0;
  bottom:0;
  width:var(--tb-frame-w);
  display:flex;
  flex-direction:column;
  padding:16px 0 14px;
  background:var(--tb-white);
  border-right:var(--tb-edge) solid var(--tb-ink);
  overflow-y:auto;
  overscroll-behavior:contain;
  z-index:55;
  transition:width .24s var(--tb-ease);
}

.tb-nav__label{
  writing-mode:vertical-rl;
  align-self:center;
  margin:0 0 14px;
  font-family:var(--tb-mono);
  font-size:10px;
  letter-spacing:.24em;
  color:var(--tb-ink);
  opacity:.42;
  transition:opacity .2s var(--tb-ease), max-height .24s var(--tb-ease);
  max-height:120px;
  overflow:hidden;
}

.tb-nav__list{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}

.tb-nav__item{ display:block; }

.tb-nav__link{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  padding:9px 6px;
  color:var(--tb-ink);
  transition:background .2s var(--tb-ease), color .2s var(--tb-ease);
}
.tb-nav__link::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:3px;
  height:0;
  background:var(--tb-gold);
  transform:translateY(-50%);
  transition:height .2s var(--tb-ease);
}
.tb-nav__link:hover{ background:var(--tb-mist); }
.tb-nav__link:hover::before{ height:18px; }

.tb-nav__link[aria-current="page"]{
  background:var(--tb-mist);
  color:var(--tb-ice);
  font-weight:800;
}
.tb-nav__link[aria-current="page"]::before{ height:28px; }
.tb-nav__link[aria-current="page"] .tb-nav__idx{ opacity:1; color:var(--tb-gold); }

.tb-nav__idx{
  font-family:var(--tb-mono);
  font-size:10px;
  letter-spacing:.1em;
  line-height:1;
  color:var(--tb-ink);
  opacity:.4;
  font-variant-numeric:tabular-nums;
}

.tb-nav__text{
  writing-mode:vertical-rl;
  font-size:13px;
  font-weight:500;
  letter-spacing:.1em;
  line-height:1.25;
  max-height:120px;
  opacity:1;
  overflow:hidden;
  transition:opacity .2s var(--tb-ease), max-height .24s var(--tb-ease);
}

body[data-compact="true"] .tb-nav__text{ opacity:0; max-height:0; }
body[data-compact="true"] .tb-nav__label{ opacity:0; max-height:0; margin-bottom:6px; }

.tb-quick{
  margin-top:auto;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px 8px 0;
  border-top:1px solid rgba(14,42,71,.16);
}

.tb-quick__link{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  padding:9px 4px;
  border:2px solid var(--tb-ink);
  background:var(--tb-white);
  color:var(--tb-ink);
  font-size:11px;
  font-weight:700;
  line-height:1.3;
  text-align:center;
  transition:background .18s var(--tb-ease), color .18s var(--tb-ease), transform .18s var(--tb-ease);
}
.tb-quick__link:hover{
  background:var(--tb-ice);
  border-color:var(--tb-ice);
  color:var(--tb-white);
  transform:translateY(-2px);
}
.tb-quick__text{ display:block; }

.tb-nav__account{ display:none; }

/* ============ 7. Mobile dock ============ */
.tb-dock{ display:none; }
.tb-dock__link{ display:block; }

/* ============ 8. Footer ============ */
.tb-footer{
  position:relative;
  margin-top:88px;
  padding-top:0;
  background:var(--tb-ink);
  color:rgba(255,255,255,.72);
  border-top:var(--tb-edge) solid var(--tb-gold);
  overflow:hidden;
}

.tb-footer__glacier{
  height:12px;
  background-image:
    linear-gradient(45deg, var(--tb-gold) 25%, transparent 25%),
    linear-gradient(-45deg, var(--tb-gold) 25%, transparent 25%);
  background-size:16px 12px;
  background-repeat:repeat-x;
  background-position:0 0;
  opacity:.45;
}

.tb-footer__inner{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:44px 32px;
  max-width:var(--tb-max);
  margin:0 auto;
  padding:52px 32px 44px;
}

.tb-footer__brand{ min-width:0; }

.tb-footer__logo{
  font-size:26px;
  font-weight:800;
  letter-spacing:-.01em;
  color:var(--tb-white);
  line-height:1.1;
  margin-bottom:10px;
}

.tb-footer__tagline{
  font-size:14px;
  line-height:1.7;
  color:rgba(255,255,255,.62);
  max-width:30ch;
  margin-bottom:22px;
}

.tb-footer__contact{
  display:grid;
  gap:6px;
  margin-bottom:16px;
}
.tb-footer__contact-item{
  display:flex;
  gap:10px;
  font-family:var(--tb-mono);
  font-size:12px;
  line-height:1.7;
  letter-spacing:.02em;
}
.tb-footer__contact-key{
  flex:none;
  width:4.6em;
  color:var(--tb-gold-lt);
  letter-spacing:.14em;
}
.tb-footer__contact-val{
  color:rgba(255,255,255,.78);
  word-break:break-word;
}

.tb-footer__note{
  font-size:12.5px;
  line-height:1.7;
  color:rgba(255,255,255,.5);
  border-left:2px solid rgba(200,150,60,.6);
  padding-left:10px;
  max-width:34ch;
}

.tb-footer__cols{
  grid-column:span 3;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:32px;
}

.tb-footer__col{ min-width:0; }

.tb-footer__title{
  font-family:var(--tb-mono);
  font-size:11px;
  font-weight:400;
  letter-spacing:.2em;
  color:var(--tb-gold-lt);
  padding-bottom:10px;
  margin-bottom:14px;
  border-bottom:1px solid rgba(200,150,60,.35);
}

.tb-footer__list{ display:grid; gap:2px; }

.tb-footer__link{
  display:inline-block;
  font-size:13.5px;
  line-height:1.9;
  color:rgba(255,255,255,.74);
  border-bottom:1px solid transparent;
  transition:color .18s var(--tb-ease), border-color .18s var(--tb-ease);
}
.tb-footer__link:hover{
  color:var(--tb-gold-lt);
  border-bottom-color:var(--tb-gold-lt);
}

.tb-footer__legal{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 24px;
  max-width:var(--tb-max);
  margin:0 auto;
  padding:18px 32px 22px;
  border-top:1px solid rgba(200,150,60,.28);
}
.tb-footer__copy{
  font-family:var(--tb-mono);
  font-size:11px;
  letter-spacing:.06em;
  color:rgba(255,255,255,.55);
}
.tb-footer__legal-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  font-family:var(--tb-mono);
  font-size:11px;
  letter-spacing:.06em;
}
.tb-footer__legal-nav .tb-footer__link{ font-size:11px; line-height:1.7; }

/* ============ 9. Page utilities ============ */
.tb-shell{
  width:100%;
  max-width:var(--tb-max);
  margin:0 auto;
  padding:0 32px;
}

.tb-section{ padding:72px 0; }
.tb-section__head{ margin-bottom:28px; }

.tb-kicker{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--tb-mono);
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--tb-ice);
}
.tb-kicker::before{
  content:"";
  width:24px;
  height:2px;
  flex:none;
  background:var(--tb-gold);
}

.tb-prose{ max-width:68ch; }
.tb-prose > * + *{ margin-top:1.1em; }
.tb-prose h2,
.tb-prose h3{ margin-top:1.8em; line-height:1.2; }

.tb-grid{ display:grid; gap:var(--tb-gutter); }
.tb-grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.tb-grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.tb-grid--split{ grid-template-columns:minmax(0,38fr) minmax(0,62fr); }

/* Buttons */
.tb-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 24px;
  border:2px solid var(--tb-ink);
  background:var(--tb-white);
  color:var(--tb-ink);
  font-size:15px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.2;
  box-shadow:4px 4px 0 rgba(14,42,71,.2);
  transition:transform .18s var(--tb-ease), box-shadow .18s var(--tb-ease),
             background-color .18s var(--tb-ease), color .18s var(--tb-ease),
             border-color .18s var(--tb-ease);
}
.tb-btn:hover{
  transform:translate(-1px,-2px);
  box-shadow:7px 7px 0 rgba(14,42,71,.24);
}
.tb-btn:active{
  transform:scale(.98);
  box-shadow:2px 2px 0 rgba(14,42,71,.2);
}
.tb-btn--solid{
  background:var(--tb-ice);
  border-color:var(--tb-ice);
  color:var(--tb-white);
}
.tb-btn--solid:hover{ background:var(--tb-ink); border-color:var(--tb-ink); }
.tb-btn--gold{
  background:var(--tb-gold);
  border-color:var(--tb-gold);
  color:var(--tb-ink);
}
.tb-btn--gold:hover{ background:var(--tb-gold-lt); border-color:var(--tb-gold-lt); }
.tb-btn--ghost{
  background:transparent;
  border-color:var(--tb-ink);
  box-shadow:none;
}
.tb-btn--ghost:hover{
  background:var(--tb-ink);
  color:var(--tb-white);
  box-shadow:none;
  transform:none;
}

/* Cards */
.tb-card{
  position:relative;
  padding:24px;
  background:var(--tb-white);
  border:var(--tb-edge) solid var(--tb-ink);
  box-shadow:8px 8px 0 rgba(14,42,71,.16);
  transition:transform .2s var(--tb-ease), box-shadow .2s var(--tb-ease);
}
.tb-card::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:22px;
  height:22px;
  pointer-events:none;
  background:linear-gradient(45deg, var(--tb-gold) 0 50%, var(--notch-bg, var(--tb-paper)) 50% 100%);
}
.tb-card:hover{
  transform:translate(-2px,-4px);
  box-shadow:14px 14px 0 rgba(14,42,71,.2);
}
.tb-card__head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.tb-card__title{
  font-size:20px;
  font-weight:800;
  line-height:1.25;
  letter-spacing:-.01em;
  color:var(--tb-ink);
}
.tb-card__meta{
  flex:none;
  font-family:var(--tb-mono);
  font-size:11px;
  letter-spacing:.12em;
  color:var(--tb-ice);
}
.tb-card__body{ font-size:15px; line-height:1.7; }

/* Figure */
.tb-figure{
  position:relative;
  margin:0;
  background:var(--tb-mist);
  border:var(--tb-edge) solid var(--tb-ink);
  overflow:hidden;
}
.tb-figure__media{
  position:relative;
  width:100%;
  aspect-ratio:16 / 10;
  overflow:hidden;
  background-color:var(--tb-mist);
  background-image:
    repeating-linear-gradient(135deg, rgba(22,87,184,.14) 0 2px, transparent 2px 12px),
    linear-gradient(160deg, rgba(255,255,255,.6), rgba(214,230,247,0));
}
.tb-figure__media img,
.tb-figure__media svg,
.tb-figure__media picture{ width:100%; height:100%; object-fit:cover; display:block; }
.tb-figure__cap{
  padding:10px 14px;
  border-top:var(--tb-edge) solid var(--tb-ink);
  background:var(--tb-white);
  font-family:var(--tb-mono);
  font-size:11px;
  letter-spacing:.1em;
  color:var(--tb-ink);
}

/* Tag */
.tb-tag{
  display:inline-block;
  padding:3px 10px;
  border:1px solid var(--tb-ice);
  color:var(--tb-ice);
  font-family:var(--tb-mono);
  font-size:11px;
  letter-spacing:.08em;
  line-height:1.6;
}

/* Stat */
.tb-stat__num{
  font-family:var(--tb-mono);
  font-size:clamp(32px, 5vw, 56px);
  font-weight:800;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--tb-ink);
  font-variant-numeric:tabular-nums;
}
.tb-stat__label{
  margin-top:8px;
  font-size:12px;
  letter-spacing:.14em;
  color:var(--tb-grey);
}

/* Breadcrumb */
.tb-breadcrumb{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  font-family:var(--tb-mono);
  font-size:11px;
  letter-spacing:.12em;
  color:var(--tb-grey);
}
.tb-breadcrumb__item{
  display:flex;
  align-items:center;
  gap:8px;
}
.tb-breadcrumb__item + .tb-breadcrumb__item::before{
  content:"/";
  color:var(--tb-gold);
}
.tb-breadcrumb__link{
  color:var(--tb-ink);
  border-bottom:1px solid transparent;
  transition:border-color .18s var(--tb-ease), color .18s var(--tb-ease);
}
.tb-breadcrumb__link:hover{
  color:var(--tb-ice);
  border-bottom-color:var(--tb-gold);
}

/* Floating index button */
.tb-index-btn{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:50;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 18px;
  background:var(--tb-ink);
  color:var(--tb-white);
  border:2px solid var(--tb-gold);
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
  box-shadow:6px 6px 0 rgba(14,42,71,.2);
  transition:background .18s var(--tb-ease), transform .18s var(--tb-ease);
}
.tb-index-btn:hover{ background:var(--tb-ice); transform:translateY(-2px); }
.tb-index-btn::before{
  content:"";
  width:8px;
  height:8px;
  background:var(--tb-gold);
  clip-path:polygon(0 0, 100% 0, 100% 100%);
}

/* Reveal */
html.tb-js [data-reveal]{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .22s var(--tb-ease), transform .22s var(--tb-ease);
}
html.tb-js [data-reveal="in"]{
  opacity:1;
  transform:none;
}

/* ============ 10. Tablet ============ */
@media (max-width:1080px){
  .tb-brand__line{ display:none; }
  .tb-top__hours{ display:none; }
  .tb-footer__inner{
    grid-template-columns:1fr 1fr;
    gap:36px 24px;
    padding:44px 24px 36px;
  }
  .tb-footer__brand{ grid-column:1 / -1; }
  .tb-footer__cols{ grid-column:1 / -1; }
  .tb-footer__legal{ padding:16px 24px 20px; }
  .tb-shell{ padding:0 24px; }
  .tb-grid--3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tb-grid--split{ grid-template-columns:minmax(0,44fr) minmax(0,56fr); }
}

/* ============ 11. Mobile ============ */
@media (max-width:900px){
  body,
  body[data-compact="true"]{
    --tb-frame-w:0px;
    padding-left:0;
    padding-bottom:56px;
  }

  .tb-top{
    padding:0 14px;
    gap:10px;
  }
  .tb-nav-toggle{ display:inline-flex; margin-left:8px; }
  .tb-top__meta{ gap:8px; }
  .tb-top__lang,
  .tb-top__hours{ display:none; }
  .tb-account{ display:none; }
  .tb-brand__name{ font-size:17px; }

  .tb-nav{
    top:var(--tb-top-h);
    left:0;
    right:0;
    bottom:auto;
    width:auto;
    max-height:calc(100vh - var(--tb-top-h) - 56px);
    padding:0;
    border-right:0;
    border-bottom:var(--tb-edge) solid var(--tb-ink);
    background:var(--tb-white);
    overflow-y:auto;
    opacity:0;
    visibility:hidden;
    transform:translateY(-10px);
    transition:opacity .2s var(--tb-ease),
               transform .2s var(--tb-ease),
               visibility 0s linear .2s;
    z-index:58;
  }
  .tb-nav[data-open="true"]{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    transition:opacity .2s var(--tb-ease),
               transform .2s var(--tb-ease),
               visibility 0s linear 0s;
  }

  .tb-nav__label{ display:none; }

  .tb-nav__list{
    flex:0 0 auto;
    padding:6px 0;
  }
  .tb-nav__link{
    flex-direction:row;
    justify-content:flex-start;
    gap:12px;
    padding:14px 20px;
    border-bottom:1px solid rgba(14,42,71,.1);
  }
  .tb-nav__link::before{
    top:0;
    left:0;
    width:3px;
    height:100%;
    transform:none;
  }
  .tb-nav__link:hover::before,
  .tb-nav__link[aria-current="page"]::before{ height:100%; }
  .tb-nav__text{
    writing-mode:horizontal-tb;
    font-size:16px;
    letter-spacing:.04em;
    max-height:none;
    opacity:1;
  }
  body[data-compact="true"] .tb-nav__text{ opacity:1; max-height:none; }
  body[data-compact="true"] .tb-nav__label{ opacity:.42; }

  .tb-quick{
    flex-direction:row;
    gap:10px;
    padding:14px 20px;
    border-top:1px solid rgba(14,42,71,.12);
    margin-top:0;
  }
  .tb-quick__link{
    flex:1 1 0;
    flex-direction:row;
    justify-content:center;
    gap:8px;
    padding:11px 8px;
    font-size:13px;
  }

  .tb-nav__account{
    display:block;
    padding:16px 20px 22px;
    border-top:1px solid rgba(14,42,71,.14);
    background:var(--tb-paper);
  }
  .tb-nav__account-title{
    margin:0 0 10px;
    font-family:var(--tb-mono);
    font-size:10px;
    letter-spacing:.2em;
    color:var(--tb-ice);
  }
  .tb-nav__account-link{
    display:block;
    padding:9px 0;
    font-size:14px;
    color:var(--tb-ink);
    border-bottom:1px dashed rgba(14,42,71,.16);
  }
  .tb-nav__account-link:hover{ color:var(--tb-ice); }

  .tb-dock{
    display:flex;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    height:56px;
    background:var(--tb-ink);
    border-top:var(--tb-edge) solid var(--tb-gold);
    z-index:57;
  }
  .tb-dock__link{
    flex:1 1 0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 4px;
    font-size:12px;
    font-weight:700;
    letter-spacing:.02em;
    color:rgba(255,255,255,.78);
    border-left:1px solid rgba(255,255,255,.12);
    text-align:center;
    transition:color .18s var(--tb-ease), background .18s var(--tb-ease);
  }
  .tb-dock__link:first-child{ border-left:0; }
  .tb-dock__link[aria-current="page"]{
    color:var(--tb-gold-lt);
    background:rgba(255,255,255,.07);
  }

  .tb-index-btn{ right:14px; bottom:74px; padding:10px 14px; font-size:12px; }

  .tb-footer{ margin-top:64px; }
  .tb-footer__inner{
    grid-template-columns:1fr;
    padding:36px 20px 28px;
    gap:30px;
  }
  .tb-footer__cols{
    grid-column:1 / -1;
    grid-template-columns:1fr;
    gap:26px;
  }
  .tb-footer__legal{
    flex-direction:column;
    align-items:flex-start;
    padding:16px 20px 22px;
    gap:10px;
  }

  .tb-shell{ padding:0 20px; }
  .tb-section{ padding:52px 0; }
  .tb-grid--2,
  .tb-grid--3,
  .tb-grid--split{ grid-template-columns:1fr; }
  .tb-card{ padding:20px; }
}

@media (max-width:420px){
  .tb-dock__link{ font-size:11px; }
  .tb-brand__name{ font-size:16px; }
}

/* ============ 12. Motion preference ============ */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }

  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    transition-delay:0s !important;
    scroll-behavior:auto !important;
  }

  .tb-card:hover,
  .tb-btn:hover,
  .tb-index-btn:hover,
  .tb-quick__link:hover{ transform:none; }

  html.tb-js [data-reveal]{
    opacity:1;
    transform:none;
  }
}
