@font-face {
  font-family: 'Sidebar Noto';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('sidebar-fonts/noto-sans-tc-116-400-normal.woff2') format('woff2');
  unicode-range: U+26,U+40,U+5f,U+4e14,U+4e9e,U+4ec0,U+4f4e-4f4f,U+4f73,U+4fee,U+503c,U+5047,U+514b,U+516b,U+516d,U+5178,U+520a,U+5236,U+5343,U+5347,U+534a,U+5370,U+53cd,U+53e4,U+53e6,U+53f2,U+5403,U+5411,U+5427,U+5468,U+5473,U+547d,U+552e,U+55ce,U+5740,U+57ce,U+5883,U+589e,U+5931,U+5947,U+59cb,U+5a1b,U+5b58,U+5b98,U+5ba4,U+5bc6,U+5bcc,U+5beb,U+5bf6,U+5c45,U+5c6c,U+5dee,U+5df4,U+5e03,U+5e33,U+5e6b,U+5e7e,U+5e8f,U+5e95,U+5ea7,U+5f15,U+5f62,U+5f69,U+5f80,U+5fae,U+5fb7,U+601d,U+60e0,U+614b,U+6230,U+6236,U+623f,U+628a,U+6295,U+62c9,U+6309,U+63db,U+64c7,U+64ca,U+64da,U+652f,U+6545,U+6548,U+65af,U+65e9,U+6625,U+666f,U+667a,U+670b,U+671b,U+6750,U+677f,U+6848,U+6975,U+6a13,U+6a21,U+6aa2,U+6b65,U+6b77,U+6bb5,U+6cc1,U+6ce8,U+6df1,U+6e90,U+6e96,U+6eab,U+6f14,U+6f2b,U+700f,U+706b,U+724c,U+72c0,U+7368,U+7372,U+74b0,U+756b,U+76ae,U+773c,U+78ba,U+78bc,U+798f,U+79ae,U+7a4d,U+7ae5,U+7b56,U+7b97,U+7bb1,U+7bc7,U+7c73,U+7c89,U+7d00,U+7d30,U+7d39,U+7d72,U+7dad,U+7e8c,U+7f6e,U+7fa4,U+7fa9,U+7fd2,U+8003,U+807d,U+80a1,U+80b2,U+8166,U+8208-8209,U+82e5,U+843d,U+85cf,U+85dd,U+862d,U+8857,U+8863,U+88e1,U+89ba,U+89d2,U+8a31,U+8a62,U+8a66,U+8a72,U+8abf,U+8b1d,U+8b58,U+8b70,U+8b80,U+8ca1,U+8ca8,U+8cac,U+8cbc,U+8d70,U+8da3,U+8db3,U+8ddf,U+8f03,U+8f15,U+8f2f,U+8fa6,U+8fce,U+8ffd,U+900f,U+9031,U+9069,U+908a,U+91ab,U+91cc,U+92b7,U+9322,U+932f,U+9375,U+9632,U+963f,U+9644,U+9662,U+9673,U+96a8,U+96c4,U+96d9,U+96e2-96e3,U+96f2,U+9752,U+97d3,U+97ff,U+9805,U+9810,U+986f,U+990a,U+9910,U+9928,U+9ec3,U+9ed1,U+9f8d;
}
@font-face {
  font-family: 'Sidebar Noto';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('sidebar-fonts/noto-sans-tc-118-400-normal.woff2') format('woff2');
  unicode-range: U+d,U+2b,U+7c,U+a0,U+a9,U+300c-300d,U+4e09,U+4e3b,U+4e4b,U+4e5f,U+4e86,U+4e8b-4e8c,U+4eab,U+4ed6,U+4ee3-4ee4,U+4ef6,U+4f1a,U+4f4d,U+4f60,U+4f7f,U+4f86,U+4fdd,U+4fe1,U+5011,U+50b3,U+5149,U+5167,U+5176,U+518d,U+5229,U+524d,U+529b,U+52a0,U+52d9,U+5316-5317,U+5340,U+539f,U+53ca-53cb,U+5408,U+540c-540d,U+544a,U+548c,U+54c1,U+54e1,U+5546,U+554f,U+55ae,U+56de,U+5716,U+5831,U+5834,U+5916,U+5929,U+5973,U+597d,U+5982,U+5b57,U+5b78,U+5b89,U+5b8c,U+5b9a,U+5ba2,U+5bb9,U+5be6,U+5c07-5c08,U+5c0d,U+5c31,U+5de5,U+5df2,U+5e02,U+5e38,U+5e73-5e74,U+5ea6,U+5f0f,U+5f71,U+5f8c,U+5f97,U+5feb,U+6027,U+60c5,U+60f3,U+610f,U+611b,U+611f,U+61c9,U+6210,U+6216,U+6240,U+624b,U+63a8,U+63d0,U+641c,U+6536,U+6578,U+6599,U+65b9,U+660e,U+661f,U+662d,U+66f4,U+670d,U+671f,U+6771,U+679c,U+682a,U+683c,U+689d,U+696d,U+6a02,U+6a5f,U+6b0a,U+6b21,U+6b3e,U+6b64,U+6c23,U+6c34,U+6c92,U+6cbb,U+6cd5,U+6d3b,U+7063,U+7121,U+71b1,U+7247-7248,U+7269,U+7279,U+73fe,U+7406,U+7522,U+7576,U+767b,U+76ee,U+76f8,U+770b,U+771f,U+77e5,U+793e,U+7a0b,U+7acb,U+7ad9,U+7b2c,U+7b49,U+7cbe,U+7d50,U+7d61,U+7d93,U+7dda,U+7f8e,U+8005,U+806f,U+80fd,U+81ea,U+8207,U+8272,U+865f,U+8868,U+8981,U+898b,U+8996,U+8a00,U+8a08,U+8a0a,U+8a18,U+8a2d,U+8a71,U+8aaa,U+8acb,U+8cbb,U+8cc7,U+8d77,U+8d85,U+8def,U+8eab,U+8eca,U+8f49,U+9019-901a,U+9023,U+9032,U+904a-904b,U+904e,U+9053,U+9078,U+9084,U+90e8,U+90fd,U+91cd,U+91d1,U+9577,U+9580,U+9593,U+9762,U+982d,U+984c,U+985e,U+9996,U+9ad4,U+9ad8,U+9ede,U+ff01,U+ff08-ff09,U+ff1f;
}
@font-face {
  font-family: 'Sidebar Noto';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('sidebar-fonts/noto-sans-tc-119-400-normal.woff2') format('woff2');
  unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2-b3,U+bb,U+bf,U+c9,U+cd,U+d6,U+e0-ef,U+f1-f4,U+f6,U+f9-fa,U+fc-fd,U+101,U+103,U+110-111,U+113,U+12b,U+14d,U+16b,U+1a1,U+1b0,U+1ce,U+300-301,U+1ea1,U+1ea3,U+1ebf,U+1ec7,U+2013-2014,U+2039-203a,U+203c,U+2122,U+3001-3002,U+3113-3114,U+3118,U+311a-3129,U+4e00,U+4e0a-4e0b,U+4e0d,U+4e2d,U+4eba,U+4ee5,U+4f5c,U+500b,U+5165,U+5168,U+516c,U+51fa,U+5206,U+5230,U+52d5,U+53ef-53f0,U+570b,U+5728,U+5730,U+591a,U+5927,U+5b50,U+5bb6,U+5c0f,U+5fc3,U+6211,U+6587,U+65b0,U+65bc,U+65e5,U+662f,U+6642,U+6700,U+6703,U+6708-6709,U+672c,U+6b63,U+70b9-70ba,U+751f,U+7528,U+767c,U+7684,U+7db2,U+884c,U+958b,U+95dc,U+96fb,U+9801,U+ff0c,U+ff1a;
}
@font-face {
  font-family: 'Sidebar Noto';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('sidebar-fonts/noto-sans-tc-latin-400-normal.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:'Sidebar Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('sidebar-fonts/montserrat-latin-400-normal.woff2') format('woff2')}
/* Sidebar contact — shared Design System */
.sidebar .sidebar-bottom{margin-top:auto;padding-top:40px;flex-shrink:0;font-family:"Sidebar Noto",sans-serif;font-weight:400;letter-spacing:normal;line-height:normal}
.sidebar .sidebar-contact-label{display:block;margin:0 0 20px;font:400 12px/18px "Sidebar Montserrat",sans-serif;letter-spacing:.16em;color:#98948F}
.sidebar .sidebar-contact{display:flex;flex-direction:column;gap:13px;margin:0;padding:0}
.sidebar .sidebar-contact>a{display:block;margin:0;padding:0;font:400 12px/19.2px "Sidebar Noto",sans-serif;letter-spacing:normal;color:#C9C6C1;white-space:nowrap;text-decoration:none}
.sidebar .sidebar-social{display:flex;gap:18px;margin:28px 0 0;padding:0;align-items:center}
.sidebar .sidebar-social>a{display:block;margin:0;padding:0;font:400 10px/16px "Sidebar Montserrat",sans-serif;letter-spacing:normal;color:#98948F;text-decoration:none}
.sidebar .sidebar-contact>a:hover,.sidebar .sidebar-social>a:hover{color:#F2F0EB}
@media(min-width:901px){.sidebar{padding:34px 24px 28px;overflow-y:auto}.sidebar .brand-logo{display:block}.sidebar .sidebar-bottom{min-height:153.4px}}

/* Stable sidebar geometry across page navigation */
.sidebar{font-family:"Sidebar Noto",sans-serif;font-weight:400;line-height:1.6}
.sidebar .sidebar-logo{display:block;width:118px;height:20.344827586px;flex:none}
.sidebar .sidebar-logo .brand-logo{display:block;width:118px;height:20.344827586px;object-fit:contain}
.sidebar .sidebar-nav{display:flex;flex-direction:column;margin:86px 0 0;padding:0;gap:6px;flex:none}
.sidebar .sidebar-nav a{height:44px;min-height:44px;padding:0 10px 0 16px;font:400 12px/19.2px "Sidebar Noto",sans-serif;letter-spacing:.06em;transform:none;transition:color .28s ease}
.sidebar .sidebar-nav a:hover{transform:none}
@media(min-width:901px){.sidebar{position:fixed;inset:0 auto 0 0;width:190px;padding:34px 24px 28px;display:flex;flex-direction:column;background:rgba(8,8,8,.88);border-right:1px solid rgba(255,255,255,.08);overflow-y:auto}.sidebar .sidebar-bottom{height:153.4px;min-height:153.4px;flex:none}}

@media(min-width:901px) and (min-height:540px){.sidebar .sidebar-bottom{position:absolute;left:24px;right:24px;bottom:28px;margin:0;height:153.4px;padding-top:40px}.sidebar{padding-bottom:182px}}

/* Keep the navigation snapshot stable during same-origin document navigation. */
@view-transition{navigation:auto}
.sidebar{view-transition-name:site-sidebar}
.site-contact-floating{view-transition-name:site-contact-floating}
::view-transition-group(site-sidebar),::view-transition-group(site-contact-floating){animation:none}
::view-transition-old(site-sidebar),::view-transition-old(site-contact-floating){animation:none;opacity:0}
::view-transition-new(site-sidebar),::view-transition-new(site-contact-floating){animation:none;opacity:1;mix-blend-mode:normal}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}

/* Original frosted sidebar; contact typography isolated from page styles. */
@media(min-width:901px){.sidebar{background:rgba(8,8,8,.78);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}
.sidebar .sidebar-contact>a.sidebar-phone,
.sidebar .sidebar-contact>a.sidebar-email{font-family:"Sidebar Noto",sans-serif;font-size:12px;font-weight:400;line-height:19.2px;font-style:normal;letter-spacing:0;color:#C9C6C1;margin:0;padding:0;display:block;text-transform:none;transform:none}
