/* Noto Sans: punctuation-only subset, weights 300/400/500.
   Source: https://fonts.googleapis.com/css2?family=Noto+Sans:wght@300;400;500&display=swap&text=%E2%80%98%E2%80%99%E2%80%9C%E2%80%9D
   Restricting unicode-range preserves all original Latin letters and CJK glyphs. */
@font-face {
  font-family: "NN Western Punctuation";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("data:font/ttf;base64,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") format("truetype");
  unicode-range: U+2018-2019, U+201C-201D;
}
@font-face {
  font-family: "NN Western Punctuation";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("data:font/ttf;base64,AAEAAAAQAQAABAAAR0RFRgAPAAkAAAEsAAAAFEdQT1NOLDTFAAADRAAAAM5HU1VCbh5c5QAAAfgAAABAT1MvMo41hAUAAALkAAAAYFNUQVReY0M5AAAChAAAAF5jbWFwHA8i2QAAAjgAAABMZ2FzcAAAABAAAAEUAAAACGdseWZNqSiEAAAEFAAAAR5oZWFkKH/bDAAAAcAAAAA2aGhlYQyzCL8AAAGcAAAAJGhtdHgHiACOAAABQAAAABxsb2NhAOQBNQAAARwAAAAQbWF4cAAqAY4AAAFcAAAAIG5hbWU2v2KZAAAFNAAAAnhwb3N0/58AMgAAAXwAAAAgcHJlcGgGjIUAAAEMAAAAB7gB/4WwBI0AAAEAAf//AA8AAAAUABQAKgBBAGgAjwCPAAEAAAAMAAAAAAAAAAEABgABAAMCWABeAQQAAACvAAwArwAMAWcADAFnAAwAAAAAAAEAAAAHAREAGAB7AAYAAQAAAAAAAAAAAAAAAAAEAAEAAwAAAAAAAP+cADIAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAELf7bAAALGP2T+t0K8APoAAAAAAAAAAAAAAAAAAAABwABAAAAAgPXxtCKkV8PPPUAAwPoAAAAAN2A0+cAAAAA42PAPP2T/gQK8AQrAAAABgACAAAAAAAAAAEAAAAKAD4APgAGREZMVAAqY3lybAAmZGV2MgAmZGV2YQAmZ3JlawAmbGF0bgAmAAAAAAAEAAAAAP//AAAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAOAAAAAoACAACAAIAICAZIB3+AP//AAAAICAYIBz+AP///+Hf6t/oAgYAAQAAAAAAAAAAAAAAAQABAAgAAwAAABQAAwAAACwAAndnaHQBAAAAd2R0aAEBAAFpdGFsAT8AAgAiABYABgADAAIAAgFAAAAAAAABAAAAAQABAAIBPgBkAAAAAwAAAAIAAgGQAAACvAAAAAAABAI6AZAABQAAAooCWAAAAEsCigJYAAABXgAyAUIAAAILBQIEBQQCAgTgAAL/QAAgHwgAACkAEAAAR09PRwDAACD+AAQt/tsAAARkAYsAAAGfAAAAAAIYAsoAAAAgAAYAAQAAAAoASABeAAZERkxUADJjeXJsADJkZXYyACZkZXZhACZncmVrADJsYXRuADIABAAAAAD//wABAAAABAAAAAD//wABAAEAAmRpc3QADmtlcm4ADgAAAAIAAQAAAAIALgAGAAIACAABAAgAAgBGAAQAAABeABQAAQACAAAAAAABAAMAAwABAAAAAQAJAAgAAQAIAAEAAgAAAAgAAgAWAAQAAAAuACAAAQADAAAAAAAAAAIAAQACAAUAAAABAAIABAACAAEAAgABAAIAAAAAAAIAXgAAAfkCygADAAcAADMRIRElIREhXgGb/pgBNf7LAsr9NjMCZAABAAwB1QCjAsoACgAAEz4CNzMOAgcjDAkcIRBBCRQQBV8B4CNSUiMmV1UjAAEADAHVAKMCygALAAATDgIHIz4DNzOjCRwhEEEHDw0LBF4CvyNSUSQcQEE+GgACAAwB1QFbAsoACgAVAAABDgIHIyc+AjcjDgIHIyc+AjcBWwkUEAVfBwkcIhB4CRQQBV4GCRwhEALKJlhUIwsjUVIkJlhUIwsjUVIkAAACAAwB1QFbAsoACgAWAAABDgIHIz4CNzMHDgIHIz4DNzMBWwkcIRBCChMRBV6yCRwhEEAHDg0LBF4CvyNSUSQmV1UjCyNSUSQcQEE+GgAAAAAADQCiAAMAAQQJAAAAtgEgAAMAAQQJAAEAEgEOAAMAAQQJAAIADgEAAAMAAQQJAAMANgDKAAMAAQQJAAQAIgCoAAMAAQQJAAUAGgCOAAMAAQQJAAYAIABuAAMAAQQJAA4ANgA4AAMAAQQJAQAADAAsAAMAAQQJAQEACgAiAAMAAQQJAT4ADAAWAAMAAQQJAT8ADAAKAAMAAQQJAUAACgAAAFIAbwBtAGEAbgBJAHQAYQBsAGkAYwBOAG8AcgBtAGEAbABXAGkAZAB0AGgAVwBlAGkAZwBoAHQAaAB0AHQAcABzADoALwAvAG8AcABlAG4AZgBvAG4AdABsAGkAYwBlAG4AcwBlAC4AbwByAGcATgBvAHQAbwBTAGEAbgBzAC0AUgBlAGcAdQBsAGEAcgBWAGUAcgBzAGkAbwBuACAAMgAuADAAMQA1AE4AbwB0AG8AIABTAGEAbgBzACAAUgBlAGcAdQBsAGEAcgAyAC4AMAAxADUAOwBHAE8ATwBHADsATgBvAHQAbwBTAGEAbgBzAC0AUgBlAGcAdQBsAGEAcgBSAGUAZwB1AGwAYQByAE4AbwB0AG8AIABTAGEAbgBzAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADIAMgAgAFQAaABlACAATgBvAHQAbwAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBzACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAG4AbwB0AG8AZgBvAG4AdABzAC8AbABhAHQAaQBuAC0AZwByAGUAZQBrAC0AYwB5AHIAaQBsAGwAaQBjACk=") format("truetype");
  unicode-range: U+2018-2019, U+201C-201D;
}
@font-face {
  font-family: "NN Western Punctuation";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("data:font/ttf;base64,AAEAAAAQAQAABAAAR0RFRgAPAAkAAAEsAAAAFEdQT1NOLDTFAAADQAAAAM5HU1VCbh5c5QAAAfgAAABAT1MvMo6bhBMAAALgAAAAYFNUQVRfkkDdAAAChAAAAFpjbWFwHA8i2QAAAjgAAABMZ2FzcAAAABAAAAEUAAAACGdseWZvEUjkAAAEEAAAAR5oZWFkKH7bCwAAAcAAAAA2aGhlYQyyCKQAAAGcAAAAJGhtdHgHzwCMAAABQAAAABxsb2NhAOQBNQAAARwAAAAQbWF4cAAqAY4AAAFcAAAAIG5hbWU3OGWIAAAFMAAAAnhwb3N0/58AMgAAAXwAAAAgcHJlcGgGjIUAAAEMAAAAB7gB/4WwBI0AAAEAAf//AA8AAAAUABQAKgBBAGgAjwCPAAEAAAAMAAAAAAAAAAEABgABAAMCVQBcAQQAAAC7AAwAuwAMAYAADAGAAAwAAAAAAAEAAAAHAREAGAB7AAYAAQAAAAAAAAAAAAAAAAAEAAEAAwAAAAAAAP+cADIAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAELf7bAAALGP2S+sIK8APoAAAAAAAAAAAAAAAAAAAABwABAAAAAgPXf1pI318PPPUAAwPoAAAAAN2A0+cAAAAA42PAPP2S/gMK8AQrAAAABgACAAAAAAAAAAEAAAAKAD4APgAGREZMVAAqY3lybAAmZGV2MgAmZGV2YQAmZ3JlawAmbGF0bgAmAAAAAAAEAAAAAP//AAAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAOAAAAAoACAACAAIAICAZIB3+AP//AAAAICAYIBz+AP///+Hf6t/oAgYAAQAAAAAAAAAAAAAAAQABAAgAAwAAABQAAwAAACwAAndnaHQBAAAAd2R0aAEBAAFpdGFsAT8AAgAiABYABgADAAIAAgFAAAAAAAABAAAAAQABAAIBPgBkAAAAAQAAAAABMQH0AAAAAAAEAkUB9AAFAAACigJYAAAASwKKAlgAAAFeADIBRAAAAgsFAgQFBAICBOAAAv9AACAfCAAAKQAQAABHT09HAMAAIP4ABC3+2wAABGQBiwAAAZ8AAAAAAhsCygAAACAABgABAAAACgBIAF4ABkRGTFQAMmN5cmwAMmRldjIAJmRldmEAJmdyZWsAMmxhdG4AMgAEAAAAAP//AAEAAAAEAAAAAP//AAEAAQACZGlzdAAOa2VybgAOAAAAAgABAAAAAgAuAAYAAgAIAAEACAACAEYABAAAAF4AFAABAAIAAAAAAAEAAwADAAEAAAABAAkACAABAAgAAQACAAAACAACABYABAAAAC4AIAABAAMAAAAAAAAAAgABAAIABQAAAAEAAgAEAAIAAQACAAEAAgAAAAAAAgBcAAAB9wLKAAMABwAAMxEhESUhESFcAZv+mAE1/ssCyv02MwJkAAEADAHVAK8CygAKAAATPgI3Mw4CByMMCRwhEE0JExAFbAHgI1JSIyZYVCMAAQAMAdUArwLKAAsAABMOAgcjPgM3M68JHCARTQcPDQsEagK/I1JRJB1AQT0aAAIADAHVAXQCygAKABUAAAEOAgcjJz4CNyMOAgcjJz4CNwF0CRMQBWwHCRwiEHgJFBAFawYJHCEQAsomWFQjCyNRUiQmWFQjCyNRUiQAAAIADAHVAXQCygAKABYAAAEOAgcjPgI3MwcOAgcjPgM3MwF0CRwgEU4KExEFar4JHCEQTQcODQsEawK/I1JRJCdXVCMLI1JRJB1AQT0aAAAAAAAOAK4AAwABBAkAAAC2ARQAAwABBAkAAQAgAPQAAwABBAkAAgAOAOYAAwABBAkAAwA0ALIAAwABBAkABAAgAPQAAwABBAkABQAaAJgAAwABBAkABgAeAHoAAwABBAkADgA2AEQAAwABBAkBAAAMADgAAwABBAkBAQAKAC4AAwABBAkBMQAMACIAAwABBAkBPgAMABYAAwABBAkBPwAMAAoAAwABBAkBQAAKAAAAUgBvAG0AYQBuAEkAdABhAGwAaQBjAE4AbwByAG0AYQBsAE0AZQBkAGkAdQBtAFcAaQBkAHQAaABXAGUAaQBnAGgAdABoAHQAdABwAHMAOgAvAC8AbwBwAGUAbgBmAG8AbgB0AGwAaQBjAGUAbgBzAGUALgBvAHIAZwBOAG8AdABvAFMAYQBuAHMALQBNAGUAZABpAHUAbQBWAGUAcgBzAGkAbwBuACAAMgAuADAAMQA1ADIALgAwADEANQA7AEcATwBPAEcAOwBOAG8AdABvAFMAYQBuAHMALQBNAGUAZABpAHUAbQBSAGUAZwB1AGwAYQByAE4AbwB0AG8AIABTAGEAbgBzACAATQBlAGQAaQB1AG0AQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMgAyACAAVABoAGUAIABOAG8AdABvACAAUAByAG8AagBlAGMAdAAgAEEAdQB0AGgAbwByAHMAIAAoAGgAdAB0AHAAcwA6AC8ALwBnAGkAdABoAHUAYgAuAGMAbwBtAC8AbgBvAHQAbwBmAG8AbgB0AHMALwBsAGEAdABpAG4ALQBnAHIAZQBlAGsALQBjAHkAcgBpAGwAbABpAGMAKQ==") format("truetype");
  unicode-range: U+2018-2019, U+201C-201D;
}

/* Keep original letters; use proportional English quote glyphs only. */
*{font-family:"NN Western Punctuation","Noto Sans TC","PingFang TC","PingFang HK","Hiragino Sans GB","Microsoft JhengHei","Microsoft YaHei","Heiti TC","Heiti SC",ui-sans-serif,sans-serif}

/* Original layout stays in the unchanged /static/css/style.css.
   Requested typography refinement: three text areas use Light 300;
   both lines of SEE MORE WORK use a 2px underline.
   Explicit CMS appearance overrides follow this stylesheet and take priority. */
.nameCont,
.nameCont p,
.nameCont span,
.about .abtitle .abTxt-col,
.about .abtitle .abTxt-col p,
.about .abtitle .abTxt-col span{font-weight:300!important}
.abLiTxt h4{font-weight:300}
.abMore h5{text-decoration-thickness:2px}

/* Work-type descriptions only; the About introduction retains its original size. */
.abLiTxt h6{font-size:12px;margin-top:8px}
@media(max-width:1020px){.abLiTxt h6{font-size:10.4px}}
@media(max-width:768px){.abLiTxt h6{font-size:9.6px}}

/* All project bodies follow the visible work36 reference, overriding pasted styles. */
.nameCont,
.nameCont p,
.nameCont span{
  font-family:"NN Western Punctuation","Noto Sans TC","PingFang TC","PingFang HK","Hiragino Sans GB","Microsoft JhengHei","Microsoft YaHei","Heiti TC","Heiti SC",ui-sans-serif,sans-serif!important;
  font-size:18px!important;
  font-weight:300!important;
  line-height:1.75!important; /* 31.5px: about 20% more than the original 26px. */
  font-kerning:none!important;
}

/* Phone contact layout: keep the photo's natural ratio and use the full text width. */
@media(max-width:768px){
  #point03.botm{padding-top:32px}
  #point03 .cont .abInfo{display:block;margin:0 0 36px}
  #point03 .cont .abTxt{display:flex;flex-direction:column;align-items:stretch;gap:24px;width:100%}
  #point03 .cont .abTxt>div:not(.abTxt-col){width:100%;min-width:0}
  #point03 .cont .contMg{display:block;padding:0;overflow:visible}
  #point03 .cont .contMg img{width:100%;max-width:100%;height:auto}
  #point03 .cont .contxt{display:block;margin-top:0}
  #point03 .cont .contxt>div:not(.modeContMg){width:100%;min-width:0}
  #point03 .cont .abMg,#point03 .cont .modeContMg{display:none}
  #point03 .cont .contxt h5{line-height:1.6}
  #point03 .cont .contxt h4{line-height:1.6;overflow-wrap:anywhere}
  #point03 .cont .code{margin-top:24px;gap:12px;align-items:center}
  #point03 .cont .code img{width:80px;height:80px;flex:none;margin-right:0}
  #point03 .cont .code b{white-space:nowrap}
}

/* Utilities confined to admin previews / missing pages. */
.nn-preview-notice{position:fixed;right:12px;bottom:12px;z-index:1000;padding:8px 12px;background:#fff;border:1px solid #ccc;color:#111;font-size:12px;box-shadow:0 2px 12px #0002}
.nn-preview-notice a{margin-left:12px;text-decoration:underline;color:#111}
.nn-not-found{padding-top:150px;padding-bottom:150px;color:#111}
.nn-not-found a{text-decoration:underline;color:#111}
